public class BlockChemicalCombinationTable extends BlockContainer {
- protected BlockChemicalCombinationTable(int par1, int par2, Material par3Material) {
+ public BlockChemicalCombinationTable(int par1, int par2, Material par3Material) {
super(par1, par2, par3Material);
this.setCreativeTab(ChemiCraft.instance.creativeTab);
}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.BlockContainer;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.Material;
+import net.minecraft.src.TileEntity;
+import net.minecraft.src.World;
+
+public class BlockMaterialCraftingTable extends BlockContainer {
+
+ public BlockMaterialCraftingTable(int par1, int par2, Material par3Material) {
+ super(par1, par2, par3Material);
+ this.setCreativeTab(ChemiCraft.instance.creativeTab);
+ }
+
+
+ @Override
+ public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9){
+ par5EntityPlayer.openGui(ChemiCraft.instance, ChemiCraft.instance.guiMaterialCraftingTableID, par1World, par2, par3, par4);
+ return true;
+ }
+
+
+
+ @Override
+ public String getTextureFile(){
+ return ChemiCraft.instance.blockChemicalCraftingTableTexture;
+ }
+
+
+
+ @Override
+ public int getBlockTextureFromSide(int par1)
+ {
+ if(par1 == 0){
+ return 17;
+ }else if(par1 == 1){
+ return 0;
+ }else{
+ return 16;
+ }
+ }
+
+
+
+ @Override
+ public TileEntity createNewTileEntity(World var1) {
+ return new TileEntityMaterialCraftingTable();
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.BlockContainer;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.Material;
+import net.minecraft.src.TileEntity;
+import net.minecraft.src.World;
+
+public class BlockToolAndMaterialCraftingTable extends BlockContainer {
+
+ public BlockToolAndMaterialCraftingTable(int par1, int par2, Material par3Material) {
+ super(par1, par2, par3Material);
+ this.setCreativeTab(ChemiCraft.instance.creativeTab);
+ }
+
+
+
+ @Override
+ public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9){
+ par5EntityPlayer.openGui(ChemiCraft.instance, ChemiCraft.instance.guiToolAndWeaponCraftingTableID, par1World, par2, par3, par4);
+ return true;
+ }
+
+
+
+ @Override
+ public String getTextureFile(){
+ return ChemiCraft.instance.blockChemicalCraftingTableTexture;
+ }
+
+
+
+ @Override
+ public int getBlockTextureFromSide(int par1)
+ {
+ if(par1 == 0){
+ return 17;
+ }else if(par1 == 1){
+ return 0;
+ }else{
+ return 16;
+ }
+ }
+
+
+
+ @Override
+ public TileEntity createNewTileEntity(World var1) {
+ return new TileEntityToolAndWeaponCraftingTable();
+ }
+
+}
this.NameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.getCompoundsLangName().toArray());\r
\r
// Blockを追加します\r
- this.blockDecompositionTable = new BlockDecompositionTable(decompositionTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("DecompositionTable");\r
- this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(chemicalConbinationTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCombinationTable");\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 BlockToolAndMaterialCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ToolAndWeaponCraftingTable");\r
+ this.blockMaterialCraftingTable = new BlockMaterialCraftingTable(materialCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("MaterialCraftingTable");\r
+\r
\r
// Itemを追加します\r
- this.itemAtoms = new ItemAtoms(atomsID).setItemName("atoms");\r
- this.itemCompounds = new ItemCompounds(compoundsID).setItemName("compounds");\r
- this.itemGasCollectingBottle = new ItemGasCollectingBottle(gasCollectingBottleID).setItemName("gasCollectingBottle");\r
+ this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");\r
+ this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");\r
+ this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle");\r
\r
// BlockをMinecraftに登録します\r
- GameRegistry.registerBlock(blockDecompositionTable);\r
- GameRegistry.registerBlock(blockChemicalCombinationTable);\r
+ GameRegistry.registerBlock(this.blockDecompositionTable);\r
+ GameRegistry.registerBlock(this.blockChemicalCombinationTable);\r
+ GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable);\r
+ GameRegistry.registerBlock(this.blockMaterialCraftingTable);\r
\r
// Blockの名前を設定します\r
- this.NameAuxiliary.addName(blockDecompositionTable, "DecompositionTable");\r
- this.NameAuxiliary.addName(blockDecompositionTable, "ja_JP", "分解台");\r
- this.NameAuxiliary.addName(blockChemicalCombinationTable, "ChemicalCombinationTable");\r
- this.NameAuxiliary.addName(blockChemicalCombinationTable, "ja_JP", "化合台");\r
+ this.NameAuxiliary.addName(this.blockDecompositionTable, "DecompositionTable");\r
+ this.NameAuxiliary.addName(this.blockDecompositionTable, "ja_JP", "分解台");\r
+ this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ChemicalCombinationTable");\r
+ this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ja_JP", "化合台");\r
+ this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ToolAndWeaponCraftingTable");\r
+ this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ja_JP", "ツール&武器製作台");\r
+ this.NameAuxiliary.addName(blockMaterialCraftingTable, "MaterialCraftingTable");\r
+ this.NameAuxiliary.addName(blockMaterialCraftingTable, "ja_JP", "素材製作台");\r
+\r
\r
// Itemの名前を設定します\r
- this.NameAuxiliary.addName(itemAtoms, atomsName);\r
- this.NameAuxiliary.addName(itemAtoms, "ja_JP", atomsNameJP);\r
- this.NameAuxiliary.addName(itemGasCollectingBottle, "GasCollectingBottle");\r
- this.NameAuxiliary.addName(itemGasCollectingBottle, "ja_JP", "集気瓶");\r
+ this.NameAuxiliary.addName(this.itemAtoms, atomsName);\r
+ this.NameAuxiliary.addName(this.itemAtoms, "ja_JP", atomsNameJP);\r
+ this.NameAuxiliary.addName(this.itemGasCollectingBottle, "GasCollectingBottle");\r
+ this.NameAuxiliary.addName(this.itemGasCollectingBottle, "ja_JP", "集気瓶");\r
\r
// TileEntityを追加します\r
GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");\r
GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");\r
+ GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");\r
+ GameRegistry.registerTileEntity(TileEntityMaterialCraftingTable.class, "TileEntityMaterialCraftingTable");\r
\r
// GUIを追加します\r
NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
return new ContainerDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
}else if(tileEntity instanceof TileEntityChemicalCombinationTable){
return new ContainerChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
+ }else if(tileEntity instanceof TileEntityToolAndWeaponCraftingTable){
+ return new ContainerToolAndWeaponCraftingTable(player, (TileEntityToolAndWeaponCraftingTable) tileEntity);
+ }else if(tileEntity instanceof TileEntityMaterialCraftingTable){
+ return new ContainerMaterialCraftingTable(player, (TileEntityMaterialCraftingTable) tileEntity);
}
return null;
}
int count = 0;
for(int i = 0;i < 4;i++){
for(int j = 0;j < 4;j++){
- this.addSlotToContainer(new Slot(inventorys[0], count, 16 + 18 * j, 8 + 20 * i));
+ this.addSlotToContainer(new Slot(inventorys[0], count, 16 + 18 * j, 8 + 18 * i));
count++;
}
}
- this.addSlotToContainer(new SlotChemicalCombinationResult(inventorys[0], count, 119 + 4, 28 + 4));
+ this.addSlotToContainer(new SlotChemicalCombinationResult(inventorys[0], count, 123, 33));
}
}
count++;
}
}
- this.addSlotToContainer(new Slot(inventorys[0], count, 24 + 4, 26 + 4));
+ this.addSlotToContainer(new Slot(inventorys[0], count, 28, 30));
}
}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+import net.minecraft.src.World;
+
+public class ContainerMaterialCraftingTable extends Container {
+
+ /**
+ * Worldのインスタンス
+ */
+ private World worldObj;
+
+
+ /**
+ * BlockのX, Y, Z座標
+ */
+ private int posX;
+ private int posY;
+ private int posZ;
+
+
+ /**
+ * the TileEntity.
+ */
+ private TileEntityMaterialCraftingTable tileEntity;
+
+
+
+ public ContainerMaterialCraftingTable(EntityPlayer par1EntityPlayer, TileEntityMaterialCraftingTable par2)
+ {
+ super();
+ this.worldObj = par2.worldObj;
+ this.posX = par2.xCoord;
+ this.posY = par2.yCoord;
+ this.posZ = par2.zCoord;
+ this.tileEntity = par2;
+ //GenerateInventory
+ this.generateSlots("Decomposition", par2.getInventorys());
+ //GeneratePlayerInventory
+ 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 void onCraftMatrixChanged(IInventory par1IInventory){}
+
+
+
+ @Override
+ public void onCraftGuiClosed(EntityPlayer par1EntityPlayer){
+ super.onCraftGuiClosed(par1EntityPlayer);
+ }
+
+
+
+ @Override
+ public boolean canInteractWith(EntityPlayer par1EntityPlayer){
+ return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.materialCraftingTableID ? 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;
+ }
+
+
+
+ private void generateSlots(String activeTabs, IInventory[] inventorys){
+ int count = 0;
+ for(int i = 0;i < 3;i++){
+ this.addSlotToContainer(new Slot(inventorys[0], count, 30 + 18 * i, 7));
+ count++;
+ }
+ for(int i = 0;i < 3;i++){
+ for(int j = 0;j < 3;j++){
+ this.addSlotToContainer(new Slot(inventorys[0], count, 30 + 18 * j, 27 + 18 * i));
+ count++;
+ }
+ }
+ this.addSlotToContainer(new SlotMaterialCraftingResult(inventorys[0], count, 123, 33));
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+import net.minecraft.src.World;
+
+public class ContainerToolAndWeaponCraftingTable extends Container {
+
+ /**
+ * Worldのインスタンス
+ */
+ private World worldObj;
+
+
+ /**
+ * BlockのX, Y, Z座標
+ */
+ private int posX;
+ private int posY;
+ private int posZ;
+
+
+ /**
+ * the TileEntity.
+ */
+ private TileEntityToolAndWeaponCraftingTable tileEntity;
+
+
+
+ public ContainerToolAndWeaponCraftingTable(EntityPlayer par1EntityPlayer, TileEntityToolAndWeaponCraftingTable par2)
+ {
+ super();
+ this.worldObj = par2.worldObj;
+ this.posX = par2.xCoord;
+ this.posY = par2.yCoord;
+ this.posZ = par2.zCoord;
+ this.tileEntity = par2;
+ //GenerateInventory
+ this.generateSlots("Decomposition", par2.getInventorys());
+ //GeneratePlayerInventory
+ 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 void onCraftMatrixChanged(IInventory par1IInventory){}
+
+
+
+ @Override
+ public void onCraftGuiClosed(EntityPlayer par1EntityPlayer){
+ super.onCraftGuiClosed(par1EntityPlayer);
+ }
+
+
+
+ @Override
+ public boolean canInteractWith(EntityPlayer par1EntityPlayer){
+ return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.toolAndWeaponCraftingTableID ? 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;
+ }
+
+
+
+ private void generateSlots(String activeTabs, IInventory[] inventorys){
+ int count = 0;
+ for(int i = 0;i < 3;i++){
+ for(int j = 0;j < 3;j++){
+ this.addSlotToContainer(new Slot(inventorys[0], count, 30 + 18 * j, 17 + 18 * i));
+ count++;
+ }
+ }
+ this.addSlotToContainer(new SlotToolAndWeaponCraftingResult(inventorys[0], count, 125, 37));
+ }
+
+}
package chemicraft;
+import cpw.mods.fml.common.Side;
+import cpw.mods.fml.common.asm.SideOnly;
import net.minecraft.src.Container;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.GuiContainer;
import net.minecraft.src.InventoryPlayer;
+@SideOnly(Side.CLIENT)
public class GuiChemicalCombinationTable extends GuiContainer {
/**
--- /dev/null
+package chemicraft;
+
+import cpw.mods.fml.common.Side;
+import cpw.mods.fml.common.asm.SideOnly;
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import net.minecraft.src.InventoryPlayer;
+
+@SideOnly(Side.CLIENT)
+public class GuiMaterialCraftingTable extends GuiContainer {
+
+ /**
+ * the TileEntity.
+ */
+ private TileEntityMaterialCraftingTable tileEntity;
+
+
+ /**
+ * the InventoryPlayer.
+ */
+ private InventoryPlayer inventoryPlayer;
+
+
+ /**
+ * the Container
+ */
+ private ContainerMaterialCraftingTable container;
+
+
+
+ public GuiMaterialCraftingTable(EntityPlayer par1EntityPlayer, TileEntityMaterialCraftingTable par2){
+ super(new ContainerMaterialCraftingTable(par1EntityPlayer, par2));
+ this.inventoryPlayer = par1EntityPlayer.inventory;
+ this.tileEntity = par2;
+ this.container = (ContainerMaterialCraftingTable) this.inventorySlots;
+ }
+
+
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
+ this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiMaterialCraftingTexture));
+ this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.Container;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import net.minecraft.src.InventoryPlayer;
+
+public class GuiToolAndWeaponCraftingTable extends GuiContainer {
+
+ /**
+ * the TileEntity.
+ */
+ private TileEntityToolAndWeaponCraftingTable tileEntity;
+
+
+ /**
+ * the InventoryPlayer.
+ */
+ private InventoryPlayer inventoryPlayer;
+
+
+ /**
+ * the Container
+ */
+ private ContainerToolAndWeaponCraftingTable container;
+
+
+
+ public GuiToolAndWeaponCraftingTable(EntityPlayer par1EntityPlayer, TileEntityToolAndWeaponCraftingTable par2){
+ super(new ContainerToolAndWeaponCraftingTable(par1EntityPlayer, par2));
+ this.inventoryPlayer = par1EntityPlayer.inventory;
+ this.tileEntity = par2;
+ this.container = (ContainerToolAndWeaponCraftingTable) this.inventorySlots;
+ }
+
+
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
+ this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiToolAndWeaponCraftingTexture));
+ this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+
+public class InventoryMaterialCrafting implements IInventory {
+
+ private ItemStack[] inventory = new ItemStack[3+9+1];
+
+ @Override
+ public int getSizeInventory() {
+ return inventory.length;
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int var1) {
+ return inventory[var1];
+ }
+
+ @Override
+ public ItemStack decrStackSize(int par1, int par2)
+ {
+ if (this.inventory[par1] != null)
+ {
+ ItemStack var3 = this.inventory[par1];
+ this.inventory[par1] = null;
+ return var3;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ @Override
+ public ItemStack getStackInSlotOnClosing(int par1)
+ {
+ if (this.inventory[par1] != null)
+ {
+ ItemStack var2 = this.inventory[par1];
+ this.inventory[par1] = null;
+ return var2;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ @Override
+ public void setInventorySlotContents(int var1, ItemStack var2) {
+ inventory[var1] = var2;
+ }
+
+ @Override
+ public String getInvName() {
+ return "MaterialCraftingInventory";
+ }
+
+ @Override
+ public int getInventoryStackLimit() {
+ return 64;
+ }
+
+ @Override
+ public void onInventoryChanged() {
+
+ }
+
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer var1) {
+ return true;
+ }
+
+ @Override
+ public void openChest() {
+
+ }
+
+ @Override
+ public void closeChest() {
+
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+
+public class InventoryToolAndWeaponCrafting implements IInventory {
+
+ private ItemStack[] inventory = new ItemStack[9+1];
+
+ @Override
+ public int getSizeInventory() {
+ return inventory.length;
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int var1) {
+ return inventory[var1];
+ }
+
+ @Override
+ public ItemStack decrStackSize(int par1, int par2)
+ {
+ if (this.inventory[par1] != null)
+ {
+ ItemStack var3 = this.inventory[par1];
+ this.inventory[par1] = null;
+ return var3;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ @Override
+ public ItemStack getStackInSlotOnClosing(int par1)
+ {
+ if (this.inventory[par1] != null)
+ {
+ ItemStack var2 = this.inventory[par1];
+ this.inventory[par1] = null;
+ return var2;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ @Override
+ public void setInventorySlotContents(int var1, ItemStack var2) {
+ inventory[var1] = var2;
+ }
+
+ @Override
+ public String getInvName() {
+ return "ToolAndWeaponCraftingInventory";
+ }
+
+ @Override
+ public int getInventoryStackLimit() {
+ return 64;
+ }
+
+ @Override
+ public void onInventoryChanged() {
+
+ }
+
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer var1) {
+ return true;
+ }
+
+ @Override
+ public void openChest() {
+
+ }
+
+ @Override
+ public void closeChest() {
+
+ }
+
+}
return packet;\r
}\r
\r
+ public static Packet getPacket(TileEntityToolAndWeaponCraftingTable tileEntity) {\r
+ ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
+ DataOutputStream var2 = new DataOutputStream(var1);\r
+\r
+ // Blockのx, y, z座標\r
+ int x, y, z;\r
+\r
+ // activeTab\r
+ String activeTab;\r
+\r
+ // x, y, z座標を代入\r
+ x = tileEntity.xCoord;\r
+ y = tileEntity.yCoord;\r
+ z = tileEntity.zCoord;\r
+\r
+ try {\r
+ // 座標書き込み\r
+ var2.writeInt(x);\r
+ var2.writeInt(y);\r
+ var2.writeInt(z);\r
+ tileEntity.writePacket(var2);\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
+ }\r
+\r
+ // パケットの作成\r
+ Packet250CustomPayload packet = new Packet250CustomPayload();\r
+ packet.channel = "chemicraft";\r
+ packet.data = var1.toByteArray();\r
+ packet.length = var1.size();\r
+ packet.isChunkDataPacket = true;\r
+ return packet;\r
+ }\r
+\r
+ public static Packet getPacket(TileEntityMaterialCraftingTable tileEntity) {\r
+ ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
+ DataOutputStream var2 = new DataOutputStream(var1);\r
+\r
+ // Blockのx, y, z座標\r
+ int x, y, z;\r
+\r
+ // activeTab\r
+ String activeTab;\r
+\r
+ // x, y, z座標を代入\r
+ x = tileEntity.xCoord;\r
+ y = tileEntity.yCoord;\r
+ z = tileEntity.zCoord;\r
+\r
+ try {\r
+ // 座標書き込み\r
+ var2.writeInt(x);\r
+ var2.writeInt(y);\r
+ var2.writeInt(z);\r
+ tileEntity.writePacket(var2);\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
+ }\r
+\r
+ // パケットの作成\r
+ Packet250CustomPayload packet = new Packet250CustomPayload();\r
+ packet.channel = "chemicraft";\r
+ packet.data = var1.toByteArray();\r
+ packet.length = var1.size();\r
+ packet.isChunkDataPacket = true;\r
+ return packet;\r
+ }\r
+\r
}\r
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+
+public class SlotMaterialCraftingResult extends Slot {
+
+ public SlotMaterialCraftingResult(IInventory par1iInventory, int par2, int par3, int par4) {
+ super(par1iInventory, par2, par3, par4);
+ }
+
+ @Override
+ public boolean isItemValid(ItemStack par1ItemStack)
+ {
+ return false;
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.Slot;
+
+public class SlotToolAndWeaponCraftingResult extends Slot {
+
+ public SlotToolAndWeaponCraftingResult(IInventory par1iInventory, int par2, int par3, int par4) {
+ super(par1iInventory, par2, par3, par4);
+ }
+
+ @Override
+ public boolean isItemValid(ItemStack par1ItemStack)
+ {
+ return false;
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import java.io.DataOutputStream;
+import java.util.ArrayList;
+
+import com.google.common.io.ByteArrayDataInput;
+
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.NBTTagCompound;
+import net.minecraft.src.NBTTagList;
+import net.minecraft.src.Packet;
+import net.minecraft.src.TileEntity;
+
+public class TileEntityMaterialCraftingTable extends TileEntity {
+
+ /**
+ * DecompositionのInventory
+ */
+ public IInventory materialCraftingInv = new InventoryMaterialCrafting();
+
+
+ public TileEntityMaterialCraftingTable() {
+ super();
+ }
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+ }
+
+
+ @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.materialCraftingInv.getSizeInventory())
+ {
+ this.materialCraftingInv.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+ }
+ }
+ }
+
+
+ @Override
+ public void writeToNBT(NBTTagCompound par1) {
+ super.writeToNBT(par1);
+
+ NBTTagList var2 = new NBTTagList();
+ for (int var3 = 0; var3 < this.materialCraftingInv.getSizeInventory(); ++var3)
+ {
+ if (this.materialCraftingInv.getStackInSlot(var3) != null)
+ {
+ NBTTagCompound var4 = new NBTTagCompound();
+ var4.setByte("Slot", (byte)var3);
+ this.materialCraftingInv.getStackInSlot(var3).writeToNBT(var4);
+ var2.appendTag(var4);
+ }
+ }
+ par1.setTag("Items", var2);
+ }
+
+
+ public IInventory[] getInventorys(){
+ ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
+ inventorys.add(this.materialCraftingInv);
+ return inventorys.toArray(new IInventory[1]);
+ }
+
+
+ @Override
+ public Packet getDescriptionPacket() {
+ return PacketHandler.getPacket(this);
+ }
+
+
+ public void readPacket(ByteArrayDataInput data) {
+ try {
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public void writePacket(DataOutputStream dos){
+ try {
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+}
--- /dev/null
+package chemicraft;
+
+import java.io.DataOutputStream;
+import java.util.ArrayList;
+
+import com.google.common.io.ByteArrayDataInput;
+
+import net.minecraft.src.IInventory;
+import net.minecraft.src.ItemStack;
+import net.minecraft.src.NBTTagCompound;
+import net.minecraft.src.NBTTagList;
+import net.minecraft.src.Packet;
+import net.minecraft.src.TileEntity;
+
+public class TileEntityToolAndWeaponCraftingTable extends TileEntity {
+
+ /**
+ * DecompositionのInventory
+ */
+ public IInventory toolAndCraftingInv = new InventoryToolAndWeaponCrafting();
+
+
+ public TileEntityToolAndWeaponCraftingTable() {
+ super();
+ }
+
+ @Override
+ public void updateEntity() {
+ super.updateEntity();
+ }
+
+
+ @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.toolAndCraftingInv.getSizeInventory())
+ {
+ this.toolAndCraftingInv.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+ }
+ }
+ }
+
+
+ @Override
+ public void writeToNBT(NBTTagCompound par1) {
+ super.writeToNBT(par1);
+
+ NBTTagList var2 = new NBTTagList();
+ for (int var3 = 0; var3 < this.toolAndCraftingInv.getSizeInventory(); ++var3)
+ {
+ if (this.toolAndCraftingInv.getStackInSlot(var3) != null)
+ {
+ NBTTagCompound var4 = new NBTTagCompound();
+ var4.setByte("Slot", (byte)var3);
+ this.toolAndCraftingInv.getStackInSlot(var3).writeToNBT(var4);
+ var2.appendTag(var4);
+ }
+ }
+ par1.setTag("Items", var2);
+ }
+
+
+ public IInventory[] getInventorys(){
+ ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
+ inventorys.add(this.toolAndCraftingInv);
+ return inventorys.toArray(new IInventory[1]);
+ }
+
+
+ @Override
+ public Packet getDescriptionPacket() {
+ return PacketHandler.getPacket(this);
+ }
+
+
+ public void readPacket(ByteArrayDataInput data) {
+ try {
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public void writePacket(DataOutputStream dos){
+ try {
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+}
import chemicraft.CommonProxy;
import chemicraft.GuiChemicalCombinationTable;
import chemicraft.GuiDecompositionTable;
+import chemicraft.GuiMaterialCraftingTable;
+import chemicraft.GuiToolAndWeaponCraftingTable;
import chemicraft.TileEntityChemicalCombinationTable;
import chemicraft.TileEntityDecompositionTable;
+import chemicraft.TileEntityMaterialCraftingTable;
+import chemicraft.TileEntityToolAndWeaponCraftingTable;
import cpw.mods.fml.client.FMLClientHandler;
public class ClientProxy extends CommonProxy {
return new GuiDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
}else if(tileEntity instanceof TileEntityChemicalCombinationTable){
return new GuiChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
+ }else if(tileEntity instanceof TileEntityToolAndWeaponCraftingTable){
+ return new GuiToolAndWeaponCraftingTable(player, (TileEntityToolAndWeaponCraftingTable) tileEntity);
+ }else if(tileEntity instanceof TileEntityMaterialCraftingTable){
+ return new GuiMaterialCraftingTable(player, (TileEntityMaterialCraftingTable) tileEntity);
}
return null;
}