OSDN Git Service

ぬるぽはくのでpush
authormozipi <mozipi@users.sourceforge.jp>
Sun, 30 Dec 2012 15:37:36 +0000 (00:37 +0900)
committermozipi <mozipi@users.sourceforge.jp>
Sun, 30 Dec 2012 15:37:36 +0000 (00:37 +0900)
28 files changed:
common/chemicraft/ChemiCraft.java
common/chemicraft/block/BlockChemicalCombinationTable.java
common/chemicraft/block/BlockChemicalCraftingTable.java
common/chemicraft/block/BlockDecompositionTable.java
common/chemicraft/block/BlockToolAndWeaponCraftingTable.java
common/chemicraft/container/ContainerChemicalCombinationTable.java
common/chemicraft/container/ContainerDecompositionTable.java
common/chemicraft/container/ContainerToolAndWeaponCraftingTable.java
common/chemicraft/debug/CommandGenDebugRoom.java [new file with mode: 0644]
common/chemicraft/debug/CommandSetTile.java
common/chemicraft/gui/GuiChemicalCombinationTable.java
common/chemicraft/gui/GuiDecompositionTable.java
common/chemicraft/gui/GuiToolAndWeaponCraftingTable.java
common/chemicraft/inventory/InventoryChemicalCombinationTableMaterial.java
common/chemicraft/inventory/InventoryChemicalCombinationTableResult.java
common/chemicraft/inventory/InventoryDecompositionTableMaterial.java
common/chemicraft/inventory/InventoryDecompositionTableResult.java
common/chemicraft/inventory/InventoryToolAndWeaponCraftingTableMaterial.java
common/chemicraft/inventory/InventoryToolAndWeaponCraftingTableResult.java
common/chemicraft/item/ItemAtomGrenade.java
common/chemicraft/slot/SlotChemicalCombinationTableMaterial.java
common/chemicraft/slot/SlotChemicalCombinationTableResult.java
common/chemicraft/slot/SlotDecompositionTableResult.java
common/chemicraft/slot/SlotToolAndWeaponCraftingTableResult.java
common/chemicraft/system/CommonProxy.java
common/chemicraft/tileentity/TileEntityChemicalCombinationTable.java
common/chemicraft/tileentity/TileEntityToolAndWeaponCraftingTable.java [moved from common/chemicraft/tileentity/TileEntityToolAndWeaponTable.java with 50% similarity]
src/chemicraft/client/ClientProxy.java

index 05d3b38..992f9a2 100644 (file)
@@ -7,8 +7,12 @@ import net.minecraft.src.ItemStack;
 import net.minecraft.src.Material;\r
 import net.minecraftforge.common.Configuration;\r
 import net.minecraftforge.common.Property;\r
+import chemicraft.block.BlockChemicalCombinationTable;\r
 import chemicraft.block.BlockChemicalCraftingTable;\r
+import chemicraft.block.BlockDecompositionTable;\r
+import chemicraft.block.BlockToolAndWeaponCraftingTable;\r
 import chemicraft.debug.CommandDeleteItem;\r
+import chemicraft.debug.CommandGenDebugRoom;\r
 import chemicraft.debug.CommandSetTile;\r
 import chemicraft.item.ItemAtomGrenade;\r
 import chemicraft.item.ItemAtoms;\r
@@ -16,7 +20,10 @@ import chemicraft.item.ItemCompounds;
 import chemicraft.item.ItemGasCollectingBottle;\r
 import chemicraft.system.CommonProxy;\r
 import chemicraft.system.PacketHandler;\r
+import chemicraft.tileentity.TileEntityChemicalCombinationTable;\r
 import chemicraft.tileentity.TileEntityChemicalCraftingTable;\r
+import chemicraft.tileentity.TileEntityDecompositionTable;\r
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;\r
 import chemicraft.util.Auxiliary;\r
 import chemicraft.util.Auxiliary.ArrayAuxiliary;\r
 import chemicraft.util.Auxiliary.NameAuxiliary;\r
