more misc fluid work, gonna leave most of this untill we have an offical or new api

This commit is contained in:
modmuss50 2019-07-24 19:06:21 +01:00
parent 0742abb840
commit 6a93c3fd46
28 changed files with 147 additions and 404 deletions

View file

@ -58,7 +58,7 @@ public class GuiDieselGenerator extends GuiBase {
builder.drawProgressBar(this, blockEntity.getProgressScaled(10), 100, 83, 48, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawMultiEnergyBar(this, 130, 28, (int) blockEntity.getEnergy(), (int) blockEntity.getMaxPower(), mouseX, mouseY, 0, layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
}

View file

@ -86,7 +86,7 @@ public class GuiFluidReplicator extends GuiBase {
super.drawForeground(mouseX, mouseY);
final GuiBase.Layer layer = GuiBase.Layer.FOREGROUND;
builder.drawTank(this, 99, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 99, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawProgressBar(this, blockEntity.getProgressScaled(100), 100, 76, 48, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
if (blockEntity.getMultiBlock()) {
addHologramButton(6, 4, 212, layer).clickHandler(this::onClick);

View file

@ -55,7 +55,7 @@ public class GuiGasTurbine extends GuiBase {
builder.drawProgressBar(this, blockEntity.getProgressScaled(10), 100, 83, 48, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawMultiEnergyBar(this, 130, 28, (int) blockEntity.getEnergy(), (int) blockEntity.getMaxPower(), mouseX, mouseY, 0, layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
}
}

View file

@ -85,7 +85,7 @@ public class GuiIndustrialGrinder extends GuiBase {
final Layer layer = Layer.FOREGROUND;
builder.drawProgressBar(this, blockEntity.getProgressScaled(100), 100, 105, 47, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawTank(this, 53, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 53, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
if (blockEntity.getMultiBlock()) {
addHologramButton(6, 4, 212, layer).clickHandler(this::onClick);
} else {

View file

@ -84,7 +84,7 @@ public class GuiIndustrialSawmill extends GuiBase {
final Layer layer = Layer.FOREGROUND;
builder.drawProgressBar(this, blockEntity.getProgressScaled(100), 100, 105, 47, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawTank(this, 53, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 53, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
if (blockEntity.getMutliBlock()) {
addHologramButton(6, 4, 212, layer).clickHandler(this::onClick);
} else {

View file

@ -67,7 +67,7 @@ public class GuiPlasmaGenerator extends GuiBase {
builder.drawProgressBar(this, blockEntity.getProgressScaled(10), 100, 83, 48, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawMultiEnergyBar(this, 130, 28, (int) blockEntity.getEnergy(), (int) blockEntity.getMaxPower(), mouseX, mouseY, 0, layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
}

View file

@ -53,7 +53,7 @@ public class GuiQuantumTank extends GuiBase {
protected void drawForeground(final int mouseX, final int mouseY) {
super.drawForeground(mouseX, mouseY);
FluidInstance fluid = quantumTank.tank.getFluid();
FluidInstance fluid = quantumTank.tank.getFluidInstance();
if(fluid != null){
font.draw( "Fluid Type:", 10, 20, 4210752);
font.draw(FluidUtil.getFluidName(fluid) + "", 10, 30, 4210752);

View file

@ -55,7 +55,7 @@ public class GuiSemifluidGenerator extends GuiBase {
builder.drawProgressBar(this, blockEntity.getProgressScaled(10), 100, 83, 48, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawMultiEnergyBar(this, 130, 28, (int) blockEntity.getEnergy(), (int) blockEntity.getMaxPower(), mouseX, mouseY, 0, layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
}
}

View file

@ -55,7 +55,7 @@ public class GuiThermalGenerator extends GuiBase {
builder.drawProgressBar(this, blockEntity.getProgressScaled(10), 100, 83, 48, mouseX, mouseY, GuiBuilder.ProgressDirection.RIGHT, layer);
builder.drawMultiEnergyBar(this, 130, 28, (int) blockEntity.getEnergy(), (int) blockEntity.getMaxPower(), mouseX, mouseY, 0, layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluid(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
builder.drawTank(this, 44, 25, mouseX, mouseY, blockEntity.tank.getFluidInstance(), blockEntity.tank.getCapacity(), blockEntity.tank.isEmpty(), layer);
}
}

View file

@ -1,5 +1,6 @@
package techreborn.client.render;
import io.github.prospector.silk.fluid.FluidInstance;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
import net.fabricmc.fabric.api.renderer.v1.Renderer;
@ -20,6 +21,7 @@ import net.minecraft.client.render.model.json.ModelTransformation;
import net.minecraft.client.texture.Sprite;
import net.minecraft.entity.LivingEntity;
import net.minecraft.fluid.Fluid;
import net.minecraft.fluid.Fluids;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
@ -27,6 +29,7 @@ import net.minecraft.util.math.Direction;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.ExtendedBlockView;
import net.minecraft.world.World;
import reborncore.common.fluid.container.GenericFluidContainer;
import javax.annotation.Nullable;
import java.util.Collections;
@ -34,11 +37,11 @@ import java.util.List;
import java.util.Random;
import java.util.function.Supplier;
public class DyamicCellBakedModel implements BakedModel, FabricBakedModel {
public class DynamicCellBakedModel implements BakedModel, FabricBakedModel {
Sprite base;
public DyamicCellBakedModel() {
public DynamicCellBakedModel() {
base = MinecraftClient.getInstance().getSpriteAtlas().getSprite(new Identifier("techreborn:item/cell_base"));
}
@ -49,12 +52,14 @@ public class DyamicCellBakedModel implements BakedModel, FabricBakedModel {
@Override
public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) {
Fluid fluid = null;
if(stack.hasTag() && stack.getTag().containsKey("fluid")){
fluid = Registry.FLUID.get(new Identifier(stack.getTag().getString("fluid")));
GenericFluidContainer<ItemStack> fluidContainer = GenericFluidContainer.fromStack(stack);
Fluid fluid = Fluids.EMPTY;
if(fluidContainer != null){
FluidInstance fluidInstance = fluidContainer.getFluidInstance(stack);
if(!fluidInstance.isEmpty()){
fluid = fluidContainer.getFluidInstance(stack).getFluid();
}
}
context.meshConsumer().accept(getMesh(fluid));
}
@ -77,7 +82,7 @@ public class DyamicCellBakedModel implements BakedModel, FabricBakedModel {
.spriteColor(0, -1, -1, -1, -1)
.spriteBake(0, base, MutableQuadView.BAKE_LOCK_UV).emit();
if(fluid != null){
if(fluid != Fluids.EMPTY){
FluidRenderHandler fluidRenderHandler = FluidRenderHandlerRegistry.INSTANCE.get(fluid);
if(fluidRenderHandler != null){
Sprite fluidSprite = fluidRenderHandler.getFluidSprites(MinecraftClient.getInstance().world, BlockPos.ORIGIN, fluid.getDefaultState())[0];
@ -129,7 +134,7 @@ public class DyamicCellBakedModel implements BakedModel, FabricBakedModel {
@Override
public BakedModel apply(BakedModel bakedModel, ItemStack itemStack, World world, LivingEntity livingEntity) {
return DyamicCellBakedModel.this;
return DynamicCellBakedModel.this;
}
}