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.WorldGenAtomsOre;
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 ListHash<String, String> atomOresLangListHash = new ListHash<String, String>();
48 private ArrayList<WorldGenAtomsOre> atomOresList = new ArrayList<WorldGenAtomsOre>();
54 private ListHash<String, String> atomOresNameListHash = new ListHash<String, String>();
60 private ArrayList<String> atomOresEnglishList = 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){
75 getAtomOresMetaOfLastIndex(),
80 atomOresFormulasHash.put(par1Name, par2Formula);
82 String var7 = par1Name;
83 if (!var7.contains(" Ore")) {
84 var7 = var7.concat(" Ore");
87 this.atomOresEnglishList.add(par1Name + " Ore");
88 addAtomOresLanguage(par1Name, var7, "en_US");
95 * @param par1Name 鉱石名(Oreは自動で語尾につけられます)
96 * @param par2Formula 化学式
98 * @param par4Enum 鉱石生成の情報が入ったEnum
100 public void addAtomOres(String par1Name, Formula par2Formula, int par3Id, EnumOreSpawnFrequency par4Enum){
106 par4Enum.getFrequency(),
114 * 既に登録した鉱石の新しい名前・言語を追加します
115 * @param par1Name 英語名
116 * @param par2NewName 新しい名前
117 * @param par3Language 言語
119 public void addAtomOresLanguage(String par1Name, String par2NewName, String par3Language){
120 atomOresNameListHash.add(par1Name,
122 atomOresLangListHash.add(par1Name,
128 //以下システム関連//////////////////////////////////////////////////////
130 public ArrayList<WorldGenAtomsOre> getAtomOres(){
134 public HashMap<String, Formula> getAtomOresFormulas(){
135 return atomOresFormulasHash;
140 public ListHash<String, String> getAtomOresLanguage(){
141 return atomOresLangListHash;
146 public int getAtomOresLastIndex(){
147 return atomOresNameListHash.sizeKeysList() / 16;
152 public int getAtomOresMetaOfLastIndex(){
153 return atomOresNameListHash.sizeKeysList() - getAtomOresLastIndex() * 16;
158 public ListHash<String, String> getAtomOresName(){
159 return atomOresNameListHash;
164 public String getAtomOreEnglishName(int index) {
165 return this.atomOresEnglishList.get(index);