diff --git a/src/main/java/resonantinduction/mechanical/fluid/pipe/ModelOpenTrough.java b/src/main/java/resonantinduction/mechanical/fluid/pipe/ModelOpenTrough.java index 74b2727c..de78b0b0 100644 --- a/src/main/java/resonantinduction/mechanical/fluid/pipe/ModelOpenTrough.java +++ b/src/main/java/resonantinduction/mechanical/fluid/pipe/ModelOpenTrough.java @@ -6,10 +6,10 @@ package resonantinduction.mechanical.fluid.pipe; +import calclavia.lib.render.RenderUtility; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraftforge.common.ForgeDirection; -import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork; public class ModelOpenTrough extends ModelBase { @@ -283,11 +283,11 @@ public class ModelOpenTrough extends ModelBase public void render(byte side, boolean stone) { - renderMiddle(TileFluidNetwork.canRenderSide(side, ForgeDirection.DOWN), stone); - renderBack(TileFluidNetwork.canRenderSide(side, ForgeDirection.NORTH) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); - renderFront(TileFluidNetwork.canRenderSide(side, ForgeDirection.SOUTH) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); - renderRight(TileFluidNetwork.canRenderSide(side, ForgeDirection.WEST) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); - renderLeft(TileFluidNetwork.canRenderSide(side, ForgeDirection.EAST) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); + renderMiddle(RenderUtility.canRenderSide(side, ForgeDirection.DOWN), stone); + renderBack(RenderUtility.canRenderSide(side, ForgeDirection.NORTH) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); + renderFront(RenderUtility.canRenderSide(side, ForgeDirection.SOUTH) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); + renderRight(RenderUtility.canRenderSide(side, ForgeDirection.WEST) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); + renderLeft(RenderUtility.canRenderSide(side, ForgeDirection.EAST) ? PipeType.NORMAL : stone ? PipeType.SOLID : PipeType.MID_CAP); } public void renderMiddle(boolean bottom, boolean corners) diff --git a/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java b/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java index 058b1bec..62882eca 100644 --- a/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java +++ b/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java @@ -7,8 +7,8 @@ import net.minecraftforge.common.ForgeDirection; import org.lwjgl.opengl.GL11; +import calclavia.lib.render.RenderUtility; import resonantinduction.core.Reference; -import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -50,27 +50,27 @@ public class RenderPipe public static void render(EnumPipeMaterial mat, byte side) { - if (TileFluidNetwork.canRenderSide(side, ForgeDirection.DOWN)) + if (RenderUtility.canRenderSide(side, ForgeDirection.DOWN)) { MODEL_PIPE.renderBottom(); } - if (TileFluidNetwork.canRenderSide(side, ForgeDirection.UP)) + if (RenderUtility.canRenderSide(side, ForgeDirection.UP)) { MODEL_PIPE.renderTop(); } - if (TileFluidNetwork.canRenderSide(side, ForgeDirection.NORTH)) + if (RenderUtility.canRenderSide(side, ForgeDirection.NORTH)) { MODEL_PIPE.renderBack(); } - if (TileFluidNetwork.canRenderSide(side, ForgeDirection.SOUTH)) + if (RenderUtility.canRenderSide(side, ForgeDirection.SOUTH)) { MODEL_PIPE.renderFront(); } - if (TileFluidNetwork.canRenderSide(side, ForgeDirection.WEST)) + if (RenderUtility.canRenderSide(side, ForgeDirection.WEST)) { MODEL_PIPE.renderLeft(); } - if (TileFluidNetwork.canRenderSide(side, ForgeDirection.EAST)) + if (RenderUtility.canRenderSide(side, ForgeDirection.EAST)) { MODEL_PIPE.renderRight(); } diff --git a/src/main/java/resonantinduction/mechanical/fluid/prefab/TileFluidNetwork.java b/src/main/java/resonantinduction/mechanical/fluid/prefab/TileFluidNetwork.java index 85bd0e03..6045e735 100644 --- a/src/main/java/resonantinduction/mechanical/fluid/prefab/TileFluidNetwork.java +++ b/src/main/java/resonantinduction/mechanical/fluid/prefab/TileFluidNetwork.java @@ -284,11 +284,6 @@ public abstract class TileFluidNetwork extends TileAdvanced implements IFluidCon this.colorID = id; } - public static boolean canRenderSide(byte renderSides, ForgeDirection direction) - { - return (renderSides & (1 << direction.ordinal())) != 0; - } - @Override public boolean canConnect(ForgeDirection direction) { diff --git a/src/main/java/resonantinduction/mechanical/fluid/tank/BlockTank.java b/src/main/java/resonantinduction/mechanical/fluid/tank/BlockTank.java index 54450902..dded4353 100644 --- a/src/main/java/resonantinduction/mechanical/fluid/tank/BlockTank.java +++ b/src/main/java/resonantinduction/mechanical/fluid/tank/BlockTank.java @@ -3,6 +3,9 @@ package resonantinduction.mechanical.fluid.tank; import java.util.ArrayList; import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -10,12 +13,16 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import resonantinduction.archaic.Archaic; import resonantinduction.core.render.RIBlockRenderingHandler; +import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.fluid.pipe.EnumPipeMaterial; import resonantinduction.mechanical.fluid.pipe.ItemBlockFluidContainer; import resonantinduction.mechanical.fluid.prefab.BlockFluidNetwork; import universalelectricity.api.UniversalElectricity; import universalelectricity.api.vector.Vector3; +import calclavia.lib.render.RenderUtility; +import calclavia.lib.render.block.ICustomBlockRenderer; import calclavia.lib.utility.FluidUtility; import calclavia.lib.utility.inventory.InventoryUtility; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/resonantinduction/mechanical/fluid/tank/RenderTank.java b/src/main/java/resonantinduction/mechanical/fluid/tank/RenderTank.java index 2fbcbab1..e2aa64a3 100644 --- a/src/main/java/resonantinduction/mechanical/fluid/tank/RenderTank.java +++ b/src/main/java/resonantinduction/mechanical/fluid/tank/RenderTank.java @@ -11,7 +11,6 @@ import org.lwjgl.opengl.GL11; import resonantinduction.archaic.Archaic; import resonantinduction.core.render.RenderFluidHelper; import resonantinduction.mechanical.Mechanical; -import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork; import calclavia.lib.render.RenderUtility; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -34,139 +33,9 @@ public class RenderTank extends TileEntitySpecialRenderer { byte renderSides = ((TileTank) tileEntity).renderSides; - boolean down = TileFluidNetwork.canRenderSide(renderSides, ForgeDirection.DOWN); - boolean up = TileFluidNetwork.canRenderSide(renderSides, ForgeDirection.UP); - boolean north = TileFluidNetwork.canRenderSide(renderSides, ForgeDirection.NORTH); - boolean south = TileFluidNetwork.canRenderSide(renderSides, ForgeDirection.SOUTH); - boolean east = TileFluidNetwork.canRenderSide(renderSides, ForgeDirection.EAST); - boolean west = TileFluidNetwork.canRenderSide(renderSides, ForgeDirection.WEST); - - bindTexture(TextureMap.locationBlocksTexture); GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); - - /** - * Render faces - */ - for (int i = 0; i < 6; i++) - { - ForgeDirection dir = ForgeDirection.getOrientation(i); - - if (!TileFluidNetwork.canRenderSide(renderSides, dir)) - { - GL11.glPushMatrix(); - GL11.glScalef(0.99f, 0.99f, 0.99f); - - switch (i) - { - case 0: - GL11.glRotatef(0, 0, 0, 1); - break; - case 1: - GL11.glRotatef(180, 0, 0, 1); - break; - case 2: - GL11.glRotatef(90, 1, 0, 0); - break; - case 3: - GL11.glRotatef(-90, 1, 0, 0); - break; - case 4: - GL11.glRotatef(-90, 0, 0, 1); - break; - case 5: - GL11.glRotatef(90, 0, 0, 1); - break; - } - - RenderUtility.renderCube(-0.501, -0.501, -0.501, 0.501, -0.475, 0.501, Mechanical.blockTank); - GL11.glPopMatrix(); - } - } - - /** - * Render edges - */ - GL11.glPushMatrix(); - - if (!east) - { - if (!north) - { - // north east - RenderUtility.renderCube(0.475, -0.501, -0.501, 0.501, 0.501, -0.475, Archaic.blockMachinePart); - } - if (!south) - { - // south east - RenderUtility.renderCube(0.475, -0.501, 0.475, 0.501, 0.501, 0.501, Archaic.blockMachinePart); - } - - if (!down) - { - // bottom east - RenderUtility.renderCube(0.475, -0.501, -0.501, 0.501, -0.475, 0.501, Archaic.blockMachinePart); - } - - if (!up) - { - // top east - RenderUtility.renderCube(0.475, 0.475, -0.501, 0.501, 0.501, 0.501, Archaic.blockMachinePart); - } - } - - if (!west) - { - if (!north) - { - // north west - RenderUtility.renderCube(-0.501, -0.501, -0.501, -0.475, 0.501, -0.475, Archaic.blockMachinePart); - } - if (!south) - { - // south west - RenderUtility.renderCube(-0.501, -0.501, 0.475, -0.475, 0.501, 0.501, Archaic.blockMachinePart); - } - if (!down) - { - // bottom west - RenderUtility.renderCube(-0.501, -0.501, -0.501, -0.475, -0.475, 0.501, Archaic.blockMachinePart); - } - if (!up) - { - // top west - RenderUtility.renderCube(-0.501, 0.475, -0.501, -0.475, 0.501, 0.501, Archaic.blockMachinePart); - } - } - if (!north) - { - if (!up) - { - // top north - RenderUtility.renderCube(-0.501, 0.475, -0.501, 0.501, 0.501, -0.475, Archaic.blockMachinePart); - } - if (!down) - { - // bottom north - RenderUtility.renderCube(-0.501, -0.501, -0.501, 0.501, -0.475, -0.475, Archaic.blockMachinePart); - } - } - - if (!south) - { - if (!up) - { - // top south - RenderUtility.renderCube(-0.501, 0.475, 0.475, 0.501, 0.501, 0.501, Archaic.blockMachinePart); - } - if (!down) - { - // bottom south - RenderUtility.renderCube(-0.501, -0.501, 0.475, 0.501, -0.475, 0.501, Archaic.blockMachinePart); - } - } - - GL11.glPopMatrix(); + RenderUtility.renderBlockWithConnectedTextures(renderSides, Mechanical.blockTank, null, Archaic.blockMachinePart, null); GL11.glPopMatrix(); if (fluid != null && fluid.amount > 100)