aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorBlood-Asp <bloodasphendrik@gmail.com>2015-12-06 21:15:41 +0100
committerBlood-Asp <bloodasphendrik@gmail.com>2015-12-06 21:15:41 +0100
commitaeb505273bc378b0d85c439fcc0ac6ea4e4d04f9 (patch)
treec4479e7555633ff45d2df3b024785ee46c9c2db8 /src/main/java/gregtech/common
parent66427b21785f387eedaa7f16f50bd8aea9ec3325 (diff)
downloadGT5-Unofficial-aeb505273bc378b0d85c439fcc0ac6ea4e4d04f9.tar.gz
GT5-Unofficial-aeb505273bc378b0d85c439fcc0ac6ea4e4d04f9.tar.bz2
GT5-Unofficial-aeb505273bc378b0d85c439fcc0ac6ea4e4d04f9.zip
Saving pumped oil amounts in chunk NBTs
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 0cf7c33aca..fc68cd1193 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -48,6 +48,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.DamageSource;
+import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
import net.minecraft.world.WorldSettings.GameType;
import net.minecraft.world.gen.feature.WorldGenMinable;
@@ -60,6 +61,7 @@ import net.minecraftforge.event.entity.player.ArrowNockEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.terraingen.OreGenEvent;
import net.minecraftforge.event.world.BlockEvent;
+import net.minecraftforge.event.world.ChunkDataEvent;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
@@ -1827,6 +1829,29 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
tEvent = (OreDictEventContainer) i$.next();
}
}
+
+ public static final HashMap<ChunkPosition, int[]> chunkData = new HashMap<ChunkPosition, int[]>(5000);
+
+ @SubscribeEvent
+ public void handleChunkSaveEvent(ChunkDataEvent.Save event)
+ {
+ ChunkPosition tPos = new ChunkPosition(event.getChunk().xPosition,1,event.getChunk().zPosition);
+ if(chunkData.containsKey(tPos)){
+ int[] tInts = chunkData.get(tPos);
+ if(tInts.length>0){event.getData().setInteger("GTOIL", tInts[0]);}}
+ }
+
+ @SubscribeEvent
+ public void handleChunkLoadEvent(ChunkDataEvent.Load event)
+ {
+ int tOil = -1;
+ if(event.getData().hasKey("GTOIL")){
+ tOil = event.getData().getInteger("GTOIL");}
+ ChunkPosition tPos = new ChunkPosition(event.getChunk().xPosition,1,event.getChunk().zPosition);
+ if(chunkData.containsKey(tPos)){
+ chunkData.remove(tPos);}
+ chunkData.put(tPos, new int[]{ tOil});
+ }
public static class OreDictEventContainer {
public final OreDictionary.OreRegisterEvent mEvent;