Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package me.duquee.createutilities.blocks.voidtypes.tank;

//a way fuck the bug
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.simibubi.create.foundation.fluid.FluidRenderer;
import me.duquee.createutilities.blocks.voidtypes.VoidTileRenderer;
import net.minecraft.client.model.SkullModel;
Expand All @@ -12,31 +12,53 @@
import net.minecraft.core.Direction;
import net.minecraftforge.fluids.capability.templates.FluidTank;

public class VoidTankRenderer extends SafeBlockEntityRenderer<VoidTankTileEntity> implements VoidTileRenderer<VoidTankTileEntity> {
public class VoidTankRenderer
extends SmartBlockEntityRenderer<VoidTankTileEntity>
implements VoidTileRenderer<VoidTankTileEntity> {

private final SkullModelBase skullModelBase;

public VoidTankRenderer(BlockEntityRendererProvider.Context context) {
super(context);
skullModelBase = new SkullModel(context.getModelSet().bakeLayer(ModelLayers.PLAYER_HEAD));
}

@Override
protected void renderSafe(VoidTankTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) {
protected void renderSafe(VoidTankTileEntity te, float partialTicks,
PoseStack ms, MultiBufferSource buffer,
int light, int overlay) {
super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
renderVoid(te, partialTicks, ms, buffer, light, overlay);

FluidTank tank = te.getFluidStorage();
if (!te.isClosed() && !tank.isEmpty()) {
FluidRenderer.renderFluidBox(
tank.getFluid().getFluid(), tank.getFluidAmount(),
.125F, .25F, .125F, .875F, .25F + 0.5F * tank.getFluidAmount()/tank.getCapacity(), .875F,
buffer, ms, light, false, true, tank.getFluid().getTag()
float capacity = tank.getCapacity();
float amount = tank.getFluidAmount();
float progress = amount / capacity;
float radius = 0.375f;
for (Direction dir : Direction.Plane.HORIZONTAL) {
FluidRenderer.renderFluidStream(
tank.getFluid(),
dir,
radius,
progress,
false,
buffer,
ms,
light
);
}

FluidRenderer.renderFluidStream(
tank.getFluid(),
Direction.UP,
radius,
progress,
false,
buffer,
ms,
light
);
}
/*FluidRenderer.renderFluidBox(
tank.getFluid(),
.125F, .25F, .125F, .875F, .25F + 0.5F * tank.getFluidAmount()/tank.getCapacity(), .875F,
buffer, ms, light, false, false
);*/
}

@Override
Expand All @@ -51,11 +73,11 @@ public boolean shouldRenderFrame(VoidTankTileEntity te, Direction direction) {

@Override
public float getFrameWidth() {
return .75F;
return 0.75f;
}

@Override
public float getFrameOffset(Direction direction) {
return direction.getAxis() == Direction.Axis.Y ? .251F : .124F;
return direction.getAxis() == Direction.Axis.Y ? 0.251f : 0.124f;
}
}