package gregtech.common; import java.util.ArrayList; import java.util.List; import gregtech.api.util.GT_Utility; import net.minecraft.client.Minecraft; import net.minecraft.world.ChunkPosition; import net.minecraft.world.WorldManager; public class GT_Pollution { static List tList = null; static int loops = 1; public static void onWorldTick(int aTick){ if(aTick == 0 || (tList==null && GT_Proxy.chunkData!=null)){ tList = new ArrayList(GT_Proxy.chunkData.keySet()); loops = (tList.size()/1200) + 1; } 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]; // System.out.println("process: "+tPos.chunkPosX+" "+tPos.chunkPosZ+" "+tPollution); //Reduce pollution in chunk tPollution = (int)(0.99f*tPollution); tPollution -= 2000; if(tPollution<=0){tPollution = 0;}else{ //Spread Pollution if(tPollution>50000){ List tNeighbor = new ArrayList(); tNeighbor.add(new ChunkPosition(tPos.chunkPosX+1, 1, tPos.chunkPosZ+1)); tNeighbor.add(new ChunkPosition(tPos.chunkPosX+1, 1, tPos.chunkPosZ-1)); tNeighbor.add(new ChunkPosition(tPos.chunkPosX-1, 1, tPos.chunkPosZ+1)); tNeighbor.add(new ChunkPosition(tPos.chunkPosX-1, 1, tPos.chunkPosZ-1)); for(ChunkPosition tNPos : tNeighbor){ if(GT_Proxy.chunkData.containsKey(tNPos)){ int tNPol = GT_Proxy.chunkData.get(tNPos)[1]; if(tNPol1){ tData[1] += aPollution; } }else{ tData[1] += aPollution; GT_Proxy.chunkData.put(tPos, tData); } }catch(Exception e){ } } }