OSDN Git Service

とりあえずコミット
[chemicraft/chemicraft.git] / common / pcc / chemicraft / ChemiCraftAPI.java
index f267f01..84a25c6 100644 (file)
@@ -3,13 +3,13 @@ package pcc.chemicraft;
 import java.util.ArrayList;
 import java.util.HashMap;
 
+import net.minecraft.item.ItemStack;
 import pcc.chemicraft.system.ChemiCraftCraftingManager;
 import pcc.chemicraft.tileentity.TileEntityPyrolysisTable;
 import pcc.chemicraft.util.ChemicalNBTRecipe;
 import pcc.chemicraft.util.ICompoundHandler;
 import pcc.chemicraft.util.MaterialRecipe;
 
-import net.minecraft.item.ItemStack;
 
 /**
  * ChemiCraftのAPI
@@ -62,18 +62,6 @@ public class ChemiCraftAPI {
 
 
        /**
-        * 分解台の素材のリスト
-        */
-       private ArrayList<ItemStack> decompositionMaterial = new ArrayList<ItemStack>();
-
-
-       /**
-        * 分解台の結果のリスト
-        */
-       private ArrayList<ItemStack[]> decompositionResults = new ArrayList<ItemStack[]>();
-
-
-       /**
         * 化合台の原子の種類のリスト
         */
        private ArrayList<String[]> chemicalCombinationAtoms = new ArrayList<String[]>();
@@ -103,23 +91,64 @@ public class ChemiCraftAPI {
        private ChemiCraftCraftingManager chemiCraftCraftingManager = new ChemiCraftCraftingManager();
 
 
+
+       /**
+        * 鉱石名リスト
+        */
+       private ArrayList<String> atomsOreNameList = new ArrayList<String>();
+
+
+       /**
+        * 鉱石IDリスト
+        */
        private ArrayList<Integer> atomsOreIDList = new ArrayList<Integer>();
 
 
+       /**
+        * 鉱石メタデータリスト
+        */
        private ArrayList<Integer> atomsOreMetaList = new ArrayList<Integer>();
 
 
+       /**
+        * 鉱石量リスト
+        */
        private ArrayList<Integer> atomsOreSizeList = new ArrayList<Integer>();
 
 
+       /**
+        * 鉱石頻度リスト
+        */
        private ArrayList<Integer> atomsOreFrequencyList = new ArrayList<Integer>();
 
 
+       /**
+        * 鉱石Y座標リスト
+        */
        private ArrayList<Integer> atomsOrePosYList = new ArrayList<Integer>();
 
 
 
        /**
+        * ツール&武器作成台の素材一覧のリスト
+        */
+       private ArrayList<ItemStack[]> toolAndWeaponMaterials = new ArrayList<ItemStack[]>();
+
+
+       /**
+        * ツール&武器作成台の結果のリスト
+        */
+       private ArrayList<ItemStack> toolAndWeaponResult = new ArrayList<ItemStack>();
+
+
+       /**
+        * ツール&武器作成台の不定形であるか
+        */
+       private ArrayList<Boolean> toolAndWeaponSharpless = new ArrayList<Boolean>();
+
+
+
+       /**
         * add compound.
         * @param name compound name.
         */
@@ -167,22 +196,6 @@ public class ChemiCraftAPI {
 
 
        /**
-        * 分解レシピを追加します。resultの要素数は0<= n <= 16にしてください。
-        * @param material 素材
-        * @param result 結果
-        */
-       public void addDecompositionRecipe(ItemStack material, ItemStack[] result){
-               if(result.length <= 16){
-                       decompositionMaterial.add(material);
-                       decompositionResults.add(result);
-               }else{
-                       System.err.println("ChemiCraft内でエラー:addDecompositionRecipeの引数resultの要素数が16を超えています。" + "Material:" + material + "  Result:" + result);
-               }
-       }
-
-
-
-       /**
         * 化合レシピを追加します。materialの要素数は0<= n <= 16にしてください。
         * @param material 素材
         * @param result 結果
@@ -195,46 +208,107 @@ public class ChemiCraftAPI {
 
 
 
+       /**
+        * 分解台のレシピを追加します
+        * @param material 素材
+        * @param results 原子の元素番号の配列
+        * @param stacks 原子のできる数の配列
+        */
        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.atomsID,stacks[i], results[i]);
+                       itemstacks[i] = new ItemStack(ChemiCraft.instance.itemAtoms,stacks[i], results[i]);
                }
                TileEntityPyrolysisTable.addRecipe(material, itemstacks);
        }
 
 
 