@@ -68,13 +75,13 @@ public class ChemiCraft {
        /**\r
         * ChemiCraftのProxy\r
         */\r
-       @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.CommonProxy")\r
+       @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.system.CommonProxy")\r
        public static CommonProxy proxy;\r
 \r
        /**\r
         * ChemiCraftのCreativeTab\r
         */\r
-       public CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");\r
+       public static final CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");\r
 \r
        /**\r
         * ItemID\r
@@ -181,6 +188,7 @@ public class ChemiCraft {
        public void serverStarting(FMLServerStartingEvent event){\r
                event.registerServerCommand(new CommandSetTile());\r
                event.registerServerCommand(new CommandDeleteItem());\r
+               event.registerServerCommand(new CommandGenDebugRoom());\r
        }\r
 \r
        @Mod.PostInit\r
@@ -192,12 +200,9 @@ public class ChemiCraft {
        private void settingProcessing(FMLPostInitializationEvent event){\r
 \r
                // Blockを追加します\r
-               /*\r
-                * Commented by mozipi.\r
                this.blockDecompositionTable = new BlockDecompositionTable(this.decompositionTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("DecompositionTable");\r
                this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCombinationTable");\r
                this.blockToolAndWeaponCraftingTable = new BlockToolAndWeaponCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ToolAndWeaponCraftingTable");\r
-                */\r
                this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(chemicalCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCraftingTable");\r
 \r
 \r
@@ -233,12 +238,9 @@ public class ChemiCraft {
                this.nameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");\r
 \r
                // TileEntityを追加します\r
-               /*\r
-                * Commented by mozipi.\r
                GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");\r
                GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");\r
                GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");\r
-                */\r
                GameRegistry.registerTileEntity(TileEntityChemicalCraftingTable.class, "TileEntityChemicalCraftingTable");\r
 \r
                // GUIを追加します\r
index 1551f48..bc0a05a 100644 (file)
@@ -12,6 +12,7 @@ public class BlockChemicalCombinationTable extends BlockContainer {
 
        public BlockChemicalCombinationTable(int par1, int par2, Material par3Material) {
                super(par1, par2, par3Material);
+               this.setCreativeTab(ChemiCraft.creativeTab);
        }
 
        @Override
@@ -35,7 +36,7 @@ public class BlockChemicalCombinationTable extends BlockContainer {
                if(par1 == 0){
                        return 17;
                }else if(par1 == 1){
-                       return 3;
+                       return 1;
                }else{
                        return 16;
                }
index a0c0e11..5e45218 100644 (file)
@@ -12,7 +12,7 @@ public class BlockChemicalCraftingTable extends BlockContainer {
 
        public BlockChemicalCraftingTable(int par1, int par2, Material par3Material) {
                super(par1, par2, par3Material);
-               this.setCreativeTab(ChemiCraft.instance.creativeTab);
+               this.setCreativeTab(ChemiCraft.creativeTab);
        }
 
 
index 18460cb..ea44a5d 100644 (file)
@@ -12,6 +12,7 @@ public class BlockDecompositionTable extends BlockContainer {
 
        public BlockDecompositionTable(int par1, int par2, Material par3Material) {
                super(par1, par2, par3Material);
+               this.setCreativeTab(ChemiCraft.creativeTab);
        }
 
        @Override
@@ -35,7 +36,7 @@ public class BlockDecompositionTable extends BlockContainer {
                if(par1 == 0){
                        return 17;
                }else if(par1 == 1){
-                       return 3;
+                       return 0;
                }else{
                        return 16;
                }
index fc70311..fa140e6 100644 (file)
@@ -1,7 +1,7 @@
 package chemicraft.block;
 
 import chemicraft.ChemiCraft;
-import chemicraft.tileentity.TileEntityToolAndWeaponTable;
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
 import net.minecraft.src.BlockContainer;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.Material;
@@ -12,6 +12,7 @@ public class BlockToolAndWeaponCraftingTable extends BlockContainer {
 
        public BlockToolAndWeaponCraftingTable(int par1, int par2, Material par3Material) {
                super(par1, par2, par3Material);
+               this.setCreativeTab(ChemiCraft.creativeTab);
        }
 
        @Override
@@ -35,7 +36,7 @@ public class BlockToolAndWeaponCraftingTable extends BlockContainer {
                if(par1 == 0){
                        return 17;
                }else if(par1 == 1){
-                       return 3;
+                       return 2;
                }else{
                        return 16;
                }
@@ -43,7 +44,7 @@ public class BlockToolAndWeaponCraftingTable extends BlockContainer {
 
        @Override
        public TileEntity createNewTileEntity(World var1) {
-               return new TileEntityToolAndWeaponTable();
+               return new TileEntityToolAndWeaponCraftingTable();
        }
 
 }
index 882226e..4752cd9 100644 (file)
@@ -1,16 +1,89 @@
 package chemicraft.container;
 
+import net.minecraft.src.Block;
 import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+import net.minecraft.src.World;
+import chemicraft.ChemiCraft;
+import chemicraft.inventory.InventoryChemicalCombinationTableMaterial;
+import chemicraft.inventory.InventoryChemicalCombinationTableResult;
+import chemicraft.slot.SlotChemicalCombinationTableMaterial;
+import chemicraft.slot.SlotChemicalCombinationTableResult;
+import chemicraft.tileentity.TileEntityChemicalCombinationTable;
 
 public class ContainerChemicalCombinationTable extends Container {
 
-       public ContainerChemicalCombinationTable() {
+       /**
+        * the world.
+        */
+       private World worldObj;
+
+       /**
+        * the TileEntity of Position.
+        */
+       private int posX;
+       private int posY;
+       private int posZ;
+
+       /**
+        * the TileEntity.
+        */
+       private TileEntityChemicalCombinationTable tileentity;
+
+       /**
+        * the Inventory's.
+        */
+       private InventoryChemicalCombinationTableMaterial invm;
+       private InventoryChemicalCombinationTableResult invr;
+
+       public ContainerChemicalCombinationTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCombinationTable par2) {
+               super();
+               this.tileentity = par2;
+               this.worldObj = tileentity.worldObj;
+               this.posX = tileentity.xCoord;
+               this.posY = tileentity.yCoord;
+               this.posZ = tileentity.zCoord;
+               this.invm = this.tileentity.getInvMaterial();
+               this.invr = this.tileentity.getInvResult();
+
+               for(int i = 0;i < 4;i++){
+                       for(int j = 0;j < 4;j++){
+                               this.addSlotToContainer(new SlotChemicalCombinationTableMaterial(this.invm, i * 4 + j, i * 18 + 16, j * 18 + 8));
+                       }
+               }
+               this.addSlotToContainer(new SlotChemicalCombinationTableResult(invr, 0, 123, 34));
+
+
+               int var3;
+               for (var3 = 0; var3 < 3; ++var3)
+               {
+                       for (int var4 = 0; var4 < 9; ++var4)
+                       {
+                               this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 85 + var3 * 18));
+                       }
+               }
+
+               for (var3 = 0; var3 < 9; ++var3)
+               {
+                       this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 143));
+               }
+       }
+
+       @Override
+       public boolean canInteractWith(EntityPlayer par1EntityPlayer){
+               return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.chemicalConbinationTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
+       }
+
+       @Override
+       public ItemStack transferStackInSlot(int par1){
+               return null;
        }
 
        @Override
-       public boolean canInteractWith(EntityPlayer var1) {
-               return false;
+       public void onCraftGuiClosed(EntityPlayer par1EntityPlayer){
+               super.onCraftGuiClosed(par1EntityPlayer);
        }
 
 }
index 572c830..b2bd54e 100644 (file)
@@ -2,11 +2,12 @@ package chemicraft.container;
 
 import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
+import chemicraft.tileentity.TileEntityDecompositionTable;
 
 public class ContainerDecompositionTable extends Container {
 
-       public ContainerDecompositionTable(){
-
+       public ContainerDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2){
+               super();
        }
 
        @Override
index 44b03fa..ebbd2c2 100644 (file)
@@ -2,11 +2,12 @@ package chemicraft.container;
 
 import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
 
 public class ContainerToolAndWeaponCraftingTable extends Container {
 
-       public ContainerToolAndWeaponCraftingTable(){
-
+       public ContainerToolAndWeaponCraftingTable(EntityPlayer par1EntityPlayer, TileEntityToolAndWeaponCraftingTable par2){
+               super();
        }
 
        @Override
diff --git a/common/chemicraft/debug/CommandGenDebugRoom.java b/common/chemicraft/debug/CommandGenDebugRoom.java
new file mode 100644 (file)
index 0000000..ca944ac
--- /dev/null
@@ -0,0 +1,28 @@
+package chemicraft.debug;
+
+import net.minecraft.src.Block;
+import net.minecraft.src.CommandBase;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.ICommandSender;
+import net.minecraft.src.World;
+
+public class CommandGenDebugRoom extends CommandBase {
+
+       @Override
+       public String getCommandName() {
+               return "debugRoom";
+       }
+
+       @Override
+       public void processCommand(ICommandSender var1, String[] var2) {
+               try{
+                       EntityPlayer player = (EntityPlayer)var1;
+                       World wolrd = player.worldObj;
+
+                       SetBlockSupport.box(wolrd, (int)player.posX, (int)player.posY, (int)player.posZ, Block.bedrock.blockID, 0, 20, 20, 6);
+               }catch(ClassCastException e){
+
+               }
+       }
+
+}
index bb32d75..ffbbad5 100644 (file)
@@ -21,8 +21,10 @@ public class CommandSetTile extends CommandBase {
                        if(var2.length > 0){\r
                                try{\r
                                        if(Integer.parseInt(var2[0]) < 4096 && Block.blocksList[Integer.parseInt(var2[0])] != null || Integer.parseInt(var2[0]) == 0){\r
-                                               if(var2.length > 1){\r
+                                               if(var2.length == 1){\r
                                                        SetBlockSupport.square(wolrd, (int)player.posX, (int)player.posY, (int)player.posZ, Integer.parseInt(var2[0]), Integer.parseInt(var2[1]), 12, 12);\r
+                                               }else if(var2.length > 2){\r
+                                                       SetBlockSupport.square(wolrd, (int)player.posX, (int)player.posY, (int)player.posZ, Integer.parseInt(var2[0]), Integer.parseInt(var2[1]), Integer.parseInt(var2[2]), Integer.parseInt(var2[2]));\r
                                                }else{\r
                                                        SetBlockSupport.square(wolrd, (int)player.posX, (int)player.posY, (int)player.posZ, Integer.parseInt(var2[0]), 0, 12, 12);\r
                                                }\r
@@ -33,7 +35,7 @@ public class CommandSetTile extends CommandBase {
                                        var1.sendChatToPlayer("\u00a7c指定された文字は数値ではありません。");\r
                                }\r
                        }else{\r
-                               var1.sendChatToPlayer("\u00a7cBlockIDを指定してください。(Metadataも可能)");\r
+                               var1.sendChatToPlayer("\u00a7cBlockIDを指定してください。(Metadata, Sizeも可能)");\r
                        }\r
                }catch(ClassCastException e){\r
 \r
index f7e39df..243965c 100644 (file)
@@ -1,11 +1,37 @@
 package chemicraft.gui;
 
-import net.minecraft.src.Gui;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import net.minecraft.src.GuiTextField;
+import chemicraft.ChemiCraft;
+import chemicraft.container.ContainerChemicalCombinationTable;
+import chemicraft.tileentity.TileEntityChemicalCombinationTable;
 
-public class GuiChemicalCombinationTable extends Gui {
+public class GuiChemicalCombinationTable extends GuiContainer {
 
-       public GuiChemicalCombinationTable(){
+       private GuiTextField atomList;
 
+       public GuiChemicalCombinationTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCombinationTable par2) {
+               super(new ContainerChemicalCombinationTable(par1EntityPlayer, par2));
+       }
+
+       @Override
+       public void initGui(){
+               super.initGui();
+               this.atomList = new GuiTextField(this.fontRenderer, 100, 65, 70, 15);
+               this.atomList.setFocused(false);
+               this.atomList.setMaxStringLength(10);
+       }
+
+       @Override
+       protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) {
+               this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiChemicalCombinationTexture));
+               this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+       }
+
+       @Override
+       protected void drawGuiContainerForegroundLayer() {
+               this.atomList.drawTextBox();
        }
 
 }
index a8ecca4..c8bf8ab 100644 (file)
@@ -1,8 +1,22 @@
 package chemicraft.gui;
 
-public class GuiDecompositionTable {
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import chemicraft.ChemiCraft;
+import chemicraft.container.ContainerDecompositionTable;
+import chemicraft.tileentity.TileEntityDecompositionTable;
 
-       public GuiDecompositionTable() {
+public class GuiDecompositionTable extends GuiContainer{
+
+       public GuiDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2) {
+               super(new ContainerDecompositionTable(par1EntityPlayer, par2));
+       }
+
+       @Override
+       protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) {
+               this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiDecompositionTexture));
+               this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
        }
 
+
 }
index 2167218..aace07d 100644 (file)
@@ -1,9 +1,22 @@
 package chemicraft.gui;
 
-public class GuiToolAndWeaponCraftingTable {
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import chemicraft.ChemiCraft;
+import chemicraft.container.ContainerToolAndWeaponCraftingTable;
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
 
-       public GuiToolAndWeaponCraftingTable(){
+public class GuiToolAndWeaponCraftingTable extends GuiContainer {
 
+       public GuiToolAndWeaponCraftingTable(EntityPlayer par1EntityPlayer, TileEntityToolAndWeaponCraftingTable par2) {
+               super(new ContainerToolAndWeaponCraftingTable(par1EntityPlayer, par2));
        }
 
+       @Override
+       protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) {
+               this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiToolAndWeaponCraftingTexture));
+               this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+       }
+
+
 }
index f241e59..a04c0fb 100644 (file)
 package chemicraft.inventory;
 
+import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.ItemStack;
 
 public class InventoryChemicalCombinationTableMaterial implements IInventory {
 
+       private ItemStack[] inventory = new ItemStack[16];
+       private Container eventHandler;
+
+       public void setEventHandler(Container par1){
+               this.eventHandler = par1;
+       }
+
        @Override
        public int getSizeInventory() {
-               return 0;
+               return this.inventory.length;
        }
 
        @Override
        public ItemStack getStackInSlot(int var1) {
-               return null;
+               return this.inventory[var1];
        }
 
        @Override
        public ItemStack decrStackSize(int var1, int var2) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var3;
+
+                       if (this.inventory[var1].stackSize <= var2)
+                       {
+                               var3 = this.inventory[var1];
+                               this.inventory[var1] = null;
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+                       else
+                       {
+                               var3 = this.inventory[var1].splitStack(var2);
+
+                               if (this.inventory[var1].stackSize == 0)
+                               {
+                                       this.inventory[var1] = null;
+                               }
+
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public ItemStack getStackInSlotOnClosing(int var1) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var2 = this.inventory[var1];
+                       this.inventory[var1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public void setInventorySlotContents(int var1, ItemStack var2) {
+               this.inventory[var1] = var2;
+
+               if (var2 != null && var2.stackSize > this.getInventoryStackLimit())
+               {
+                       var2.stackSize = this.getInventoryStackLimit();
+               }
+
+               this.onInventoryChanged();
        }
 
        @Override
        public String getInvName() {
-               return null;
+               return "ChemicalCombinationTableMaterial";
        }
 
        @Override
        public int getInventoryStackLimit() {
-               return 0;
+               return 64;
        }
 
        @Override
        public void onInventoryChanged() {
+               if(this.eventHandler != null) this.eventHandler.onCraftMatrixChanged(this);
        }
 
        @Override
        public boolean isUseableByPlayer(EntityPlayer var1) {
-               return false;
+               return true;
        }
 
        @Override
index ef019c8..2410013 100644 (file)
 package chemicraft.inventory;
 
+import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.ItemStack;
 
 public class InventoryChemicalCombinationTableResult implements IInventory {
 
+       private ItemStack[] inventory = new ItemStack[16];
+       private Container eventHandler;
+
+       public void setEventHandler(Container par1){
+               this.eventHandler = par1;
+       }
+
        @Override
        public int getSizeInventory() {
-               return 0;
+               return this.inventory.length;
        }
 
        @Override
        public ItemStack getStackInSlot(int var1) {
-               return null;
+               return this.inventory[var1];
        }
 
        @Override
        public ItemStack decrStackSize(int var1, int var2) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var3;
+
+                       if (this.inventory[var1].stackSize <= var2)
+                       {
+                               var3 = this.inventory[var1];
+                               this.inventory[var1] = null;
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+                       else
+                       {
+                               var3 = this.inventory[var1].splitStack(var2);
+
+                               if (this.inventory[var1].stackSize == 0)
+                               {
+                                       this.inventory[var1] = null;
+                               }
+
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public ItemStack getStackInSlotOnClosing(int var1) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var2 = this.inventory[var1];
+                       this.inventory[var1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public void setInventorySlotContents(int var1, ItemStack var2) {
+               this.inventory[var1] = var2;
+
+               if (var2 != null && var2.stackSize > this.getInventoryStackLimit())
+               {
+                       var2.stackSize = this.getInventoryStackLimit();
+               }
+
+               this.onInventoryChanged();
        }
 
        @Override
        public String getInvName() {
-               return null;
+               return "ChemicalCombinationTableResult";
        }
 
        @Override
        public int getInventoryStackLimit() {
-               return 0;
+               return 64;
        }
 
        @Override
        public void onInventoryChanged() {
+               if(this.eventHandler != null) this.eventHandler.onCraftMatrixChanged(this);
        }
 
        @Override
        public boolean isUseableByPlayer(EntityPlayer var1) {
-               return false;
+               return true;
        }
 
        @Override
@@ -57,4 +110,5 @@ public class InventoryChemicalCombinationTableResult implements IInventory {
        public void closeChest() {
        }
 
+
 }
index 83e0891..cde2931 100644 (file)
 package chemicraft.inventory;
 
+import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.ItemStack;
 
 public class InventoryDecompositionTableMaterial implements IInventory {
 
+       private ItemStack[] inventory = new ItemStack[16];
+       private Container eventHandler;
+
+       public void setEventHandler(Container par1){
+               this.eventHandler = par1;
+       }
+
        @Override
        public int getSizeInventory() {
-               return 0;
+               return this.inventory.length;
        }
 
        @Override
        public ItemStack getStackInSlot(int var1) {
-               return null;
+               return this.inventory[var1];
        }
 
        @Override
        public ItemStack decrStackSize(int var1, int var2) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var3;
+
+                       if (this.inventory[var1].stackSize <= var2)
+                       {
+                               var3 = this.inventory[var1];
+                               this.inventory[var1] = null;
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+                       else
+                       {
+                               var3 = this.inventory[var1].splitStack(var2);
+
+                               if (this.inventory[var1].stackSize == 0)
+                               {
+                                       this.inventory[var1] = null;
+                               }
+
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public ItemStack getStackInSlotOnClosing(int var1) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var2 = this.inventory[var1];
+                       this.inventory[var1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public void setInventorySlotContents(int var1, ItemStack var2) {
+               this.inventory[var1] = var2;
+
+               if (var2 != null && var2.stackSize > this.getInventoryStackLimit())
+               {
+                       var2.stackSize = this.getInventoryStackLimit();
+               }
 
+               this.onInventoryChanged();
        }
 
        @Override
        public String getInvName() {
-               return null;
+               return "DecompositionTableMaterial";
        }
 
        @Override
        public int getInventoryStackLimit() {
-               return 0;
+               return 64;
        }
 
        @Override
        public void onInventoryChanged() {
-
+               if(this.eventHandler != null) this.eventHandler.onCraftMatrixChanged(this);
        }
 
        @Override
        public boolean isUseableByPlayer(EntityPlayer var1) {
-               return false;
+               return true;
        }
 
        @Override
        public void openChest() {
-
        }
 
        @Override
        public void closeChest() {
-
        }
 
 }
index 9347580..c63192b 100644 (file)
 package chemicraft.inventory;
 
+import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.ItemStack;
 
 public class InventoryDecompositionTableResult implements IInventory {
 
+       private ItemStack[] inventory = new ItemStack[16];
+       private Container eventHandler;
+
+       public void setEventHandler(Container par1){
+               this.eventHandler = par1;
+       }
+
        @Override
        public int getSizeInventory() {
-               return 0;
+               return this.inventory.length;
        }
 
        @Override
        public ItemStack getStackInSlot(int var1) {
-               return null;
+               return this.inventory[var1];
        }
 
        @Override
        public ItemStack decrStackSize(int var1, int var2) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var3;
+
+                       if (this.inventory[var1].stackSize <= var2)
+                       {
+                               var3 = this.inventory[var1];
+                               this.inventory[var1] = null;
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+                       else
+                       {
+                               var3 = this.inventory[var1].splitStack(var2);
+
+                               if (this.inventory[var1].stackSize == 0)
+                               {
+                                       this.inventory[var1] = null;
+                               }
+
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public ItemStack getStackInSlotOnClosing(int var1) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var2 = this.inventory[var1];
+                       this.inventory[var1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public void setInventorySlotContents(int var1, ItemStack var2) {
+               this.inventory[var1] = var2;
+
+               if (var2 != null && var2.stackSize > this.getInventoryStackLimit())
+               {
+                       var2.stackSize = this.getInventoryStackLimit();
+               }
+
+               this.onInventoryChanged();
        }
 
        @Override
        public String getInvName() {
-               return null;
+               return "DecompositionTableResult";
        }
 
        @Override
        public int getInventoryStackLimit() {
-               return 0;
+               return 64;
        }
 
        @Override
        public void onInventoryChanged() {
+               if(this.eventHandler != null) this.eventHandler.onCraftMatrixChanged(this);
        }
 
        @Override
        public boolean isUseableByPlayer(EntityPlayer var1) {
-               return false;
+               return true;
        }
 
        @Override
index 3162c4d..b72e471 100644 (file)
 package chemicraft.inventory;
 
+import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.ItemStack;
 
 public class InventoryToolAndWeaponCraftingTableMaterial implements IInventory {
 
+       private ItemStack[] inventory = new ItemStack[16];
+       private Container eventHandler;
+
+       public void setEventHandler(Container par1){
+               this.eventHandler = par1;
+       }
+
        @Override
        public int getSizeInventory() {
-               return 0;
+               return this.inventory.length;
        }
 
        @Override
        public ItemStack getStackInSlot(int var1) {
-               return null;
+               return this.inventory[var1];
        }
 
        @Override
        public ItemStack decrStackSize(int var1, int var2) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var3;
+
+                       if (this.inventory[var1].stackSize <= var2)
+                       {
+                               var3 = this.inventory[var1];
+                               this.inventory[var1] = null;
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+                       else
+                       {
+                               var3 = this.inventory[var1].splitStack(var2);
+
+                               if (this.inventory[var1].stackSize == 0)
+                               {
+                                       this.inventory[var1] = null;
+                               }
+
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public ItemStack getStackInSlotOnClosing(int var1) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var2 = this.inventory[var1];
+                       this.inventory[var1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public void setInventorySlotContents(int var1, ItemStack var2) {
+               this.inventory[var1] = var2;
+
+               if (var2 != null && var2.stackSize > this.getInventoryStackLimit())
+               {
+                       var2.stackSize = this.getInventoryStackLimit();
+               }
+
+               this.onInventoryChanged();
        }
 
        @Override
        public String getInvName() {
-               return null;
+               return "ToolAndWeaponCraftingTableMaterial";
        }
 
        @Override
        public int getInventoryStackLimit() {
-               return 0;
+               return 64;
        }
 
        @Override
        public void onInventoryChanged() {
+               if(this.eventHandler != null) this.eventHandler.onCraftMatrixChanged(this);
        }
 
        @Override
        public boolean isUseableByPlayer(EntityPlayer var1) {
-               return false;
+               return true;
        }
 
        @Override
index b1ded32..c6ff3a1 100644 (file)
 package chemicraft.inventory;
 
+import net.minecraft.src.Container;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.IInventory;
 import net.minecraft.src.ItemStack;
 
 public class InventoryToolAndWeaponCraftingTableResult implements IInventory {
 
+       private ItemStack[] inventory = new ItemStack[16];
+       private Container eventHandler;
+
+       public void setEventHandler(Container par1){
+               this.eventHandler = par1;
+       }
+
        @Override
        public int getSizeInventory() {
-               return 0;
+               return this.inventory.length;
        }
 
        @Override
        public ItemStack getStackInSlot(int var1) {
-               return null;
+               return this.inventory[var1];
        }
 
        @Override
        public ItemStack decrStackSize(int var1, int var2) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var3;
+
+                       if (this.inventory[var1].stackSize <= var2)
+                       {
+                               var3 = this.inventory[var1];
+                               this.inventory[var1] = null;
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+                       else
+                       {
+                               var3 = this.inventory[var1].splitStack(var2);
+
+                               if (this.inventory[var1].stackSize == 0)
+                               {
+                                       this.inventory[var1] = null;
+                               }
+
+                               this.onInventoryChanged();
+                               return var3;
+                       }
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public ItemStack getStackInSlotOnClosing(int var1) {
-               return null;
+               if (this.inventory[var1] != null)
+               {
+                       ItemStack var2 = this.inventory[var1];
+                       this.inventory[var1] = null;
+                       return var2;
+               }
+               else
+               {
+                       return null;
+               }
        }
 
        @Override
        public void setInventorySlotContents(int var1, ItemStack var2) {
+               this.inventory[var1] = var2;
+
+               if (var2 != null && var2.stackSize > this.getInventoryStackLimit())
+               {
+                       var2.stackSize = this.getInventoryStackLimit();
+               }
+
+               this.onInventoryChanged();
        }
 
        @Override
        public String getInvName() {
-               return null;
+               return "ToolAndWeaponCraftingTableResult";
        }
 
        @Override
        public int getInventoryStackLimit() {
-               return 0;
+               return 64;
        }
 
        @Override
        public void onInventoryChanged() {
+               if(this.eventHandler != null) this.eventHandler.onCraftMatrixChanged(this);
        }
 
        @Override
        public boolean isUseableByPlayer(EntityPlayer var1) {
-               return false;
+               return true;
        }
 
        @Override
@@ -57,4 +110,5 @@ public class InventoryToolAndWeaponCraftingTableResult implements IInventory {
        public void closeChest() {
        }
 
+
 }
index a751f94..cfabf5b 100644 (file)
@@ -2,6 +2,9 @@ package chemicraft.item;
 
 import java.util.List;
 
+import cpw.mods.fml.common.Side;
+import cpw.mods.fml.common.asm.SideOnly;
+
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.Item;
 import net.minecraft.src.ItemStack;
@@ -48,10 +51,10 @@ public class ItemAtomGrenade extends Item {
                return par1ItemStack;
        }
 
-       @SuppressWarnings({ "unchecked", "rawtypes" })
        @Override
        public void addInformation(ItemStack par1ItemStack, List par2List) {
-               if(par1ItemStack.getTagCompound() != null){
+               System.out.println(par1ItemStack.hasTagCompound());
+               if(par1ItemStack.hasTagCompound()){
                        NBTTagList var1 = par1ItemStack.getTagCompound().getTagList("Effect");
 
                        for(int i = 0;i < 3;i++){
index 308ed99..1ae9c97 100644 (file)
@@ -1,6 +1,8 @@
 package chemicraft.slot;
 
+import chemicraft.ChemiCraft;
 import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
 import net.minecraft.src.Slot;
 
 public class SlotChemicalCombinationTableMaterial extends Slot {
@@ -9,4 +11,12 @@ public class SlotChemicalCombinationTableMaterial extends Slot {
                super(par1iInventory, par2, par3, par4);
        }
 
+       @Override
+       public boolean isItemValid(ItemStack par1ItemStack){
+               if(par1ItemStack.itemID == ChemiCraft.instance.atomsID + 256){
+                       return true;
+               }
+               return false;
+       }
+
 }
index 9e7ae64..70976da 100644 (file)
@@ -1,6 +1,7 @@
 package chemicraft.slot;
 
 import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
 import net.minecraft.src.Slot;
 
 public class SlotChemicalCombinationTableResult extends Slot {
@@ -9,4 +10,9 @@ public class SlotChemicalCombinationTableResult extends Slot {
                super(par1iInventory, par2, par3, par4);
        }
 
+       @Override
+       public boolean isItemValid(ItemStack par1ItemStack){
+               return false;
+       }
+
 }
index e836ff3..c4b773a 100644 (file)
@@ -1,6 +1,7 @@
 package chemicraft.slot;
 
 import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
 import net.minecraft.src.Slot;
 
 public class SlotDecompositionTableResult extends Slot {
@@ -9,4 +10,9 @@ public class SlotDecompositionTableResult extends Slot {
                super(par1iInventory, par2, par3, par4);
        }
 
+       @Override
+       public boolean isItemValid(ItemStack par1ItemStack){
+               return false;
+       }
+
 }
index 57e2f76..23d62c0 100644 (file)
@@ -1,6 +1,7 @@
 package chemicraft.slot;
 
 import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
 import net.minecraft.src.Slot;
 
 public class SlotToolAndWeaponCraftingTableResult extends Slot {
@@ -9,4 +10,9 @@ public class SlotToolAndWeaponCraftingTableResult extends Slot {
                super(par1iInventory, par2, par3, par4);
        }
 
+       @Override
+       public boolean isItemValid(ItemStack par1ItemStack){
+               return false;
+       }
+
 }
index a9bc77c..da801ea 100644 (file)
@@ -3,8 +3,14 @@ package chemicraft.system;
 import net.minecraft.src.EntityPlayer;
 import net.minecraft.src.TileEntity;
 import net.minecraft.src.World;
+import chemicraft.container.ContainerChemicalCombinationTable;
 import chemicraft.container.ContainerChemicalCraftingTable;
+import chemicraft.container.ContainerDecompositionTable;
+import chemicraft.container.ContainerToolAndWeaponCraftingTable;
+import chemicraft.tileentity.TileEntityChemicalCombinationTable;
 import chemicraft.tileentity.TileEntityChemicalCraftingTable;
+import chemicraft.tileentity.TileEntityDecompositionTable;
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
 import cpw.mods.fml.common.network.IGuiHandler;
 
 public class CommonProxy implements IGuiHandler {
@@ -23,8 +29,6 @@ public class CommonProxy implements IGuiHandler {
                        return null;
 
                TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
-               /*
-                * Commented by mozipi.
                if (tileEntity instanceof TileEntityDecompositionTable) {
                        return new ContainerDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
                }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
@@ -34,10 +38,6 @@ public class CommonProxy implements IGuiHandler {
                }else if(tileEntity instanceof TileEntityChemicalCraftingTable){
                        return new ContainerChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
                }
-                */
-               if (tileEntity instanceof TileEntityChemicalCraftingTable) {
-                       return new ContainerChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
-               }
                return null;
        }
 
index c8dfc44..d4c8257 100644 (file)
@@ -1,7 +1,56 @@
 package chemicraft.tileentity;
 
+import chemicraft.inventory.InventoryChemicalCombinationTableMaterial;
+import chemicraft.inventory.InventoryChemicalCombinationTableResult;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.NBTTagCompound;
+import net.minecraft.src.NBTTagList;
 import net.minecraft.src.TileEntity;
 
 public class TileEntityChemicalCombinationTable extends TileEntity {
 
+       private InventoryChemicalCombinationTableMaterial invm = new InventoryChemicalCombinationTableMaterial();
+       private InventoryChemicalCombinationTableResult invr = new InventoryChemicalCombinationTableResult();
+
+       @Override
+       public void readFromNBT(NBTTagCompound par1){
+               super.readFromNBT(par1);
+               NBTTagList var2 = par1.getTagList("Items");
+               for (int var3 = 0; var3 < var2.tagCount(); ++var3)
+               {
+                       NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
+                       int var5 = var4.getByte("Slot") & 255;
+
+                       if (var5 >= 0 && var5 < this.invm.getSizeInventory())
+                       {
+                               this.invm.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+                       }
+               }
+
+               NBTTagList var6 = par1.getTagList("Items2");
+               for (int var3 = 0; var3 < var6.tagCount(); ++var3)
+               {
+                       NBTTagCompound var7 = (NBTTagCompound)var6.tagAt(var3);
+                       int var8 = var7.getByte("Slot2") & 255;
+
+                       if (var8 >= 0 && var8 < this.invr.getSizeInventory())
+                       {
+                               this.invr.setInventorySlotContents(var8, ItemStack.loadItemStackFromNBT(var7));
+                       }
+               }
+       }
+
+       @Override
+       public void writeToNBT(NBTTagCompound par1){
+               super.writeToNBT(par1);
+       }
+
+       public InventoryChemicalCombinationTableMaterial getInvMaterial(){
+               return this.invm;
+       }
+
+       public InventoryChemicalCombinationTableResult getInvResult(){
+               return this.invr;
+       }
+
 }
@@ -2,6 +2,6 @@ package chemicraft.tileentity;
 
 import net.minecraft.src.TileEntity;
 
-public class TileEntityToolAndWeaponTable extends TileEntity {
+public class TileEntityToolAndWeaponCraftingTable extends TileEntity {
 
 }
index d613ebd..8a8b46c 100644 (file)
@@ -5,9 +5,15 @@ import net.minecraft.src.TileEntity;
 import net.minecraft.src.World;
 import net.minecraftforge.client.MinecraftForgeClient;
 import chemicraft.ChemiCraft;
+import chemicraft.gui.GuiChemicalCombinationTable;
 import chemicraft.gui.GuiChemicalCraftingTable;
+import chemicraft.gui.GuiDecompositionTable;
+import chemicraft.gui.GuiToolAndWeaponCraftingTable;
 import chemicraft.system.CommonProxy;
+import chemicraft.tileentity.TileEntityChemicalCombinationTable;
 import chemicraft.tileentity.TileEntityChemicalCraftingTable;
+import chemicraft.tileentity.TileEntityDecompositionTable;
+import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
 import cpw.mods.fml.client.FMLClientHandler;
 
 public class ClientProxy extends CommonProxy {
@@ -31,8 +37,6 @@ public class ClientProxy extends CommonProxy {
                        return null;
 
                TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
-               /*
-                * Commented by mozipi.
                if (tileEntity instanceof TileEntityDecompositionTable) {
                        return new GuiDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
                }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
@@ -42,10 +46,6 @@ public class ClientProxy extends CommonProxy {
                }else if(tileEntity instanceof TileEntityChemicalCraftingTable){
                        return new GuiChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
                }
-                */
-               if (tileEntity instanceof TileEntityChemicalCraftingTable) {
-                       return new GuiChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
-               }
                return null;
        }