OSDN Git Service

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