OSDN Git Service

0d1c47cd26cc4beb71da12bea242753929446efb
[chemicraft/chemicraft.git] / common / pcc / chemicraft / base / ChemiCraftBaseAPI.java
1 package pcc.chemicraft.base;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5
6 import pcc.chemicraft.base.gen.EnumOreSpawnFrequency;
7 import pcc.chemicraft.base.gen.WorldGenAtomsOre;
8 import pcc.chemicraft.util.AtomInfo;
9 import pcc.chemicraft.util.Formula;
10 import pcc.chemicraft.util.ListHash;
11
12 public class ChemiCraftBaseAPI
13 {
14
15         private static ChemiCraftBaseAPI instance = new ChemiCraftBaseAPI();
16
17
18         public static ChemiCraftBaseAPI instance(){
19                 return instance;
20         }
21
22         /**
23          * 鉱石別元素数リスト
24          */
25         private HashMap<String, Formula> atomOresFormulasHash = new HashMap<String, Formula>();
26
27
28         /**
29          * 鉱石の言語リスト
30          */
31         private ListHash<String, String> atomOresLangListHash = new ListHash<String, String>();
32
33
34         /**
35          * 鉱石リスト
36          */
37         private ArrayList<WorldGenAtomsOre> atomOresList = new ArrayList<WorldGenAtomsOre>();
38
39
40         /**
41          * 鉱石名リスト
42          */
43         private ListHash<String, String> atomOresNameListHash = new ListHash<String, String>();
44
45
46
47         /**
48          * 鉱石を追加します。
49          * @param par1Name
50          * @param par2Formula
51          * @param par3Id
52          * @param par4Size
53          * @param par5Frequency
54          * @param par6PosY
55          */
56         public void addAtomOres(String par1Name, Formula par2Formula, int par3Id, int par4Size, int par5Frequency, int par6PosY){
57                 atomOresList.add(
58                                 new WorldGenAtomsOre(
59                                                 par3Id,
60                                                 getAtomOresMetaOfLastIndex(),
61                                                 par4Size,
62                                                 par5Frequency,
63                                                 par6PosY));
64                 atomOresFormulasHash.put(par1Name, par2Formula);
65                 addAtomOresLanguage(par1Name, par1Name, "en_US");
66         }
67
68
69
70         public void addAtomOres(String par1Name, Formula par2Formula, int par3Id, EnumOreSpawnFrequency par4Enum){
71                 addAtomOres(
72                                 par1Name,
73                                 par2Formula,
74                                 par3Id,
75                                 par4Enum.getSize(),
76                                 par4Enum.getFrequency(),
77                                 par4Enum.getPosY()
78                                 );
79         }
80
81
82
83         /**
84          * 既に登録した鉱石の新しい名前・言語を追加します
85          * @param par1Name 英語名
86          * @param par2NewName 新しい名前
87          * @param par3Language 言語
88          */
89         public void addAtomOresLanguage(String par1Name, String par2NewName, String par3Language){
90                 atomOresNameListHash.add(par1Name,
91                                 par2NewName);
92                 atomOresLangListHash.add(par1Name,
93                                 par3Language);
94         }
95
96
97
98         //以下システム関連//////////////////////////////////////////////////////
99
100         public ArrayList<WorldGenAtomsOre> getAtomOres(){
101                 return atomOresList;
102         }
103
104         public HashMap<String, Formula> getAtomOresFormulas(){
105                 return atomOresFormulasHash;
106         }
107
108
109
110         public ListHash<String, String> getAtomOresLanguage(){
111                 return atomOresLangListHash;
112         }
113
114
115
116         public int getAtomOresLastIndex(){
117                 return atomOresNameListHash.sizeKeysList() / 16;
118         }
119
120
121
122         public int getAtomOresMetaOfLastIndex(){
123                 return atomOresNameListHash.sizeKeysList() - getAtomOresLastIndex() * 16;
124         }
125
126
127
128         public ListHash<String, String> getAtomOresName(){
129                 return atomOresNameListHash;
130         }
131
132 }