1 package pcc.chemicraft.base;
3 import java.util.ArrayList;
4 import java.util.HashMap;
6 import pcc.chemicraft.base.gen.EnumOreSpawnFrequency;
7 import pcc.chemicraft.base.gen.WorldGenAtomOres;
8 import pcc.chemicraft.util.AtomInfo;
9 import pcc.chemicraft.util.Formula;
10 import pcc.chemicraft.util.ListHash;
13 * ChemiCraftBaseのAPIを提供するクラスです。<br>
14 * ChemiCraftBaseを使用したAPIを作成する場合、このクラスを使用します。
15 * @author mozipi,ponkotate
17 public class ChemiCraftBaseAPI {
22 private static ChemiCraftBaseAPI instance = new ChemiCraftBaseAPI();
29 public static ChemiCraftBaseAPI instance(){
36 private HashMap<String, Formula> atomOresFormulasHash = new HashMap<String, Formula>();
42 private ArrayList<WorldGenAtomOres> atomOresList = new ArrayList<WorldGenAtomOres>();
48 private ListHash<String, String> atomOresNameListHash = new ListHash<String, String>();
54 private ListHash<String, String> atomIngotsNameListHash = new ListHash<String, String>();
60 private ArrayList<String> atomOresAtomList = new ArrayList<String>();
64 * @param par1Name 鉱石名(Oreは自動で語尾につけられます)
65 * @param par2Formula 化学式
67 * @param par4Size 鉱石の塊の大きさ
68 * @param par5Frequency 生成率(frequency/Chunk)
69 * @param par6PosY 鉱石が生成される高度(nowY < PosY == Generate)
71 public void addAtomOres(String par1Name, Formula par2Formula, int par3Id, int par4Size, int par5Frequency, int par6PosY){
72 atomOresFormulasHash.put(par1Name, par2Formula);
74 if (!AtomInfo.isExisting(par1Name)) {
78 getAtomOresMetaOfLastIndex(),
83 atomOresAtomList.add(par1Name);
85 String var7 = par1Name;
86 if (!par1Name.contains(" Ore")) {
87 var7 = par1Name + " Ore";
90 addAtomOresLanguage(par1Name, var7, "en_US");
92 if (!par1Name.contains(" Ingot")) {
93 var7 = par1Name + " Ingot";
96 addAtomIngotsLanguage(par1Name, var7, "en_US");
104 * @param par1Name 鉱石名(Oreは自動で語尾につけられます)
105 * @param par2Formula 化学式
106 * @param par3Id 鉱石のID
107 * @param par4Enum 鉱石生成の情報が入ったEnum
109 public void addAtomOres(String par1Name, Formula par2Formula, int par3Id, EnumOreSpawnFrequency par4Enum){
115 par4Enum.getFrequency(),
123 * 既に登録した鉱石の新しい名前・言語を追加します
124 * @param par1KeyName 鉱石追加の際に用いたpar1Nameに当たる文字列
125 * @param par2NewName 新しい名前
126 * @param par3NewLanguage 新しい言語
128 public void addAtomOresLanguage(String par1KeyName, String par2NewName, String par3NewLanguage){
129 if (this.atomOresAtomList.contains(par1KeyName)){
130 atomOresNameListHash.add(
140 * 既に登録したインゴットの新しい名前・言語を追加します
141 * @param par1KeyName 鉱石追加の際に用いたpar1Nameに当たる文字列
142 * @param par2NewName 新しい名前
143 * @param par3NewLanguage 新しい言語
145 public void addAtomIngotsLanguage(String par1KeyName, String par2NewName, String par3NewLanguage){
146 if (this.atomOresAtomList.contains(par1KeyName)){
147 atomIngotsNameListHash.add(
156 //以下システム関連//////////////////////////////////////////////////////
158 public ArrayList<WorldGenAtomOres> getAtomOres(){
162 public HashMap<String, Formula> getAtomOresFormulas(){
163 return atomOresFormulasHash;
168 public int getAtomOresLastIndex(){
169 return atomOresAtomList.size() / 16;
174 public int getAtomOresMetaOfLastIndex(){
175 return atomOresAtomList.size() - getAtomOresLastIndex() * 16;
180 public ListHash<String, String> getAtomOresName(){
181 return atomOresNameListHash;
186 public ListHash<String, String> getAtomIngotsName(){
187 return atomIngotsNameListHash;
192 public ArrayList<String> getAtomOresAtomName() {
193 return this.atomOresAtomList;