1 <<<<<<< HEAD:common/chemicraft/ChemiCraft.java
4 import net.minecraft.block.Block;
\r
5 import net.minecraft.block.material.Material;
\r
6 import net.minecraft.creativetab.CreativeTabs;
\r
7 import net.minecraft.item.Item;
\r
8 import net.minecraft.item.ItemStack;
\r
9 import net.minecraftforge.common.BiomeManager;
\r
10 import net.minecraftforge.common.Configuration;
\r
11 import net.minecraftforge.common.DimensionManager;
\r
12 import net.minecraftforge.common.Property;
\r
13 import chemicraft.block.BlockChemicalCombinationTable;
\r
14 import chemicraft.block.BlockChemicalCraftingTable;
\r
15 import chemicraft.block.BlockPyrolysisTable;
\r
16 import chemicraft.block.BlockToolAndWeaponCraftingTable;
\r
17 import chemicraft.compounds.CompoundWater;
\r
18 import chemicraft.debug.CommandDeleteItem;
\r
19 import chemicraft.debug.CommandGenDebugRoom;
\r
20 import chemicraft.debug.CommandSetTile;
\r
21 import chemicraft.item.ItemAtoms;
\r
22 import chemicraft.item.ItemAtomsGrenade;
\r
23 import chemicraft.item.ItemCompounds;
\r
24 import chemicraft.item.ItemGasCollectingBottle;
\r
25 import chemicraft.system.CommonProxy;
\r
26 import chemicraft.system.PacketHandler;
\r
27 import chemicraft.tileentity.TileEntityChemicalCombinationTable;
\r
28 import chemicraft.tileentity.TileEntityChemicalCraftingTable;
\r
29 import chemicraft.tileentity.TileEntityPyrolysisTable;
\r
30 import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
\r
31 import chemicraft.util.Auxiliary;
\r
32 import chemicraft.util.Auxiliary.ArrayAuxiliary;
\r
33 import chemicraft.util.Auxiliary.NameAuxiliary;
\r
34 import chemicraft.util.CreativeTabAtoms;
\r
35 import chemicraft.util.NBTRecipeGrenade;
\r
36 import chemicraft.util.WorldProviderChemical;
\r
37 import cpw.mods.fml.common.Mod;
\r
38 import cpw.mods.fml.common.SidedProxy;
\r
39 import cpw.mods.fml.common.event.FMLPostInitializationEvent;
\r
40 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
\r
41 import cpw.mods.fml.common.event.FMLServerStartingEvent;
\r
42 import cpw.mods.fml.common.network.NetworkMod;
\r
43 import cpw.mods.fml.common.network.NetworkRegistry;
\r
44 import cpw.mods.fml.common.registry.GameRegistry;
\r
51 @Mod(modid = "chemiCraft", name = "ChemiCraft", version = "beta")
\r
52 @NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.6", channels = "chemicraft", packetHandler = PacketHandler.class)
\r
53 public class ChemiCraft {
\r
55 public static final String[] ATOMSNAME = {
\r
56 "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",
\r
57 "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium",
\r
58 "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttorium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium",
\r
59 "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium",
\r
60 "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum",
\r
61 "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium",
\r
62 "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium",
\r
63 "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium" };
\r
65 public static final String[] ATOMSNAMEJP = {
\r
66 "水素", "ヘリウム", "リチウム", "ベリウム", "ホウ素", "炭素", "窒素", "酸素", "フッ素", "ネオン", "ナトリウム", "マグネシウム", "アルミニウム", "ケイ素", "リン", "硫黄", "塩素", "アルゴン", "カリウム", "カルシウム", "スカンジウム",
\r
67 "チタン", "バナジウム", "クロム", "マンガン", "鉄", "コバルト", "ニッケル", "銅", "亜鉛", "ガリウム", "ゲルマニウム", "ヒ素", "セレン", "臭素", "クリプトン", "ルビジウム", "ストロンチウム", "イットリウム", "ジルコニウム", "ニオブ", "モリブデン", "テクネチウム", "ルテニウム",
\r
68 "ロジウム", "パラジウム", "銀", "カドミウム", "インジウム", "スズ", "アンチモン", "テルル", "ヨウ素", "キセノン", "セシウム", "バリウム", "ランタン", "セリウム", "プラセオジム", "ネオジム", "プロメチウム", "サマリウム", "ユウロビウム", "ガドリニウム", "テルビウム", "ジスプロニウム",
\r
69 "ホルミウム", "エルビウム", "ツリウム", "イッテルビウム", "ルテチウム", "ハフニウム", "タンタル", "タングステン", "レニウム", "オスミウム", "イリジウム", "白金", "金", "水銀", "タリウム", "鉛", "ビスマス", "ポロニウム", "アスタチン", "ラドン", "フランシウム", "ラジウム",
\r
70 "アクチニウム", "トリウム", "プロトアクチウム", "ウラン", "ネプツニウム", "プルトニウム", "アメリシウム", "キュリウム", "バークリウム", "カルホルニウム", "アインスタイニウム", "フェルミウム", "メンデレビウム", "ノーベリウム", "ローレンシウム", "ラサホージウム", "ドブニウム", "シーボーギウム",
\r
71 "ボーリウム", "ハッシウム", "マイトネリウム", "ダームスタチウム", "レントゲニウム", "コペルニシウム", "ウンウントリウム", "ウンウンクアジウム", "ウンウンペンチウム", "ウンウンヘキシウム", "ウンウンセプチウム", "ウンウンオクチウム" };
\r
76 @Mod.Instance("chemiCraft")
\r
77 public static ChemiCraft instance;
\r
82 @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.system.CommonProxy")
\r
83 public static CommonProxy proxy;
\r
86 * ChemiCraftのCreativeTab.
\r
88 public static final CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");
\r
94 public int compoundsID;
\r
95 public int gasCollectingBottleID;
\r
96 public int atomGrenadeID;
\r
101 public int pyrolysisTableID;
\r
102 public int chemicalConbinationTableID;
\r
103 public int toolAndWeaponCraftingTableID;
\r
104 public int chemicalCraftingTableID;
\r
109 public int guiPyrolysisTableID;
\r
110 public int guiChemicalCombinationTableID;
\r
111 public int guiToolAndWeaponCraftingTableID;
\r
112 public int guiChemicalCraftingTableID;
\r
117 public Block blockPyrolysisTable;
\r
118 public Block blockChemicalCombinationTable;
\r
119 public Block blockToolAndWeaponCraftingTable;
\r
120 public Block blockChemicalCraftingTable;
\r
125 public Item itemAtoms;
\r
126 public Item itemCompounds;
\r
127 public Item itemGasCollectingBottle;
\r
128 public Item itemAtomGrenade;
\r
131 * このmodで使用するTextureのパス.
\r
133 public String itemAtomsTexture = "/chemicraft/items/Atoms.png";
\r
134 public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";
\r
135 public String itemTexture = "/chemicraft/items/items.png";
\r
136 public String blockChemicalCraftingTableTexture = "/chemicraft/blocks/cctable.png";
\r
137 public String guiPyrolysisTexture = "/chemicraft/guis/Pyrolysis.png";
\r
138 public String guiChemicalCombinationTexture = "/chemicraft/guis/ChemicalCombination.png";
\r
139 public String guiToolAndWeaponCraftingTexture = "/chemicraft/guis/ToolAndWeaponCrafting.png";
\r
140 public String guiChemicalCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";
\r
143 * このmodに必要な補助クラスのインスタンス.
\r
145 public Auxiliary auxiliary = new Auxiliary();
\r
146 public NameAuxiliary nameAuxiliary = new NameAuxiliary();
\r
147 public ArrayAuxiliary arrayAuxiliary = new ArrayAuxiliary();
\r
149 private ChemiCraftAPI api = ChemiCraftAPI.getInstance();
\r
150 private ChemiCraftData chemicalData = new ChemiCraftData();
\r
153 public void chemiPreLoadMethod(final FMLPreInitializationEvent event) {
\r
154 Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
\r
157 Property pyrolysisTableIDProp = cfg.getBlock("PyrolysisTable", 2400);
\r
158 Property chemicalCombinationTableIDProp = cfg.getBlock("ChemicalCombinationID", 2401);
\r
159 Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 2402);
\r
160 Property chemicalCraftingTableIDProp = cfg.getBlock("ChemicalCraftingTableID", 2403);
\r
162 Property atomsIDProp = cfg.getItem("AtomsID", 25000);
\r
163 Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);
\r
164 Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);
\r
165 Property atomGrenadeIDProp = cfg.getItem("AtomGrenadeID", 25003);
\r
167 Property guiPyrolysisTableIDProp = cfg.get("GUI", "GUIPyrolysisID", 1000);
\r
168 Property guiChemicalCombinationTableIDProp = cfg.get("GUI", "GUIChemicalCombinationTableID", 1001);
\r
169 Property guiToolAndWeaponCraftingTableIDProp = cfg.get("GUI", "GUIToolAndWeaponCraftingTableID", 1002);
\r
170 Property guiChemicalCraftingTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1003);
\r
173 this.pyrolysisTableID = pyrolysisTableIDProp.getInt();
\r
174 this.chemicalConbinationTableID = chemicalCombinationTableIDProp.getInt();
\r
175 this.toolAndWeaponCraftingTableID = toolAndWeaponCraftingTableIDProp.getInt();
\r
176 this.chemicalCraftingTableID = chemicalCraftingTableIDProp.getInt();
\r
177 this.atomsID = atomsIDProp.getInt();
\r
178 this.compoundsID = compoundsIDProp.getInt();
\r
179 this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();
\r
180 this.atomGrenadeID = atomGrenadeIDProp.getInt();
\r
181 this.guiPyrolysisTableID = guiPyrolysisTableIDProp.getInt();
\r
182 this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();
\r
183 this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();
\r
184 this.guiChemicalCraftingTableID = guiChemicalCraftingTableIDProp.getInt();
\r
189 @Mod.ServerStarting
\r
190 public void serverStarting(final FMLServerStartingEvent event) {
\r
191 event.registerServerCommand(new CommandSetTile());
\r
192 event.registerServerCommand(new CommandDeleteItem());
\r
193 event.registerServerCommand(new CommandGenDebugRoom());
\r
197 public void chemiPostLoadMethod(final FMLPostInitializationEvent event) {
\r
198 this.settingProcessing(event);
\r
199 this.apiProcessing(event);
\r
203 private void settingProcessing(final FMLPostInitializationEvent event) {
\r
206 this.blockPyrolysisTable = new BlockPyrolysisTable(this.pyrolysisTableID, 0, Material.ground).
\r
208 setResistance(0.0F).
\r
209 setStepSound(Block.soundStoneFootstep).
\r
210 setBlockName("PyrolysisTable");
\r
211 this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).
\r
213 setResistance(0.0F).
\r
214 setStepSound(Block.soundStoneFootstep).
\r
215 setBlockName("ChemicalCombinationTable");
\r
216 this.blockToolAndWeaponCraftingTable = new BlockToolAndWeaponCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).
\r
218 setResistance(0.0F).
\r
219 setStepSound(Block.soundStoneFootstep).
\r
220 setBlockName("ToolAndWeaponCraftingTable");
\r
221 this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(chemicalCraftingTableID, 0, Material.ground).
\r
223 setResistance(0.0F).
\r
224 setStepSound(Block.soundStoneFootstep).
\r
225 setBlockName("ChemicalCraftingTable");
\r
228 this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");
\r
229 this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");
\r
230 this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle").setIconIndex(0);
\r
231 this.itemAtomGrenade = new ItemAtomsGrenade(this.atomGrenadeID).setItemName("grenade").setIconIndex(1);
\r
233 // BlockをMinecraftに登録します
\r
234 GameRegistry.registerBlock(this.blockPyrolysisTable, "BlockPyrolysisTable");
\r
235 GameRegistry.registerBlock(this.blockChemicalCombinationTable, "BlockChemicalCombinationTable");
\r
236 GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable, "BlockToolAndWeaponCraftingTable");
\r
237 GameRegistry.registerBlock(this.blockChemicalCraftingTable, "BlockMaterialCraftingTable");
\r
240 this.nameAuxiliary.addName(this.blockPyrolysisTable, "PyrolysisTable");
\r
241 this.nameAuxiliary.addName(this.blockPyrolysisTable, "ja_JP", "熱分解台");
\r
242 this.nameAuxiliary.addName(this.blockChemicalCombinationTable, "ChemicalCombinationTable");
\r
243 this.nameAuxiliary.addName(this.blockChemicalCombinationTable, "ja_JP", "化合台");
\r
244 this.nameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ToolAndWeaponCraftingTable");
\r
245 this.nameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ja_JP", "ツール&武器製作台");
\r
246 this.nameAuxiliary.addName(blockChemicalCraftingTable, "ChemicalCraftingTable");
\r
247 this.nameAuxiliary.addName(blockChemicalCraftingTable, "ja_JP", "素材製作台");
\r
250 this.nameAuxiliary.addName(this.itemAtoms, ATOMSNAME);
\r
251 this.nameAuxiliary.addName(this.itemAtoms, "ja_JP", ATOMSNAMEJP);
\r
252 this.nameAuxiliary.addName(this.itemGasCollectingBottle, "GasCollectingBottle");
\r
253 this.nameAuxiliary.addName(this.itemGasCollectingBottle, "ja_JP", "集気瓶");
\r
254 this.nameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");
\r
255 this.nameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");
\r
257 // TileEntityを追加します
\r
258 GameRegistry.registerTileEntity(TileEntityPyrolysisTable.class, "TileEntityPyrolysisTable");
\r
259 GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");
\r
260 GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");
\r
261 GameRegistry.registerTileEntity(TileEntityChemicalCraftingTable.class, "TileEntityChemicalCraftingTable");
\r
264 NetworkRegistry.instance().registerGuiHandler(instance, proxy);
\r
267 proxy.registerRenderInformation();
\r
270 GameRegistry.addRecipe(new ItemStack(this.blockPyrolysisTable),
\r
272 "XYX", "ZAZ", "ZZZ",
\r
273 Character.valueOf('X'), new ItemStack(Item.ingotIron),
\r
274 Character.valueOf('Y'), new ItemStack(Block.workbench),
\r
275 Character.valueOf('Z'), new ItemStack(Block.stone),
\r
276 Character.valueOf('A'), new ItemStack(Item.bucketLava),
\r
278 GameRegistry.addRecipe(new ItemStack(this.blockChemicalCombinationTable),
\r
280 "XYX", "ZAZ", "ZZZ",
\r
281 Character.valueOf('X'), new ItemStack(Item.ingotIron),
\r
282 Character.valueOf('Y'), new ItemStack(Block.workbench),
\r
283 Character.valueOf('Z'), new ItemStack(Block.stone),
\r
284 Character.valueOf('A'), new ItemStack(Block.obsidian),
\r
286 GameRegistry.addRecipe(new ItemStack(this.blockToolAndWeaponCraftingTable),
\r
288 "XYX", "ZAZ", "ZZZ",
\r
289 Character.valueOf('X'), new ItemStack(Item.ingotIron),
\r
290 Character.valueOf('Y'), new ItemStack(Block.workbench),
\r
291 Character.valueOf('Z'), new ItemStack(Block.stone),
\r
292 Character.valueOf('A'), new ItemStack(Item.pickaxeSteel),
\r
294 GameRegistry.addRecipe(new ItemStack(this.blockChemicalCraftingTable),
\r
296 "XYX", "ZAZ", "ZZZ",
\r
297 Character.valueOf('X'), new ItemStack(Item.ingotIron),
\r
298 Character.valueOf('Y'), new ItemStack(Block.workbench),
\r
299 Character.valueOf('Z'), new ItemStack(Block.stone),
\r
300 Character.valueOf('A'), new ItemStack(this.itemAtoms, 1, 0),
\r
304 api.addLangCompound("ja_JP", "CarbonMonoxide", "一酸化炭素");
\r
305 api.addLangCompound("ja_JP", "CarbonDioxide", "二酸化炭素");
\r
306 api.addLangCompound("ja_JP", "Water", "水");
\r
307 api.addCompound("Test");
\r
310 //化合物のHandlerを設定します
\r
311 api.settingCompoundHandler("Water", new CompoundWater());
\r
314 api.addChemicalCombinationRecipe(new String[]{"H", "O"}, new Integer[]{2, 1}, new ItemStack(this.itemCompounds, 1, api.getCompound("Water")));
\r
317 api.addMaterialRecipe(
\r
320 new ItemStack(Block.stone),
\r
322 new ItemStack(Block.stone),
\r
323 new ItemStack(Item.gunpowder),
\r
324 new ItemStack(Block.stone),
\r
326 new ItemStack(Block.stone),
\r
329 new ItemStack(this.itemAtomGrenade, 16, 0),
\r
330 new NBTRecipeGrenade()
\r
333 this.proxy.registerTickHandler();
\r
336 private void apiProcessing(final FMLPostInitializationEvent event) {
\r
338 this.nameAuxiliary.addName(itemCompounds, api.getInstance().getCompoundsName().toArray());
\r
339 for (int i = 0; i < api.getCompoundsLang().size(); i++) {
\r
340 this.nameAuxiliary.addName(itemCompounds, api.getCompoundsLang().get(i), api.getInstance().getCompoundsLangName().toArray());
\r
344 private void debug(final FMLPostInitializationEvent event) {
\r
351 import net.minecraft.block.Block;
352 import net.minecraft.block.material.Material;
353 import net.minecraft.creativetab.CreativeTabs;
354 import net.minecraft.item.Item;
355 import net.minecraft.item.ItemStack;
356 import net.minecraftforge.common.Configuration;
357 import net.minecraftforge.common.Property;
358 import chemicraft.block.BlockChemicalCombinationTable;
359 import chemicraft.block.BlockChemicalCraftingTable;
360 import chemicraft.block.BlockDecompositionTable;
361 import chemicraft.block.BlockElectrolysisTable;
362 import chemicraft.block.BlockToolAndWeaponCraftingTable;
363 import chemicraft.compounds.CompoundWater;
364 import chemicraft.debug.CommandDeleteItem;
365 import chemicraft.debug.CommandGenDebugRoom;
366 import chemicraft.debug.CommandSetTile;
367 import chemicraft.item.ItemAtoms;
368 import chemicraft.item.ItemAtomsGrenade;
369 import chemicraft.item.ItemCompounds;
370 import chemicraft.item.ItemGasCollectingBottle;
371 import chemicraft.system.CommonProxy;
372 import chemicraft.system.PacketHandler;
373 import chemicraft.tileentity.TileEntityChemicalCombinationTable;
374 import chemicraft.tileentity.TileEntityChemicalCraftingTable;
375 import chemicraft.tileentity.TileEntityDecompositionTable;
376 import chemicraft.tileentity.TileEntityElectrolysisTable;
377 import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
378 import chemicraft.util.Auxiliary;
379 import chemicraft.util.Auxiliary.ArrayAuxiliary;
380 import chemicraft.util.Auxiliary.NameAuxiliary;
381 import chemicraft.util.CreativeTabAtoms;
382 import chemicraft.util.NBTRecipeGrenade;
383 import cpw.mods.fml.common.Mod;
384 import cpw.mods.fml.common.SidedProxy;
385 import cpw.mods.fml.common.event.FMLPostInitializationEvent;
386 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
387 import cpw.mods.fml.common.event.FMLServerStartingEvent;
388 import cpw.mods.fml.common.network.NetworkMod;
389 import cpw.mods.fml.common.network.NetworkRegistry;
390 import cpw.mods.fml.common.registry.GameRegistry;
397 @Mod(modid = "chemiCraft", name = "ChemiCraft", version = "beta")
399 @NetworkMod(clientSideRequired = true, serverSideRequired = true, versionBounds = "1.4.6", channels = "chemicraft", packetHandler = PacketHandler.class)
400 // クライアント、サーバー共に必要 1.3.2用
401 public class ChemiCraft {
403 public static final String[] ATOMSNAME = {
404 "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",
405 "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel", "Copper", "Zinc", "Gallium",
406 "Germanium", "Arsenic", "Selenium", "Bromine", "Krypton", "Rubidium", "Strontium", "Yttorium", "Zirconium", "Niobium", "Molybdenum", "Technetium", "Ruthenium", "Rhodium", "Palladium",
407 "Silver", "Cadmium", "Indium", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium", "Lanthanum", "Cerium", "Praseodymium", "Neodymium", "Promethium", "Samarium",
408 "Europium", "Gadolinium", "Terbium", "Dysprosium", "Holmium", "Erbium", "Thulium", "Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum",
409 "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon", "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium",
410 "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium",
411 "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Ununquadium", "Ununpentium", "Ununhexium", "Ununseptium", "Ununoctium" };
413 public static final String[] ATOMSNAMEJP = {
414 "水素", "ヘリウム", "リチウム", "ベリウム", "ホウ素", "炭素", "窒素", "酸素", "フッ素", "ネオン", "ナトリウム", "マグネシウム", "アルミニウム", "ケイ素", "リン", "硫黄", "塩素", "アルゴン", "カリウム", "カルシウム", "スカンジウム",
415 "チタン", "バナジウム", "クロム", "マンガン", "鉄", "コバルト", "ニッケル", "銅", "亜鉛", "ガリウム", "ゲルマニウム", "ヒ素", "セレン", "臭素", "クリプトン", "ルビジウム", "ストロンチウム", "イットリウム", "ジルコニウム", "ニオブ", "モリブデン", "テクネチウム", "ルテニウム",
416 "ロジウム", "パラジウム", "銀", "カドミウム", "インジウム", "スズ", "アンチモン", "テルル", "ヨウ素", "キセノン", "セシウム", "バリウム", "ランタン", "セリウム", "プラセオジム", "ネオジム", "プロメチウム", "サマリウム", "ユウロビウム", "ガドリニウム", "テルビウム", "ジスプロニウム",
417 "ホルミウム", "エルビウム", "ツリウム", "イッテルビウム", "ルテチウム", "ハフニウム", "タンタル", "タングステン", "レニウム", "オスミウム", "イリジウム", "白金", "金", "水銀", "タリウム", "鉛", "ビスマス", "ポロニウム", "アスタチン", "ラドン", "フランシウム", "ラジウム",
418 "アクチニウム", "トリウム", "プロトアクチウム", "ウラン", "ネプツニウム", "プルトニウム", "アメリシウム", "キュリウム", "バークリウム", "カルホルニウム", "アインスタイニウム", "フェルミウム", "メンデレビウム", "ノーベリウム", "ローレンシウム", "ラサホージウム", "ドブニウム", "シーボーギウム",
419 "ボーリウム", "ハッシウム", "マイトネリウム", "ダームスタチウム", "レントゲニウム", "コペルニシウム", "ウンウントリウム", "ウンウンクアジウム", "ウンウンペンチウム", "ウンウンヘキシウム", "ウンウンセプチウム", "ウンウンオクチウム" };
424 @Mod.Instance("chemiCraft")
425 public static ChemiCraft instance;
430 @SidedProxy(clientSide = "chemicraft.client.ClientProxy", serverSide = "chemicraft.system.CommonProxy")
431 public static CommonProxy proxy;
434 * ChemiCraftのCreativeTab.
436 public static final CreativeTabs creativeTab = new CreativeTabAtoms("ChemiCraft");
442 public int compoundsID;
443 public int gasCollectingBottleID;
444 public int atomGrenadeID;
449 public int decompositionTableID;
450 public int chemicalConbinationTableID;
451 public int toolAndWeaponCraftingTableID;
452 public int chemicalCraftingTableID;
453 public int electrolysisTableID;
458 public int guiDecompositionTableID;
459 public int guiChemicalCombinationTableID;
460 public int guiToolAndWeaponCraftingTableID;
461 public int guiChemicalCraftingTableID;
462 public int guiElectrolysisTableID;
467 public Block blockDecompositionTable;
468 public Block blockChemicalCombinationTable;
469 public Block blockToolAndWeaponCraftingTable;
470 public Block blockChemicalCraftingTable;
471 public Block blockElectrolysisTable;
476 public Item itemAtoms;
477 public Item itemCompounds;
478 public Item itemGasCollectingBottle;
479 public Item itemAtomGrenade;
482 * このmodで使用するTextureのパス.
484 public String itemAtomsTexture = "/chemicraft/items/Atoms.png";
485 public String itemCompoundsTexture = "/chemicraft/items/Compounds.png";
486 public String itemTexture = "/chemicraft/items/items.png";
487 public String blockChemicalCraftingTableTexture = "/chemicraft/blocks/CCTable.png";
488 public String guiDecompositionTexture = "/chemicraft/guis/Decomposition.png";
489 public String guiChemicalCombinationTexture = "/chemicraft/guis/ChemicalCombination.png";
490 public String guiToolAndWeaponCraftingTexture = "/chemicraft/guis/ToolAndWeaponCrafting.png";
491 public String guiChemicalCraftingTexture = "/chemicraft/guis/MaterialCrafting.png";
492 public String guiElectrolysisTableTexture = "/chemicraft/guis/ElectrolysisTable.png";
495 * このmodに必要な補助クラスのインスタンス.
497 public Auxiliary auxiliary = new Auxiliary();
498 public NameAuxiliary nameAuxiliary = new NameAuxiliary();
499 public ArrayAuxiliary arrayAuxiliary = new ArrayAuxiliary();
501 private ChemiCraftAPI api = ChemiCraftAPI.getInstance();
502 private ChemiCraftData chemicalData = new ChemiCraftData();
505 public void chemiPreLoadMethod(final FMLPreInitializationEvent event) {
506 Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
509 Property decompositionTableIDProp = cfg.getBlock("DecompositionTable", 2400);
510 Property chemicalCombinationTableIDProp = cfg.getBlock("ChemicalCombinationID", 2401);
511 Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 2402);
512 Property chemicalCraftingTableIDProp = cfg.getBlock("ChemicalCraftingTableID", 2403);
513 Property electrolysisTableIDProp = cfg.getBlock("ElectrolysisTableID", 2404);
515 Property atomsIDProp = cfg.getItem("AtomsID", 25000);
516 Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);
517 Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);
518 Property atomGrenadeIDProp = cfg.getItem("AtomGrenadeID", 25003);
520 Property guiDecompositionTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1000);
521 Property guiChemicalCombinationTableIDProp = cfg.get("GUI", "GUIChemicalCombinationTableID", 1001);
522 Property guiToolAndWeaponCraftingTableIDProp = cfg.get("GUI", "GUIToolAndWeaponCraftingTableID", 1002);
523 Property guiChemicalCraftingTableIDProp = cfg.get("GUI", "GUIChemicalCraftingTableID", 1003);
524 Property guiElectrolysisTableIDProp = cfg.get("GUI", "GUIElectrolysisTableID", 1004);
527 this.decompositionTableID = decompositionTableIDProp.getInt();
528 this.chemicalConbinationTableID = chemicalCombinationTableIDProp.getInt();
529 this.toolAndWeaponCraftingTableID = toolAndWeaponCraftingTableIDProp.getInt();
530 this.chemicalCraftingTableID = chemicalCraftingTableIDProp.getInt();
531 this.electrolysisTableID = electrolysisTableIDProp.getInt();
532 this.atomsID = atomsIDProp.getInt();
533 this.compoundsID = compoundsIDProp.getInt();
534 this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();
535 this.atomGrenadeID = atomGrenadeIDProp.getInt();
536 this.guiDecompositionTableID = guiDecompositionTableIDProp.getInt();
537 this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();
538 this.guiToolAndWeaponCraftingTableID = guiToolAndWeaponCraftingTableIDProp.getInt();
539 this.guiChemicalCraftingTableID = guiChemicalCraftingTableIDProp.getInt();
540 this.guiElectrolysisTableID = guiElectrolysisTableIDProp.getInt();
546 public void serverStarting(final FMLServerStartingEvent event) {
547 event.registerServerCommand(new CommandSetTile());
548 event.registerServerCommand(new CommandDeleteItem());
549 event.registerServerCommand(new CommandGenDebugRoom());
553 public void chemiPostLoadMethod(final FMLPostInitializationEvent event) {
554 this.settingProcessing(event);
555 this.apiProcessing(event);
559 private void settingProcessing(final FMLPostInitializationEvent event) {
562 this.blockDecompositionTable = new BlockDecompositionTable(this.decompositionTableID, 0, Material.ground).
565 setStepSound(Block.soundStoneFootstep).
566 setBlockName("DecompositionTable");
567 this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).
570 setStepSound(Block.soundStoneFootstep).
571 setBlockName("ChemicalCombinationTable");
572 this.blockToolAndWeaponCraftingTable = new BlockToolAndWeaponCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).
575 setStepSound(Block.soundStoneFootstep).
576 setBlockName("ToolAndWeaponCraftingTable");
577 this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(chemicalCraftingTableID, 0, Material.ground).
580 setStepSound(Block.soundStoneFootstep).
581 setBlockName("ChemicalCraftingTable");
582 this.blockElectrolysisTable = new BlockElectrolysisTable(electrolysisTableID, 0, Material.ground).
585 setStepSound(Block.soundStoneFootstep).
586 setBlockName("ElectrolysisTable");
589 this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");
590 this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");
591 this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle").setIconIndex(0);
592 this.itemAtomGrenade = new ItemAtomsGrenade(this.atomGrenadeID).setItemName("grenade").setIconIndex(1);
594 // BlockをMinecraftに登録します
595 GameRegistry.registerBlock(this.blockDecompositionTable, "BlockDecompositionTable");
596 GameRegistry.registerBlock(this.blockChemicalCombinationTable, "BlockChemicalCombinationTable");
597 GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable, "BlockToolAndWeaponCraftingTable");
598 GameRegistry.registerBlock(this.blockChemicalCraftingTable, "BlockMaterialCraftingTable");
599 GameRegistry.registerBlock(this.blockElectrolysisTable, "ElectrolysisTable");
602 this.nameAuxiliary.addName(this.blockDecompositionTable, "DecompositionTable");
603 this.nameAuxiliary.addName(this.blockDecompositionTable, "ja_JP", "分解台");
604 this.nameAuxiliary.addName(this.blockChemicalCombinationTable, "ChemicalCombinationTable");
605 this.nameAuxiliary.addName(this.blockChemicalCombinationTable, "ja_JP", "化合台");
606 this.nameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ToolAndWeaponCraftingTable");
607 this.nameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ja_JP", "ツール&武器製作台");
608 this.nameAuxiliary.addName(blockChemicalCraftingTable, "ChemicalCraftingTable");
609 this.nameAuxiliary.addName(blockChemicalCraftingTable, "ja_JP", "素材製作台");
610 this.nameAuxiliary.addName(this.blockElectrolysisTable, "ElectrolysisTable");
611 this.nameAuxiliary.addName(this.blockElectrolysisTable, "ja_JP", "電気分解台");
614 this.nameAuxiliary.addName(this.itemAtoms, ATOMSNAME);
615 this.nameAuxiliary.addName(this.itemAtoms, "ja_JP", ATOMSNAMEJP);
616 this.nameAuxiliary.addName(this.itemGasCollectingBottle, "GasCollectingBottle");
617 this.nameAuxiliary.addName(this.itemGasCollectingBottle, "ja_JP", "集気瓶");
618 this.nameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");
619 this.nameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");
622 GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");
623 GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");
624 GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");
625 GameRegistry.registerTileEntity(TileEntityChemicalCraftingTable.class, "TileEntityChemicalCraftingTable");
626 GameRegistry.registerTileEntity(TileEntityElectrolysisTable.class, "TileEntityElectrolysisTable");
629 NetworkRegistry.instance().registerGuiHandler(instance, proxy);
632 proxy.registerRenderInformation();
635 GameRegistry.addRecipe(new ItemStack(this.blockDecompositionTable),
638 Character.valueOf('X'), new ItemStack(Item.ingotIron),
639 Character.valueOf('Y'), new ItemStack(Block.workbench),
640 Character.valueOf('Z'), new ItemStack(Block.stone),
641 Character.valueOf('A'), new ItemStack(Block.tnt),
643 GameRegistry.addRecipe(new ItemStack(this.blockChemicalCombinationTable),
646 Character.valueOf('X'), new ItemStack(Item.ingotIron),
647 Character.valueOf('Y'), new ItemStack(Block.workbench),
648 Character.valueOf('Z'), new ItemStack(Block.stone),
649 Character.valueOf('A'), new ItemStack(Block.obsidian),
651 GameRegistry.addRecipe(new ItemStack(this.blockToolAndWeaponCraftingTable),
654 Character.valueOf('X'), new ItemStack(Item.ingotIron),
655 Character.valueOf('Y'), new ItemStack(Block.workbench),
656 Character.valueOf('Z'), new ItemStack(Block.stone),
657 Character.valueOf('A'), new ItemStack(Item.pickaxeSteel),
659 GameRegistry.addRecipe(new ItemStack(this.blockChemicalCraftingTable),
662 Character.valueOf('X'), new ItemStack(Item.ingotIron),
663 Character.valueOf('Y'), new ItemStack(Block.workbench),
664 Character.valueOf('Z'), new ItemStack(Block.stone),
665 Character.valueOf('A'), new ItemStack(this.itemAtoms, 1, 0),
669 api.addLangCompound("ja_JP", "CarbonMonoxide", "一酸化炭素");
670 api.addLangCompound("ja_JP", "CarbonDioxide", "二酸化炭素");
671 api.addLangCompound("ja_JP", "Water", "水");
672 api.addCompound("Test");
676 api.settingCompoundHandler("Water", new CompoundWater());
679 api.addChemicalCombinationRecipe(new String[]{"C", "O"}, new Integer[]{1, 2}, new ItemStack(this.itemCompounds, 1, api.getCompound("CarbonDioxide")));
680 api.addChemicalCombinationRecipe(new String[]{"H", "O"}, new Integer[]{2, 1}, new ItemStack(this.itemCompounds, 1, api.getCompound("Water")));
683 api.addMaterialRecipe(
686 new ItemStack(Block.stone),
688 new ItemStack(Block.stone),
689 new ItemStack(Item.gunpowder),
690 new ItemStack(Block.stone),
692 new ItemStack(Block.stone),
695 new ItemStack(this.itemAtomGrenade, 16, 0),
696 new NBTRecipeGrenade()
700 private void apiProcessing(final FMLPostInitializationEvent event) {
702 this.nameAuxiliary.addName(itemCompounds, api.getInstance().getCompoundsName().toArray());
703 for (int i = 0; i < api.getCompoundsLang().size(); i++) {
704 this.nameAuxiliary.addName(itemCompounds, api.getCompoundsLang().get(i), api.getInstance().getCompoundsLangName().toArray());
708 private void debug(final FMLPostInitializationEvent event) {
712 >>>>>>> cbf016a981df6758b057ca883a1527676a1a9ec3:src/chemicraft/ChemiCraft.java