diff --git a/api/buildcraft/api/statements/StatementManager.java b/api/buildcraft/api/statements/StatementManager.java index 8acf5015..5718dc3b 100644 --- a/api/buildcraft/api/statements/StatementManager.java +++ b/api/buildcraft/api/statements/StatementManager.java @@ -14,10 +14,10 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraftforge.common.util.ForgeDirection; public final class StatementManager { @@ -174,7 +174,6 @@ public final class StatementManager { } for (Class parameter : parameters.values()) { - System.out.println("registring parameter icons: " + parameter.getCanonicalName()); createParameter(parameter).registerIcons(register); } } diff --git a/api/buildcraft/api/statements/StatementMouseClick.java b/api/buildcraft/api/statements/StatementMouseClick.java index 44953401..d48ade5c 100644 --- a/api/buildcraft/api/statements/StatementMouseClick.java +++ b/api/buildcraft/api/statements/StatementMouseClick.java @@ -1,3 +1,11 @@ +/** + * Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team + * http://www.mod-buildcraft.com + * + * BuildCraft is distributed under the terms of the Minecraft Mod Public + * License 1.0, or MMPL. Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + */ package buildcraft.api.statements; public final class StatementMouseClick { diff --git a/api/buildcraft/api/statements/StatementParameterItemStack.java b/api/buildcraft/api/statements/StatementParameterItemStack.java index 6faa103a..02c796db 100755 --- a/api/buildcraft/api/statements/StatementParameterItemStack.java +++ b/api/buildcraft/api/statements/StatementParameterItemStack.java @@ -12,11 +12,9 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; -import buildcraft.api.core.NetworkData; public class StatementParameterItemStack implements IStatementParameter { - @NetworkData protected ItemStack stack; @Override diff --git a/common/buildcraft/BuildCraftBuilders.java b/common/buildcraft/BuildCraftBuilders.java index f02832c1..9655201c 100644 --- a/common/buildcraft/BuildCraftBuilders.java +++ b/common/buildcraft/BuildCraftBuilders.java @@ -260,12 +260,12 @@ public class BuildCraftBuilders extends BuildCraftMod { try { PrintWriter writer = new PrintWriter("SchematicDebug.txt", "UTF-8"); writer.println("*** REGISTERED SCHEMATICS ***"); - SchematicRegistry reg = ((SchematicRegistry) BuilderAPI.schematicRegistry); + SchematicRegistry reg = (SchematicRegistry) BuilderAPI.schematicRegistry; for (BlockMetaPair p : reg.schematicBlocks.keySet()) { writer.println(p.toString() + " -> " + reg.schematicBlocks.get(p).clazz.getCanonicalName()); } writer.close(); - } catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } } diff --git a/common/buildcraft/BuildCraftMod.java b/common/buildcraft/BuildCraftMod.java index abef0770..7986a4c5 100644 --- a/common/buildcraft/BuildCraftMod.java +++ b/common/buildcraft/BuildCraftMod.java @@ -13,7 +13,6 @@ import java.util.EnumMap; import org.apache.logging.log4j.Level; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.network.Packet; import net.minecraft.world.World; import cpw.mods.fml.common.network.FMLEmbeddedChannel; import cpw.mods.fml.common.network.FMLOutboundHandler; diff --git a/common/buildcraft/BuildCraftTransport.java b/common/buildcraft/BuildCraftTransport.java index b1433624..6e09f019 100644 --- a/common/buildcraft/BuildCraftTransport.java +++ b/common/buildcraft/BuildCraftTransport.java @@ -53,7 +53,6 @@ import buildcraft.core.InterModComms; import buildcraft.core.ItemBuildCraft; import buildcraft.core.PowerMode; import buildcraft.core.Version; -import buildcraft.core.blueprints.SchematicRegistry; import buildcraft.core.network.BuildCraftChannelHandler; import buildcraft.core.proxy.CoreProxy; import buildcraft.silicon.ItemRedstoneChipset.Chipset; @@ -524,7 +523,7 @@ public class BuildCraftTransport extends BuildCraftMod { } } writer.close(); - } catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } } diff --git a/common/buildcraft/builders/BlockBlueprintLibrary.java b/common/buildcraft/builders/BlockBlueprintLibrary.java index 4954a558..9a02f5f3 100644 --- a/common/buildcraft/builders/BlockBlueprintLibrary.java +++ b/common/buildcraft/builders/BlockBlueprintLibrary.java @@ -8,12 +8,9 @@ */ package buildcraft.builders; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; diff --git a/common/buildcraft/builders/HeuristicBlockDetection.java b/common/buildcraft/builders/HeuristicBlockDetection.java index 80a74910..f3ce9bc4 100644 --- a/common/buildcraft/builders/HeuristicBlockDetection.java +++ b/common/buildcraft/builders/HeuristicBlockDetection.java @@ -3,11 +3,6 @@ package buildcraft.builders; import java.util.BitSet; import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -18,13 +13,13 @@ import buildcraft.builders.schematics.SchematicTileCreative; import buildcraft.core.blueprints.SchematicRegistry; public final class HeuristicBlockDetection { + + private static BitSet craftableBlockList = new BitSet(65536); private HeuristicBlockDetection() { } - private static BitSet craftableBlockList = new BitSet(65536); - public static void start() { // Initialize craftableBlockList /* for (Object or : CraftingManager.getInstance().getRecipeList()) { diff --git a/common/buildcraft/core/blueprints/Blueprint.java b/common/buildcraft/core/blueprints/Blueprint.java index ecaf9d6e..b59a2691 100644 --- a/common/buildcraft/core/blueprints/Blueprint.java +++ b/common/buildcraft/core/blueprints/Blueprint.java @@ -12,7 +12,6 @@ import java.util.LinkedList; import net.minecraft.block.Block; import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; diff --git a/common/buildcraft/core/network/PacketNBT.java b/common/buildcraft/core/network/PacketNBT.java index 90c815e8..131d9a8b 100644 --- a/common/buildcraft/core/network/PacketNBT.java +++ b/common/buildcraft/core/network/PacketNBT.java @@ -10,12 +10,14 @@ package buildcraft.core.network; import java.io.IOException; -import buildcraft.api.core.BCLog; import io.netty.buffer.ByteBuf; + import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTSizeTracker; import net.minecraft.nbt.NBTTagCompound; +import buildcraft.api.core.BCLog; + public class PacketNBT extends PacketCoordinates { private NBTTagCompound nbttagcompound; diff --git a/common/buildcraft/core/network/serializers/ClassMapping.java b/common/buildcraft/core/network/serializers/ClassMapping.java index b05ff846..8a7a08e8 100644 --- a/common/buildcraft/core/network/serializers/ClassMapping.java +++ b/common/buildcraft/core/network/serializers/ClassMapping.java @@ -21,16 +21,14 @@ import java.util.Map; import java.util.TreeMap; import io.netty.buffer.ByteBuf; - import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import net.minecraftforge.fluids.FluidStack; - import buildcraft.api.core.JavaTools; import buildcraft.api.core.NetworkData; +import buildcraft.api.statements.IStatementParameter; import buildcraft.core.network.INBTSerializable; import buildcraft.core.network.NetworkIdRegistry; @@ -675,5 +673,6 @@ public class ClassMapping extends ClassSerializer { registerSerializer(Long.class, new SerializerLong()); registerSerializer(BitSet.class, new SerializerBitSet()); registerSerializer(INBTSerializable.class, new SerializerINBTSerializable()); + registerSerializer(IStatementParameter.class, new SerializerIStatementParameter()); } } diff --git a/common/buildcraft/core/network/serializers/SerializerIStatementParameter.java b/common/buildcraft/core/network/serializers/SerializerIStatementParameter.java new file mode 100644 index 00000000..171e71a7 --- /dev/null +++ b/common/buildcraft/core/network/serializers/SerializerIStatementParameter.java @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team + * http://www.mod-buildcraft.com + * + * BuildCraft is distributed under the terms of the Minecraft Mod Public + * License 1.0, or MMPL. Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + */ +package buildcraft.core.network.serializers; + +import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; +import buildcraft.api.statements.IStatementParameter; +import buildcraft.api.statements.StatementManager; +import buildcraft.core.utils.Utils; + +/** + * An NBT-based serializer for IStatementParameters. + */ +public class SerializerIStatementParameter extends ClassSerializer { + + @Override + public void write (ByteBuf data, Object o, SerializationContext context) { + IStatementParameter parameter = (IStatementParameter) o; + + if (parameter == null) { + data.writeBoolean(false); + } else { + NBTTagCompound cpt = new NBTTagCompound(); + parameter.writeToNBT(cpt); + + data.writeBoolean(true); + Utils.writeUTF(data, parameter.getUniqueTag()); + Utils.writeNBT(data, cpt); + } + } + + @Override + public Object read (ByteBuf data, Object o, SerializationContext context) { + if (!data.readBoolean()) { + return null; + } else { + String kind = Utils.readUTF(data); + IStatementParameter parameter = StatementManager.createParameter(kind); + parameter.readFromNBT(Utils.readNBT(data)); + return parameter; + } + } +} diff --git a/common/buildcraft/core/statements/ActionMachineControl.java b/common/buildcraft/core/statements/ActionMachineControl.java index c9f31d3f..e1d9a8d7 100644 --- a/common/buildcraft/core/statements/ActionMachineControl.java +++ b/common/buildcraft/core/statements/ActionMachineControl.java @@ -10,11 +10,11 @@ package buildcraft.core.statements; import java.util.Locale; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import buildcraft.api.statements.IActionExternal; import buildcraft.api.statements.IStatementContainer; import buildcraft.api.statements.IStatementParameter; diff --git a/common/buildcraft/core/statements/StatementParameterDirection.java b/common/buildcraft/core/statements/StatementParameterDirection.java index e5c20837..b3fec104 100644 --- a/common/buildcraft/core/statements/StatementParameterDirection.java +++ b/common/buildcraft/core/statements/StatementParameterDirection.java @@ -14,22 +14,19 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; import net.minecraftforge.common.util.ForgeDirection; import buildcraft.api.core.NetworkData; -import buildcraft.api.gates.IGate; import buildcraft.api.statements.IStatement; import buildcraft.api.statements.IStatementContainer; import buildcraft.api.statements.IStatementParameter; import buildcraft.api.statements.StatementMouseClick; -import buildcraft.api.transport.IPipe; import buildcraft.core.utils.StringUtils; import buildcraft.transport.TileGenericPipe; public class StatementParameterDirection implements IStatementParameter { - @NetworkData - public ForgeDirection direction = ForgeDirection.UNKNOWN; - private static IIcon[] icons; + public ForgeDirection direction = ForgeDirection.UNKNOWN; + public StatementParameterDirection() { } diff --git a/common/buildcraft/core/statements/StatementParameterRedstoneGateSideOnly.java b/common/buildcraft/core/statements/StatementParameterRedstoneGateSideOnly.java index 33ed3cf9..b0f6c9d8 100644 --- a/common/buildcraft/core/statements/StatementParameterRedstoneGateSideOnly.java +++ b/common/buildcraft/core/statements/StatementParameterRedstoneGateSideOnly.java @@ -13,11 +13,11 @@ import buildcraft.core.utils.StringUtils; public class StatementParameterRedstoneGateSideOnly implements IStatementParameter { - @NetworkData - public boolean isOn = false; - + private static IIcon icon; + public boolean isOn = false; + public StatementParameterRedstoneGateSideOnly() { } diff --git a/common/buildcraft/transport/gates/ItemGate.java b/common/buildcraft/transport/gates/ItemGate.java index 50d3e9c5..5348df55 100755 --- a/common/buildcraft/transport/gates/ItemGate.java +++ b/common/buildcraft/transport/gates/ItemGate.java @@ -31,13 +31,11 @@ import net.minecraftforge.common.util.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.GateExpansions; import buildcraft.api.gates.IGateExpansion; -import buildcraft.api.statements.IStatement; import buildcraft.api.statements.StatementManager; import buildcraft.api.transport.IPipePluggable; import buildcraft.api.transport.IPipeTile; import buildcraft.core.ItemBuildCraft; import buildcraft.core.inventory.InvUtils; -import buildcraft.core.network.NetworkIdRegistry; import buildcraft.core.utils.StringUtils; import buildcraft.transport.Gate; import buildcraft.transport.TileGenericPipe; diff --git a/common/buildcraft/transport/gui/ContainerGateInterface.java b/common/buildcraft/transport/gui/ContainerGateInterface.java index 93681769..97bd59b2 100644 --- a/common/buildcraft/transport/gui/ContainerGateInterface.java +++ b/common/buildcraft/transport/gui/ContainerGateInterface.java @@ -18,6 +18,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; import buildcraft.api.statements.IStatement; import buildcraft.api.statements.IStatementParameter; @@ -250,11 +251,13 @@ public class ContainerGateInterface extends BuildCraftContainer { IStatement trigger = gate.getTrigger(position); RPCHandler.rpcPlayer(player, this, "setAction", position, action != null ? action.getUniqueTag() : null, false); RPCHandler.rpcPlayer(player, this, "setTrigger", position, trigger != null ? trigger.getUniqueTag() : null, false); - for (int p = 0; p < 3; ++p) { + for (int p = 0; p < gate.material.numActionParameters; ++p) { RPCHandler.rpcPlayer(player, this, "setActionParameter", position, p, gate.getActionParameter(position, p), false); - RPCHandler.rpcPlayer(player, this, "setTriggerParameter", position, p, - gate.getTriggerParameter(position, p), false); + } + for (int q = 0; q < gate.material.numTriggerParameters; ++q) { + RPCHandler.rpcPlayer(player, this, "setTriggerParameter", position, q, + gate.getTriggerParameter(position, q), false); } } } @@ -388,7 +391,7 @@ public class ContainerGateInterface extends BuildCraftContainer { RPCHandler.rpcServer(this, "setActionParameter", action, param, parameter, false); } } - + /** * GATE INFORMATION * */ diff --git a/common/buildcraft/transport/statements/ActionParameterSignal.java b/common/buildcraft/transport/statements/ActionParameterSignal.java index a9efb60d..023f618d 100644 --- a/common/buildcraft/transport/statements/ActionParameterSignal.java +++ b/common/buildcraft/transport/statements/ActionParameterSignal.java @@ -23,11 +23,11 @@ import buildcraft.api.transport.PipeWire; import buildcraft.core.utils.StringUtils; public class ActionParameterSignal implements IStatementParameter { - - @NetworkData - public PipeWire color = null; + private static IIcon[] icons; + public PipeWire color = null; + public ActionParameterSignal() { } diff --git a/common/buildcraft/transport/statements/TriggerParameterSignal.java b/common/buildcraft/transport/statements/TriggerParameterSignal.java index fed1cfad..152a7b9f 100644 --- a/common/buildcraft/transport/statements/TriggerParameterSignal.java +++ b/common/buildcraft/transport/statements/TriggerParameterSignal.java @@ -21,19 +21,14 @@ import buildcraft.api.statements.IStatementParameter; import buildcraft.api.statements.StatementMouseClick; import buildcraft.api.transport.PipeWire; import buildcraft.core.utils.StringUtils; -import buildcraft.transport.Gate; -import buildcraft.transport.Pipe; public class TriggerParameterSignal implements IStatementParameter { - @NetworkData - public boolean active = false; - - @NetworkData - public PipeWire color = null; - private static IIcon[] icons; + public boolean active = false; + public PipeWire color = null; + public TriggerParameterSignal() { }