aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/GT_Client.java71
-rw-r--r--src/main/java/gregtech/common/GT_Network.java8
-rw-r--r--src/main/java/gregtech/common/GT_Pollution.java265
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java152
-rw-r--r--src/main/java/gregtech/common/GT_RecipeAdder.java6
-rw-r--r--src/main/java/gregtech/common/GT_UndergroundOil.java100
-rw-r--r--src/main/java/gregtech/common/GT_Worldgenerator.java50
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Machines.java21
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java2
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Stones.java21
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Material_Casings.java2
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Material_Reinforced.java2
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Arm.java5
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java6
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java24
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java8
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Drain.java12
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java24
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java6
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java4
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java12
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java6
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java4
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_NeedMaintainance.java24
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java6
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Pump.java24
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java14
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java6
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java6
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Shutter.java8
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Vent.java2
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java12
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_Filter.java20
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_Regulator.java5
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java12
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java20
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java6
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java14
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_None.java5
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java127
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_LightningRod.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java21
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java21
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java20
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java8
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Titanium.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java32
-rw-r--r--src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_QuantumChest.java41
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool.java6
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Axe.java16
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java16
62 files changed, 888 insertions, 468 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index ff4968cd16..7d3f687b28 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -9,6 +9,7 @@ import codechicken.lib.vec.Rotation;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
+import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
@@ -30,6 +31,9 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
+import net.minecraftforge.client.event.EntityViewRenderEvent;
+import net.minecraftforge.event.terraingen.BiomeEvent;
+import net.minecraftforge.oredict.OreDictionary;
import org.lwjgl.opengl.GL11;
import java.net.URL;
@@ -139,6 +143,44 @@ public class GT_Client extends GT_Proxy
GL11.glEnd();
GL11.glPopMatrix();
}
+
+ @SubscribeEvent
+ public void manipulateDensity(EntityViewRenderEvent.FogDensity event) {
+ if(GT_Pollution.mPlayerPollution > (GT_Mod.gregtechproxy.mPollutionSmogLimit)){
+ event.density = (0.15f*(Math.min(GT_Pollution.mPlayerPollution/((float)GT_Mod.gregtechproxy.mPollutionSourRainLimit),1.0f)))+0.1f;
+ event.setCanceled(true);
+ }
+ }
+
+ @SubscribeEvent
+ public void manipulateColor(EntityViewRenderEvent.FogColors event) {
+ if(GT_Pollution.mPlayerPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit){
+ event.red = 140f/255f;
+ event.green = 80f/255f;
+ event.blue = 40f/255f;
+ }
+ }
+
+ @SubscribeEvent
+ public void manipulateGrassColor(BiomeEvent.GetGrassColor event) {
+ if(GT_Pollution.mPlayerPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit){
+ event.newColor = 0xD2691E;
+ }
+ }
+
+ @SubscribeEvent
+ public void manipulateWaterColor(BiomeEvent.GetWaterColor event) {
+ if(GT_Pollution.mPlayerPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit){
+ event.newColor = 0x556B2F;
+ }
+ }
+
+ @SubscribeEvent
+ public void manipulateFoliageColor(BiomeEvent.GetFoliageColor event) {
+ if(GT_Pollution.mPlayerPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit){
+ event.newColor = 0xCD853F;
+ }
+ }
public boolean isServerSide() {
return true;
@@ -327,6 +369,12 @@ public class GT_Client extends GT_Proxy
@SubscribeEvent
public void onClientTickEvent(cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent aEvent) {
if (aEvent.phase == cpw.mods.fml.common.gameevent.TickEvent.Phase.END) {
+ if(changeDetected>0)changeDetected--;
+ int newHideValue=shouldHeldItemHideThings();
+ if(newHideValue!=hideValue){
+ hideValue=newHideValue;
+ changeDetected=5;
+ }
mAnimationTick++;
if (mAnimationTick % 50L == 0L)
{mAnimationDirection = !mAnimationDirection;}
@@ -493,4 +541,27 @@ public class GT_Client extends GT_Proxy
else
aWorld.playSound(aX, aY, aZ, tString, 3F, tString.startsWith("note.") ? (float) Math.pow(2D, (double) (aStack.stackSize - 13) / 12D) : 1.0F, false);
}
+
+ public static int hideValue=0;
+ public static int changeDetected=0;
+
+ private static int shouldHeldItemHideThings() {
+ try {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+ if (player == null) return 0;
+ ItemStack held = player.getCurrentEquippedItem();
+ if (held == null) return 0;
+ int[] ids = OreDictionary.getOreIDs(held);
+ int hide = 0;
+ for (int i : ids) {
+ if (OreDictionary.getOreName(i).equals("craftingToolSolderingIron")) {
+ hide |= 0x1;
+ break;
+ }
+ }
+ return hide;
+ }catch(Exception e){
+ return 0;
+ }
+ }
} \ No newline at end of file
diff --git a/src/main/java/gregtech/common/GT_Network.java b/src/main/java/gregtech/common/GT_Network.java
index 2b19b98dff..ae444429bf 100644
--- a/src/main/java/gregtech/common/GT_Network.java
+++ b/src/main/java/gregtech/common/GT_Network.java
@@ -32,7 +32,7 @@ public class GT_Network
public GT_Network() {
this.mChannel = NetworkRegistry.INSTANCE.newChannel("GregTech", new ChannelHandler[]{this, new HandlerShared()});
- this.mSubChannels = new GT_Packet[]{new GT_Packet_TileEntity(), new GT_Packet_Sound(), new GT_Packet_Block_Event(), new GT_Packet_Ores()};
+ this.mSubChannels = new GT_Packet[]{new GT_Packet_TileEntity(), new GT_Packet_Sound(), new GT_Packet_Block_Event(), new GT_Packet_Ores(), new GT_Packet_Pollution()};
}
protected void encode(ChannelHandlerContext aContext, GT_Packet aPacket, List<Object> aOutput)
@@ -47,6 +47,12 @@ public class GT_Network
}
public void sendToPlayer(GT_Packet aPacket, EntityPlayerMP aPlayer) {
+ if(aPacket==null){
+ System.out.println("packet null");return;
+ }
+ if(aPlayer==null){
+ System.out.println("player null");return;
+ }
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
diff --git a/src/main/java/gregtech/common/GT_Pollution.java b/src/main/java/gregtech/common/GT_Pollution.java
index a950e8a2f2..6669bf861a 100644
--- a/src/main/java/gregtech/common/GT_Pollution.java
+++ b/src/main/java/gregtech/common/GT_Pollution.java
@@ -1,6 +1,8 @@
package gregtech.common;
+import cpw.mods.fml.common.gameevent.TickEvent;
import gregtech.GT_Mod;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_Utility;
import net.minecraft.block.Block;
@@ -10,12 +12,17 @@ import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
-import net.minecraftforge.common.DimensionManager;
+import net.minecraft.world.chunk.Chunk;
+import net.minecraftforge.event.world.WorldEvent;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+
+import static gregtech.common.GT_Proxy.*;
+
+//import net.minecraft.entity.EntityLiving;
public class GT_Pollution {
/**
@@ -49,95 +56,132 @@ public class GT_Pollution {
* Muffler Hatch Pollution reduction:
* LV (0%), MV (30%), HV (52%), EV (66%), IV (76%), LuV (84%), ZPM (89%), UV (92%), MAX (95%)
*/
+ private static XSTR tRan = new XSTR();
+ private List<ChunkCoordIntPair> pollutionList = new ArrayList<>();//chunks left to process
+ private HashMap<ChunkCoordIntPair,int[]> chunkData;//link to chunk data that is saved/loaded
+ private int operationsPerTick=0;//how much chunks should be processed in each cycle
+ private static final short cycleLen=1200;
+ private final World aWorld;
+ public static int mPlayerPollution;
- static List<ChunkPosition> tList = null;
- static int loops = 1;
- static XSTR tRan = new XSTR();
+ public GT_Pollution(World world){
+ aWorld=world;
+ chunkData=dimensionWiseChunkData.get(aWorld.provider.dimensionId);
+ if(chunkData==null){
+ chunkData=new HashMap<>(1024);
+ dimensionWiseChunkData.put(world.provider.dimensionId,chunkData);
+ }
+ dimensionWisePollution.put(aWorld.provider.dimensionId,this);
+ }
- public static void onWorldTick(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()/1200) + 1;
-// System.out.println("new Pollution loop"+aTick);
+ public static void onWorldTick(TickEvent.WorldTickEvent aEvent){//called from proxy
+ //return if pollution disabled
+ if(!GT_Mod.gregtechproxy.mPollution) return;
+ final GT_Pollution pollutionInstance = dimensionWisePollution.get(aEvent.world.provider.dimensionId);
+ if(pollutionInstance==null)return;
+ pollutionInstance.tickPollutionInWorld((int)(aEvent.world.getTotalWorldTime()%cycleLen));
+ }
+
+ private void tickPollutionInWorld(int aTickID){//called from method above
+ //gen data set
+ if(aTickID==0){
+ pollutionList = new ArrayList<>(chunkData.keySet());
+ //set operations per tick
+ if(pollutionList.size()>0) operationsPerTick =(pollutionList.size()/cycleLen);
+ else operationsPerTick=0;//SANity
}
- if(tList!=null && tList.size() > 0){
- int i = 0;
- for(; i < loops ; i++){
- if(tList.size()>0){
- 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.chunkPosY+" "+tPos.chunkPosX+" "+tPos.chunkPosZ+" "+tPollution);
- //Reduce pollution in chunk
- tPollution = (int)(0.99f*tPollution);
- tPollution -= 2000;
- if(tPollution<=0){tPollution = 0;}
- //Spread Pollution
- if(tPollution>50000){
- List<ChunkPosition> tNeighbor = new ArrayList();
- tNeighbor.add(new ChunkPosition(tPos.chunkPosX+1, tPos.chunkPosY, tPos.chunkPosZ));
- tNeighbor.add(new ChunkPosition(tPos.chunkPosX-1, tPos.chunkPosY, tPos.chunkPosZ));
- tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ+1));
- tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ-1));
- for(ChunkPosition tNPos : tNeighbor){
- if(GT_Proxy.chunkData.containsKey(tNPos)){
- int tNPol = GT_Proxy.chunkData.get(tNPos)[1];
- if(tNPol<tPollution && tNPol*12 < tPollution*10){
- int tDiff = tPollution - tNPol;
- tDiff = tDiff/10;
- tNPol += tDiff;
- tPollution -= tDiff;
- GT_Proxy.chunkData.get(tNPos)[1] = tNPol;
- }
- }else{
- GT_Utility.getUndergroundOil(aWorld,tNPos.chunkPosX<<4,tNPos.chunkPosZ<<4);
+
+ for(int chunksProcessed=0;chunksProcessed<=operationsPerTick;chunksProcessed++){
+ if(pollutionList.size()==0)break;//no more stuff to do
+ ChunkCoordIntPair actualPos=pollutionList.remove(pollutionList.size()-1);//faster
+ //add default data if missing
+ if(!chunkData.containsKey(actualPos)) chunkData.put(actualPos,getDefaultChunkDataOnCreation());
+ //get pollution
+ int tPollution = chunkData.get(actualPos)[GTPOLLUTION];
+ //remove some
+ tPollution = (int)(0.9945f*tPollution);
+ //tPollution -= 2000;//This does not really matter...
+
+ if(tPollution<=0) tPollution = 0;//SANity check
+ else if(tPollution>400000){//Spread Pollution
+
+ ChunkCoordIntPair[] tNeighbors = new ChunkCoordIntPair[4];//array is faster
+ tNeighbors[0]=(new ChunkCoordIntPair(actualPos.chunkXPos+1,actualPos.chunkZPos));
+ tNeighbors[1]=(new ChunkCoordIntPair(actualPos.chunkXPos-1,actualPos.chunkZPos));
+ tNeighbors[2]=(new ChunkCoordIntPair(actualPos.chunkXPos,actualPos.chunkZPos+1));
+ tNeighbors[3]=(new ChunkCoordIntPair(actualPos.chunkXPos,actualPos.chunkZPos-1));
+ for(ChunkCoordIntPair neighborPosition : tNeighbors){
+ if(!chunkData.containsKey(neighborPosition)) chunkData.put(neighborPosition,getDefaultChunkDataOnCreation());
+
+ int neighborPollution = chunkData.get(neighborPosition)[GTPOLLUTION];
+ if(neighborPollution*6 < tPollution*5){//METHEMATICS...
+ int tDiff = tPollution - neighborPollution;
+ tDiff = tDiff/20;
+ neighborPollution = GT_Utility.safeInt((long)neighborPollution+tDiff);//tNPol += tDiff;
+ tPollution -= tDiff;
+ chunkData.get(neighborPosition)[GTPOLLUTION] = neighborPollution;
}
- }}
- 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){
- AxisAlignedBB chunk = AxisAlignedBB.getBoundingBox(tPos.chunkPosX<<4, 0, tPos.chunkPosZ<<4, (tPos.chunkPosX<<4)+16, 256, (tPos.chunkPosZ<<4)+16);
- List<EntityLivingBase> tEntitys = aWorld.getEntitiesWithinAABB(EntityLivingBase.class, chunk);
- for(EntityLivingBase tEnt : tEntitys){
- if(!GT_Utility.isWearingFullGasHazmat(tEnt) && tRan.nextInt(tPollution/2000) > 40){
- int ran = tRan.nextInt(3);
- if(ran==0)tEnt.addPotionEffect(new PotionEffect(Potion.weakness.id, Math.min(tPollution/2500,1000), tPollution/400000));
- if(ran==1)tEnt.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, Math.min(tPollution/2500,1000), tPollution/400000));
- if(ran==2)tEnt.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, Math.min(tPollution/2500,1000), tPollution/400000));
+ //Smog filter TODO
+ if(tPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit) {
+ AxisAlignedBB chunk = AxisAlignedBB.getBoundingBox(actualPos.chunkXPos << 4, 0, actualPos.chunkZPos << 4, (actualPos.chunkXPos << 4) + 16, 256, (actualPos.chunkZPos << 4) + 16);
+ List<EntityLivingBase> tEntitys = aWorld.getEntitiesWithinAABB(EntityLivingBase.class, chunk);
+ for (EntityLivingBase tEnt : tEntitys) {
+ if (!GT_Utility.isWearingFullGasHazmat(tEnt)) {
+ switch (tRan.nextInt(3)) {
+ default:
+ tEnt.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, Math.min(tPollution / 1000, 1000), tPollution / 400000));
+ case 1:
+ tEnt.addPotionEffect(new PotionEffect(Potion.weakness.id, Math.min(tPollution / 1000, 1000), tPollution / 400000));
+ case 2:
+ tEnt.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, Math.min(tPollution / 1000, 1000), tPollution / 400000));
+ }
}
-}
-// Poison effects
- if(tPollution > GT_Mod.gregtechproxy.mPollutionPoisonLimit){
- for(EntityLivingBase tEnt : tEntitys){
- if(!GT_Utility.isWearingFullGasHazmat(tEnt) && tRan.nextInt(tPollution/2000) > 20){
- int ran = tRan.nextInt(3);
- if(ran==0)tEnt.addPotionEffect(new PotionEffect(Potion.poison.id, Math.min(tPollution/2500,1000), tPollution/500000));
- if(ran==1)tEnt.addPotionEffect(new PotionEffect(Potion.confusion.id, Math.min(tPollution/2500,1000), 1));
- if(ran==2)tEnt.addPotionEffect(new PotionEffect(Potion.blindness.id, Math.min(tPollution/2500,1000), 1));
-}
- }
-// killing plants
- if(tPollution > GT_Mod.gregtechproxy.mPollutionVegetationLimit){
- int f = 20;
- for(;f<(tPollution/25000);f++){
- int x =tPos.chunkPosX<<4+(tRan.nextInt(16));;
- int y =60 +(-f+tRan.nextInt(f*2+1));
- int z =tPos.chunkPosZ<<4+(tRan.nextInt(16));
- damageBlock(x, y, z, tPollution > GT_Mod.gregtechproxy.mPollutionSourRainLimit);
- }}}}
+ }
+
+
+ // Poison effects
+ if (tPollution > GT_Mod.gregtechproxy.mPollutionPoisonLimit) {
+ //AxisAlignedBB chunk = AxisAlignedBB.getBoundingBox(tPos.chunkPosX*16, 0, tPos.chunkPosZ*16, tPos.chunkPosX*16+16, 256, tPos.chunkPosZ*16+16);
+ //List<EntityLiving> tEntitys = aWorld.getEntitiesWithinAABB(EntityLiving.class, chunk);
+ for (EntityLivingBase tEnt : tEntitys) {
+ if (!GT_Utility.isWearingFullGasHazmat(tEnt)) {
+ switch (tRan.nextInt(4)) {
+ default:
+ tEnt.addPotionEffect(new PotionEffect(Potion.hunger.id, tPollution / 500000));
+ case 1:
+ tEnt.ad