3 import net.minecraft.src.Block;
\r
4 import net.minecraft.src.CreativeTabs;
\r
5 import net.minecraft.src.Item;
\r
6 import net.minecraft.src.ItemStack;
\r
7 import net.minecraft.src.Material;
\r
8 import net.minecraftforge.common.Configuration;
\r
9 import net.minecraftforge.common.Property;
\r
10 import chemicraft.Auxiliary.NameAuxiliary;
\r
11 import cpw.mods.fml.common.Mod;
\r
12 import cpw.mods.fml.common.SidedProxy;
\r
13 import cpw.mods.fml.common.event.FMLPostInitializationEvent;
\r
14 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
\r
15 import cpw.mods.fml.common.network.NetworkMod;
\r
16 import cpw.mods.fml.common.network.NetworkRegistry;
\r
17 import cpw.mods.fml.common.registry.GameRegistry;
\r
25 @Mod(modid = "chemiCraft", name = "ChemiCraft", version = "beta")
\r
27 @NetworkMod(clientSideRequired = true, serverSideRequired = false, versionBounds = "1.3.2", channels = "chemicraft", packetHandler = PacketHandler.class)
\r
28 // クライアント、サーバー共に必要 1.3.2用
\r
29 public class ChemiCraft {
\r
31 public final String[] atomsName = { "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",
\r
32 "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium",
\r
33 "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttorium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium",
\r
34 "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium",
\r
35 "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum",
\r
36 "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium",
\r
37 "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium",
\r
38 "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium" };
\r
40 public final String[] atomsNameJP = { "水素", "ヘリウム", "リチウム", "ベリウム", "ホウ素", "炭素", "窒素", "酸素", "フッ素", "ネオン", "ナトリウム", "マグネシウム", "アルミニウム", "ケイ素", "リン", "硫黄", "塩素", "アルゴン", "カリウム", "カルシウム", "スカンジウム",
\r
41 "チタン", "バナジウム", "クロム", "マンガン", "鉄", "コバルト", "ニッケル", "銅", "亜鉛", "ガリウム", "ゲルマニウム", "ヒ素", "セレン", "臭素", "クリプトン", "ルビジウム", "ストロンチウム", "イットリウム", "ジルコニウム", "ニオブ", "モリブデン", "テクネチウム", "ルテニウム",
\r
42 "ロジウム", "パラジウム", "銀", "カドミウム", "インジウム", "スズ", "アンチモン", "テルル", "ヨウ素", "キセノン", "セシウム", "バリウム", "ランタン", "セリウム", "プラセオジム", "ネオジム", "プロメチウム", "サマリウム", "ユウロビウム", "ガドリニウム", "テルビウム", "ジスプロニウム",
\r
43 "ホルミウム", "エルビウム", "ツリウム", "イッテルビウム", "ルテチウム", "ハフニウム", "タンタル", "タングステン", "レニウム", "オスミウム", "イリジウム", "白金", "金", "水銀", "タリウム", "鉛", "ビスマス", "ポロニウム", "アスタチン", "ラドン", "フランシウム", "ラジウム",
\r
44 "アクチニウム", "トリウム", "プロトアクチウム", "ウラン", "ネプツニウム", "プルトニウム", "アメリシウム", "キュリウム", "バークリウム", "カルホルニウム", "アインスタイニウム", "フェルミウム", "メンデレビウム", "ノーベリウム", "ローレンシウム", "ラサホージウム", "ドブニウム", "シーボーギウム",
\r
45 "ボーリウム", "ハッシウム", "マイトネリウム", "ダームスタチウム", "レントゲニウム", "コペルニシウム", "ウンウントリウム", "ウンウンクアジウム", "ウンウンペンチウム", "ウンウンヘキシウム", "ウンウンセプチウム", "ウンウンオクチウム" };
\r
50 @Mod.Instance("chemiCraft")
\r
51 public static ChemiCraft instance;
\r
56 @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.CommonProxy")
\r
57 public static CommonProxy proxy;
\r
60 * ChemiCraftのCreativeTab
\r
62 public CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");
\r
68 public int compoundsID;
\r
69 public int gasCollectingBottleID;
\r
70 public int atomGrenadeID;
\r
75 public int decompositionTableID;
\r
76 public int chemicalConbinationTableID;
\r
77 public int toolAndWeaponCraftingTableID;
\r
78 public int materialCraftingTableID;
\r
83 public int guiDecompositionTableID;
\r
84 public int guiChemicalCombinationTableID;
\r
85 public int guiToolAndWeaponCraftingTableID;
\r
86 public int guiMaterialCraftingTableID;
\r
91 public static Block blockDecompositionTable;
\r
92 public static Block blockChemicalCombinationTable;
\r
93 public static Block blockToolAndWeaponCraftingTable;
\r
94 public static Block blockMaterialCraftingTable;
\r
99 public static Item itemAtoms;
\r
100 public static Item itemCompounds;
\r
101 public static Item itemGasCollectingBottle;
\r
102 public static Item itemAtomGrenade;
\r
105 * このmodで使用するTextureのパス
\r
107 public String itemAtomsTexture = "/chemicraft/items/Atoms.png";
\r
108 public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";
\r
109 public String itemTexture = "/chemicraft/items/items.png";
\r
110 public String blockChemicalCraftingTableTexture = "/chemicraft/blocks/CCTable.png";
\r
111 public String guiDecompositionTexture = "/chemicraft/guis/Decomposition.png";
\r
112 public String guiChemicalCombinationTexture = "/chemicraft/guis/ChemicalCombination.png";
\r
113 public String guiToolAndWeaponCraftingTexture = "/chemicraft/guis/ToolAndWeaponCrafting.png";
\r
114 public String guiMaterialCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";
\r
117 * このmodに必要な補助クラスのインスタンス
\r
119 private Auxiliary Auxiliary = new Auxiliary();
\r
120 private NameAuxiliary NameAuxiliary = Auxiliary.new NameAuxiliary();
\r
123 public void chemiPreLoadMethod(FMLPreInitializationEvent event) {
\r
124 Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
\r
127 Property decompositionTableIDProp = cfg.getBlock("DecompositionTable", 2400);
\r
128 Property chemicalCombinationTableIDProp = cfg.getBlock("ChemicalCombinationID", 2401);
\r
129 Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 2402);
\r
130 Property materialCraftingTableIDProp = cfg.getBlock("MaterialCraftingTableID", 2403);
\r
132 Property atomsIDProp = cfg.getItem("AtomsID", 25000);
\r
133 Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);
\r
134 Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);
\r
135 Property atomGrenadeIDProp = cfg.getItem("AtomGrenadeID", 25003);
\r
137 Property guiDecompositionTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);
\r
138 Property guiChemicalCombinationTableIDProp = cfg.get("GUI", "GUIChemicalCombinationTableID", 1001);
\r
139 Property guiToolAndWeaponCraftingTableIDProp = cfg.get("GUI", "GUIToolAndWeaponCraftingTableID", 1002);
\r
140 Property guiMaterialCraftingTableIDProp = cfg.get("GUI", "GUIMaterialCraftingTableID", 1003);
\r
143 this.decompositionTableID = decompositionTableIDProp.getInt();
\r
144 this.chemicalConbinationTableID = chemicalCombinationTableIDProp.getInt();
\r
145 this.toolAndWeaponCraftingTableID = toolAndWeaponCraftingTableIDProp.getInt();
\r
146 this.materialCraftingTableID = materialCraftingTableIDProp.getInt();
\r
147 this.atomsID = atomsIDProp.getInt();
\r
148 this.compoundsID = compoundsIDProp.getInt();
\r
149 this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();
\r
150 this.atomGrenadeID = atomGrenadeIDProp.getInt();
\r
151 this.guiDecompositionTableID = guiDecompositionTableIDProp.getInt();
\r
152 this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();
\r
153 this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();
\r
154 this.guiMaterialCraftingTableID = guiMaterialCraftingTableIDProp.getInt();
\r
159 proxy.registerRenderInformation();
\r
164 public void chemiPostLoadMethod(FMLPostInitializationEvent event) {
\r
165 this.settingProcessing(event);
\r
166 this.apiProcessing(event);
\r
169 private void settingProcessing(FMLPostInitializationEvent event){
\r
171 this.blockDecompositionTable = new BlockDecompositionTable(this.decompositionTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("DecompositionTable");
\r
172 this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCombinationTable");
\r
173 this.blockToolAndWeaponCraftingTable = new BlockToolAndMaterialCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ToolAndWeaponCraftingTable");
\r
174 this.blockMaterialCraftingTable = new BlockMaterialCraftingTable(materialCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("MaterialCraftingTable");
\r
178 this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");
\r
179 this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");
\r
180 this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle").setIconIndex(0);
\r
181 this.itemAtomGrenade = new ItemAtomGrenade(this.atomGrenadeID).setItemName("grenade").setIconIndex(1);
\r
183 // BlockをMinecraftに登録します
\r
184 GameRegistry.registerBlock(this.blockDecompositionTable);
\r
185 GameRegistry.registerBlock(this.blockChemicalCombinationTable);
\r
186 GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable);
\r
187 GameRegistry.registerBlock(this.blockMaterialCraftingTable);
\r
190 this.NameAuxiliary.addName(this.blockDecompositionTable, "DecompositionTable");
\r
191 this.NameAuxiliary.addName(this.blockDecompositionTable, "ja_JP", "分解台");
\r
192 this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ChemicalCombinationTable");
\r
193 this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ja_JP", "化合台");
\r
194 this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ToolAndWeaponCraftingTable");
\r
195 this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ja_JP", "ツール&武器製作台");
\r
196 this.NameAuxiliary.addName(blockMaterialCraftingTable, "MaterialCraftingTable");
\r
197 this.NameAuxiliary.addName(blockMaterialCraftingTable, "ja_JP", "素材製作台");
\r
201 this.NameAuxiliary.addName(this.itemAtoms, atomsName);
\r
202 this.NameAuxiliary.addName(this.itemAtoms, "ja_JP", atomsNameJP);
\r
203 this.NameAuxiliary.addName(this.itemGasCollectingBottle, "GasCollectingBottle");
\r
204 this.NameAuxiliary.addName(this.itemGasCollectingBottle, "ja_JP", "集気瓶");
\r
205 this.NameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");
\r
206 this.NameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");
\r
208 // TileEntityを追加します
\r
209 GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");
\r
210 GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");
\r
211 GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");
\r
212 GameRegistry.registerTileEntity(TileEntityMaterialCraftingTable.class, "TileEntityMaterialCraftingTable");
\r
215 NetworkRegistry.instance().registerGuiHandler(instance, proxy);
\r
217 //Textureをpreloadします
\r
218 proxy.registerTextures();
\r
221 GameRegistry.addRecipe(new ItemStack(this.blockDecompositionTable),
\r
223 "XYX", "ZAZ", "ZZZ",
\r
224 new Character('X'), new ItemStack(Item.ingotIron),
\r
225 new Character('Y'), new ItemStack(Block.workbench),
\r
226 new Character('Z'), new ItemStack(Block.stone),
\r
227 new Character('A'), new ItemStack(Block.tnt),
\r
229 GameRegistry.addRecipe(new ItemStack(this.blockChemicalCombinationTable),
\r
231 "XYX", "ZAZ", "ZZZ",
\r
232 new Character('X'), new ItemStack(Item.ingotIron),
\r
233 new Character('Y'), new ItemStack(Block.workbench),
\r
234 new Character('Z'), new ItemStack(Block.stone),
\r
235 new Character('A'), new ItemStack(Block.obsidian),
\r
237 GameRegistry.addRecipe(new ItemStack(this.blockToolAndWeaponCraftingTable),
\r
239 "XYX", "ZAZ", "ZZZ",
\r
240 new Character('X'), new ItemStack(Item.ingotIron),
\r
241 new Character('Y'), new ItemStack(Block.workbench),
\r
242 new Character('Z'), new ItemStack(Block.stone),
\r
243 new Character('A'), new ItemStack(Item.pickaxeSteel),
\r
245 GameRegistry.addRecipe(new ItemStack(this.blockMaterialCraftingTable),
\r
247 "XYX", "ZAZ", "ZZZ",
\r
248 new Character('X'), new ItemStack(Item.ingotIron),
\r
249 new Character('Y'), new ItemStack(Block.workbench),
\r
250 new Character('Z'), new ItemStack(Block.stone),
\r
251 new Character('A'), new ItemStack(this.itemAtoms, 1, 0),
\r
255 ChemiCraftAPI.instance.addMaterialRecipe(new ItemStack[]{new ItemStack(Item.gunpowder)}, new ItemStack(this.itemAtomGrenade, 16, 0), new NBTRecipeGrenade());
\r
259 private void apiProcessing(FMLPostInitializationEvent event){
\r
261 this.NameAuxiliary.addName(itemCompounds, ChemiCraftAPI.instance.getCompoundsName().toArray());
\r
262 this.NameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.instance.getCompoundsLangName().toArray());
\r
265 public final static int HYDROGEN = 0;
\r
266 public final static int HELIUM = 1;
\r
267 public final static int LITHIUM = 2;
\r
268 public final static int BERYLLIUM = 3;
\r
269 public final static int BORON = 4;
\r
270 public final static int CARBON = 5;
\r
271 public final static int NITROGEN = 6;
\r
272 public final static int OXYGEN = 7;
\r
273 public final static int URANIUM = 91;
\r