From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../thing/tileEntity/TileEntityReactorSim.java | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java (limited to 'src/main/java/tectech/thing/tileEntity') diff --git a/src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java b/src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java new file mode 100644 index 0000000000..ae6ac76f10 --- /dev/null +++ b/src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java @@ -0,0 +1,142 @@ +package tectech.thing.tileEntity; + +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +import ic2.api.energy.event.EnergyTileUnloadEvent; +import ic2.core.IC2; +import ic2.core.block.reactor.tileentity.TileEntityNuclearReactorElectric; +import ic2.core.init.MainConfig; +import ic2.core.util.ConfigUtil; +import tectech.Reference; + +/** + * Created by danie_000 on 30.09.2017. + */ +public class TileEntityReactorSim extends TileEntityNuclearReactorElectric { + + private boolean hadRedstone = true; + + @Override + public void onLoaded() { + super.onLoaded(); + if (IC2.platform.isSimulating() && addedToEnergyNet) { + MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); + // this.addedToEnergyNet = false; + } + } + + @Override + public void onUnloaded() { + addedToEnergyNet = false; + super.onUnloaded(); + } + + @Override + public String getInventoryName() { + return "Nuclear Reactor Simulator"; + } + + @Override + public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction) { + return false; + } + + @Override + public double getOfferedEnergy() { + return 0; + } + + @Override + public double getReactorEUEnergyOutput() { + return getReactorEnergyOutput() * 5.0F + * ConfigUtil.getDouble(MainConfig.get(), "balance/energy/generator/nuclear"); + } + + @Override + protected void updateEntityServer() { + if (updateTicker++ % getTickRate() == 0) { + if (!worldObj.isRemote && worldObj.doChunksNearChunkExist(xCoord, yCoord, zCoord, 2)) { + if (hadRedstone && !receiveredstone()) { + hadRedstone = false; + } else if (!hadRedstone && receiveredstone()) { + doUpdates(); + hadRedstone = true; + } + markDirty(); + } + } + } + + @Override + public boolean calculateHeatEffects() { + if (heat >= 4000 && IC2.platform.isSimulating()) { + float power = (float) heat / (float) maxHeat; + if (power >= 1.0F) { + explode(); // ding + return true; + } else { + return false; + } + } + return false; + } + + // new method + private void doUpdates() { + heat = 0; + do { + dropAllUnfittingStuff(); + output = 0.0F; + maxHeat = 10000; + hem = 1.0F; + processChambers(); + } while (!calculateHeatEffects() && output > 0); + } + + @Override + public void explode() { + getWorld().playSoundEffect(xCoord, yCoord, zCoord, Reference.MODID + ":microwave_ding", 1, 1); + } + + @Override + public void addEmitHeat(int heat) {} + + @Override + public boolean isFluidCooled() { + return false; + } + + @Override + public boolean canFill(ForgeDirection from, Fluid fluid) { + return false; + } + + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) { + return false; + } + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + return 0; + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + return null; + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + return null; + } + + @Override + public int getInventoryStackLimit() { + return 1; + } +} -- cgit