OSDN Git Service

適当にコミット
[chemicraft/chemicraft.git] / common / chemicraft / ChemiCraftAPI.java
1 package chemicraft;
2
3 import java.util.ArrayList;
4
5 import net.minecraft.src.ItemStack;
6 import chemicraft.system.ChemiCraftCraftingManager;
7 import chemicraft.util.ICompoundHandler;
8 import chemicraft.util.NBTRecipe;
9
10 /**
11  * ChemiCraftのAPI
12  * 基本的にAddonはこのクラスのインスタンスを使う
13  * @author mozipi
14  *
15  */
16 public class ChemiCraftAPI {
17
18         /**
19          * Instance of the ChemiCraftAPI.
20          */
21         public static ChemiCraftAPI instance = new ChemiCraftAPI();
22
23
24         /**
25          * List of compounds names.
26          */
27         private ArrayList<String> compoundsNameList = new ArrayList();
28
29
30         /**
31          * List of compounds names(Some kind of language).
32          */
33         private ArrayList<String> compoundsLangNameList = new ArrayList();
34
35
36         /**
37          * List of compounds the language names.
38          */
39         private ArrayList<String> compoundsLangList = new ArrayList();
40
41
42         /**
43          * List of compounds handlers.
44          */
45         private ArrayList<ICompoundHandler> compoundHandlers = new ArrayList<ICompoundHandler>();
46
47
48         /**
49          * List of item name of handler to compounds.
50          */
51         private ArrayList<String> compoundHandlerItemNames = new ArrayList<String>();
52
53
54         /**
55          * 分解台の素材のリスト
56          */
57         private ArrayList<ItemStack> decompositionMaterial = new ArrayList<ItemStack>();
58
59
60         /**
61          * 分解台の結果のリスト
62          */
63         private ArrayList<ItemStack[]> decompositionResults = new ArrayList<ItemStack[]>();
64
65
66         /**
67          * 化合台の素材のリスト
68          */
69         private ArrayList<ItemStack[]> chemicalCombinationMaterials = new ArrayList<ItemStack[]>();
70
71
72         /**
73          * 化合台の結果のリスト
74          */
75         private ArrayList<ItemStack> chemicalCombinationResult = new ArrayList<ItemStack>();
76
77
78
79         /**
80          * 素材製作台の効果添付素材のリスト
81          */
82         private ArrayList<ItemStack[]> materialEffectMaterials = new ArrayList<ItemStack[]>();
83
84
85
86         /**
87          * 素材製作台の素材のリスト
88          */
89         private ArrayList<ItemStack[]> materialMaterials = new ArrayList<ItemStack[]>();
90
91
92
93         /**
94          * 素材製作台の結果のリスト
95          */
96         private ArrayList<ItemStack> materialResult = new ArrayList<ItemStack>();
97
98
99
100         /**
101          * 素材製作台の効果付属用のNBTRecipeのリスト
102          */
103         private ArrayList<NBTRecipe> materialNBT = new ArrayList<NBTRecipe>();
104
105
106
107         /**
108          * ChemiCraftの化学作業台類のレシピのマネージャー
109          */
110         private ChemiCraftCraftingManager chemiCraftCraftingManager = new ChemiCraftCraftingManager();
111
112
113
114         /**
115          * add compound.
116          * @param name compound name.
117          */
118         public void addCompound(String name){
119                 compoundsNameList.add(name);
120                 compoundsLangNameList.add("");
121                 compoundsLangList.add("");
122         }
123
124
125
126         /**
127          * add compound corresponding to the language.
128          * @param lang Language to the corresponding
129          * @param englishName compound name
130          * @param langName compound name(specified language)
131          */
132         public void addLangCompound(String lang, String englishName, String langName){
133                 compoundsNameList.add(englishName);
134                 compoundsLangNameList.add(langName);
135                 compoundsLangList.add(lang);
136         }
137
138
139
140         /**
141          * setting compound handler.
142          * @param handlerItemName
143          * @param compoundHandler
144          */
145         public void settingCompoundHandler(String handlerItemName, ICompoundHandler compoundHandler){
146                 compoundHandlers.add(compoundHandler);
147                 compoundHandlerItemNames.add(handlerItemName);
148         }
149
150
151
152         /**
153          * 分解レシピを追加します。resultの要素数は0<= n <= 16にしてください。
154          * @param material 素材
155          * @param result 結果
156          */
157         public void addDecompositionRecipe(ItemStack material, ItemStack[] result){
158                 if(result.length <= 16){
159                         decompositionMaterial.add(material);
160                         decompositionResults.add(result);
161                 }else{
162                         System.err.println("ChemiCraft内でエラー:addDecompositionRecipeの引数resultの要素数が16を超えています。" + "Material:" + material + "  Result:" + result);
163                 }
164         }
165
166
167
168         /**
169          * 化合レシピを追加します。materialの要素数は0<= n <= 16にしてください。
170          * @param material 素材
171          * @param result 結果
172          */
173         public void addChemicalCombinationRecipe(ItemStack[] material, ItemStack result){
174                 if(material.length <= 16){
175                         chemicalCombinationMaterials.add(material);
176                         chemicalCombinationResult.add(result);
177                 }else{
178                         System.err.println("ChemiCraft内でエラー:addChemicalCombinationRecipeの引数materialの要素数が16を超えています。" + "Material:" + material + "  Result:" + result);
179                 }
180         }
181
182
183
184         public void addMaterialRecipe(ItemStack[] materials, ItemStack result, NBTRecipe nbtRecipe){
185                 if(materials.length <= 9){
186                         materialMaterials.add(materials);
187                         materialResult.add(result);
188                         materialNBT.add(nbtRecipe);
189                 }else{
190                         System.err.println("ChemiCraft内でエラー:addMaterialRecipeの引数materialsの要素数が9を超えています。" + "Material:" + materials + " Result:" + result);
191                 }
192         }
193         //以下システム関連//////////////////////////////////////////////////////
194
195         public ArrayList<ICompoundHandler> getCompoundHandler(){
196                 compoundHandlers.trimToSize();
197                 return compoundHandlers;
198
199         }
200
201
202
203         public ArrayList<String> getCompoundHandlerItemName(){
204                 compoundHandlerItemNames.trimToSize();
205                 return compoundHandlerItemNames;
206         }
207
208
209
210         public ArrayList<String> getCompoundsName(){
211                 compoundsNameList.trimToSize();
212                 return compoundsNameList;
213         }
214
215
216
217         public ArrayList<String> getCompoundsLangName(){
218                 compoundsLangNameList.trimToSize();
219                 return compoundsLangNameList;
220         }
221
222
223
224         public ArrayList<String> getCompoundsLang(){
225                 compoundsLangList.trimToSize();
226                 return compoundsLangList;
227         }
228
229
230
231         public ArrayList<ItemStack> getDecompositionMaterial(){
232                 return decompositionMaterial;
233         }
234
235
236
237         public ArrayList<ItemStack[]> getDecompositionResult(){
238                 return decompositionResults;
239         }
240
241
242
243         public ArrayList<ItemStack[]> getChemicalCombinationMaterial(){
244                 return chemicalCombinationMaterials;
245         }
246
247
248
249         public ArrayList<ItemStack> getChemicalCombinationResult(){
250                 return chemicalCombinationResult;
251         }
252
253
254
255         public ArrayList<ItemStack[]> getMaterialMaterials(){
256                 return materialMaterials;
257         }
258
259
260
261         public ArrayList<ItemStack> getMaterialResult(){
262                 return materialResult;
263         }
264
265
266
267         public ArrayList<NBTRecipe> getMaterialNBTRecipe(){
268                 return materialNBT;
269         }
270
271
272
273         public ChemiCraftCraftingManager getCraftingManager(){
274                 return chemiCraftCraftingManager;
275         }
276
277 }