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
166 this.NameAuxiliary.addName(itemCompounds, ChemiCraftAPI.instance.getCompoundsName().toArray());
\r
167 this.NameAuxiliary.addName(itemCompounds, "ja_JP", ChemiCraftAPI.instance.getCompoundsLangName().toArray());
\r
170 this.blockDecompositionTable = new BlockDecompositionTable(this.decompositionTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("DecompositionTable");
\r
171 this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ChemicalCombinationTable");
\r
172 this.blockToolAndWeaponCraftingTable = new BlockToolAndMaterialCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("ToolAndWeaponCraftingTable");
\r
173 this.blockMaterialCraftingTable = new BlockMaterialCraftingTable(materialCraftingTableID, 0, Material.ground).setHardness(2.0F).setResistance(0.0F).setStepSound(Block.soundStoneFootstep).setBlockName("MaterialCraftingTable");
\r
177 this.itemAtoms = new ItemAtoms(this.atomsID).setItemName("atoms");
\r
178 this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");
\r
179 this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle").setIconIndex(0);
\r
180 this.itemAtomGrenade = new ItemAtomGrenade(this.atomGrenadeID).setItemName("grenade").setIconIndex(1);
\r
182 // BlockをMinecraftに登録します
\r
183 GameRegistry.registerBlock(this.blockDecompositionTable);
\r
184 GameRegistry.registerBlock(this.blockChemicalCombinationTable);
\r
185 GameRegistry.registerBlock(this.blockToolAndWeaponCraftingTable);
\r
186 GameRegistry.registerBlock(this.blockMaterialCraftingTable);
\r
189 this.NameAuxiliary.addName(this.blockDecompositionTable, "DecompositionTable");
\r
190 this.NameAuxiliary.addName(this.blockDecompositionTable, "ja_JP", "分解台");
\r
191 this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ChemicalCombinationTable");
\r
192 this.NameAuxiliary.addName(this.blockChemicalCombinationTable, "ja_JP", "化合台");
\r
193 this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ToolAndWeaponCraftingTable");
\r
194 this.NameAuxiliary.addName(blockToolAndWeaponCraftingTable, "ja_JP", "ツール&武器製作台");
\r
195 this.NameAuxiliary.addName(blockMaterialCraftingTable, "MaterialCraftingTable");
\r
196 this.NameAuxiliary.addName(blockMaterialCraftingTable, "ja_JP", "素材製作台");
\r
200 this.NameAuxiliary.addName(this.itemAtoms, atomsName);
\r
201 this.NameAuxiliary.addName(this.itemAtoms, "ja_JP", atomsNameJP);
\r
202 this.NameAuxiliary.addName(this.itemGasCollectingBottle, "GasCollectingBottle");
\r
203 this.NameAuxiliary.addName(this.itemGasCollectingBottle, "ja_JP", "集気瓶");
\r
204 this.NameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");
\r
205 this.NameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");
\r
207 // TileEntityを追加します
\r
208 GameRegistry.registerTileEntity(TileEntityDecompositionTable.class, "DecompositionTable");
\r
209 GameRegistry.registerTileEntity(TileEntityChemicalCombinationTable.class, "TileEntityChemicalCombinationTable");
\r
210 GameRegistry.registerTileEntity(TileEntityToolAndWeaponCraftingTable.class, "TileEntityToolAndWeaponCraftingTable");
\r
211 GameRegistry.registerTileEntity(TileEntityMaterialCraftingTable.class, "TileEntityMaterialCraftingTable");
\r
214 NetworkRegistry.instance().registerGuiHandler(instance, proxy);
\r
216 //Textureをpreloadします
\r
217 proxy.registerTextures();
\r
220 GameRegistry.addRecipe(new ItemStack(this.blockDecompositionTable),
\r
222 "XYX", "ZAZ", "ZZZ",
\r
223 new Character('X'), new ItemStack(Item.ingotIron),
\r
224 new Character('Y'), new ItemStack(Block.workbench),
\r
225 new Character('Z'), new ItemStack(Block.stone),
\r
226 new Character('A'), new ItemStack(Block.tnt),
\r
228 GameRegistry.addRecipe(new ItemStack(this.blockChemicalCombinationTable),
\r
230 "XYX", "ZAZ", "ZZZ",
\r
231 new Character('X'), new ItemStack(Item.ingotIron),
\r
232 new Character('Y'), new ItemStack(Block.workbench),
\r
233 new Character('Z'), new ItemStack(Block.stone),
\r
234 new Character('A'), new ItemStack(Block.obsidian),
\r
236 GameRegistry.addRecipe(new ItemStack(this.blockToolAndWeaponCraftingTable),
\r
238 "XYX", "ZAZ", "ZZZ",
\r
239 new Character('X'), new ItemStack(Item.ingotIron),
\r
240 new Character('Y'), new ItemStack(Block.workbench),
\r
241 new Character('Z'), new ItemStack(Block.stone),
\r
242 new Character('A'), new ItemStack(Item.pickaxeSteel),
\r
244 GameRegistry.addRecipe(new ItemStack(this.blockMaterialCraftingTable),
\r
246 "XYX", "ZAZ", "ZZZ",
\r
247 new Character('X'), new ItemStack(Item.ingotIron),
\r
248 new Character('Y'), new ItemStack(Block.workbench),
\r
249 new Character('Z'), new ItemStack(Block.stone),
\r
250 new Character('A'), new ItemStack(this.itemAtoms, 1, 0),
\r
254 ChemiCraftAPI.instance.addMaterialRecipe(new ItemStack[]{new ItemStack(Item.gunpowder)}, new ItemStack(this.itemAtomGrenade, 16, 0), new NBTRecipeGrenade());
\r
258 public final static int HYDROGEN = 0;
\r
259 public final static int HELIUM = 1;
\r
260 public final static int LITHIUM = 2;
\r
261 public final static int BERYLLIUM = 3;
\r
262 public final static int BORON = 4;
\r
263 public final static int CARBON = 5;
\r
264 public final static int NITROGEN = 6;
\r
265 public final static int OXYGEN = 7;
\r
266 public final static int URANIUM = 91;
\r