diff options
author | Blood-Asp <bloodasphendrik@gmail.com> | 2015-12-06 21:15:41 +0100 |
---|---|---|
committer | Blood-Asp <bloodasphendrik@gmail.com> | 2015-12-06 21:15:41 +0100 |
commit | aeb505273bc378b0d85c439fcc0ac6ea4e4d04f9 (patch) | |
tree | c4479e7555633ff45d2df3b024785ee46c9c2db8 /src/main/java/gregtech/common | |
parent | 66427b21785f387eedaa7f16f50bd8aea9ec3325 (diff) | |
download | GT5-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.java | 25 |
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; |