diff --git a/src/main/java/com/glodblock/github/client/render/RenderBlockFluidInterface.java b/src/main/java/com/glodblock/github/client/render/RenderBlockFluidInterface.java index 659ec492e..5964283cd 100644 --- a/src/main/java/com/glodblock/github/client/render/RenderBlockFluidInterface.java +++ b/src/main/java/com/glodblock/github/client/render/RenderBlockFluidInterface.java @@ -9,6 +9,7 @@ import com.glodblock.github.common.block.BlockFluidInterface; import com.glodblock.github.common.tile.TileFluidInterface; +import appeng.api.util.AEColor; import appeng.client.render.BaseBlockRender; import appeng.client.render.BlockRenderInfo; import appeng.tile.misc.TileInterface; @@ -25,15 +26,18 @@ public boolean renderInWorld(final BlockFluidInterface block, final IBlockAccess final TileInterface ti = block.getTileEntity(world, x, y, z); final BlockRenderInfo info = block.getRendererInstance(); - if (ti != null && ti.getForward() != ForgeDirection.UNKNOWN) { - final IIcon side = FCPartsTexture.BlockFluidInterfaceAlternate_Arrow.getIcon(); - info.setTemporaryRenderIcons( - FCPartsTexture.BlockInterfaceAlternate.getIcon(), - block.getIcon(0, 0), - side, - side, - side, - side); + if (ti != null) { + final AEColor color = ti.getProxy().getColor(); + if (ti.getForward() != ForgeDirection.UNKNOWN) { + final IIcon face = color == AEColor.Transparent ? block.getIcon(0, 0) + : block.getColoredTexture(0, color); + final IIcon alternate = color == AEColor.Transparent ? FCPartsTexture.BlockInterfaceAlternate.getIcon() + : block.getColoredTexture(1, color); + final IIcon side = color == AEColor.Transparent + ? FCPartsTexture.BlockFluidInterfaceAlternate_Arrow.getIcon() + : block.getColoredTexture(2, color); + info.setTemporaryRenderIcons(alternate, face, side, side, side, side); + } } final boolean fz = super.renderInWorld(block, world, x, y, z, renderer); diff --git a/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java b/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java index fe42c102c..5a5086ec9 100644 --- a/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java +++ b/src/main/java/com/glodblock/github/common/block/BlockFluidInterface.java @@ -4,7 +4,10 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -13,6 +16,7 @@ import com.glodblock.github.common.tile.TileFluidInterface; import com.glodblock.github.util.NameConst; +import appeng.api.util.AEColor; import appeng.api.util.IOrientable; import appeng.block.AEBaseItemBlock; import appeng.core.features.AEFeature; @@ -25,6 +29,12 @@ public class BlockFluidInterface extends FCBaseBlock { + private static final String[] COLORED_TEXTURES = { "fluid_interface", "fluid_interface_a", + "fluid_interface_arrow" }; + + @SideOnly(Side.CLIENT) + private IIcon[][] coloredTextures; + public BlockFluidInterface() { super(Material.iron, NameConst.BLOCK_FLUID_INTERFACE); setFullBlock(true); @@ -39,6 +49,38 @@ protected RenderBlockFluidInterface getRenderer() { return new RenderBlockFluidInterface(); } + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(final IIconRegister iconRegistry) { + super.registerBlockIcons(iconRegistry); + this.coloredTextures = new IIcon[COLORED_TEXTURES.length][AEColor.VALUES.length]; + + for (final AEColor color : AEColor.VALID_COLORS) { + for (int id = 0; id < COLORED_TEXTURES.length; id++) { + this.coloredTextures[id][color.ordinal()] = iconRegistry + .registerIcon("ae2fc:interface/" + COLORED_TEXTURES[id] + "_" + color.name()); + } + } + } + + @SideOnly(Side.CLIENT) + public IIcon getColoredTexture(final int id, final AEColor color) { + return this.coloredTextures[id][color.ordinal()]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(final IBlockAccess world, final int x, final int y, final int z, final int side) { + final TileInterface tile = this.getTileEntity(world, x, y, z); + if (tile != null && tile.getForward() == ForgeDirection.UNKNOWN) { + final AEColor color = tile.getProxy().getColor(); + if (color != AEColor.Transparent) { + return this.getColoredTexture(0, color); + } + } + return super.getIcon(world, x, y, z, side); + } + @Override public boolean onActivated(final World world, final int x, final int y, final int z, final EntityPlayer player, final int facing, final float hitX, final float hitY, final float hitZ) { diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Black.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Black.png new file mode 100644 index 000000000..3322abdb4 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Black.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Blue.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Blue.png new file mode 100644 index 000000000..ded5e5726 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Blue.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Brown.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Brown.png new file mode 100644 index 000000000..3c289a112 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Brown.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Cyan.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Cyan.png new file mode 100644 index 000000000..ab02ffe32 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Cyan.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Gray.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Gray.png new file mode 100644 index 000000000..2e5e45d79 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Gray.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Green.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Green.png new file mode 100644 index 000000000..9fdc6e901 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Green.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_LightBlue.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_LightBlue.png new file mode 100644 index 000000000..77ead97ec Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_LightBlue.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_LightGray.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_LightGray.png new file mode 100644 index 000000000..900dbb1b9 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_LightGray.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Lime.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Lime.png new file mode 100644 index 000000000..666de1e47 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Lime.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Magenta.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Magenta.png new file mode 100644 index 000000000..cb90e7565 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Magenta.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Orange.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Orange.png new file mode 100644 index 000000000..c2b2186e2 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Orange.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Pink.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Pink.png new file mode 100644 index 000000000..e0a8b2219 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Pink.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Purple.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Purple.png new file mode 100644 index 000000000..7368d0571 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Purple.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Red.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Red.png new file mode 100644 index 000000000..084747e40 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Red.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_White.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_White.png new file mode 100644 index 000000000..926e8e2e2 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_White.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Yellow.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Yellow.png new file mode 100644 index 000000000..0c276c388 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_Yellow.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Black.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Black.png new file mode 100644 index 000000000..938ef0fa6 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Black.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Blue.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Blue.png new file mode 100644 index 000000000..48e4efa2d Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Blue.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Brown.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Brown.png new file mode 100644 index 000000000..9c98ec976 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Brown.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Cyan.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Cyan.png new file mode 100644 index 000000000..aee0393f1 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Cyan.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Gray.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Gray.png new file mode 100644 index 000000000..7e22125e7 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Gray.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Green.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Green.png new file mode 100644 index 000000000..37ef18505 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Green.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_LightBlue.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_LightBlue.png new file mode 100644 index 000000000..87ea938b4 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_LightBlue.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_LightGray.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_LightGray.png new file mode 100644 index 000000000..f56366c75 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_LightGray.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Lime.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Lime.png new file mode 100644 index 000000000..55552375f Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Lime.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Magenta.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Magenta.png new file mode 100644 index 000000000..2a70e03cf Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Magenta.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Orange.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Orange.png new file mode 100644 index 000000000..fc9953dd7 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Orange.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Pink.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Pink.png new file mode 100644 index 000000000..3636aa49a Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Pink.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Purple.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Purple.png new file mode 100644 index 000000000..12f845543 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Purple.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Red.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Red.png new file mode 100644 index 000000000..d190aac83 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Red.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_White.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_White.png new file mode 100644 index 000000000..def53aa58 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_White.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Yellow.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Yellow.png new file mode 100644 index 000000000..79bb5b37d Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_a_Yellow.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Black.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Black.png new file mode 100644 index 000000000..ddb35d3e6 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Black.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Blue.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Blue.png new file mode 100644 index 000000000..7ecc3d83a Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Blue.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Brown.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Brown.png new file mode 100644 index 000000000..dd9046023 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Brown.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Cyan.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Cyan.png new file mode 100644 index 000000000..e73cb7ba9 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Cyan.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Gray.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Gray.png new file mode 100644 index 000000000..8aa2c551d Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Gray.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Green.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Green.png new file mode 100644 index 000000000..f731c667a Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Green.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_LightBlue.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_LightBlue.png new file mode 100644 index 000000000..a04fb28cc Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_LightBlue.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_LightGray.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_LightGray.png new file mode 100644 index 000000000..382e5b6e7 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_LightGray.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Lime.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Lime.png new file mode 100644 index 000000000..eefe0ea16 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Lime.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Magenta.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Magenta.png new file mode 100644 index 000000000..466350b6d Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Magenta.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Orange.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Orange.png new file mode 100644 index 000000000..ab12d3d08 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Orange.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Pink.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Pink.png new file mode 100644 index 000000000..8a3b1bdb0 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Pink.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Purple.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Purple.png new file mode 100644 index 000000000..55e659f96 Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Purple.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Red.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Red.png new file mode 100644 index 000000000..6b1a04f1e Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Red.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_White.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_White.png new file mode 100644 index 000000000..73157406f Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_White.png differ diff --git a/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Yellow.png b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Yellow.png new file mode 100644 index 000000000..3a64cb8df Binary files /dev/null and b/src/main/resources/assets/ae2fc/textures/blocks/interface/fluid_interface_arrow_Yellow.png differ