--- /dev/null
+package chemicraft;
+
+import net.minecraft.src.BlockContainer;
+import net.minecraft.src.CreativeTabs;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.Material;
+import net.minecraft.src.TileEntity;
+import net.minecraft.src.World;
+
+public class BlockChemicalCombinationTable extends BlockContainer {
+
+ protected BlockChemicalCombinationTable(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.guiChemicalCombinationTableID, 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 TileEntityChemicalCombinationTable();
+ }
+
+}
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
-public class BlockChemicalCraftingTable extends BlockContainer {
+public class BlockDecompositionTable extends BlockContainer {
- public BlockChemicalCraftingTable(int par1, int par2, Material par3Material){
+ public BlockDecompositionTable(int par1, int par2, Material par3Material){
super(par1, par2, par3Material);
- this.setCreativeTab(CreativeTabs.tabBlock);
+ 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.guiChemicalCraftingTableID, par1World, par2, par3, par4);
+ par5EntityPlayer.openGui(ChemiCraft.instance, ChemiCraft.instance.guiDecompositionTableID, par1World, par2, par3, par4);
return true;
}
@Override
public int getBlockTextureFromSide(int par1)
{
- return this.blockIndexInTexture;
- /*
if(par1 == 0){
+ return 17;
+ }else if(par1 == 1){
return 0;
}else{
- return 1;
+ return 16;
}
- */
}
@Override
public TileEntity createNewTileEntity(World var1){
- return new TileEntityChemicalCraftingTable();
+ return new TileEntityDecompositionTable();
}
}
\r
/**\r
* ChemiCraft本体\r
- * \r
+ *\r
* @author P.C.C.\r
- * \r
+ *\r
*/\r
@Mod(modid = "chemiCraft", name = "ChemiCraft", version = "beta")\r
// ID,名前,バージョン\r
// クライアント、サーバー共に必要 1.3.2用\r
public class ChemiCraft {\r
\r
- public final String[] atomsName = { "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",\r
- "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium",\r
- "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttorium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium",\r
- "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium",\r
- "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum",\r
- "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium",\r
- "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium",\r
- "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium" };\r
-\r
- public final String[] atomsNameJP = { "水素", "ヘリウム", "リチウム", "ベリウム", "ホウ素", "炭素", "窒素", "酸素", "フッ素", "ネオン", "ナトリウム", "マグネシウム", "アルミニウム", "ケイ素", "リン", "硫黄", "塩素", "アルゴン", "カリウム", "カルシウム", "スカンジウム",\r
- "チタン", "バナジウム", "クロム", "マンガン", "鉄", "コバルト", "ニッケル", "銅", "亜鉛", "ガリウム", "ゲルマニウム", "ヒ素", "セレン", "臭素", "クリプトン", "ルビジウム", "ストロンチウム", "イットリウム", "ジルコニウム", "ニオブ", "モリブデン", "テクネチウム", "ルテニウム",\r
- "ロジウム", "パラジウム", "銀", "カドミウム", "インジウム", "スズ", "アンチモン", "テルル", "ヨウ素", "キセノン", "セシウム", "バリウム", "ランタン", "セリウム", "プラセオジム", "ネオジム", "プロメチウム", "サマリウム", "ユウロビウム", "ガドリニウム", "テルビウム", "ジスプロニウム",\r
- "ホルミウム", "エルビウム", "ツリウム", "イッテルビウム", "ルテチウム", "ハフニウム", "タンタル", "タングステン", "レニウム", "オスミウム", "イリジウム", "白金", "金", "水銀", "タリウム", "鉛", "ビスマス", "ポロニウム", "アスタチン", "ラドン", "フランシウム", "ラジウム",\r
- "アクチニウム", "トリウム", "プロトアクチウム", "ウラン", "ネプツニウム", "プルトニウム", "アメリシウム", "キュリウム", "バークリウム", "カルホルニウム", "アインスタイニウム", "フェルミウム", "メンデレビウム", "ノーベリウム", "ローレンシウム", "ラサホージウム", "ドブニウム", "シーボーギウム",\r
- "ボーリウム", "ハッシウム", "マイトネリウム", "ダームスタチウム", "レントゲニウム", "コペルニシウム", "ウンウントリウム", "ウンウンクアジウム", "ウンウンペンチウム", "ウンウンヘキシウム", "ウンウンセプチウム", "ウンウンオクチウム" };\r
-\r
- /**\r
- * このmodのインスタンス\r
- */\r
- @Mod.Instance("chemiCraft")\r
- public static ChemiCraft instance;\r
-\r
- /**\r
- * ChemiCraftのProxy\r
- */\r
- @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.CommonProxy")\r
- public static CommonProxy proxy;\r
-\r
- /**\r
- * ChemiCraftのCreativeTab\r
- */\r
- public CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");\r
-\r
- /**\r
- * ItemID\r
- */\r
- public int atomsID;\r
- public int compoundsID;\r
- public int gasCollectingBottleID;\r
-\r
- /**\r
- * BlockID\r
- */\r
- public int chemicalCraftingTableID;\r
-\r
- /**\r
- * GUIID\r
- */\r
- public int guiChemicalCraftingTableID;\r
-\r
- /**\r
- * Block型変数\r
- */\r
- public Block blockChemicalCraftingTable;\r
-\r
- /**\r
- * Item型変数\r
- */\r
- public Item itemAtoms;\r
- public Item itemCompounds;\r
- public Item itemGasCollectingBottle;\r
-\r
- /**\r
- * このmodで使用するTextureのパス\r
- */\r
- public String itemAtomsTexture = "/chemicraft/items/Atoms.png";\r
- public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";\r
- public String blockChemicalCraftingTableTexture = "/chemicraft/blocks/CCTable.png";\r
- public String guiDecompositionTexture = "/chemicraft/guis/Decomposition.png";\r
- public String guiChemicalCombinationTexture = "/chemicraft/guis/ChemicalCombination.png";\r
- public String guiToolAndWeaponCraftingTexture = "/chemicraft/guis/ToolAndWeaponCrafting.png";\r
- public String guiMaterialCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";\r
- public String guiTabs = "/chemicraft/guis/Tabs.png";\r
-\r
- /**\r
- * このmodに必要な補助クラスのインスタンス\r
- */\r
- private Auxiliary Auxiliary = new Auxiliary();\r
- private NameAuxiliary NameAuxiliary = Auxiliary.new NameAuxiliary();\r
-\r
-\r
- @Mod.PreInit\r
- public void chemiPreLoadMethod(FMLPreInitializationEvent event) {\r
- Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());\r
- cfg.load();\r
-\r
- Property chemicalCraftingTableIDProp = cfg.getBlock("chemicalCraftingTable", 200);\r
- Property atomsIDProp = cfg.getItem("atomsID", 25000);\r
- Property compoundsIDProp = cfg.getItem("compoundsID", 25001);\r
- Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);\r
- Property guiChemicalCraftingTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);\r
-\r
- this.chemicalCraftingTableID = chemicalCraftingTableIDProp.getInt();\r
- this.atomsID = atomsIDProp.getInt();\r
- this.compoundsID = compoundsIDProp.getInt();\r
- this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();\r
- this.guiChemicalCraftingTableID = guiChemicalCraftingTableIDProp.getInt();\r
-\r
- cfg.save();\r
- \r
- // 描画関係の読み込み\r
- proxy.registerRenderInformation();\r
- }\r
-\r
-\r
- @Mod.PostInit\r
- public void chemiPostLoadMethod(FMLPostInitializationEvent event) {\r
- // API用の処理\r
- this.NameAuxiliary.addName(itemCompounds, ChemiCraftAPI.getCompoundsName().toArray());\r
- this.NameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.getCompoundsLangName().toArray());\r
-\r
- // Blockを追加します\r
- this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(chemicalCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep)\r
- .setBlockName("ChemicalCraftingTable");\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
-\r
- // BlockをMinecraftに登録します\r
- GameRegistry.registerBlock(blockChemicalCraftingTable);\r
-\r
- // Blockの名前を設定します\r
- this.NameAuxiliary.addName(blockChemicalCraftingTable, "ChemicalCraftingTable");\r
- this.NameAuxiliary.addName(blockChemicalCraftingTable, "ja_JP", "科学作業台");\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
-\r
- // 化合物の名前を設定し追加します\r
- ChemiCraftAPI.addLangCompound("ja_JP", "Salt", "塩");\r
-\r
- // TileEntityを追加します\r
- GameRegistry.registerTileEntity(TileEntityChemicalCraftingTable.class, "TileEntityChemicalCraftingTable");\r
-\r
- // GUIを追加します\r
- NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
- }\r
+ public final String[] atomsName = { "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",\r
+ "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium",\r
+ "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttorium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium",\r
+ "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium",\r
+ "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum",\r
+ "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium",\r
+ "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium",\r
+ "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium" };\r
+\r
+ public final String[] atomsNameJP = { "水素", "ヘリウム", "リチウム", "ベリウム", "ホウ素", "炭素", "窒素", "酸素", "フッ素", "ネオン", "ナトリウム", "マグネシウム", "アルミニウム", "ケイ素", "リン", "硫黄", "塩素", "アルゴン", "カリウム", "カルシウム", "スカンジウム",\r
+ "チタン", "バナジウム", "クロム", "マンガン", "鉄", "コバルト", "ニッケル", "銅", "亜鉛", "ガリウム", "ゲルマニウム", "ヒ素", "セレン", "臭素", "クリプトン", "ルビジウム", "ストロンチウム", "イットリウム", "ジルコニウム", "ニオブ", "モリブデン", "テクネチウム", "ルテニウム",\r
+ "ロジウム", "パラジウム", "銀", "カドミウム", "インジウム", "スズ", "アンチモン", "テルル", "ヨウ素", "キセノン", "セシウム", "バリウム", "ランタン", "セリウム", "プラセオジム", "ネオジム", "プロメチウム", "サマリウム", "ユウロビウム", "ガドリニウム", "テルビウム", "ジスプロニウム",\r
+ "ホルミウム", "エルビウム", "ツリウム", "イッテルビウム", "ルテチウム", "ハフニウム", "タンタル", "タングステン", "レニウム", "オスミウム", "イリジウム", "白金", "金", "水銀", "タリウム", "鉛", "ビスマス", "ポロニウム", "アスタチン", "ラドン", "フランシウム", "ラジウム",\r
+ "アクチニウム", "トリウム", "プロトアクチウム", "ウラン", "ネプツニウム", "プルトニウム", "アメリシウム", "キュリウム", "バークリウム", "カルホルニウム", "アインスタイニウム", "フェルミウム", "メンデレビウム", "ノーベリウム", "ローレンシウム", "ラサホージウム", "ドブニウム", "シーボーギウム",\r
+ "ボーリウム", "ハッシウム", "マイトネリウム", "ダームスタチウム", "レントゲニウム", "コペルニシウム", "ウンウントリウム", "ウンウンクアジウム", "ウンウンペンチウム", "ウンウンヘキシウム", "ウンウンセプチウム", "ウンウンオクチウム" };\r
+\r
+ /**\r
+ * このmodのインスタンス\r
+ */\r
+ @Mod.Instance("chemiCraft")\r
+ public static ChemiCraft instance;\r
+\r
+ /**\r
+ * ChemiCraftのProxy\r
+ */\r
+ @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.CommonProxy")\r
+ public static CommonProxy proxy;\r
+\r
+ /**\r
+ * ChemiCraftのCreativeTab\r
+ */\r
+ public CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");\r
+\r
+ /**\r
+ * ItemID\r
+ */\r
+ public int atomsID;\r
+ public int compoundsID;\r
+ public int gasCollectingBottleID;\r
+\r
+ /**\r
+ * BlockID\r
+ */\r
+ public int decompositionTableID;\r
+ public int chemicalConbinationTableID;\r
+ public int toolAndWeaponCraftingTableID;\r
+ public int materialCraftingTableID;\r
+\r
+ /**\r
+ * GUIID\r
+ */\r
+ public int guiDecompositionTableID;\r
+ public int guiChemicalCombinationTableID;\r
+ public int guiToolAndWeaponCraftingTableID;\r
+ public int guiMaterialCraftingTableID;\r
+\r
+ /**\r
+ * Block型変数\r
+ */\r
+ public Block blockDecompositionTable;\r
+ public Block blockChemicalCombinationTable;\r
+ public Block blockToolAndWeaponCraftingTable;\r
+ public Block blockMaterialCraftingTable;\r
+\r
+ /**\r
+ * Item型変数\r
+ */\r
+ public Item itemAtoms;\r
+ public Item itemCompounds;\r
+ public Item itemGasCollectingBottle;\r
+\r
+ /**\r
+ * このmodで使用するTextureのパス\r
+ */\r
+ public String itemAtomsTexture = "/chemicraft/items/Atoms.png";\r
+ public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";\r
+ public String blockChemicalCraftingTableTexture = "/chemicraft/blocks/CCTable.png";\r
+ public String guiDecompositionTexture = "/chemicraft/guis/Decomposition.png";\r
+ public String guiChemicalCombinationTexture = "/chemicraft/guis/ChemicalCombination.png";\r
+ public String guiToolAndWeaponCraftingTexture = "/chemicraft/guis/ToolAndWeaponCrafting.png";\r
+ public String guiMaterialCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";\r
+ public String guiTabs = "/chemicraft/guis/Tabs.png";\r
+\r
+ /**\r
+ * このmodに必要な補助クラスのインスタンス\r
+ */\r
+ private Auxiliary Auxiliary = new Auxiliary();\r
+ private NameAuxiliary NameAuxiliary = Auxiliary.new NameAuxiliary();\r
+\r
+\r
+ @Mod.PreInit\r
+ public void chemiPreLoadMethod(FMLPreInitializationEvent event) {\r
+ Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());\r
+ cfg.load();\r
+\r
+ Property decompositionTableIDProp = cfg.getBlock("DecompositionTable", 200);\r
+ Property chemicalCombinationTableIDProp = cfg.getBlock("ChemicalCombinationID", 201);\r
+ Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 202);\r
+ Property materialCraftingTableIDProp = cfg.getBlock("MaterialCraftingTableID", 203);\r
+\r
+ Property atomsIDProp = cfg.getItem("AtomsID", 25000);\r
+ Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);\r
+ Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);\r
+\r
+ Property guiDecompositionTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);\r
+ Property guiChemicalCombinationTableIDProp = cfg.get("GUI", "GUIChemicalCombinationTableID", 1001);\r
+ Property guiToolAndWeaponCraftingTableIDProp = cfg.get("GUI", "GUIToolAndWeaponCraftingTableID", 1002);\r
+ Property guiMaterialCraftingTableIDProp = cfg.get("GUI", "GUIMaterialCraftingTableID", 1003);\r
+\r
+\r
+ this.decompositionTableID = decompositionTableIDProp.getInt();\r
+ this.chemicalConbinationTableID = chemicalCombinationTableIDProp.getInt();\r
+ this.toolAndWeaponCraftingTableID = toolAndWeaponCraftingTableIDProp.getInt();\r
+ this.materialCraftingTableID = materialCraftingTableIDProp.getInt();\r
+ this.atomsID = atomsIDProp.getInt();\r
+ this.compoundsID = compoundsIDProp.getInt();\r
+ this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();\r
+ this.guiDecompositionTableID = guiDecompositionTableIDProp.getInt();\r
+ this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();\r
+ this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();\r
+ this.guiMaterialCraftingTableID = guiMaterialCraftingTableIDProp.getInt();\r
+\r
+ cfg.save();\r
+\r
+ // 描画関係の読み込み\r
+ proxy.registerRenderInformation();\r
+ }\r
+\r
+\r
+ @Mod.PostInit\r
+ public void chemiPostLoadMethod(FMLPostInitializationEvent event) {\r
+ // API用の処理\r
+ this.NameAuxiliary.addName(itemCompounds, ChemiCraftAPI.getCompoundsName().toArray());\r
+ 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
+\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
+\r
+ // BlockをMinecraftに登録します\r
+ GameRegistry.registerBlock(blockDecompositionTable);\r
+ GameRegistry.registerBlock(blockChemicalCombinationTable);\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
+\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
+\r
+ // TileEntityを追加します\r
+ GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");\r
+ GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");\r
+\r
+ // GUIを追加します\r
+ NetworkRegistry.instance().registerGuiHandler(instance, proxy);\r
+\r
+ //Textureをpreloadします\r
+ proxy.registerTextures();\r
+ }\r
\r
}
\ No newline at end of file
+++ /dev/null
-package chemicraft;\r
-\r
-import net.minecraft.src.ItemStack;\r
-\r
-public class ChemiCraftTab {\r
-\r
- /**\r
- * TabのID\r
- */\r
- private int id;\r
-\r
-\r
- /**\r
- * TabにOverlayするItemStack\r
- */\r
- private ItemStack renderItemStack;\r
-\r
-\r
- /**\r
- * Tabの名前\r
- */\r
- private String tabName;\r
-\r
-\r
- /**\r
- * TabがActiveであるかどうか\r
- */\r
- private boolean theActive;\r
-\r
-\r
-\r
- /**\r
- * ChemiCraftTabを作成します\r
- * @param id\r
- * @param tabName\r
- * @param renderItemStack\r
- */\r
- public ChemiCraftTab(int id, String tabName, ItemStack renderItemStack){\r
- this.id = id;\r
- this.renderItemStack = renderItemStack;\r
- this.tabName = tabName;\r
- }\r
-\r
-\r
-\r
- /**\r
- * TabのIDを返します\r
- * @return TabのID\r
- */\r
- public int getID(){\r
- return this.id;\r
- }\r
-\r
-\r
-\r
- /**\r
- * TabにOverlayするItemStackを返します\r
- * @return TabにOverlayするItemStack\r
- */\r
- public ItemStack getRenderItemStack(){\r
- return this.renderItemStack;\r
- }\r
-\r
-\r
-\r
- /**\r
- * Tabの名前を返します\r
- * @return Tabの名前\r
- */\r
- public String getTabName(){\r
- return this.tabName;\r
- }\r
-\r
-\r
-\r
- /**\r
- * Tabがアクティブであるかを返します\r
- * @return Tabがアクティブであるか\r
- */\r
- public boolean isActive(){\r
- return theActive;\r
- }\r
-\r
-\r
-\r
- /**\r
- * Activeであるかを設定します\r
- * @param active\r
- */\r
- public void setActive(boolean active){\r
- this.theActive = active;\r
- }\r
-\r
-}\r
public class CommonProxy implements IGuiHandler {
+ public void registerTextures(){
+
+ }
+
public void registerRenderInformation() {
}
return null;
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
- if (tileEntity instanceof TileEntityChemicalCraftingTable) {
- return new ContainerChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
+ if (tileEntity instanceof TileEntityDecompositionTable) {
+ return new ContainerDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
+ }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
+ return new ContainerChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
}
return null;
}
+++ /dev/null
-package chemicraft;
-
-import net.minecraft.src.Entity;
-import net.minecraft.src.EntityPlayer;
-import net.minecraft.src.ItemStack;
-import net.minecraft.src.World;
-
-public class CompoundHandlerTest implements ICompoundHandler {
-
- @Override
- public void onRightClickHandler(ItemStack par1ItemStack, World par2World,
- EntityPlayer par3EntityPlayer) {}
-
-
-
- @Override
- public ItemStack onItemUseHandler(ItemStack par1ItemStack,
- EntityPlayer par2EntityPlayer, World par3World, int par4, int par5,
- int par6, int par7, float par8, float par9, float par10) {
- return null;
- }
-
-
-
- @Override
- public void onUpdateHandler(ItemStack par1ItemStack, World par2World,
- Entity par3Entity, int par4, boolean par5) {}
-
-}
--- /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 ContainerChemicalCombinationTable extends Container {
+
+ /**
+ * Worldのインスタンス
+ */
+ private World worldObj;
+
+
+ /**
+ * BlockのX, Y, Z座標
+ */
+ private int posX;
+ private int posY;
+ private int posZ;
+
+
+ /**
+ * the TileEntity.
+ */
+ private TileEntityChemicalCombinationTable tileEntity;
+
+
+
+ public ContainerChemicalCombinationTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCombinationTable par2)
+ {
+ super();
+ this.worldObj = par2.worldObj;
+ this.posX = par2.xCoord;
+ this.posY = par2.yCoord;
+ this.posZ = par2.zCoord;
+ this.tileEntity = par2;
+ //GenerateInventory
+ this.generateSlots("ChemicalCombination", 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.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;
+ }
+
+
+
+ private void generateSlots(String activeTabs, IInventory[] inventorys){
+ 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));
+ count++;
+ }
+ }
+ this.addSlotToContainer(new SlotChemicalCombinationResult(inventorys[0], count, 119 + 4, 28 + 4));
+ }
+}
import net.minecraft.src.Slot;
import net.minecraft.src.World;
-public class ContainerChemicalCraftingTable extends Container {
+public class ContainerDecompositionTable extends Container {
/**
* Worldのインスタンス
/**
* the TileEntity.
*/
- private TileEntityChemicalCraftingTable tileEntity;
+ private TileEntityDecompositionTable tileEntity;
- public ContainerChemicalCraftingTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCraftingTable par2)
+ public ContainerDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2)
{
super();
this.worldObj = par2.worldObj;
this.posZ = par2.zCoord;
this.tileEntity = par2;
//GenerateInventory
- this.generateSlots(par2.getActiveTab(), par2.getActiveInventory());
+ this.generateSlots("Decomposition", par2.getInventorys());
//GeneratePlayerInventory
int var3;
@Override
public boolean canInteractWith(EntityPlayer par1EntityPlayer){
- return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.chemicalCraftingTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
+ return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != ChemiCraft.instance.decompositionTableID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
}
private void generateSlots(String activeTabs, IInventory[] inventorys){
- if(activeTabs.equals("Decomposition")){
- int count = 0;
- for(int i = 0;i < 4;i++){
- for(int j = 0;j < 4;j++){
- this.addSlotToContainer(new SlotDecompositionResult(inventorys[0], count, 90 + 18 * j, 8 + 18 * i));
- count++;
- }
+ int count = 0;
+ for(int i = 0;i < 4;i++){
+ for(int j = 0;j < 4;j++){
+ this.addSlotToContainer(new SlotDecompositionResult(inventorys[0], count, 90 + 18 * j, 8 + 18 * i));
+ count++;
}
- this.addSlotToContainer(new Slot(inventorys[0], count, 25 + 4, 26 + 4));
- }else if(activeTabs.equals("ChemicalCombination")){
-
- }else{
- return;
}
+ this.addSlotToContainer(new Slot(inventorys[0], count, 24 + 4, 26 + 4));
}
}
--- /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 GuiChemicalCombinationTable extends GuiContainer {
+
+ /**
+ * the TileEntity.
+ */
+ private TileEntityChemicalCombinationTable tileEntity;
+
+
+ /**
+ * the InventoryPlayer.
+ */
+ private InventoryPlayer inventoryPlayer;
+
+
+ /**
+ * the Container
+ */
+ private ContainerChemicalCombinationTable container;
+
+
+
+ public GuiChemicalCombinationTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCombinationTable par2){
+ super(new ContainerChemicalCombinationTable(par1EntityPlayer, par2));
+ this.inventoryPlayer = par1EntityPlayer.inventory;
+ this.tileEntity = par2;
+ this.container = (ContainerChemicalCombinationTable) this.inventorySlots;
+ }
+
+
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
+ this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiChemicalCombinationTexture));
+ this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
+ }
+
+}
+++ /dev/null
-package chemicraft;\r
-\r
-import java.util.ArrayList;\r
-import java.util.HashMap;\r
-\r
-import net.minecraft.src.Block;\r
-import net.minecraft.src.EntityPlayer;\r
-import net.minecraft.src.GuiContainer;\r
-import net.minecraft.src.InventoryBasic;\r
-import net.minecraft.src.InventoryPlayer;\r
-import net.minecraft.src.Item;\r
-import net.minecraft.src.ItemStack;\r
-import cpw.mods.fml.common.Side;\r
-import cpw.mods.fml.common.asm.SideOnly;\r
-import cpw.mods.fml.common.network.PacketDispatcher;\r
-import cpw.mods.fml.common.network.Player;\r
-\r
-@SideOnly(Side.CLIENT)\r
-public class GuiChemicalCraftingTable extends GuiContainer {\r
-\r
- /**\r
- * TabListのArrayList\r
- */\r
- private ArrayList<ChemiCraftTab> tabList = new ArrayList<ChemiCraftTab>();\r
-\r
-\r
- /**\r
- * Gui画像のHashMap\r
- * キーの名前は拡張子を除くファイル名にする\r
- */\r
- private HashMap<String, Integer> guiImageMap = new HashMap<String, Integer>();\r
-\r
-\r
- /**\r
- * 画像のHashMap\r
- * キーの名前は拡張子を除くファイル名にする\r
- */\r
- private HashMap<String, Integer> otherImageMap = new HashMap<String, Integer>();\r
-\r
-\r
- /**\r
- * the TileEntity.\r
- */\r
- private TileEntityChemicalCraftingTable tileEntity;\r
-\r
-\r
- /**\r
- * the InventoryPlayer.\r
- */\r
- private InventoryPlayer inventoryPlayer;\r
-\r
-\r
- /**\r
- * the Container\r
- */\r
- private ContainerChemicalCraftingTable container;\r
-\r
-\r
-\r
- public GuiChemicalCraftingTable(EntityPlayer par1EntityPlayer, TileEntityChemicalCraftingTable par2){\r
- super(new ContainerChemicalCraftingTable(par1EntityPlayer, par2));\r
- //TileEntityを設定\r
- this.inventoryPlayer = par1EntityPlayer.inventory;\r
- this.tileEntity = par2;\r
- this.container = (ContainerChemicalCraftingTable) this.inventorySlots;\r
- //TabListにTabを追加する\r
- this.addTabs(0, "Decomposition", new ItemStack(Block.tnt.blockID, 1, 1));\r
- this.addTabs(1, "ChemicalCombination", new ItemStack(ChemiCraft.instance.itemAtoms, 1, 0));\r
- this.addTabs(2, "ToolAndWeaponCrafting", new ItemStack(Item.pickaxeSteel, 1, 0));\r
- this.addTabs(3, "MaterialCrafting", new ItemStack(Item.fireballCharge, 1, 0));\r
- //ActiveTabの初期化\r
- for(int i = 0;i < tabList.size();i++){\r
- String field_00001 = this.tabList.get(i).getTabName();\r
- String field_00002 = this.tileEntity.getActiveTab();\r
- if(field_00001.equals(field_00002)){\r
- this.tileEntity.setActiveTab(this.tabList.get(i).getTabName());\r
- }\r
- }\r
- }\r
-\r
-\r
-\r
- @Override\r
- protected void mouseClicked(int par1, int par2, int par3){\r
- super.mouseClicked(par1, par2, par3);\r
-\r
- int var1 = par1 - this.guiLeft;\r
- int var2 = par2 - this.guiTop;\r
- if(var1 < this.tabList.size() * 28 && var1 >= 0 && var2 < 0){\r
- String var3 = this.tabList.get(var1 / 28).getTabName();\r
- if(!var3.equals(this.tileEntity.getActiveTab())){\r
- this.tileEntity.setActiveTab(var3);\r
- this.inventoryPlayer.player.openGui(ChemiCraft.instance, ChemiCraft.instance.guiChemicalCraftingTableID, this.tileEntity.worldObj, this.tileEntity.xCoord, this.tileEntity.yCoord, this.tileEntity.zCoord);\r
- this.onGuiClosed();\r
- }\r
- }\r
- }\r
-\r
-\r
-\r
- @Override\r
- protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){\r
- //ActiveTab Reset.\r
- this.func_00003();\r
- //Texture Load.\r
- this.func_00002();\r
- //Draw Tabs.\r
- this.func_00001(par1, par2, par3);\r
- //Draw GUI\r
- if(this.tileEntity.getActiveTab().equals("Decomposition")){\r
- this.mc.renderEngine.bindTexture(this.guiImageMap.get("Decomposition"));\r
- this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);\r
- }\r
- }\r
-\r
-\r
-\r
- private void func_00001(float par1, int par2, int par3){\r
- int var1 = this.guiLeft;\r
- int var2 = this.guiTop - 32;\r
- for(int i = 0;i < this.tabList.size();i++){\r
- if(!this.tabList.get(i).isActive()){\r
- this.mc.renderEngine.bindTexture(this.otherImageMap.get("tabs"));\r
- this.drawTexturedModalRect(var1 + (28 * i), var2, 0, 0, 28, 32);\r
- this.itemRenderer.renderItemIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
- this.itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
- }else{\r
- this.mc.renderEngine.bindTexture(this.otherImageMap.get("tabs"));\r
- this.drawTexturedModalRect(var1 + (28 * i), var2, 0, 32, 28, 32);\r
- this.itemRenderer.renderItemIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
- this.itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, this.tabList.get(i).getRenderItemStack(), var1 + (28 * i) + 6, var2 + 9);\r
- }\r
- }\r
- }\r
-\r
-\r
-\r
- private void func_00002(){\r
- //guiImageMapに画像を格納する\r
- guiImageMap.put("Decomposition", this.mc.renderEngine.getTexture(ChemiCraft.instance.guiDecompositionTexture));\r
- //otherImageMapに画像を格納する\r
- otherImageMap.put("tabs", this.mc.renderEngine.getTexture(ChemiCraft.instance.guiTabs));\r
- }\r
-\r
-\r
-\r
- private void func_00003(){\r
- for(int i = 0;i < this.tabList.size();i++){\r
- if(!this.tabList.get(i).getTabName().equals(this.tileEntity.getActiveTab())){\r
- this.tabList.get(i).setActive(false);\r
- }else{\r
- this.tabList.get(i).setActive(true);\r
- }\r
- }\r
- }\r
-\r
-\r
-\r
- /**\r
- * ChemiCraftTabを追加します。\r
- * @param id TabのID\r
- * @param texture OverlayするTextureID\r
- * @param name Tabの名前\r
- * @throws Exception IDが重複している場合にスローされます\r
- */\r
- private void addTabs(int id, String name, ItemStack renderItemStack){\r
- for(int i = 0;i < this.tabList.size();i++){\r
- if(id == this.tabList.get(i).getID()){\r
- try {\r
- throw new Exception("ChemiCraft内でエラー:ChemiCraftTabのIDが重複しています");\r
- } catch (Exception e) {\r
- e.printStackTrace();\r
- }\r
- }\r
- }\r
- this.tabList.add(new ChemiCraftTab(id, name, renderItemStack));\r
- }\r
-\r
-}\r
--- /dev/null
+package chemicraft;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import net.minecraft.src.Block;
+import net.minecraft.src.EntityPlayer;
+import net.minecraft.src.GuiContainer;
+import net.minecraft.src.InventoryBasic;
+import net.minecraft.src.InventoryPlayer;
+import net.minecraft.src.Item;
+import net.minecraft.src.ItemStack;
+import cpw.mods.fml.common.Side;
+import cpw.mods.fml.common.asm.SideOnly;
+import cpw.mods.fml.common.network.PacketDispatcher;
+import cpw.mods.fml.common.network.Player;
+
+@SideOnly(Side.CLIENT)
+public class GuiDecompositionTable extends GuiContainer {
+
+ /**
+ * the TileEntity.
+ */
+ private TileEntityDecompositionTable tileEntity;
+
+
+ /**
+ * the InventoryPlayer.
+ */
+ private InventoryPlayer inventoryPlayer;
+
+
+ /**
+ * the Container
+ */
+ private ContainerDecompositionTable container;
+
+
+
+ public GuiDecompositionTable(EntityPlayer par1EntityPlayer, TileEntityDecompositionTable par2){
+ super(new ContainerDecompositionTable(par1EntityPlayer, par2));
+ this.inventoryPlayer = par1EntityPlayer.inventory;
+ this.tileEntity = par2;
+ this.container = (ContainerDecompositionTable) this.inventorySlots;
+ }
+
+
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){
+ this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture(ChemiCraft.instance.guiDecompositionTexture));
+ 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 InventoryChemicalCombination implements IInventory {
+
+ private ItemStack[] inventory = new ItemStack[16+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 "ChemicalCombinationInventory";
+ }
+
+ @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() {
+
+ }
+
+}
World worldClient;\r
World worldServer;\r
TileEntity tileEntity;\r
- TileEntityChemicalCraftingTable var2;\r
+ TileEntityDecompositionTable var2;\r
\r
// TileEntityのx, y, z座標\r
int x, y, z;\r
worldServer = ((EntityPlayer)player).worldObj;\r
if(worldClient != null){\r
tileEntity = worldClient.getBlockTileEntity(x, y, z);\r
- if (tileEntity instanceof TileEntityChemicalCraftingTable) {\r
- var2 = (TileEntityChemicalCraftingTable) tileEntity;\r
+ if (tileEntity instanceof TileEntityDecompositionTable) {\r
+ var2 = (TileEntityDecompositionTable) tileEntity;\r
var2.readPacket(var1);\r
}\r
return;\r
}\r
if(worldServer != null){\r
tileEntity = worldServer.getBlockTileEntity(x, y, z);\r
- if (tileEntity instanceof TileEntityChemicalCraftingTable) {\r
- var2 = (TileEntityChemicalCraftingTable) tileEntity;\r
+ if (tileEntity instanceof TileEntityDecompositionTable) {\r
+ var2 = (TileEntityDecompositionTable) tileEntity;\r
var2.readPacket(var1);\r
}\r
return;\r
}\r
\r
\r
- public static Packet getPacket(TileEntityChemicalCraftingTable tileEntity) {\r
+ public static Packet getPacket(TileEntityDecompositionTable tileEntity) {\r
ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
DataOutputStream var2 = new DataOutputStream(var1);\r
\r
packet.isChunkDataPacket = true;\r
return packet;\r
}\r
+\r
+ public static Packet getPacket(TileEntityChemicalCombinationTable 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 SlotChemicalCombinationResult extends Slot {
+
+ public SlotChemicalCombinationResult(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 TileEntityChemicalCombinationTable extends TileEntity {
+
+ /**
+ * DecompositionのInventory
+ */
+ public IInventory chemicalCombinationInv = new InventoryChemicalCombination();
+
+
+ public TileEntityChemicalCombinationTable() {
+ 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.chemicalCombinationInv.getSizeInventory())
+ {
+ this.chemicalCombinationInv.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+ }
+ }
+ }
+
+
+ @Override
+ public void writeToNBT(NBTTagCompound par1) {
+ super.writeToNBT(par1);
+
+ NBTTagList var2 = new NBTTagList();
+ for (int var3 = 0; var3 < this.chemicalCombinationInv.getSizeInventory(); ++var3)
+ {
+ if (this.chemicalCombinationInv.getStackInSlot(var3) != null)
+ {
+ NBTTagCompound var4 = new NBTTagCompound();
+ var4.setByte("Slot", (byte)var3);
+ this.chemicalCombinationInv.getStackInSlot(var3).writeToNBT(var4);
+ var2.appendTag(var4);
+ }
+ }
+ par1.setTag("Items", var2);
+ }
+
+
+ public IInventory[] getInventorys(){
+ ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
+ inventorys.add(this.chemicalCombinationInv);
+ 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 cpw.mods.fml.common.network.PacketDispatcher;
-public class TileEntityChemicalCraftingTable extends TileEntity {
+public class TileEntityDecompositionTable extends TileEntity {
/**
* DecompositionのInventory
*/
public IInventory decompositionInv = new InventoryDecomposition();
- /**
- * ActiveなTabの名前
- */
- private String activeTab;
-
- public TileEntityChemicalCraftingTable() {
+ public TileEntityDecompositionTable() {
super();
- // ActiveTabのデフォルトを設定
- this.activeTab = "Decomposition";
}
- int time = 0;
@Override
public void updateEntity() {
super.updateEntity();
public void readFromNBT(NBTTagCompound par1) {
super.readFromNBT(par1);
- this.activeTab = par1.getString("activeTab");
-
NBTTagList var2 = par1.getTagList("Items");
for (int var3 = 0; var3 < var2.tagCount(); ++var3)
{
public void writeToNBT(NBTTagCompound par1) {
super.writeToNBT(par1);
- par1.setString("activeTab", this.activeTab);
-
NBTTagList var2 = new NBTTagList();
for (int var3 = 0; var3 < this.decompositionInv.getSizeInventory(); ++var3)
{
}
- public String getActiveTab() {
- return this.activeTab;
- }
-
-
- public void setActiveTab(String activeTab) {
- this.activeTab = activeTab;
- PacketDispatcher.sendPacketToServer(this.getDescriptionPacket());
- }
-
-
- public IInventory[] getActiveInventory(){
+ public IInventory[] getInventorys(){
ArrayList<IInventory> inventorys = new ArrayList<IInventory>();
- if(this.activeTab.equals("Decomposition")){
- inventorys.add(this.decompositionInv);
- return inventorys.toArray(new IInventory[1]);
- }else{
- return null;
- }
+ inventorys.add(this.decompositionInv);
+ return inventorys.toArray(new IInventory[1]);
}
public void readPacket(ByteArrayDataInput data) {
try {
- this.activeTab = data.readUTF();
- for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
- int id = data.readInt();
- int damage = data.readInt();
- int size = data.readInt();
- if(id != 0){
- this.decompositionInv.setInventorySlotContents(i, new ItemStack(id, size, damage));
- }
- }
} catch (Exception e) {
e.printStackTrace();
}
public void writePacket(DataOutputStream dos){
try {
- dos.writeUTF(this.activeTab);
- for(int i = 0;i < this.decompositionInv.getSizeInventory();i++){
- if(this.decompositionInv.getStackInSlot(i) != null){
- dos.writeInt(this.decompositionInv.getStackInSlot(i).itemID);
- dos.writeInt(this.decompositionInv.getStackInSlot(i).getItemDamage());
- dos.writeInt(this.decompositionInv.getStackInSlot(i).stackSize);
- }else{
- dos.writeInt(0);
- dos.writeInt(0);
- dos.writeInt(0);
- }
- }
} catch (Exception e) {
e.printStackTrace();
}
import net.minecraftforge.client.MinecraftForgeClient;
import chemicraft.ChemiCraft;
import chemicraft.CommonProxy;
-import chemicraft.GuiChemicalCraftingTable;
-import chemicraft.TileEntityChemicalCraftingTable;
+import chemicraft.GuiChemicalCombinationTable;
+import chemicraft.GuiDecompositionTable;
+import chemicraft.TileEntityChemicalCombinationTable;
+import chemicraft.TileEntityDecompositionTable;
import cpw.mods.fml.client.FMLClientHandler;
public class ClientProxy extends CommonProxy {
- @Override
- public void registerRenderInformation() {
- // テクスチャのプリロードはここで行ってください
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.blockChemicalCraftingTableTexture);
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemAtomsTexture);
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemCompoundsTexture);
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiChemicalCombinationTexture);
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiDecompositionTexture);
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiMaterialCraftingTexture);
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiToolAndWeaponCraftingTexture);
- MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiTabs);
- }
-
-
- @Override
- public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
- if (!world.blockExists(x, y, z))
- return null;
-
- TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
- if (tileEntity instanceof TileEntityChemicalCraftingTable) {
- return new GuiChemicalCraftingTable(player, (TileEntityChemicalCraftingTable) tileEntity);
+ @Override
+ public void registerRenderInformation() {
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.blockChemicalCraftingTableTexture);
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemAtomsTexture);
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.itemCompoundsTexture);
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiChemicalCombinationTexture);
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiDecompositionTexture);
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiMaterialCraftingTexture);
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiToolAndWeaponCraftingTexture);
+ MinecraftForgeClient.preloadTexture(ChemiCraft.instance.guiTabs);
}
- return null;
- }
- @Override
- public World getClientWorld() {
- return FMLClientHandler.instance().getClient().theWorld;
- }
+ @Override
+ public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
+ if (!world.blockExists(x, y, z))
+ return null;
+
+ TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
+ if (tileEntity instanceof TileEntityDecompositionTable) {
+ return new GuiDecompositionTable(player, (TileEntityDecompositionTable) tileEntity);
+ }else if(tileEntity instanceof TileEntityChemicalCombinationTable){
+ return new GuiChemicalCombinationTable(player, (TileEntityChemicalCombinationTable) tileEntity);
+ }
+ return null;
+ }
+
+
+ @Override
+ public World getClientWorld() {
+ return FMLClientHandler.instance().getClient().theWorld;
+ }
}