-       public void addDecompositionRecipe(ItemStack itemstack, int burnTime) {
+       /**
+        * 分解台の燃料を追加します
+        * @param itemstack 燃料のItemStack
+        * @param burnTime 燃焼時間(tick * rate)
+        */
+       public void addDecompositionFuel(ItemStack itemstack, int burnTime) {
                TileEntityPyrolysisTable.addFuel(itemstack, burnTime);
        }
 
 
 
+       /**
+        * ツール&武器作成台のレシピを追加します
+        * @param materials 素材
+        * @param result 結果
+        */
+       public void addToolAndWeaponRecipe(ItemStack[] materials, ItemStack result) {
+               toolAndWeaponMaterials.add(materials);
+               toolAndWeaponResult.add(result);
+               toolAndWeaponSharpless.add(false);
+       }
+
+
+       /**
+        * ツール&武器作成台の不定形レシピを追加します
+        * @param materials 素材
+        * @param result 結果
+        */
+       public void addSharplessToolAndWeaponRecipe(ItemStack[] materials, ItemStack result) {
+               toolAndWeaponMaterials.add(materials);
+               toolAndWeaponResult.add(result);
+               toolAndWeaponSharpless.add(true);
+       }
+
+
+
+       /**
+        * 素材作成台の不定形レシピを追加します
+        * @param materials 素材
+        * @param result 結果
+        * @param nbtRecipe NBT(Nullの場合はなし)
+        */
        public void addSharplessMaterialRecipe(ItemStack[] materials, ItemStack result, ChemicalNBTRecipe nbtRecipe){
                materialRecipe.add(new MaterialRecipe(result, materials, nbtRecipe, true));
        }
 
 
 
+       /**
+        * 素材作成台のレシピを追加します
+        * @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 addAtomsOre(int id, int size, int frequency, int posY){
-               addAtomsOre(id, 0, size, frequency, posY);
+       /**
+        * 鉱石を追加します
+        * @param name 鉱石名
+        * @param id 鉱石ID
+        * @param meta 鉱石メタデータ
+        * @param size 一度に生成される量
+        * @param frequency 生成頻度
+        * @param posY Y座標
+        */
+       public void addAtomsOre(String name, int id, int size, int frequency, int posY){
+               addAtomsOre(name, id, 0, size, frequency, posY);
        }
 
 
-       public void addAtomsOre(int id, int meta, int size, int frequency, int posY){
+       public void addAtomsOre(String name, int id, int meta, int size, int frequency, int posY){
+               atomsOreNameList.add(name);
                atomsOreIDList.add(id);
                atomsOreMetaList.add(meta);
                atomsOreSizeList.add(size);
                atomsOreFrequencyList.add(frequency);
                atomsOrePosYList.add(posY);
        }
+
+
+       
        //以下システム関連//////////////////////////////////////////////////////
 
        public ArrayList<ICompoundHandler> getCompoundHandler(){
@@ -273,18 +347,6 @@ public class ChemiCraftAPI {
 
 
 
-       public ArrayList<ItemStack> getDecompositionMaterial(){
-               return decompositionMaterial;
-       }
-
-
-
-       public ArrayList<ItemStack[]> getDecompositionResult(){
-               return decompositionResults;
-       }
-
-
-
        public ArrayList<String[]> getChemicalCombinationAtoms(){
                return chemicalCombinationAtoms;
        }
@@ -309,12 +371,36 @@ public class ChemiCraftAPI {
 
 
 
+       public ArrayList<ItemStack[]> getToolAndWeaponMaterials() {
+               return toolAndWeaponMaterials;
+       }
+
+
+
+       public ArrayList<ItemStack> getToolAndWeaponResult() {
+               return toolAndWeaponResult;
+       }
+
+
+
+       public ArrayList<Boolean> getToolAndWeaponSharpless() {
+               return toolAndWeaponSharpless;
+       }
+
+
+
        public ChemiCraftCraftingManager getCraftingManager(){
                return chemiCraftCraftingManager;
        }
 
 
 
+       public ArrayList<String> getAtomsOreNameList(){
+               return atomsOreNameList;
+       }
+
+
+
        public ArrayList<Integer> getAtomsOreIDList(){
                return atomsOreIDList;
        }