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.java24
-rw-r--r--src/main/java/gregtech/common/GT_Pollution.java239
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java599
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Metal.java1
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Ores.java20
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java6
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Casings1.java4
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Casings5.java4
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Casings_Abstract.java4
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java2
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Drain.java2
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java4
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java43
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java14
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Pump.java4
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java4
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_Boiler.java2
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_Filter.java1
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_Regulator.java4
-rw-r--r--src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java4
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java1
-rw-r--r--src/main/java/gregtech/common/items/ItemComb.java2
-rw-r--r--src/main/java/gregtech/common/items/armor/ArmorCalculation.java5
-rw-r--r--src/main/java/gregtech/common/items/armor/ArmorData.java19
-rw-r--r--src/main/java/gregtech/common/items/armor/ContainerModularArmor.java2
-rw-r--r--src/main/java/gregtech/common/items/armor/ElectricModularArmor1.java5
-rw-r--r--src/main/java/gregtech/common/items/armor/FluidSync.java9
-rw-r--r--src/main/java/gregtech/common/items/armor/FluidSync2.java10
-rw-r--r--src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java25
-rw-r--r--src/main/java/gregtech/common/items/armor/GuiModularArmor.java13
-rw-r--r--src/main/java/gregtech/common/items/armor/InventoryArmor.java8
-rw-r--r--src/main/java/gregtech/common/items/armor/ModularArmor_Item.java24
-rw-r--r--src/main/java/gregtech/common/items/armor/SlotFluid.java7
-rw-r--r--src/main/java/gregtech/common/items/armor/Values.java4
-rw-r--r--src/main/java/gregtech/common/items/armor/Vector3.java11
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java1
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Sonictron.java3
-rw-r--r--src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_GasTurbine.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicEnergyConverter.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java8
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_PlasmaGenerator.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor2.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor3.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor4.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Charger.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_CuringOven.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java7
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java18
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java12
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java10
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java29
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java30
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java11
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java19
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PyrolyseOven.java4
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Chainsaw_LV.java8
77 files changed, 826 insertions, 586 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index 2ed64941ac..33222c03bb 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -214,7 +214,9 @@ public class GT_Client extends GT_Proxy
GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip(null, true);
i++;
} while (true);
- } catch (Throwable e) {e.printStackTrace(GT_Log.err);}
+ } catch (Throwable e) {
+ e.printStackTrace(GT_Log.err);
+ }
// super.onPostLoad();
@@ -271,16 +273,21 @@ public class GT_Client extends GT_Proxy
} catch (Throwable e) {
}
}
+
+ @SubscribeEvent
+ public void receiveRenderSpecialsEvent(net.minecraftforge.client.event.RenderPlayerEvent.Specials.Pre aEvent) {
+ mCapeRenderer.receiveRenderSpecialsEvent(aEvent);
+ }
@SubscribeEvent
public void onPlayerTickEventClient(TickEvent.PlayerTickEvent aEvent) {
- if ((!aEvent.player.isDead) && (aEvent.phase == TickEvent.Phase.END) && (aEvent.side.isClient())) {
+ if ((aEvent.side.isClient()) && (aEvent.phase == TickEvent.Phase.END) && (!aEvent.player.isDead)) {
ArrayList<GT_PlayedSound> tList = new ArrayList();
for (Map.Entry<GT_PlayedSound, Integer> tEntry : GT_Utility.sPlayedSoundMap.entrySet()) {
- if (((Integer) tEntry.getValue()).intValue() < 0) {
+ if (tEntry.getValue().intValue() < 0) {//Integer -> Integer -> int? >_<, fix
tList.add(tEntry.getKey());
} else {
- tEntry.setValue(Integer.valueOf(((Integer) tEntry.getValue()).intValue() - 1));
+ tEntry.setValue(Integer.valueOf(tEntry.getValue().intValue() - 1));
}
}
GT_PlayedSound tKey;
@@ -347,16 +354,11 @@ public class GT_Client extends GT_Proxy
}
@SubscribeEvent
- public void receiveRenderSpecialsEvent(net.minecraftforge.client.event.RenderPlayerEvent.Specials.Pre aEvent) {
- mCapeRenderer.receiveRenderSpecialsEvent(aEvent);
- }
-
- @SubscribeEvent
public void onClientTickEvent(cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent aEvent) {
if (aEvent.phase == cpw.mods.fml.common.gameevent.TickEvent.Phase.END) {
mAnimationTick++;
if (mAnimationTick % 50L == 0L)
- mAnimationDirection = !mAnimationDirection;
+ {mAnimationDirection = !mAnimationDirection;}
int tDirection = mAnimationDirection ? 1 : -1;
for (Iterator i$ = mPosR.iterator(); i$.hasNext(); ) {
Materials tMaterial = (Materials) i$.next();
@@ -520,4 +522,4 @@ 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);
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/common/GT_Pollution.java b/src/main/java/gregtech/common/GT_Pollution.java
new file mode 100644
index 0000000000..9ded79ca08
--- /dev/null
+++ b/src/main/java/gregtech/common/GT_Pollution.java
@@ -0,0 +1,239 @@
+package gregtech.common;
+
+import gregtech.GT_Mod;
+import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.init.Blocks;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.world.ChunkPosition;
+import net.minecraft.world.World;
+import net.minecraftforge.common.DimensionManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+//import net.minecraft.entity.EntityLiving;
+
+public class GT_Pollution {
+
+
+ static List<ChunkPosition> tList = null;
+ static int loops = 1;
+ static XSTR tRan = new XSTR();
+
+ 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()/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];
+ // System.out.println("process: "+tPos.chunkPosX+" "+tPos.chunkPosZ+" "+tPollution);
+ //Reduce pollution in chunk
+ //tPollution = (int)(0.99f*tPollution);
+ tPollution -= 3000;
+ if(tPollution<=0){tPollution = 0;}else{
+ //Spread Pollution
+ if(tPollution>500000){
+ List<ChunkPosition> tNeighbor = new ArrayList();
+ tNeighbor.add(new ChunkPosition(tPos.chunkPosX+1, 1, tPos.chunkPosZ));
+ tNeighbor.add(new ChunkPosition(tPos.chunkPosX-1, 1, tPos.chunkPosZ));
+ tNeighbor.add(new ChunkPosition(tPos.chunkPosX, 1, tPos.chunkPosZ+1));
+ tNeighbor.add(new ChunkPosition(tPos.chunkPosX, 1, tPos.chunkPosZ-1));
+ for(ChunkPosition tNPos : tNeighbor){
+ if(!GT_Proxy.chunkData.containsKey(tNPos)){
+ GT_Utility.getUndergroundOil(aWorld,tPos.chunkPosX,tPos.chunkPosZ);
+ }
+ int tNPol = GT_Proxy.chunkData.get(tNPos)[1];
+ if(tNPol*12 < tPollution*10){
+ int tDiff = tPollution - tNPol;
+ tDiff = tDiff/20;
+ tNPol = GT_Utility.safeInt((long)tNPol+tDiff);//tNPol += tDiff;
+ tPollution -= tDiff;
+ GT_Proxy.chunkData.get(tNPos)[1] = tNPol;
+ }
+ }
+ }
+ 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(tRan.nextInt(tPollution/25000) > 10){
+ tEnt.addPotionEffect(new PotionEffect(Potion.weakness.id, Math.min(tPollution/1000,1000), 1));
+ tEnt.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, Math.min(tPollution/1000,1000), 1));
+ tEnt.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, Math.min(tPollution/1000,1000), 1));
+ }
+ }
+ // 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(tRan.nextInt(tPollution/25000) > 20){
+ tEnt.addPotionEffect(new PotionEffect(Potion.confusion.id, Math.min(tPollution/2000,1000), 1));
+ tEnt.addPotionEffect(new PotionEffect(Potion.poison.id, Math.min(tPollution/4000,1000), 1));
+ tEnt.addPotionEffect(new PotionEffect(Potion.blindness.id, Math.min(tPollution/2000,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(aWorld,x, y, z, tPollution > GT_Mod.gregtechproxy.mPollutionSourRainLimit);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public static void damageBlock(World aWorld, int x, int y, int z, boolean sourRain){
+ //Teporary overriden
+ //World world = DimensionManager.getWorld(aWorld.provider.dimensionId);
+ World world = DimensionManager.getWorld(0);
+ if (world.isRemote) return;
+ Block tBlock = world.getBlock(x, y, z);
+ int tMeta = world.getBlockMetadata(x, y, z);
+ if (tBlock == Blocks.air || tBlock == Blocks.stone || tBlock == Blocks.sand|| tBlock == Blocks.deadbush)return;
+
+ if (tBlock == Blocks.leaves || tBlock == Blocks.leaves2 || tBlock.getMaterial() == Material.leaves)
+ world.setBlockToAir(x, y, z);
+ if (tBlock == Blocks.reeds) {
+ tBlock.dropBlockAsItem(world, x, y, z, tMeta, 0);
+ world.setBlockToAir(x, y, z);
+ }
+ if (tBlock == Blocks.tallgrass)
+ world.setBlock(x, y, z, Blocks.deadbush);
+ if (tBlock == Blocks.vine) {
+ tBlock.dropBlockAsItem(world, x, y, z, tMeta, 0);
+ world.setBlockToAir(x, y, z);
+ }
+ if (tBlock == Blocks.waterlily || tBlock == Blocks.wheat || tBlock == Blocks.cactus ||
+ tBlock.getMaterial() == Material.cactus || tBlock == Blocks.melon_block || tBlock == Blocks.melon_stem) {
+ tBlock.dropBlockAsItem(world, x, y, z, tMeta, 0);
+ world.setBlockToAir(x, y, z);
+ }
+ if (tBlock == Blocks.red_flower || tBlock == Blocks.yellow_flower || tBlock == Blocks.carrots ||
+ tBlock == Blocks.potatoes || tBlock == Blocks.pumpkin || tBlock == Blocks.pumpkin_stem) {
+ tBlock.dropBlockAsItem(world, x, y, z, tMeta, 0);
+ world.setBlockToAir(x, y, z);
+ }
+ if (tBlock == Blocks.sapling || tBlock.getMaterial() == Material.plants)
+ world.setBlock(x, y, z, Blocks.deadbush);
+ if (tBlock == Blocks.cocoa) {
+ tBlock.dropBlockAsItem(world, x, y, z, tMeta, 0);
+ world.setBlockToAir(x, y, z);
+ }
+ if (tBlock == Blocks.mossy_cobblestone)
+ world.setBlock(x, y, z, Blocks.cobblestone);
+ if (tBlock == Blocks.grass || tBlock.getMaterial() == Material.grass )
+ world.setBlock(x, y, z, Blocks.dirt);
+ if(tBlock == Blocks.farmland || tBlock == Blocks.dirt){
+ world.setBlock(x, y, z, Blocks.sand);
+ }
+
+ if(sourRain && world.isRaining() && (tBlock == Blocks.stone || tBlock == Blocks.gravel || tBlock == Blocks.cobblestone) &&
+ world.getBlock(x, y+1, z) == Blocks.air && world.canBlockSeeTheSky(x, y, z)){
+ if(tBlock == Blocks.stone){world.setBlock(x, y, z, Blocks.cobblestone); }
+ else if(tBlock == Blocks.cobblestone){world.setBlock(x, y, z, Blocks.gravel); }
+ else if(tBlock == Blocks.gravel){world.setBlock(x, y, z, Blocks.sand); }
+ }
+ }
+
+ public static void addPollution(ChunkPosition aPos, int aPollution){
+ if(!GT_Mod.gregtechproxy.mPollution)return;
+ try{
+ ChunkPosition tPos = new ChunkPosition(aPos.chunkPosX>>4, 1, aPos.chunkPosZ>>4);
+ // System.out.println("add pollution x: "+ tPos.chunkPosX +" z: " + tPos.chunkPosZ +" poll: "+aPollution);
+ int[] tData = new int[2];
+ if(GT_Proxy.chunkData.containsKey(tPos)){
+ tData = GT_Proxy.chunkData.get(tPos);
+ if(tData.length>1){
+ tData[1]=GT_Utility.safeInt((long)tData[1]+aPollution);//tData[1] += aPollution;
+ }
+ }else{
+ tData[1]=GT_Utility.safeInt((long)tData[1]+aPollution);//tData[1] += aPollution;
+ GT_Proxy.chunkData.put(tPos, tData);
+ }
+ }catch(Exception e){}
+ }
+
+ //PLACE HOLDER TODO
+ 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);
+ }
+ }
+ }
+ }
+ }
+
+ }