diff options
Diffstat (limited to 'src/main')
3 files changed, 20 insertions, 3 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 5ea006b5cb..3ad586d63c 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -995,6 +995,11 @@ public class GT_Mod implements IGT_Mod { } @Mod.EventHandler + public void onServerAboutToStart(FMLServerAboutToStartEvent aEvent){ + gregtechproxy.onServerAboutToStart(); + } + + @Mod.EventHandler public void onServerStarting(FMLServerStartingEvent aEvent) { try { for (Runnable tRunnable : GregTech_API.sBeforeGTServerstart) { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index fd183d9e79..72b24182df 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -6,14 +6,18 @@ import cofh.api.energy.IEnergyStorage; import crazypants.enderio.machine.capbank.TileCapBank; import crazypants.enderio.machine.capbank.network.ICapBankNetwork; import crazypants.enderio.power.IPowerContainer; +import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; import ic2.api.energy.tile.IEnergySource; +import ic2.api.reactor.IReactor; import ic2.api.reactor.IReactorChamber; +import ic2.core.block.reactor.tileentity.TileEntityNuclearReactorElectric; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -151,6 +155,9 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi if (tTileEntity instanceof IReactorChamber) { tTileEntity = (TileEntity) ((IReactorChamber) tTileEntity).getReactor(); } + if(tTileEntity instanceof IReactor && !GT_Mod.gregtechproxy.reactorsDone.add((IReactor) tTileEntity)){ + continue; + } if (tTileEntity instanceof IEnergySource && !(tTileEntity instanceof IPartHost) && ((IEnergySource) tTileEntity).emitsEnergyTo((TileEntity) aBaseMetaTileEntity, ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)))) { long tEU = Math.min(maxEUInput(), (long) ((IEnergySource) tTileEntity).getOfferedEnergy()); ((IEnergySource) tTileEntity).drawEnergy(tEU); diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index 533a13436b..855367f5ff 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -29,6 +29,7 @@ import gregtech.common.gui.GT_GUIContainerVolumetricFlask; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.items.armor.ModularArmor_Item; import gregtech.common.items.armor.gui.*; +import ic2.api.reactor.IReactor; import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -215,6 +216,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { public boolean gt6Cable = true; public boolean ic2EnergySourceCompat = true; public boolean costlyCableConnection = false; + public final HashSet<IReactor> reactorsDone=new HashSet<>(); public GT_Proxy() { GameRegistry.registerFuelHandler(this); @@ -581,6 +583,11 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } } + public void onServerAboutToStart(){ + dimensionWiseChunkData.clear();//!!! IMPORTANT for map switching... + dimensionWisePollution.clear();//!!! IMPORTANT for map switching... + } + public void onServerStarting() { GT_Log.out.println("GT_Mod: ServerStarting-Phase started!"); GT_Log.ore.println("GT_Mod: ServerStarting-Phase started!"); @@ -602,9 +609,6 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { } } } catch (Throwable e) {e.printStackTrace(GT_Log.err);} - - dimensionWiseChunkData.clear();//!!! IMPORTANT for map switching... - dimensionWisePollution.clear();//!!! IMPORTANT for map switching... } public void onServerStarted() { @@ -1230,6 +1234,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { @SubscribeEvent public void onServerTickEvent(TickEvent.ServerTickEvent aEvent) { + reactorsDone.clear(); } @SubscribeEvent |