import pcc.chemicraft.block.BlockToolAndWeaponCraftingTable;
import pcc.chemicraft.compounds.CompoundDebug;
import pcc.chemicraft.compounds.CompoundWater;
-import pcc.chemicraft.creativetab.CreativeTabAtomsOre;
+import pcc.chemicraft.creativetab.CreativeTabAtomOres;
import pcc.chemicraft.creativetab.CreativeTabChemiCraft;
import pcc.chemicraft.debug.CommandDeleteItem;
import pcc.chemicraft.debug.CommandGenDebugRoom;
import pcc.chemicraft.debug.CommandSetTile;
-import pcc.chemicraft.gen.WorldGenAtomsOre;
import pcc.chemicraft.item.ItemAtoms;
import pcc.chemicraft.item.ItemAtomsGrenade;
+import pcc.chemicraft.item.ItemChemiCell;
import pcc.chemicraft.item.ItemCompounds;
import pcc.chemicraft.item.ItemGasCollectingBottle;
-import pcc.chemicraft.ore.BlockAtomsOre;
-import pcc.chemicraft.ore.ItemAtomsOre;
+import pcc.chemicraft.ore.BlockAtomOres;
+import pcc.chemicraft.ore.ItemAtomOres;
import pcc.chemicraft.system.CommonProxy;
import pcc.chemicraft.system.PacketHandler;
import pcc.chemicraft.tileentity.TileEntityChemicalCombinationTable;
* ChemiCraftのCreativeTab.
*/
public static final CreativeTabs creativeTabChemiCraft = new CreativeTabChemiCraft("ChemiCraft");
- public static final CreativeTabs creativeTabAtomsOre = new CreativeTabAtomsOre("AtomsOre");
+ public static final CreativeTabs creativeTabAtomsOre = new CreativeTabAtomOres("AtomsOre");
/**
* ItemID.
public int compoundsID;
public int gasCollectingBottleID;
public int atomGrenadeID;
+ public int chemicalCellsID;
/**
* BlockID.
public int toolAndWeaponCraftingTableID;
public int chemicalCraftingTableID;
-
- public int[] atomsOreID = new int[16];
+ public int[] atomOresID = new int[3];
/**
* GUIID.
public Block blockToolAndWeaponCraftingTable;
public Block blockChemicalCraftingTable;
- public Block[] blockAtomsOre = new Block[atomsOreID.length];
+ public Block[] blockAtomOres = new Block[atomOresID.length];
/**
* Item型変数.
public Item itemCompounds;
public Item itemGasCollectingBottle;
public Item itemAtomGrenade;
+ public Item itemChemicalCells;
/**
* このmodで使用するTextureのパス.
*/
public final String ITEM_ATOMS_TEXTURE = "/pcc/chemicraft/items/Atoms.png";
public final String ITEM_COMPOUNDS_TEXTURE = "/pcc/chemicraft/items/Compounds.png";
+ public final String ITEM_VEGETABLES_TEXTURE = "/pcc/chemicraft/items/Vegetables.png";
public final String ITEM_TEXTURE = "/pcc/chemicraft/items/items.png";
public final String BLOCK_CHEMICAL_CRAFTING_TABLE_TEXTURE = "/pcc/chemicraft/blocks/cctable.png";
public final String BLOCK_ATOMS_ORE_TEXTURE = "/pcc/chemicraft/blocks/AtomsOre.png";
+ public final String BLOCK_VEGETABLES_TEXTURE = "/pcc/chemicraft/blocks/Vegetables.png";
public final String GUI_PYROLYSIS_TEXTURE = "/pcc/chemicraft/guis/Pyrolysis.png";
public final String GUI_ELECTROLYSIS_TEXTURE = "/pcc/chemicraft/guis/Electrolysis.png";
public final String GUI_CHEMICALCOMBINATION_TEXTURE = "/pcc/chemicraft/guis/ChemicalCombination.png";
Property toolAndWeaponCraftingTableIDProp = cfg.getBlock("ToolAndWeaponCraftingTableID", 2403);
Property chemicalCraftingTableIDProp = cfg.getBlock("ChemicalCraftingTableID", 2404);
- Property[] atomsOreIDProp = new Property[this.atomsOreID.length];
- for (int i = 0; i < atomsOreIDProp.length; i++) {
- atomsOreIDProp[i] = cfg.getBlock("AtomsOreID:" + i, 2500 + i);
+ Property[] atomOresIDProp = new Property[this.atomOresID.length];
+ for (int i = 0; i < atomOresIDProp.length; i++) {
+ atomOresIDProp[i] = cfg.getBlock("AtomsOreID:" + i, 2500 + i);
}
Property atomsIDProp = cfg.getItem("AtomsID", 25000);
Property compoundsIDProp = cfg.getItem("CompoundsID", 25001);
Property gasCollectingBottleIDProp = cfg.getItem("gasCollectingBottleID", 25002);
Property atomGrenadeIDProp = cfg.getItem("AtomGrenadeID", 25003);
+ Property chemicalCellsIDProp = cfg.getItem("ChemicalCellID", 25004);
Property guiPyrolysisTableIDProp = cfg.get("GUI", "GUIPyrolysisID", 1000);
Property guiElectrolysisTableIDProp = cfg.get("GUI", "GUIElectrolysisTableIDProp", 1001);
this.chemicalConbinationTableID = chemicalCombinationTableIDProp.getInt();
this.toolAndWeaponCraftingTableID = toolAndWeaponCraftingTableIDProp.getInt();
this.chemicalCraftingTableID = chemicalCraftingTableIDProp.getInt();
- for (int i = 0; i < atomsOreID.length; i++) {
- this.atomsOreID[i] = atomsOreIDProp[i].getInt();
+ for (int i = 0; i < atomOresID.length; i++) {
+ this.atomOresID[i] = atomOresIDProp[i].getInt();
}
+
this.atomsID = atomsIDProp.getInt();
this.compoundsID = compoundsIDProp.getInt();
this.gasCollectingBottleID = gasCollectingBottleIDProp.getInt();
this.atomGrenadeID = atomGrenadeIDProp.getInt();
+ this.chemicalCellsID = chemicalCellsIDProp.getInt();
+
this.guiPyrolysisTableID = guiPyrolysisTableIDProp.getInt();
this.guiElectrolysisTableID = guiElectrolysisTableIDProp.getInt();
this.guiChemicalCombinationTableID = guiChemicalCombinationTableIDProp.getInt();
setResistance(0.0F).
setStepSound(Block.soundStoneFootstep).
setBlockName("PyrolysisTable");
- this.blockElectrolysisTable = new BlockElectrolysisTable(this.electrolysisTableID, 0, Material.ground).
+ this.blockElectrolysisTable = new BlockElectrolysisTable(this.electrolysisTableID, 1, Material.ground).
setHardness(2.0F).
setResistance(0.0F).
setStepSound(Block.soundStoneFootstep).
setBlockName("ElectrolysisTable");
- this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 0, Material.ground).
+ this.blockChemicalCombinationTable = new BlockChemicalCombinationTable(this.chemicalConbinationTableID, 2, Material.ground).
setHardness(2.0F).
setResistance(0.0F).
setStepSound(Block.soundStoneFootstep).
setBlockName("ChemicalCombinationTable");
- this.blockToolAndWeaponCraftingTable = new BlockToolAndWeaponCraftingTable(this.toolAndWeaponCraftingTableID, 0, Material.ground).
+ this.blockToolAndWeaponCraftingTable = new BlockToolAndWeaponCraftingTable(this.toolAndWeaponCraftingTableID, 3, Material.ground).
setHardness(2.0F).
setResistance(0.0F).
setStepSound(Block.soundStoneFootstep).
setBlockName("ToolAndWeaponCraftingTable");
- this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(this.chemicalCraftingTableID, 0, Material.ground).
+ this.blockChemicalCraftingTable = new BlockChemicalCraftingTable(this.chemicalCraftingTableID, 4, Material.ground).
setHardness(2.0F).
setResistance(0.0F).
setStepSound(Block.soundStoneFootstep).
setBlockName("ChemicalCraftingTable");
- for (int i = 0; i < blockAtomsOre.length; i++)
+ for (int i = 0; i < blockAtomOres.length; i++)
{
- this.blockAtomsOre[i] = new BlockAtomsOre(this.atomsOreID[i]).
+ this.blockAtomOres[i] = new BlockAtomOres(this.atomOresID[i]).
setHardness(3.0F).
setResistance(0.0F).
setStepSound(Block.soundStoneFootstep).
setBlockName("AtomsOre" + i);
- GameRegistry.registerBlock(blockAtomsOre[i], ItemAtomsOre.class, "AtomsOre" + i);
+ GameRegistry.registerBlock(blockAtomOres[i], ItemAtomOres.class, "AtomsOre" + i);
}
// Itemを追加します
this.itemCompounds = new ItemCompounds(this.compoundsID).setItemName("compounds");
this.itemGasCollectingBottle = new ItemGasCollectingBottle(this.gasCollectingBottleID).setItemName("gasCollectingBottle").setIconIndex(0);
this.itemAtomGrenade = new ItemAtomsGrenade(this.atomGrenadeID).setItemName("grenade").setIconIndex(1);
+ this.itemChemicalCells = new ItemChemiCell(this.chemicalCellsID).setItemName("chemiCell");
// BlockをMinecraftに登録します
GameRegistry.registerBlock(this.blockPyrolysisTable, "BlockPyrolysisTable");
this.nameAuxiliary.addName(this.itemGasCollectingBottle, "GasCollectingBottle");
this.nameAuxiliary.addName(this.itemGasCollectingBottle, "ja_JP", "集気瓶");
this.nameAuxiliary.addName(this.itemAtomGrenade, "AtomGrenade");
- this.nameAuxiliary.addName(this.itemAtomGrenade, "元素手榴弾");
+ this.nameAuxiliary.addName(this.itemAtomGrenade, "ja_JP", "元素手榴弾");
// TileEntityを追加します
GameRegistry.registerTileEntity(TileEntityPyrolysisTable.class, "TileEntityPyrolysisTable");
Character.valueOf('A'), new ItemStack(this.itemAtoms, 1, 0),
});
+ //電池を追加します
+ api.addChemicalCell(itemChemicalCells, "ChemicalCell", 1000);
+ api.addChemicalCellLanguage("ChemicalCell", "ja_JP", "化学電池");
+
//鉱石を追加します
// リチウム
- api.addAtomsOre("Petalite", this.atomsOreID[api.getAtomsOreIndex()], 5, 10, 50); // LiAlSi4O10
- api.addAtomsOreLanguage("Petalite", "ペタル石", "ja_JP");
- api.addAtomsOre("Spodumene", this.atomsOreID[api.getAtomsOreIndex()], 5, 15, 50); // LiAlSi2O6
- api.addAtomsOreLanguage("Spodumene", "リチア輝石", "ja_JP");
+ api.addAtomOres("Petalite", new String[]{"Li", "Al", "Si", "O"}, new Integer[]{1, 1, 4, 10}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // LiAlSi4O10
+ api.addAtomOresLanguage("Petalite", "ペタル石", "ja_JP");
+ api.addAtomOres("Spodumene", new String[]{"Li", "Al", "Si", "O"}, new Integer[]{1, 1, 2, 6}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // LiAlSi2O6
+ api.addAtomOresLanguage("Spodumene", "リチア輝石", "ja_JP");
// ベリリウム
api.addAtomsOre("Beryl", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Be3Al2Si6O18
api.addAtomsOreLanguage("Beryl", "緑柱石", "ja_JP");
api.addAtomsOre("Chrysoberyl", this.atomsOreID[api.getAtomsOreIndex()], 5, 200, 50); // BeAl2O4
api.addAtomsOreLanguage("Chrysoberyl", "金緑石", "ja_JP");
+ api.addAtomOres("Beryl", new String[]{"Be", "Al", "Si", "O"}, new Integer[]{3, 2, 6, 18}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Be3Al2Si6O18
+ api.addAtomOresLanguage("Beryl", "緑柱石", "ja_JP");
+ api.addAtomOres("Chrysoberyl", new String[]{"Be", "Al", "O"}, new Integer[]{1, 2, 4}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // BeAl2O4
+ api.addAtomOresLanguage("Chrysoberyl", "金緑石", "ja_JP");
// ホウ素
- api.addAtomsOre("Ulexite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // NaCaB5O6(OH)6・5H2O
- api.addAtomsOreLanguage("Ulexite", "ウレキサイト", "ja_JP"); // ホウ酸塩鉱石
+ api.addAtomOres("Ulexite", new String[]{"Na", "Ca", "B", "O"}, new Integer[]{1, 1, 5, 6}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // NaCaB5O6(OH)6・5H2O
+ api.addAtomOresLanguage("Ulexite", "ウレキサイト", "ja_JP");
// フッ素
- api.addAtomsOre("Fluorite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // CaF2
- api.addAtomsOreLanguage("Fluorite", "蛍石", "ja_JP");
- api.addAtomsOre("Cryolite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Na3AlF6
- api.addAtomsOreLanguage("Cryolite", "氷晶石", "ja_JP");
+ api.addAtomOres("Fluorite", new String[]{"Ca", "F"}, new Integer[]{1, 2}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // CaF2
+ api.addAtomOresLanguage("Fluorite", "蛍石", "ja_JP");
+ api.addAtomOres("Cryolite", new String[]{"Na", "Al", "F"}, new Integer[]{3, 1, 6}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Na3AlF6
+ api.addAtomOresLanguage("Cryolite", "氷晶石", "ja_JP");
// ナトリウム
- api.addAtomsOre("RockSalt", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // NaCl
- api.addAtomsOreLanguage("RockSalt", "岩塩", "ja_JP");
+ api.addAtomOres("RockSalt", new String[]{"Na", "Cl"}, new Integer[]{1, 1}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // NaCl
+ api.addAtomOresLanguage("RockSalt", "岩塩", "ja_JP");
// マグネシウム
- api.addAtomsOre("Dolomite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // CaMg(CO3)2
- api.addAtomsOreLanguage("Dolomite", "苦灰石", "ja_JP");
- api.addAtomsOre("Magnesite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // MgCO3
- api.addAtomsOreLanguage("Magnesite", "菱苦土石", "ja_JP");
+ api.addAtomOres("Dolomite", new String[]{"Ca", "Mg"}, new Integer[]{1, 1}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // CaMg(CO3)2
+ api.addAtomOresLanguage("Dolomite", "苦灰石", "ja_JP");
+ api.addAtomOres("Magnesite", new String[]{"Mg", "C", "O"}, new Integer[]{1, 1, 3}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // MgCO3
+ api.addAtomOresLanguage("Magnesite", "菱苦土石", "ja_JP");
// アルミニウム
- api.addAtomsOre("Gibbsite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Al(OH)3
- api.addAtomsOreLanguage("Gibbsite", "ギブス石", "ja_JP");
- api.addAtomsOre("Ruby", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Al2O3
- api.addAtomsOreLanguage("Ruby", "ルビー", "ja_JP");
- api.addAtomsOre("Sapphire", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Al2O3
- api.addAtomsOreLanguage("Sapphire", "サファイア", "ja_JP");
+ api.addAtomOres("Gibbsite", new String[]{"Al"}, new Integer[]{3}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Al(OH)3
+ api.addAtomOresLanguage("Gibbsite", "ギブス石", "ja_JP");
+ api.addAtomOres("Ruby", new String[]{"Al", "O"}, new Integer[]{2, 3}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Al2O3
+ api.addAtomOresLanguage("Ruby", "ルビー", "ja_JP");
+ api.addAtomOres("Sapphire", new String[]{"Al", "O"}, new Integer[]{2, 3}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Al2O3
+ api.addAtomOresLanguage("Sapphire", "サファイア", "ja_JP");
// ケイ素
- api.addAtomsOre("Quartz", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // SiO2
- api.addAtomsOreLanguage("Quartz", "石英", "ja_JP");
+ api.addAtomOres("Quartz", new String[]{"Si", "O"}, new Integer[]{1, 2}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // SiO2
+ api.addAtomOresLanguage("Quartz", "石英", "ja_JP");
// リン
- api.addAtomsOre("Fluorapatite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Ca5(PO4)3F
- api.addAtomsOreLanguage("Fluorapatite", "フッ素リン灰石", "ja_JP");
- api.addAtomsOre("Chlorapatite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Ca5(PO4)3Cl
- api.addAtomsOreLanguage("Chlorapatite", "塩素燐灰石", "ja_JP");
- api.addAtomsOre("Hydroxylapatite", this.atomsOreID[api.getAtomsOreIndex()], 5, 20, 50); // Ca5(PO4)3(OH)
- api.addAtomsOreLanguage("Hydroxylapatite", "水酸燐灰石", "ja_JP");
+ api.addAtomOres("Fluorapatite", new String[]{"Ca"}, new Integer[]{5}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Ca5(PO4)3F
+ api.addAtomOresLanguage("Fluorapatite", "フッ素リン灰石", "ja_JP");
+ api.addAtomOres("Chlorapatite", new String[]{"Ca"}, new Integer[]{5}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Ca5(PO4)3Cl
+ api.addAtomOresLanguage("Chlorapatite", "塩素燐灰石", "ja_JP");
+ api.addAtomOres("Hydroxylapatite", new String[]{"Ca"}, new Integer[]{5}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // Ca5(PO4)3(OH)
+ api.addAtomOresLanguage("Hydroxylapatite", "水酸燐灰石", "ja_JP");
+
+ // カリウム
+ api.addAtomOres("Sylvite", new String[]{"K", "Cl"}, new Integer[]{1, 1}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // KCl
+ api.addAtomOresLanguage("Sylvite", "カリ岩塩", "ja_JP");
+
+ // カルシウム
+ api.addAtomOres("Calcite", new String[]{"Ca", "C", "O"}, new Integer[]{1, 1, 3}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // CaCO3
+ api.addAtomOresLanguage("Calcite", "方解石", "ja_JP");
+
+ // api.addAtomOres("元素名(英)", new String[]{"元素"}, new Integer[]{<数>}, this.atomOresID[api.getAtomOresLastIndex()], 5, 1, 50); // 化学式
+ // api.addAtomOresLanguage("元素名(英)", "元素名(他国語)", "言語");
//化合物を追加します
this.api.addCompound("ja_JP", "ChlorousAcid", "亜塩素酸");
this.api.addCompound("ja_JP", "Water", "水");
this.api.addCompound("ja_JP", "SodiumChloride", "塩化ナトリウム");
this.api.addCompound("ja_JP", "SodiumBicarbonate", "重曹");
- this.api.addCompound("ja_JP", "CarbonMonoxide", "一酸化炭素");
- this.api.addCompound("ja_JP", "CarbonDioxide", "二酸化炭素");
- this.api.addCompound("ja_JP", "Water", "水");
//化合物のHandlerを設定します
this.api.settingCompoundHandler("Water", new CompoundWater());
//化合物のレシピを追加します
+ this.api.addChemicalCombinationRecipe(new String[]{"Na", "O", "H"}, new Integer[]{1, 1, 1}, new ItemStack(this.itemCompounds, 1, this.api.getCompound("SodiumChloride")));
this.api.addChemicalCombinationRecipe(new String[]{"H", "O", "Cl"}, new Integer[]{1, 2, 1}, new ItemStack(this.itemCompounds, 1, this.api.getCompound("ChlorousAcid")));
- this.api.addChemicalCombinationRecipe(new String[]{"Na", "O", "H"}, new Integer[]{1, 1, 1}, new ItemStack(this.itemCompounds, 1, api.getCompound("SodiumChloride")));
- this.api.addChemicalCombinationRecipe(new String[]{"H", "O", "Cl"}, new Integer[]{1, 2, 1}, new ItemStack(this.itemCompounds, 1, api.getCompound("ChlorousAcid")));
this.api.addChemicalCombinationRecipe(new String[]{"H", "O"}, new Integer[]{2, 1}, new ItemStack(this.itemCompounds, 1, this.api.getCompound("Water")));
//手榴弾の追加
);
this.api.addDecompositionRecipe(new ItemStack(Item.potion, 1, 0),
- new int[] {ChemiCraftData.HYDROGEN, ChemiCraftData.OXYGEN},
- new int[] {2, 1});
+ new Integer[] {ChemiCraftData.HYDROGEN, ChemiCraftData.OXYGEN},
+ new Integer[] {2, 1});
this.api.addDecompositionRecipe(new ItemStack(this.itemCompounds, 1, this.api.getCompound("Water")),
- new int[] {ChemiCraftData.HYDROGEN, ChemiCraftData.OXYGEN},
- new int[] {2, 1});
+ new Integer[] {ChemiCraftData.HYDROGEN, ChemiCraftData.OXYGEN},
+ new Integer[] {2, 1});
+
+ for (int i = 0; i < api.getAtomOresName().sizeKeysList(); i++){
+ this.api.addDecompositionRecipe(new ItemStack(this.blockAtomOres[i / 16], 1, i - i / 16 * 16),
+ api.getAtomOresAtoms().get(api.getAtomOresName().getKeyList(i)),
+ api.getAtomOresAmounts().get(api.getAtomOresName().getKeyList(i)));
+ }
this.api.addDecompositionFuel(new ItemStack(Item.coal), 2000*8);
}
private void apiProcessing(final FMLPostInitializationEvent event) {
// API用の処理
- for (int i = 0; i < api.getCompoundsName().sizeKeysList(); i++)
+ for (int i = 0; i < api.getAtomOresName().sizeKeysList(); i++)
{
- for (int j = 0; j < api.getCompoundsName().sizeElementsList(api.getCompoundsName().getKeyList(i)); j++)
+ for (int j = 0; j < api.getAtomOresName().sizeElementsList(api.getAtomOresName().getKeyList(i)); j++)
{
- this.nameAuxiliary.addName(new ItemStack(itemCompounds, 0, i), api.getCompoundsLang().get(api.getCompoundsName().getKeyList(i), j), api.getCompoundsName().get(api.getCompoundsName().getKeyList(i), j));
+ this.nameAuxiliary.addName(new ItemStack(blockAtomOres[i / 16], 0, i - i / 16 * 16), api.getAtomOresLanguage().get(api.getAtomOresName().getKeyList(i), j), api.getAtomOresName().get(api.getAtomOresName().getKeyList(i), j));
+ OreDictionary.registerOre("ore" + api.getAtomOresName().getKeyList(i), new ItemStack(blockAtomOres[i / 16], 1, i - i / 16 * 16));
}
}
- for (int i = 0; i < api.getAtomsOreNameListHash().sizeKeysList(); i++)
+ for (int i = 0; i < api.getAtomOres().size(); i++)
+ {
+ GameRegistry.registerWorldGenerator(api.getAtomOres().get(i));
+ }
+
+ for (int i = 0; i < api.getChemicalCellsName().sizeKeysList(); i++)
{
- for (int j = 0; j < api.getAtomsOreNameListHash().sizeElementsList(api.getAtomsOreNameListHash().getKeyList(i)); j++)
+ for (int j = 0; j < api.getChemicalCellsName().sizeElementsList(api.getChemicalCellsName().getKeyList(i)); j++)
{
- this.nameAuxiliary.addName(new ItemStack(blockAtomsOre[i / 16], 0, i - i / 16 * 16), api.getAtomsOreLangListHash().get(api.getAtomsOreNameListHash().getKeyList(i), j), api.getAtomsOreNameListHash().get(api.getAtomsOreNameListHash().getKeyList(i), j));
- OreDictionary.registerOre("ore" + api.getAtomsOreNameListHash().getKeyList(i), new ItemStack(blockAtomsOre[i / 16], 1, i - i / 16 * 16));
+ this.nameAuxiliary.addName(new ItemStack(itemChemicalCells, 0, i), api.getChemicalCellsLanguage().get(api.getChemicalCellsName().getKeyList(i), j), api.getChemicalCellsName().get(api.getChemicalCellsName().getKeyList(i), j));
}
}
- for (int i = 0; i < api.getAtomsOres().size(); i++)
+ for (int i = 0; i < api.getCompoundsName().sizeKeysList(); i++)
{
- GameRegistry.registerWorldGenerator(api.getAtomsOres().get(i));
+ for (int j = 0; j < api.getCompoundsName().sizeElementsList(api.getCompoundsName().getKeyList(i)); j++)
+ {
+ this.nameAuxiliary.addName(new ItemStack(itemCompounds, 0, i), api.getCompoundsLang().get(api.getCompoundsName().getKeyList(i), j), api.getCompoundsName().get(api.getCompoundsName().getKeyList(i), j));
+ }
}
}
import java.util.ArrayList;
import java.util.HashMap;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import pcc.chemicraft.gen.WorldGenAtomsOre;
import pcc.chemicraft.system.ChemiCraftCraftingManager;
private static ChemiCraftAPI instance = new ChemiCraftAPI();
+ public static ChemiCraftAPI instance(){
+ return instance;
+ }
+
+
/**
- * List of compounds names.
+ * 鉱石別元素数リスト
*/
- private ListHash<String, String> compoundsNameListHash = new ListHash<String, String>();
+ private HashMap<String, Integer[]> atomOresAmountsHash = new HashMap<String, Integer[]>();
/**
- * List of compounds the language names.
+ * 鉱石別元素リスト
*/
- private ListHash<String, String> compoundsLangListHash = new ListHash<String, String>();
+ private HashMap<String, Integer[]> atomOresAtomsHash = new HashMap<String, Integer[]>();
/**
- * List of compounds handlers.
+ * 鉱石の言語リスト
*/
- private ArrayList<ICompoundHandler> compoundHandlers = new ArrayList<ICompoundHandler>();
+ private ListHash<String, String> atomOresLangListHash = new ListHash<String, String>();
/**
- * 化合物の文字列をダメージ値に変換します。
+ * 鉱石リスト
*/
- private HashMap<String, Integer> compoundHash = new HashMap<String, Integer>();
+ private ArrayList<WorldGenAtomsOre> atomOresList = new ArrayList<WorldGenAtomsOre>();
/**
- * List of item name of handler to compounds.
+ * 鉱石名リスト
*/
- private ArrayList<String> compoundHandlerItemNames = new ArrayList<String>();
+ private ListHash<String, String> atomOresNameListHash = new ListHash<String, String>();
+
/**
- * 化合台の原子の種類のリスト
+ * 電池言語リスト
*/
- private ArrayList<String[]> chemicalCombinationAtoms = new ArrayList<String[]>();
+ private ListHash<String, String> chemicalCellsLangListHash = new ListHash<String, String>();
+
+
+ /**
+ * 電池名リスト
+ */
+ private ListHash<String, String> chemicalCellsNameListHash = new ListHash<String, String>();
+
+
+ private HashMap<ItemStack, Integer> chemicalCellsFuelList = new HashMap<ItemStack, Integer>();
+
/**
/**
- * 化合台の結果のリスト
+ * 化合台の原子の種類のリスト
*/
- private ArrayList<ItemStack> chemicalCombinationResult = new ArrayList<ItemStack>();
+ private ArrayList<String[]> chemicalCombinationAtoms = new ArrayList<String[]>();
/**
- * 素材製作台のレシピクラス
+ * 化合台の結果のリスト
*/
- private ArrayList<MaterialRecipe> materialRecipe = new ArrayList<MaterialRecipe>();
+ private ArrayList<ItemStack> chemicalCombinationResult = new ArrayList<ItemStack>();
/**
private ChemiCraftCraftingManager chemiCraftCraftingManager = new ChemiCraftCraftingManager();
+ /**
+ * List of item name of handler to compounds.
+ */
+ private ArrayList<String> compoundHandlerItemNames = new ArrayList<String>();
+
/**
- * 鉱石名リスト
+ * List of compounds handlers.
*/
- private ListHash<String, String> atomsOreNameListHash = new ListHash<String, String>();
+ private ArrayList<ICompoundHandler> compoundHandlers = new ArrayList<ICompoundHandler>();
/**
- * 鉱石の言語リスト
+ * 化合物の文字列をダメージ値に変換します。
*/
- private ListHash<String, String> atomsOreLangListHash = new ListHash<String, String>();
+ private HashMap<String, Integer> compoundHash = new HashMap<String, Integer>();
/**
- * 鉱石リスト
+ * List of compounds the language names.
*/
- private ArrayList<WorldGenAtomsOre> atomsOres = new ArrayList<WorldGenAtomsOre>();
+ private ListHash<String, String> compoundsLangListHash = new ListHash<String, String>();
+ /**
+ * List of compounds names.
+ */
+ private ListHash<String, String> compoundsNameListHash = new ListHash<String, String>();
+
+
+
+ /**
+ * 素材製作台のレシピクラス
+ */
+ private ArrayList<MaterialRecipe> materialRecipe = new ArrayList<MaterialRecipe>();
+
/**
* ツール&武器作成台の素材一覧のリスト
private ArrayList<ItemStack> toolAndWeaponResult = new ArrayList<ItemStack>();
+
/**
* ツール&武器作成台の不定形であるか
*/
/**
- * add compound.
- * @param name compound name.
+ * 鉱石を追加します
+ * @param par1Name 鉱石名
+ * @param par2Atoms 元素
+ * @param par3Amounts 元素数
+ * @param par4Id ID
+ * @param par5Size 量
+ * @param par6Frequency 頻度
+ * @param par7PosY Y座標
*/
- public void addCompound(String name){
- compoundsNameListHash.add(name, name);
- compoundsLangListHash.add(name, "en_US");
- compoundHash.put(name, compoundHash.size());
+ public void addAtomOres(String par1Name, Integer[] par2Atoms, Integer[] par3Amounts, int par4Id, int par5Size, int par6Frequency, int par7PosY){
+ atomOresList.add(new WorldGenAtomsOre(par4Id, getAtomOresMetaOfLastIndex(), par5Size, par6Frequency, par7PosY));
+ atomOresAtomsHash.put(par1Name, par2Atoms);
+ atomOresAmountsHash.put(par1Name, par3Amounts);
+ addAtomOresLanguage(par1Name, par1Name, "en_US");
}
- /**
- * add compound corresponding to the language.
- * @param lang Language to the corresponding
- * @param englishName compound name
- * @param langName compound name(specified language)
- */
- public void addCompound(String lang, String englishName, String langName){
- addCompound(englishName);
- addCompoundLanguage(lang, englishName, langName);
+ public void addAtomOres(String par1Name, String[] par2Atoms, Integer[] par3Amounts, int par4Id, int par5Size, int par6Frequency, int par7PosY){
+ addAtomOres(par1Name, ChemiCraftData.toAtoms(par2Atoms), par3Amounts, par7PosY, par7PosY, par7PosY, par7PosY);
}
- public void addCompoundLanguage(String lang, String englishName, String langName){
- compoundsNameListHash.add(englishName, langName);
- compoundsLangListHash.add(englishName, lang);
+ /**
+ * 既に登録した鉱石の新しい名前・言語を追加します
+ * @param par1Name 英語名
+ * @param par2NewName 新しい名前
+ * @param par3Language 言語
+ */
+ public void addAtomOresLanguage(String par1Name, String par2NewName, String par3Language){
+ atomOresNameListHash.add(par1Name, par2NewName);
+ atomOresLangListHash.add(par1Name, par3Language);
}
- public int getCompound(String key){
- if(compoundHash.get(key) != null){
- return compoundHash.get(key);
- } else {
- return -1;
- }
+ /**
+ * 電池を追加します
+ * @param par1Name
+ */
+ public void addChemicalCell(Item par1ChemicalCell, String par2Name, int par3OperationTime){
+ chemicalCellsFuelList.put(new ItemStack(par1ChemicalCell, 0, chemicalCellsNameListHash.sizeKeysList()), par3OperationTime);
+ addChemicalCellLanguage(par2Name, "en_US", par2Name);
}
-
/**
- * setting compound handler.
- * @param handlerItemName
- * @param compoundHandler
+ * 既に登録した電池の新しい名前・言語を追加します
+ * @param par1Name 英語名
+ * @param par2NewName 新しい名前
+ * @param par3Language 言語
*/
- public void settingCompoundHandler(String handlerItemName, ICompoundHandler compoundHandler){
- compoundHandlers.add(compoundHandler);
- compoundHandlerItemNames.add(handlerItemName);
+ public void addChemicalCellLanguage(String par1Name, String par3NewLanguage, String par2NewName){
+ chemicalCellsNameListHash.add(par1Name, par2NewName);
+ chemicalCellsLangListHash.add(par1Name, par3NewLanguage);
}
/**
- * 分解台のレシピを追加します
- * @param material 素材
- * @param results 原子の元素番号の配列
- * @param stacks 原子のできる数の配列
+ * add compound.
+ * @param name compound name.
*/
- public void addDecompositionRecipe(ItemStack material, int[] results, int[] stacks) {
- ItemStack[] itemstacks = new ItemStack[results.length];
- for (int i = 0; i < itemstacks.length; i++) {
- itemstacks[i] = new ItemStack(ChemiCraft.instance.itemAtoms,stacks[i], results[i]);
- }
- TileEntityPyrolysisTable.addRecipe(material, itemstacks);
+ public void addCompound(String name){
+ compoundsNameListHash.add(name, name);
+ compoundsLangListHash.add(name, "en_US");
+ compoundHash.put(name, compoundHash.size());
+ }
+
+
+
+ /**
+ * add compound corresponding to the language.
+ * @param lang Language to the corresponding
+ * @param englishName compound name
+ * @param langName compound name(specified language)
+ */
+ public void addCompound(String lang, String englishName, String langName){
+ addCompound(englishName);
+ addCompoundLanguage(lang, englishName, langName);
+ }
+
+
+
+ public void addCompoundLanguage(String lang, String englishName, String langName){
+ compoundsNameListHash.add(englishName, langName);
+ compoundsLangListHash.add(englishName, lang);
}
}
-
/**
- * ツール&武器作成台のレシピを追加します
- * @param materials 素材
- * @param result 結果
+ * 分解台のレシピを追加します
+ * @param material 素材
+ * @param integers 原子の元素番号の配列
+ * @param integers2 原子のできる数の配列
*/
- public void addToolAndWeaponRecipe(ItemStack[] materials, ItemStack result) {
- toolAndWeaponMaterials.add(materials);
- toolAndWeaponResult.add(result);
- toolAndWeaponSharpless.add(false);
+ public void addDecompositionRecipe(ItemStack material, Integer[] integers, Integer[] integers2) {
+ ItemStack[] itemstacks = new ItemStack[integers.length];
+ for (int i = 0; i < itemstacks.length; i++) {
+ itemstacks[i] = new ItemStack(ChemiCraft.instance.itemAtoms,integers2[i], integers[i]);
+ }
+ TileEntityPyrolysisTable.addRecipe(material, itemstacks);
}
+
/**
- * ツール&武器作成台の不定形レシピを追加します
+ * 素材作成台のレシピを追加します
* @param materials 素材
* @param result 結果
+ * @param nbtRecipe NBT(Nullの場合はなし)
*/
- public void addSharplessToolAndWeaponRecipe(ItemStack[] materials, ItemStack result) {
- toolAndWeaponMaterials.add(materials);
- toolAndWeaponResult.add(result);
- toolAndWeaponSharpless.add(true);
+ public void addMaterialRecipe(ItemStack[] materials, ItemStack result, ChemicalNBTRecipe nbtRecipe){
+ materialRecipe.add(new MaterialRecipe(result, materials, nbtRecipe, false));
}
/**
- * 素材作成台のレシピを追加します
+ * ツール&武器作成台の不定形レシピを追加します
* @param materials 素材
* @param result 結果
- * @param nbtRecipe NBT(Nullの場合はなし)
*/
- public void addMaterialRecipe(ItemStack[] materials, ItemStack result, ChemicalNBTRecipe nbtRecipe){
- materialRecipe.add(new MaterialRecipe(result, materials, nbtRecipe, false));
+ public void addSharplessToolAndWeaponRecipe(ItemStack[] materials, ItemStack result) {
+ toolAndWeaponMaterials.add(materials);
+ toolAndWeaponResult.add(result);
+ toolAndWeaponSharpless.add(true);
}
-
/**
- * 鉱石を追加します
- * @param name 鉱石名
- * @param size 一度に生成される量
- * @param frequency 生成頻度
- * @param posY Y座標
+ * ツール&武器作成台のレシピを追加します
+ * @param materials 素材
+ * @param result 結果
*/
- public void addAtomsOre(String par1Name, int par2Id, int par3Size, int par4Frequency, int par5PosY){
- atomsOres.add(new WorldGenAtomsOre(par2Id, getAtomsOreMetaOfIndex(), par3Size, par4Frequency, par5PosY));
- addAtomsOreLanguage(par1Name, par1Name, "en_US");
+ public void addToolAndWeaponRecipe(ItemStack[] materials, ItemStack result) {
+ toolAndWeaponMaterials.add(materials);
+ toolAndWeaponResult.add(result);
+ toolAndWeaponSharpless.add(false);
}
- /**
- * 既に登録した鉱石の新しい名前・言語を追加します
- * @param par1Name 英語名
- * @param par2NewName 新しい名前
- * @param par3Language 言語
- */
- public void addAtomsOreLanguage(String par1Name, String par2NewName, String par3Language){
- atomsOreNameListHash.add(par1Name, par2NewName);
- atomsOreLangListHash.add(par1Name, par3Language);
+ public ArrayList<WorldGenAtomsOre> getAtomOres(){
+ return atomOresList;
}
//以下システム関連//////////////////////////////////////////////////////
- public ArrayList<ICompoundHandler> getCompoundHandler(){
- compoundHandlers.trimToSize();
- return compoundHandlers;
+ public HashMap<String, Integer[]> getAtomOresAmounts(){
+ return atomOresAmountsHash;
+ }
+
+
+ public HashMap<String, Integer[]> getAtomOresAtoms(){
+ return atomOresAtomsHash;
}
- public ArrayList<String> getCompoundHandlerItemName(){
- compoundHandlerItemNames.trimToSize();
- return compoundHandlerItemNames;
+ public ListHash<String, String> getAtomOresLanguage(){
+ return atomOresLangListHash;
}
- public ListHash<String, String> getCompoundsName(){
- return compoundsNameListHash;
+ public int getAtomOresLastIndex(){
+ return atomOresNameListHash.sizeKeysList() / 16;
}
- public ListHash<String, String> getCompoundsLang(){
- return compoundsLangListHash;
+ public int getAtomOresMetaOfLastIndex(){
+ return atomOresNameListHash.sizeKeysList() - getAtomOresLastIndex() * 16;
}
- public ArrayList<String[]> getChemicalCombinationAtoms(){
- return chemicalCombinationAtoms;
+ public ListHash<String, String> getAtomOresName(){
+ return atomOresNameListHash;
+ }
+
+
+
+ public HashMap<ItemStack, Integer> getChemicalCellsFuelList(){
+ return chemicalCellsFuelList;
+ }
+
+
+
+ public ListHash<String, String> getChemicalCellsLanguage(){
+ return chemicalCellsLangListHash;
+ }
+
+
+
+ public ListHash<String, String> getChemicalCellsName(){
+ return chemicalCellsNameListHash;
}
+ public ArrayList<String[]> getChemicalCombinationAtoms(){
+ return chemicalCombinationAtoms;
+ }
+
+
+
public ArrayList<ItemStack> getChemicalCombinationResult(){
return chemicalCombinationResult;
}
- public ArrayList<MaterialRecipe> getMaterialRecipe(){
- return materialRecipe;
+ public int getCompound(String key){
+ if(compoundHash.get(key) != null){
+ return compoundHash.get(key);
+ } else {
+ return -1;
+ }
}
- public ArrayList<ItemStack[]> getToolAndWeaponMaterials() {
- return toolAndWeaponMaterials;
+ public ArrayList<ICompoundHandler> getCompoundHandler(){
+ compoundHandlers.trimToSize();
+ return compoundHandlers;
+
}
- public ArrayList<ItemStack> getToolAndWeaponResult() {
- return toolAndWeaponResult;
+ public ArrayList<String> getCompoundHandlerItemName(){
+ compoundHandlerItemNames.trimToSize();
+ return compoundHandlerItemNames;
}
- public ArrayList<Boolean> getToolAndWeaponSharpless() {
- return toolAndWeaponSharpless;
+ public ListHash<String, String> getCompoundsLang(){
+ return compoundsLangListHash;
}
- public ChemiCraftCraftingManager getCraftingManager(){
- return chemiCraftCraftingManager;
+ public ListHash<String, String> getCompoundsName(){
+ return compoundsNameListHash;
}
- public ListHash<String, String> getAtomsOreNameListHash(){
- return atomsOreNameListHash;
+ public ChemiCraftCraftingManager getCraftingManager(){
+ return chemiCraftCraftingManager;
}
- public ListHash<String, String> getAtomsOreLangListHash(){
- return atomsOreLangListHash;
+ public ArrayList<MaterialRecipe> getMaterialRecipe(){
+ return materialRecipe;
}
- public int getAtomsOreIndex(){
- return atomsOreNameListHash.sizeKeysList() / 16;
+ public ArrayList<ItemStack[]> getToolAndWeaponMaterials() {
+ return toolAndWeaponMaterials;
}
- public int getAtomsOreMetaOfIndex(){
- return atomsOreNameListHash.sizeKeysList() - getAtomsOreIndex() * 16;
+ public ArrayList<ItemStack> getToolAndWeaponResult() {
+ return toolAndWeaponResult;
}
- public ArrayList<WorldGenAtomsOre> getAtomsOres(){
- return atomsOres;
+ public ArrayList<Boolean> getToolAndWeaponSharpless() {
+ return toolAndWeaponSharpless;
}
- public static ChemiCraftAPI instance(){
- return instance;
+ /**
+ * setting compound handler.
+ * @param handlerItemName
+ * @param compoundHandler
+ */
+ public void settingCompoundHandler(String handlerItemName, ICompoundHandler compoundHandler){
+ compoundHandlers.add(compoundHandler);
+ compoundHandlerItemNames.add(handlerItemName);
}
}
package pcc.chemicraft;
+import java.util.ArrayList;
+
public final class ChemiCraftData {
public static final int HYDROGEN = 0;
"Cn", "Uut", "Uuq", "Uup", "Uuh", "Uus", "Uuo"
};
+ public static int toAtoms(String sign){
+ for (int i = 0;i < ATOMSLIST.length;i++){
+ if(ATOMSLIST[i].equals(sign)){
+ return i;
+ }
+ }
+ throw new IllegalArgumentException(String.format("Illegal toAtoms %s",sign));
+ }
+
+ public static Integer[] toAtoms(String[] signs){
+ ArrayList<Integer> atoms = new ArrayList<Integer>();
+ for (int i = 0;i < signs.length; i++)
+ {
+ atoms.add((Integer)toAtoms(signs[i]));
+ }
+ return atoms.toArray(new Integer[0]);
+ }
+
+ public static String toSign(int atoms){
+ return ATOMSLIST[atoms];
+ }
+
}
import net.minecraft.inventory.Slot;
import net.minecraft.world.World;
import pcc.chemicraft.ChemiCraft;
-import pcc.chemicraft.slot.SlotElectrolysisMaterial;
-import pcc.chemicraft.slot.SlotElectrolysisResult;
+import pcc.chemicraft.inventory.InventoryElectrolysisFuel;
+import pcc.chemicraft.inventory.InventoryElectrolysisMaterial;
+import pcc.chemicraft.inventory.InventoryElectrolysisResult;
+import pcc.chemicraft.slot.SlotPyrolysisTableFuel;
+import pcc.chemicraft.slot.SlotPyrolysisTableMaterial;
+import pcc.chemicraft.slot.SlotPyrolysisTableResult;
import pcc.chemicraft.tileentity.TileEntityElectrolysisTable;
public class ContainerElectrolysisTable extends Container
private int posY;
private int posZ;
+ private InventoryElectrolysisMaterial invm;
+ private InventoryElectrolysisResult invr;
+ private InventoryElectrolysisFuel invf;
+
private TileEntityElectrolysisTable tileentity;
public ContainerElectrolysisTable(EntityPlayer par1EntityPlayer, TileEntityElectrolysisTable par2) {
super();
+ this.tileentity = par2;
this.worldObj = par2.worldObj;
this.posX = par2.xCoord;
this.posY = par2.yCoord;
this.posZ = par2.zCoord;
+ this.invm = par2.getInvMaterial();
+ this.invr = par2.getInvResult();
+ this.invf = par2.getInvFuel();
+ this.invm.setEventHandler(this);
+ this.invr.setEventHandler(this);
+ this.invf.setEventHandler(this);
- this.addSlotToContainer(new SlotElectrolysisMaterial(this.tileentity.getInvMaterial(), 0, 123, 34));
- for (int i = 0; i < 16; i++) {
- this.addSlotToContainer(new SlotElectrolysisResult(this.tileentity.getInvResult(), i, 123, 34));
+ for (int i = 0; i < 4; i++) {
+ for (int j = 0; j < 4; j++) {
+ this.addSlotToContainer(new SlotPyrolysisTableResult(this.invr, i*4 + j, 88+i*18, 17+j*18));
+ }
}
- this.addSlotToContainer(new SlotElectrolysisResult(this.tileentity.getInvFuel(), 0, 123, 34));
+ this.addSlotToContainer(new SlotPyrolysisTableMaterial(this.invm, 0, 27, 20));
+ this.addSlotToContainer(new SlotPyrolysisTableFuel(this.invf, 0, 27, 63));
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));
+ this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 121 + var3 * 18));
}
}
for (var3 = 0; var3 < 9; ++var3)
{
- this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 143));
+ this.addSlotToContainer(new Slot(par1EntityPlayer.inventory, var3, 8 + var3 * 18, 179));
}
}
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-public class CreativeTabAtomsOre extends CreativeTabs
+public class CreativeTabAtomOres extends CreativeTabs
{
- public CreativeTabAtomsOre(String type)
+ public CreativeTabAtomOres(String type)
{
super(type);
}
@Override
@SideOnly(Side.CLIENT)
public int getTabIconItemIndex(){
- return ChemiCraft.instance.blockAtomsOre[0].blockID;
+ return ChemiCraft.instance.blockAtomOres[0].blockID;
}
+++ /dev/null
-package pcc.chemicraft.inventory;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.Container;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.item.ItemStack;
-
-public class InventoryElectrolysisTableFuel implements IInventory
-{
-
- private ItemStack[] inventory = new ItemStack[1];
-
- private Container eventHandelr;
-
- public void setEventHandler(Container par1Container)
- {
- this.eventHandelr = par1Container;
- }
-
- @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 "ChemicalCraftingInventory";
- }
-
- @Override
- public int getInventoryStackLimit()
- {
- return 64;
- }
-
- @Override
- public void onInventoryChanged()
- {
- this.eventHandelr.onCraftMatrixChanged(this);
- }
-
- @Override
- public boolean isUseableByPlayer(EntityPlayer var1)
- {
- return true;
- }
-
- @Override
- public void openChest()
- {
-
- }
-
- @Override
- public void closeChest()
- {
-
- }
-
-}
+++ /dev/null
-package pcc.chemicraft.inventory;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.Container;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.item.ItemStack;
-
-public class InventoryElectrolysisTableMaterial implements IInventory
-{
-
- private ItemStack[] inventory = new ItemStack[1];
-
- private Container eventHandelr;
-
- public void setEventHandler(Container par1Container)
- {
- this.eventHandelr = par1Container;
- }
-
- @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 "ChemicalCraftingInventory";
- }
-
- @Override
- public int getInventoryStackLimit()
- {
- return 64;
- }
-
- @Override
- public void onInventoryChanged()
- {
- this.eventHandelr.onCraftMatrixChanged(this);
- }
-
- @Override
- public boolean isUseableByPlayer(EntityPlayer var1)
- {
- return true;
- }
-
- @Override
- public void openChest()
- {
-
- }
-
- @Override
- public void closeChest()
- {
-
- }
-
-}
+++ /dev/null
-package pcc.chemicraft.inventory;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.Container;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.item.ItemStack;
-
-public class InventoryElectrolysisTableResult implements IInventory
-{
-
- private ItemStack[] inventory = new ItemStack[16];
-
- private Container eventHandelr;
-
- public void setEventHandler(Container par1Container)
- {
- this.eventHandelr = par1Container;
- }
-
- @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 "ChemicalCraftingInventory";
- }
-
- @Override
- public int getInventoryStackLimit()
- {
- return 64;
- }
-
- @Override
- public void onInventoryChanged()
- {
- this.eventHandelr.onCraftMatrixChanged(this);
- }
-
- @Override
- public boolean isUseableByPlayer(EntityPlayer var1)
- {
- return true;
- }
-
- @Override
- public void openChest()
- {
-
- }
-
- @Override
- public void closeChest()
- {
-
- }
-
-}
--- /dev/null
+package pcc.chemicraft.item;
+
+import java.util.List;
+
+import pcc.chemicraft.ChemiCraft;
+import pcc.chemicraft.ChemiCraftAPI;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+
+public class ItemChemiCell extends Item
+{
+
+ public ItemChemiCell(int par1)
+ {
+ super(par1);
+ this.maxStackSize = 64;
+ this.setHasSubtypes(true);
+ this.setMaxDamage(0);
+ this.setCreativeTab(ChemiCraft.instance.creativeTabChemiCraft);
+ }
+
+
+
+ @Override
+ public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List){
+ for(int type = 0; type < ChemiCraftAPI.instance().getChemicalCellsName().sizeKeysList(); type++)
+ {
+ par3List.add(new ItemStack(par1, 1, type));
+ this.setIconIndex(type);
+ }
+ }
+
+
+
+ @Override
+ public String getItemNameIS(ItemStack par1ItemStack){
+ return super.getItemName() + "." + ChemiCraftAPI.instance().getChemicalCellsName().getKeyList(par1ItemStack.getItemDamage());
+ }
+
+
+
+ @Override
+ public String getTextureFile(){
+ return ChemiCraft.instance.ITEM_TEXTURE;
+ }
+
+}
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-public class BlockAtomsOre extends Block
+public class BlockAtomOres extends Block
{
- public BlockAtomsOre(int id)
+ public BlockAtomOres(int id)
{
super(id, Material.rock);
this.setCreativeTab(ChemiCraft.instance.creativeTabAtomsOre);
@Override
public int getBlockTextureFromSideAndMetadata(int par1, int par2)
{
- return (this.blockID - ChemiCraft.instance.atomsOreID[0]) * 16 + par2;
+ return (this.blockID - ChemiCraft.instance.atomOresID[0]) * 16 + par2;
}
@Override
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-public class ItemAtomsOre extends ItemBlock
+public class ItemAtomOres extends ItemBlock
{
- public ItemAtomsOre(int par1)
+ public ItemAtomOres(int par1)
{
super(par1);
this.setMaxDamage(0);
@SideOnly(Side.CLIENT)
public int getIconFromDamage(int par1)
{
- return ChemiCraft.instance.blockAtomsOre[0].getBlockTextureFromSideAndMetadata(2, BlockAtomsOre.getBlockFromDye(par1));
+ return ChemiCraft.instance.blockAtomOres[0].getBlockTextureFromSideAndMetadata(2, BlockAtomOres.getBlockFromDye(par1));
}
@Override
@Override
public String getItemNameIS(ItemStack par1ItemStack)
{
- return super.getItemName() + "." + ItemDye.dyeColorNames[BlockAtomsOre.getBlockFromDye(par1ItemStack.getItemDamage())];
+ return super.getItemName() + "." + ItemDye.dyeColorNames[BlockAtomOres.getBlockFromDye(par1ItemStack.getItemDamage())];
}
}
import pcc.chemicraft.ChemiCraft;
import pcc.chemicraft.tileentity.TileEntityChemicalCombinationTable;
import pcc.chemicraft.tileentity.TileEntityChemicalCraftingTable;
+import pcc.chemicraft.tileentity.TileEntityElectrolysisTable;
import pcc.chemicraft.tileentity.TileEntityPyrolysisTable;
import pcc.chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
return packet;
}
+
+ public static Packet getPacket(TileEntityElectrolysisTable tileEntity)
+ {
+ ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
+ DataOutputStream var2 = new DataOutputStream(var1);
+
+ // Blockのx, y, z座標
+ int x, y, z;
+
+ // x, y, z座標を代入
+ x = tileEntity.xCoord;
+ y = tileEntity.yCoord;
+ z = tileEntity.zCoord;
+
+ try {
+ // 座標書き込み
+ var2.writeInt(x);
+ var2.writeInt(y);
+ var2.writeInt(z);
+ tileEntity.writePacket(var2);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // パケットの作成
+ Packet250CustomPayload packet = new Packet250CustomPayload();
+ packet.channel = "chemicraft";
+ packet.data = var1.toByteArray();
+ packet.length = var1.size();
+ packet.isChunkDataPacket = true;
+ return packet;
+ }
+
}
package pcc.chemicraft.tileentity;
+import java.io.DataOutputStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.packet.Packet;
import net.minecraft.tileentity.TileEntity;
-import pcc.chemicraft.inventory.InventoryElectrolysisTableFuel;
-import pcc.chemicraft.inventory.InventoryElectrolysisTableMaterial;
-import pcc.chemicraft.inventory.InventoryElectrolysisTableResult;
+import pcc.chemicraft.ChemiCraftAPI;
+import pcc.chemicraft.inventory.InventoryElectrolysisFuel;
+import pcc.chemicraft.inventory.InventoryElectrolysisMaterial;
+import pcc.chemicraft.inventory.InventoryElectrolysisResult;
+import pcc.chemicraft.system.PacketHandler;
+
+import com.google.common.io.ByteArrayDataInput;
public class TileEntityElectrolysisTable extends TileEntity
{
- private InventoryElectrolysisTableMaterial invm = new InventoryElectrolysisTableMaterial();
- private InventoryElectrolysisTableResult invr = new InventoryElectrolysisTableResult();
- private InventoryElectrolysisTableFuel invf = new InventoryElectrolysisTableFuel();
+ private InventoryElectrolysisMaterial invm = new InventoryElectrolysisMaterial();
+ private InventoryElectrolysisResult invr = new InventoryElectrolysisResult();
+ private InventoryElectrolysisFuel invf = new InventoryElectrolysisFuel();
- public TileEntityElectrolysisTable() {
-
- }
+ /**
+ * 電力
+ */
+ private float heat = 0;
+
+ /**
+ * 素材の電力時間
+ */
+ private float burnTime = 0;
+
+ /**
+ * 電池の残り電力時間
+ */
+ private float fuelRestTime = 0;
+
+ /**
+ * 最大熱量
+ */
+ private static final int MAX_HEAT = 1700;
+
+ /**
+ * 燃料が燃え始める最低熱量
+ */
+ private static final int MIN_HEAT = 400;
+
+ /**
+ * 燃料の燃焼速度比率・素材の燃焼速度比率の中心となる熱量
+ */
+ private static final int CENTER_HEAT = 1050;
+
+ /**
+ * 分解までの時間
+ */
+ private static final int MAX_BURN_TIME = 2000;
+
+ /**
+ * Random of instance.
+ */
+ public static final Random rand = new Random();
+
+ /**
+ * レシピのリスト
+ */
+ private static HashMap<ItemStack, ItemStack[]> recipeList = new HashMap<ItemStack, ItemStack[]>();
@Override
- public void readFromNBT(NBTTagCompound par1nbtTagCompound)
+ public void updateEntity()
{
- super.readFromNBT(par1nbtTagCompound);
+ boolean var1 = this.worldObj.canBlockSeeTheSky(xCoord, yCoord + 1, zCoord);
+ if (this.worldObj.getBlockId(xCoord, yCoord-1, zCoord) == Block.fire.blockID) {
+ if (this.heat < 1700) {
+ if (this.worldObj.isRaining() && var1 && !this.worldObj.isThundering()) {
+ this.heat += 0.1F;
+ } else if (this.worldObj.isThundering() && var1) {
+ this.heat += 0.25F;
+ } else {
+ this.heat += 0.5F;
+ }
+ } else {
+ this.heat = 1700;
+ }
+ } else {
+ if (this.heat > 0) {
+ if(this.worldObj.isRaining() && var1 && !this.worldObj.isThundering()) {
+ this.heat -= 0.25F;
+ } else if(this.worldObj.isThundering() && var1) {
+ this.heat -= 0.5F;
+ } else {
+ this.heat -= 0.05F;
+ }
+ } else {
+ this.heat = 0;
+ }
+ }
+
+ if (this.fuelRestTime >= 0) {
+ this.burnTime += 10 * CENTER_HEAT / this.heat;
+ this.fuelRestTime -= 10 * CENTER_HEAT / this.heat;
+ }
+
+ if (this.burnTime >= MAX_BURN_TIME) {
+ Iterator<ItemStack> itMaterial = recipeList.keySet().iterator();
+ while (itMaterial.hasNext()) {
+ ItemStack itemstackMaterial = itMaterial.next();
+ ItemStack materialItem = this.invm.getStackInSlot(0);
+ if (materialItem != null) {
+ if (this.isInItemCheck(itemstackMaterial)) {
+ //var2 = true;
+ if (itemstackMaterial.itemID == materialItem.itemID && itemstackMaterial.getItemDamage() == materialItem.getItemDamage()) {
+ this.inItem(itemstackMaterial);
+ if (materialItem.stackSize > 1) {
+ this.invm.setInventorySlotContents(0, new ItemStack(materialItem.itemID, --materialItem.stackSize, materialItem.getItemDamage()));
+ } else {
+ this.invm.setInventorySlotContents(0, null);
+ }
+ break;
+ }
+ }
+ }
+ }
+ this.burnTime = 0;
+ }
+
+ boolean var3 = false;
+ if (this.heat > MIN_HEAT) {
+ Iterator<ItemStack> itMaterial = recipeList.keySet().iterator();
+ while (itMaterial.hasNext()) {
+ ItemStack itemstackMaterial = itMaterial.next();
+ ItemStack materialItem = this.invm.getStackInSlot(0);
+ if (materialItem != null) {
+ if (this.isInItemCheck(itemstackMaterial)) {
+ //var2 = true;
+ if (itemstackMaterial.itemID == materialItem.itemID && itemstackMaterial.getItemDamage() == materialItem.getItemDamage()) {
+ var3 = true;
+ if (this.fuelRestTime <= 0) {
+ Iterator<ItemStack> itFuel = ChemiCraftAPI.instance().getChemicalCellsFuelList().keySet().iterator();
+ while (itFuel.hasNext()) {
+ ItemStack itemstackFuel = itFuel.next();
+ ItemStack fuelItem = this.invf.getStackInSlot(0);
+ if (fuelItem != null) {
+ if (itemstackFuel.itemID == fuelItem.itemID && itemstackFuel.getItemDamage() == fuelItem.getItemDamage()) {
+ this.fuelRestTime = ChemiCraftAPI.instance().getChemicalCellsFuelList().get(itemstackFuel);
+ if (fuelItem.stackSize > 1) {
+ this.invf.setInventorySlotContents(0, new ItemStack(fuelItem.itemID, --fuelItem.stackSize, fuelItem.getItemDamage()));
+ break;
+ } else {
+ this.invf.setInventorySlotContents(0, null);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ this.burnTime = 0;
+ //var2 = false;
+ }
+ }
+ if (!var3) {
+ this.burnTime = 0;
+ }
+ }
}
@Override
- public void writeToNBT(NBTTagCompound par1nbtTagCompound)
- {
- super.writeToNBT(par1nbtTagCompound);
+ public void readFromNBT(NBTTagCompound par1) {
+ super.readFromNBT(par1);
+ this.heat = par1.getFloat("Heat");
+ this.burnTime = par1.getFloat("BurnTime");
+ this.fuelRestTime = par1.getFloat("FuelRestTime");
+
+ 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.invm.getSizeInventory())
+ {
+ this.invm.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4));
+ }
+ }
+
+ NBTTagList var6 = par1.getTagList("Items2");
+ for (int var3 = 0; var3 < var6.tagCount(); ++var3)
+ {
+ NBTTagCompound var7 = (NBTTagCompound)var6.tagAt(var3);
+ int var8 = var7.getByte("Slot2") & 255;
+
+ if (var8 >= 0 && var8 < this.invr.getSizeInventory())
+ {
+ this.invr.setInventorySlotContents(var8, ItemStack.loadItemStackFromNBT(var7));
+ }
+ }
+
+ NBTTagList var9 = par1.getTagList("Items3");
+ for (int var3 = 0; var3 < var9.tagCount(); ++var3)
+ {
+ NBTTagCompound var10 = (NBTTagCompound)var9.tagAt(var3);
+ int var11 = var10.getByte("Slot3") & 255;
+
+ if (var11 >= 0 && var11 < this.invf.getSizeInventory())
+ {
+ this.invf.setInventorySlotContents(var11, ItemStack.loadItemStackFromNBT(var10));
+ }
+ }
}
@Override
- public void updateEntity()
- {
-
+ public void writeToNBT(NBTTagCompound par1) {
+ super.writeToNBT(par1);
+ par1.setFloat("Heat", this.heat);
+ par1.setFloat("BurnTime", this.burnTime);
+ par1.setFloat("FuelRestTime", this.fuelRestTime);
+
+ NBTTagList var2 = new NBTTagList();
+ for (int var3 = 0; var3 < this.invm.getSizeInventory(); ++var3)
+ {
+ if (this.invm.getStackInSlot(var3) != null)
+ {
+ NBTTagCompound var4 = new NBTTagCompound();
+ var4.setByte("Slot", (byte)var3);
+ this.invm.getStackInSlot(var3).writeToNBT(var4);
+ var2.appendTag(var4);
+ }
+ }
+ par1.setTag("Items", var2);
+
+ NBTTagList var5 = new NBTTagList();
+ for (int var6 = 0; var6 < this.invr.getSizeInventory(); ++var6)
+ {
+ if (this.invr.getStackInSlot(var6) != null)
+ {
+ NBTTagCompound var7 = new NBTTagCompound();
+ var7.setByte("Slot2", (byte)var6);
+ this.invr.getStackInSlot(var6).writeToNBT(var7);
+ var5.appendTag(var7);
+ }
+ }
+ par1.setTag("Items2", var5);
+
+ NBTTagList var8 = new NBTTagList();
+ for (int var9 = 0; var9 < this.invf.getSizeInventory(); ++var9)
+ {
+ if (this.invf.getStackInSlot(var9) != null)
+ {
+ NBTTagCompound var10 = new NBTTagCompound();
+ var10.setByte("Slot3", (byte)var9);
+ this.invf.getStackInSlot(var9).writeToNBT(var10);
+ var8.appendTag(var10);
+ }
+ }
+ par1.setTag("Items3", var8);
}
@Override
- public Packet getDescriptionPacket()
- {
- return super.getDescriptionPacket();
+ public Packet getDescriptionPacket() {
+ return PacketHandler.getPacket(this);
+ }
+
+ public void readPacket(ByteArrayDataInput data) {
+ try {
+ this.heat = data.readFloat();
+ this.burnTime = data.readInt();
+ this.fuelRestTime = data.readFloat();
+ for(int i = 0;i < this.invm.getSizeInventory();i++){
+ int id = data.readInt();
+ int size = data.readByte();
+ int damage = data.readInt();
+ if (id != 0 && size != 0){
+ this.invm.setInventorySlotContents(i, new ItemStack(id, size, damage));
+ }else{
+ this.invm.setInventorySlotContents(i, null);
+ }
+ }
+
+ for(int i = 0;i < this.invr.getSizeInventory();i++){
+ int id = data.readInt();
+ int size = data.readByte();
+ int damage = data.readInt();
+ if (id != 0 && size != 0){
+ this.invr.setInventorySlotContents(i, new ItemStack(id, size, damage));
+ }else{
+ this.invr.setInventorySlotContents(i, null);
+ }
+ }
+
+ for(int i = 0;i < this.invf.getSizeInventory();i++){
+ int id = data.readInt();
+ int size = data.readByte();
+ int damage = data.readInt();
+ if (id != 0 && size != 0){
+ this.invf.setInventorySlotContents(i, new ItemStack(id, size, damage));
+ }else{
+ this.invf.setInventorySlotContents(i, null);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
- public InventoryElectrolysisTableMaterial getInvMaterial(){
+
+ public void writePacket(DataOutputStream dos){
+ try {
+ dos.writeFloat(this.heat);
+ dos.writeFloat(this.burnTime);
+ dos.writeFloat(this.fuelRestTime);
+ for(int i = 0;i < this.invm.getSizeInventory();i++){
+ int id = 0;
+ int size = 0;
+ int damage = 0;
+ ItemStack itemstack = this.invm.getStackInSlot(i);
+ if (itemstack != null){
+ id = itemstack.itemID;
+ size = itemstack.stackSize;
+ damage = itemstack.getItemDamage();
+ dos.writeInt(id);
+ dos.writeByte(size);
+ dos.writeInt(damage);
+ }else{
+ dos.writeInt(0);
+ dos.writeByte(0);
+ dos.writeInt(0);
+ }
+ }
+
+ for(int i = 0;i < this.invr.getSizeInventory();i++){
+ int id = 0;
+ int size = 0;
+ int damage = 0;
+ ItemStack itemstack = this.invr.getStackInSlot(i);
+ if (itemstack != null){
+ id = itemstack.itemID;
+ size = itemstack.stackSize;
+ damage = itemstack.getItemDamage();
+ dos.writeInt(id);
+ dos.writeByte(size);
+ dos.writeInt(damage);
+ }else{
+ dos.writeInt(0);
+ dos.writeByte(0);
+ dos.writeInt(0);
+ }
+ }
+
+ for(int i = 0;i < this.invf.getSizeInventory();i++){
+ int id = 0;
+ int size = 0;
+ int damage = 0;
+ ItemStack itemstack = this.invf.getStackInSlot(i);
+ if (itemstack != null){
+ id = itemstack.itemID;
+ size = itemstack.stackSize;
+ damage = itemstack.getItemDamage();
+ dos.writeInt(id);
+ dos.writeByte(size);
+ dos.writeInt(damage);
+ }else{
+ dos.writeInt(0);
+ dos.writeByte(0);
+ dos.writeInt(0);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public float getBurnTime() {
+ return this.burnTime;
+ }
+
+ public float getHeat() {
+ return this.heat;
+ }
+
+ public InventoryElectrolysisMaterial getInvMaterial(){
return this.invm;
}
- public InventoryElectrolysisTableResult getInvResult(){
+ public InventoryElectrolysisResult getInvResult(){
return this.invr;
}
- public InventoryElectrolysisTableFuel getInvFuel(){
+ public InventoryElectrolysisFuel getInvFuel(){
return this.invf;
}
+ public boolean isInItemCheck(ItemStack key) {
+ ItemStack[] results = recipeList.get(key).clone();
+ ItemStack[] containerResults = new ItemStack[this.invr.getSizeInventory()];
+ for (int j = 0; j < this.invr.getSizeInventory(); j++) {
+ containerResults[j] = this.invr.getStackInSlot(j);
+ }
+
+ for (int i = 0; i < results.length; i++) {
+ int var1 = results[i].itemID;
+ int var3 = results[i].getItemDamage();
+ int var5 = results[i].stackSize;
+ for (int j = 0; j < containerResults.length; j++) {
+ if (containerResults[j] == null) {
+ containerResults[j] = results[i];
+ results[i] = null;
+ break;
+ } else {
+ int var2 = containerResults[j].itemID;
+ int var4 = containerResults[j].getItemDamage();
+ int var6 = containerResults[j].stackSize;
+ int var7 = containerResults[j].getMaxStackSize();
+ if (var1 == var2 && var3 == var4) {
+ if (var5 + var6 <= var7) {
+ containerResults[j] = results[i];
+ results[i] = null;
+ break;
+ } else {
+ var5 -= var7 - var6;
+ }
+ }
+ }
+ }
+ }
+ for (int i = 0; i < results.length; i++) {
+ if (results[i] != null) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public void inItem(ItemStack key) {
+ ItemStack[] results = recipeList.get(key);
+
+ for (int i = 0; i < results.length; i++) {
+ ItemStack[] containerResults = new ItemStack[this.invr.getSizeInventory()];
+ for (int j = 0; j < this.invr.getSizeInventory(); j++) {
+ containerResults[j] = this.invr.getStackInSlot(j);
+ }
+ int var1 = results[i].itemID;
+ int var3 = results[i].getItemDamage();
+ int var5 = results[i].stackSize;
+ for (int j = 0; j < containerResults.length; j++) {
+ if (containerResults[j] == null) {
+ this.invr.setInventorySlotContents(j, results[i]);
+ break;
+ } else {
+ int var2 = containerResults[j].itemID;
+ int var4 = containerResults[j].getItemDamage();
+ int var6 = containerResults[j].stackSize;
+ int var7 = containerResults[j].getMaxStackSize();
+ if (var1 == var2 && var3 == var4) {
+ if (var5 + var6 <= var7) {
+ this.invr.setInventorySlotContents(j, new ItemStack(results[i].itemID, var5 + var6, results[i].getItemDamage()));
+ break;
+ } else {
+ this.invr.setInventorySlotContents(j, new ItemStack(results[i].itemID, var7, results[i].getItemDamage()));
+ var5 -= var7 - var6;
+ }
+ }
+ }
+ }
+ }
+ }
+
}
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.packet.Packet;
import net.minecraft.tileentity.TileEntity;
+import pcc.chemicraft.debug.DebugData;
+import pcc.chemicraft.debug.DebugTick;
import pcc.chemicraft.inventory.InventoryPyrolysisTableFuel;
import pcc.chemicraft.inventory.InventoryPyrolysisTableMaterial;
import pcc.chemicraft.inventory.InventoryPyrolysisTableResult;
@Override
public void updateEntity() {
- //boolean var2 = false;
+ // boolean var2 = false;
boolean var1 = this.worldObj.canBlockSeeTheSky(xCoord, yCoord + 1, zCoord);
if (this.worldObj.getBlockId(xCoord, yCoord-1, zCoord) == Block.fire.blockID) {
new DebugData("BurnTime", this.burnTime),
new DebugData("アイテムが入るか", var2)
);
- */
+ */
}
@Override