diff --git a/src/main/java/resonantinduction/Utility.java b/src/main/java/resonantinduction/Utility.java index cbd40288..5e143ee0 100644 --- a/src/main/java/resonantinduction/Utility.java +++ b/src/main/java/resonantinduction/Utility.java @@ -1,10 +1,12 @@ package resonantinduction; import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.oredict.OreDictionary; import codechicken.lib.vec.BlockCoord; import codechicken.multipart.TileMultipart; @@ -33,4 +35,36 @@ public class Utility return true; return b.isBlockSolidOnSide(w, x, y, z, side); } + + public static int isDye(ItemStack is) + { + String[] dyes = + { + "dyeBlack", + "dyeRed", + "dyeGreen", + "dyeBrown", + "dyeBlue", + "dyePurple", + "dyeCyan", + "dyeLightGray", + "dyeGray", + "dyePink", + "dyeLime", + "dyeYellow", + "dyeLightBlue", + "dyeMagenta", + "dyeOrange", + "dyeWhite" + }; + + for (int i = 0; i < dyes.length; i++) + { + if (OreDictionary.getOreID(is) != -1 && OreDictionary.getOreName(OreDictionary.getOreID(is)).equals(dyes[i])) + return i; + } + + return -1; + } + } diff --git a/src/main/java/resonantinduction/battery/TileBattery.java b/src/main/java/resonantinduction/battery/TileBattery.java index 9f1761e2..a123c9b6 100644 --- a/src/main/java/resonantinduction/battery/TileBattery.java +++ b/src/main/java/resonantinduction/battery/TileBattery.java @@ -117,7 +117,7 @@ public class TileBattery extends TileAdvanced implements IPacketSender, IPacketR } @Override - public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player) + public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra) { structure.isMultiblock = data.readBoolean(); diff --git a/src/main/java/resonantinduction/furnace/TileAdvancedFurnace.java b/src/main/java/resonantinduction/furnace/TileAdvancedFurnace.java index e51f695e..c3cd26e2 100644 --- a/src/main/java/resonantinduction/furnace/TileAdvancedFurnace.java +++ b/src/main/java/resonantinduction/furnace/TileAdvancedFurnace.java @@ -240,7 +240,7 @@ public class TileAdvancedFurnace extends TileEntityFurnace implements IEnergyInt } @Override - public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player) + public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra) { try { diff --git a/src/main/java/resonantinduction/levitator/TileEMLevitator.java b/src/main/java/resonantinduction/levitator/TileEMLevitator.java index 4bf915e2..9dc2eaa6 100644 --- a/src/main/java/resonantinduction/levitator/TileEMLevitator.java +++ b/src/main/java/resonantinduction/levitator/TileEMLevitator.java @@ -504,7 +504,7 @@ public class TileEMLevitator extends TileAdvanced implements IPacketReceiver, IP } @Override - public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player) + public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra) { suck = data.readBoolean(); dyeID = data.readInt(); diff --git a/src/main/java/resonantinduction/tesla/TileTesla.java b/src/main/java/resonantinduction/tesla/TileTesla.java index 2454c06f..bea0f535 100644 --- a/src/main/java/resonantinduction/tesla/TileTesla.java +++ b/src/main/java/resonantinduction/tesla/TileTesla.java @@ -325,7 +325,7 @@ public class TileTesla extends TileElectrical implements ITesla, IPacketSender, } @Override - public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player) + public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra) { try { diff --git a/src/main/java/resonantinduction/wire/part/PartAdvancedWire.java b/src/main/java/resonantinduction/wire/part/PartAdvancedWire.java index 646c7ab2..c7106da6 100644 --- a/src/main/java/resonantinduction/wire/part/PartAdvancedWire.java +++ b/src/main/java/resonantinduction/wire/part/PartAdvancedWire.java @@ -13,6 +13,7 @@ import net.minecraft.item.ItemShears; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; +import resonantinduction.Utility; import resonantinduction.wire.EnumWireMaterial; import universalelectricity.api.CompatibilityModule; import universalelectricity.api.UniversalElectricity; @@ -179,16 +180,23 @@ public abstract class PartAdvancedWire extends PartConductor { if (itemStack != null) { - if (itemStack.itemID == Item.dyePowder.itemID && this.isInsulated()) + int dyeColor = Utility.isDye(itemStack); + + if (dyeColor != -1 && this.isInsulated()) { - this.setColor(itemStack.getItemDamage()); + if (!player.capabilities.isCreativeMode) + { + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + + this.setColor(dyeColor); return true; } else if (itemStack.itemID == Block.cloth.blockID) { if (this.isInsulated()) { - if (!world().isRemote) + if (!world().isRemote && player.capabilities.isCreativeMode) { tile().dropItems(Collections.singletonList(new ItemStack(Block.cloth, 1, BlockColored.getBlockFromDye(color)))); } @@ -198,12 +206,16 @@ public abstract class PartAdvancedWire extends PartConductor } else { - this.setInsulated(BlockColored.getDyeFromBlock(itemStack.getItemDamage())); - player.inventory.decrStackSize(player.inventory.currentItem, 1); + if (!player.capabilities.isCreativeMode) + { + player.inventory.decrStackSize(player.inventory.currentItem, 1); + } + + this.setInsulated(BlockColored.getDyeFromBlock(itemStack.getItemDamage())); return true; } } - else if ((itemStack.itemID == Item.shears.itemID || itemStack.getItem() instanceof ItemShears) && isInsulated()) + else if (itemStack.getItem() instanceof ItemShears && isInsulated()) { if (!world().isRemote) {