OSDN Git Service

集気ビンを右クリックで確率に応じた気体を入手可能。
[chemicraft/chemicraft.git] / common / chemicraft / AtomInfo.java
1 package chemicraft;\r
2 \r
3 import cpw.mods.fml.common.Side;\r
4 import cpw.mods.fml.common.asm.SideOnly;\r
5 import net.minecraft.src.EntityPlayer;\r
6 import net.minecraft.src.ItemStack;\r
7 import net.minecraft.src.World;\r
8 \r
9 /**\r
10  * いろいろなデータを格納しメソッドによってチェックするクラス\r
11  * 使用する場合はItemAtomInfoContainerを継承することを推奨\r
12  * @author ponkotate\r
13  *\r
14  */\r
15 public class AtomInfo {\r
16 \r
17         /**\r
18          * X, Y, Z座標\r
19          */\r
20         private  int posX;\r
21         private  int posY;\r
22         private  int posZ;\r
23 \r
24 \r
25         /**\r
26          * biomeの名前\r
27          */\r
28         private  String biomeName;\r
29 \r
30 \r
31         /**\r
32          * 天候\r
33          */\r
34         private  String weather;\r
35 \r
36 \r
37         /**\r
38          * EntityPlayerのインスタンス\r
39          */\r
40         private EntityPlayer entityPlayer;\r
41 \r
42 \r
43         /**\r
44          * Worldのインスタンス\r
45          */\r
46         private World world;\r
47 \r
48 \r
49 \r
50         /**\r
51          * AtomInfoのデータをupdateします\r
52          * @param par1World Worldのインスタンス\r
53          * @param par2EntityPlayer EntityPlayerのインスタンス\r
54          */\r
55         public void update(World par1World, EntityPlayer par2EntityPlayer){\r
56                 this.world = par1World;\r
57                 this.entityPlayer = par2EntityPlayer;\r
58 \r
59                 this.posX = (int) par2EntityPlayer.posX;\r
60                 this.posY = (int) par2EntityPlayer.posY;\r
61                 this.posZ = (int) par2EntityPlayer.posZ;\r
62 \r
63                 this.biomeName = par1World.getBiomeGenForCoords(posX, posZ).biomeName;\r
64 \r
65                 if (par1World.isThundering()){\r
66                         this.weather = "Thunder";\r
67                 }else if(par1World.isRaining()){\r
68                         this.weather = "Rain";\r
69                 }else{\r
70                         this.weather = "Sun";\r
71                 }\r
72         }\r
73 \r
74 \r
75 \r
76         /**\r
77          * 引数に指定されたBiomeと同等か比較します\r
78          * @param biomeName 比較するBiomeの名前\r
79          * @return Biomeが一致しているか\r
80          */\r
81         public boolean isEquivalentBiome(String biomeName){\r
82                 if(this.biomeName != null){\r
83                         if(this.biomeName == biomeName){\r
84                                 return true;\r
85                         }else{\r
86                                 return false;\r
87                         }\r
88                 }else{\r
89                         System.err.println("AtonInfo:データが入っていません。updateメソッドでデータを入れてください");\r
90                         return false;\r
91                 }\r
92         }\r
93 \r
94 \r
95 \r
96         /**\r
97          * 引数に指定された天候と同等か比較します\r
98          * 晴れ:Sun, 雨:Rain, 雷雨:Thunder\r
99          * @param weather 比較する天候\r
100          * @return 天候が一致しているか\r
101          */\r
102         public boolean isEquivalentWeather(String weather){\r
103                 if(this.weather != null){\r
104                         if(this.weather == weather){\r
105                                 return true;\r
106                         }else{\r
107                                 return false;\r
108                         }\r
109                 }else{\r
110                         System.err.println("AtonInfo:データが入っていません。updateメソッドでデータを入れてください");\r
111                         return false;\r
112                 }\r
113         }\r
114 \r
115 \r
116 \r
117         /**\r
118          * 引数に指定されたY軸より高いか判定します\r
119          * @param par1\r
120          * @return 指定されたY軸より高いか\r
121          */\r
122         @SideOnly(Side.CLIENT)\r
123         public boolean isOverY(int par1){\r
124                 if(this.posY >= par1){\r
125                         return true;\r
126                 }else{\r
127                         return false;\r
128                 }\r
129         }\r
130 \r
131 \r
132 \r
133         /**\r
134          * 引数に指定されたY軸と同等か判定します\r
135          * @param par1\r
136          * @return 指定されたY軸と同等かどうか\r
137          */\r
138         @SideOnly(Side.CLIENT)\r
139         public boolean isEquivalentY(int par1){\r
140                 if(this.posY == par1){\r
141                         return true;\r
142                 }else{\r
143                         return false;\r
144                 }\r
145         }\r
146 \r
147 \r
148 \r
149         /**\r
150          * 引数に指定されたY軸より低いか判定します\r
151          * @param par1\r
152          * @return 指定されたY軸より低いか\r
153          */\r
154         @SideOnly(Side.CLIENT)\r
155         public boolean isBelowY(int par1){\r
156                 if(this.posY <= par1){\r
157                         return true;\r
158                 }else{\r
159                         return false;\r
160                 }\r
161         }\r
162 \r
163 }\r