Update to new Calclavia-Core, respect creative-mode players for insulating, and use ore dict for dying, no painters yet...

This commit is contained in:
Alex_hawks 2013-12-28 18:27:52 +08:00
parent 77d73c5f2f
commit 3f4c3cb255
6 changed files with 56 additions and 10 deletions

View file

@ -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;
}
}

View file

@ -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();

View file

@ -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
{

View file

@ -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();

View file

@ -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
{

View file

@ -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)
{