diff --git a/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java b/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java index 4ae361dc..a65f37d3 100644 --- a/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java +++ b/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java @@ -78,6 +78,7 @@ public class TileFirebox extends TileExternalInventory implements IPacketSender, if (heatEnergy >= requiredMeltIronEnergy) { TileEntity dustTile = worldObj.getBlockTileEntity(xCoord, yCoord + 1, zCoord); + if (dustTile instanceof TileMaterial) { String name = ((TileMaterial) dustTile).name; diff --git a/src/main/java/resonantinduction/core/resource/BlockDust.java b/src/main/java/resonantinduction/core/resource/BlockDust.java index 7460c625..91a1622b 100644 --- a/src/main/java/resonantinduction/core/resource/BlockDust.java +++ b/src/main/java/resonantinduction/core/resource/BlockDust.java @@ -47,6 +47,7 @@ public class BlockDust extends BlockRI } } + @SideOnly(Side.CLIENT) @Override public int colorMultiplier(IBlockAccess access, int x, int y, int z) { @@ -54,10 +55,7 @@ public class BlockDust extends BlockRI if (tileEntity instanceof TileMaterial) { - if (((TileMaterial) tileEntity).name != null) - { - return ResourceGenerator.materialColors.get(((TileMaterial) tileEntity).name); - } + return ((TileMaterial) tileEntity).clientColor; } return 16777215; @@ -128,52 +126,6 @@ public class BlockDust extends BlockRI this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, f, 1.0F); } - /** - * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, - * z - */ - public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) - { - return true; - } - - /** - * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed - * (coordinates passed are - * their own) Args: x, y, z, neighbor blockID - */ - public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) - { - this.canSnowStay(par1World, par2, par3, par4); - } - - /** - * Checks if this snow block can stay at this location. - */ - private boolean canSnowStay(World par1World, int par2, int par3, int par4) - { - if (!this.canPlaceBlockAt(par1World, par2, par3, par4)) - { - par1World.setBlockToAir(par2, par3, par4); - return false; - } - else - { - return true; - } - } - - /** - * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the - * coordinates of the - * block and l is the block's subtype/damage. - */ - public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) - { - super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); - par1World.setBlockToAir(par3, par4, par5); - } - /** * Returns the ID of the items to drop on destruction. */ diff --git a/src/main/java/resonantinduction/core/resource/TileMaterial.java b/src/main/java/resonantinduction/core/resource/TileMaterial.java index 3c2d06b7..dbbda0e3 100644 --- a/src/main/java/resonantinduction/core/resource/TileMaterial.java +++ b/src/main/java/resonantinduction/core/resource/TileMaterial.java @@ -1,6 +1,16 @@ package resonantinduction.core.resource; +import resonantinduction.core.ResonantInduction; + +import com.google.common.io.ByteArrayDataInput; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.packet.Packet; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import calclavia.lib.network.IPacketReceiver; import calclavia.lib.prefab.tile.TileAdvanced; /** @@ -9,9 +19,10 @@ import calclavia.lib.prefab.tile.TileAdvanced; * @author Calclavia * */ -public class TileMaterial extends TileAdvanced +public class TileMaterial extends TileAdvanced implements IPacketReceiver { public String name; + public int clientColor; @Override public boolean canUpdate() @@ -19,6 +30,24 @@ public class TileMaterial extends TileAdvanced return false; } + @Override + public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra) + { + clientColor = data.readInt(); + worldObj.markBlockForRenderUpdate(xCoord, yCoord, zCoord); + } + + @Override + public Packet getDescriptionPacket() + { + if (name != null) + { + return ResonantInduction.PACKET_TILE.getPacket(this, ResourceGenerator.materialColors.get(name)); + } + + return null; + } + @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMaterial.java b/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMaterial.java index bd8ea3e1..1b5fa426 100644 --- a/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMaterial.java +++ b/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMaterial.java @@ -30,7 +30,7 @@ public class BlockFluidMaterial extends BlockFluidFinite implements ITileEntityP public BlockFluidMaterial() { super(Settings.CONFIGURATION.get(Configuration.CATEGORY_BLOCK, "fluidMaterial", Settings.getNextBlockID()).getInt(), ResonantInduction.fluidMaterial, Material.lava); - setTextureName("lava_flow"); + setTextureName(Reference.PREFIX + "molten_flow"); this.setUnlocalizedName(Reference.PREFIX + "fluidMaterial"); } @@ -56,13 +56,10 @@ public class BlockFluidMaterial extends BlockFluidFinite implements ITileEntityP public int colorMultiplier(IBlockAccess access, int x, int y, int z) { TileEntity tileEntity = access.getBlockTileEntity(x, y, z); - + if (tileEntity instanceof TileMaterial) { - if (((TileMaterial) tileEntity).name != null) - { - return ResourceGenerator.materialColors.get(((TileMaterial) tileEntity).name); - } + return ((TileMaterial) tileEntity).clientColor; } return 16777215; diff --git a/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMixture.java b/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMixture.java index 1188ff3b..dc5f390b 100644 --- a/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMixture.java +++ b/src/main/java/resonantinduction/core/resource/fluid/BlockFluidMixture.java @@ -27,7 +27,7 @@ public class BlockFluidMixture extends BlockFluidFinite implements ITileEntityPr public BlockFluidMixture() { super(Settings.CONFIGURATION.get(Configuration.CATEGORY_BLOCK, "fluidMixture", Settings.getNextBlockID()).getInt(), ResonantInduction.fluidMixture, Material.water); - setTextureName("water_flow"); + setTextureName(Reference.PREFIX + "mixture_flow"); this.setUnlocalizedName(Reference.PREFIX + "fluidMixture"); } diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/mixture_flow.png b/src/main/resources/assets/resonantinduction/textures/blocks/mixture_flow.png new file mode 100644 index 00000000..fa039cd1 Binary files /dev/null and b/src/main/resources/assets/resonantinduction/textures/blocks/mixture_flow.png differ diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/mixture_flow.png.mcmeta b/src/main/resources/assets/resonantinduction/textures/blocks/mixture_flow.png.mcmeta new file mode 100644 index 00000000..4f0718ac --- /dev/null +++ b/src/main/resources/assets/resonantinduction/textures/blocks/mixture_flow.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": {} +} \ No newline at end of file diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/molten_flow.png b/src/main/resources/assets/resonantinduction/textures/blocks/molten_flow.png new file mode 100644 index 00000000..377cabcf Binary files /dev/null and b/src/main/resources/assets/resonantinduction/textures/blocks/molten_flow.png differ diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/molten_flow.png.mcmeta b/src/main/resources/assets/resonantinduction/textures/blocks/molten_flow.png.mcmeta new file mode 100644 index 00000000..8e55e43b --- /dev/null +++ b/src/main/resources/assets/resonantinduction/textures/blocks/molten_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +}