aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
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
Diffstat (limited to 'src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java')
-rw-r--r--src/main/java/tectech/thing/tileEntity/TileEntityReactorSim.java142
1 files changed, 142 insertions, 0 deletions
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;
+ }
+}