OSDN Git Service

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