Pollution changes 2
This commit is contained in:
parent
f87d016767
commit
3fe36ca604
1 changed files with 41 additions and 2 deletions
|
@ -171,8 +171,47 @@ public class GT_Pollution {
|
||||||
}
|
}
|
||||||
}catch(Exception e){}
|
}catch(Exception e){}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void onWorldTickClient(World aWorld, int aTick){
|
||||||
|
if(!GT_Mod.gregtechproxy.mPollution)return;
|
||||||
|
if(aTick == 0 || (tList==null && GT_Proxy.chunkData!=null)){
|
||||||
|
tList = new ArrayList<ChunkPosition>(GT_Proxy.chunkData.keySet());
|
||||||
|
loops = (tList.size()/1000) + 1;
|
||||||
|
// System.out.println("new Pollution loop"+aTick);
|
||||||
|
}
|
||||||
|
if(tList!=null && tList.size() > 0){
|
||||||
|
int i = 0;
|
||||||
|
for(; i < loops ; i++){
|
||||||
|
ChunkPosition tPos = tList.get(0);
|
||||||
|
tList.remove(0);
|
||||||
|
if(tPos!=null && GT_Proxy.chunkData.containsKey(tPos)){
|
||||||
|
int tPollution = GT_Proxy.chunkData.get(tPos)[1];
|
||||||
|
|
||||||
|
if(tPollution<=0){tPollution = 0;}else{
|
||||||
|
|
||||||
|
int[] tArray = GT_Proxy.chunkData.get(tPos);
|
||||||
|
tArray[1] = tPollution;
|
||||||
|
GT_Proxy.chunkData.remove(tPos);
|
||||||
|
GT_Proxy.chunkData.put(tPos, tArray);
|
||||||
|
//Create Pollution effects
|
||||||
|
// Smog filter TODO
|
||||||
|
if(tPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit){
|
||||||
|
doSmog(tPos,aWorld,tPollution);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void doSmog(ChunkPosition tPos, World aWorld, int tPollution) {
|
||||||
|
if(aWorld.isRemote) {
|
||||||
|
int i = Math.max(tPollution/5000,300);
|
||||||
|
for (; i > 0; i -= 1)
|
||||||
|
aWorld.spawnParticle("largesmoke", tPos.chunkPosX * 16 + (new XSTR()).nextFloat() * 16, (new XSTR()).nextFloat() * 250, tPos.chunkPosZ * 16 + (new XSTR()).nextFloat() * 16, 0.0D, 0.3D, 0.0D);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}catch(Exception e){
|
|
||||||
|
|
||||||
public static int getPollutionAtCoords(int aX, int aZ){
|
public static int getPollutionAtCoords(int aX, int aZ){
|
||||||
ChunkPosition tPos = new ChunkPosition(aX>>4, 1, aZ>>4);
|
ChunkPosition tPos = new ChunkPosition(aX>>4, 1, aZ>>4);
|
||||||
|
|
Loading…
Reference in a new issue