OSDN Git Service

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