diff --git a/core/src/mindustry/world/blocks/defense/ShockwaveTower.java b/core/src/mindustry/world/blocks/defense/ShockwaveTower.java index d7b30eaca5..9def23cf33 100644 --- a/core/src/mindustry/world/blocks/defense/ShockwaveTower.java +++ b/core/src/mindustry/world/blocks/defense/ShockwaveTower.java @@ -107,8 +107,11 @@ public class ShockwaveTower extends Block{ @Override public double sense(LAccess sensor) { - if(sensor == LAccess.progress) return reloadCounter / reload; - return super.sense(sensor); + return switch(sensor){ + case progress -> reloadCounter / reload; + case heat -> heat; + default -> super.sense(sensor); + }; } diff --git a/core/src/mindustry/world/blocks/defense/turrets/PowerTurret.java b/core/src/mindustry/world/blocks/defense/turrets/PowerTurret.java index c52a44f9ac..01833c6726 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/PowerTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/PowerTurret.java @@ -35,6 +35,7 @@ public class PowerTurret extends Turret{ return switch(sensor){ case ammo -> power == null ? 0f : power.status; case ammoCapacity -> 1; + case heat -> heatRequirement > 0 ? heat : Float.NaN; default -> super.sense(sensor); }; } diff --git a/core/src/mindustry/world/blocks/heat/HeatConductor.java b/core/src/mindustry/world/blocks/heat/HeatConductor.java index 8ca9446de3..64c8980b89 100644 --- a/core/src/mindustry/world/blocks/heat/HeatConductor.java +++ b/core/src/mindustry/world/blocks/heat/HeatConductor.java @@ -8,6 +8,7 @@ import mindustry.*; import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.ui.*; import mindustry.world.*; import mindustry.world.draw.*; @@ -88,6 +89,12 @@ public class HeatConductor extends Block{ heat = calculateHeat(sideHeat, cameFrom); } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.heat) return heat; + return super.sense(sensor); + } + @Override public float warmup(){ return heat; diff --git a/core/src/mindustry/world/blocks/heat/HeatProducer.java b/core/src/mindustry/world/blocks/heat/HeatProducer.java index e07cc083a4..fd2058c6e5 100644 --- a/core/src/mindustry/world/blocks/heat/HeatProducer.java +++ b/core/src/mindustry/world/blocks/heat/HeatProducer.java @@ -4,6 +4,7 @@ import arc.math.*; import arc.struct.*; import arc.util.io.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.ui.*; import mindustry.world.blocks.production.*; import mindustry.world.draw.*; @@ -60,6 +61,12 @@ public class HeatProducer extends GenericCrafter{ return heat; } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.heat) return heat; + return super.sense(sensor); + } + @Override public void write(Writes write){ super.write(write); diff --git a/core/src/mindustry/world/blocks/power/HeaterGenerator.java b/core/src/mindustry/world/blocks/power/HeaterGenerator.java index 53350f9fd5..782f2a1f79 100644 --- a/core/src/mindustry/world/blocks/power/HeaterGenerator.java +++ b/core/src/mindustry/world/blocks/power/HeaterGenerator.java @@ -3,6 +3,7 @@ package mindustry.world.blocks.power; import arc.math.*; import arc.util.io.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.ui.*; import mindustry.world.blocks.heat.*; import mindustry.world.draw.*; @@ -62,6 +63,12 @@ public class HeaterGenerator extends ConsumeGenerator{ return heat; } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.heat) return heat; + return super.sense(sensor); + } + @Override public void write(Writes write){ super.write(write); diff --git a/core/src/mindustry/world/blocks/power/VariableReactor.java b/core/src/mindustry/world/blocks/power/VariableReactor.java index bcfc2e8975..a7bd5553f9 100644 --- a/core/src/mindustry/world/blocks/power/VariableReactor.java +++ b/core/src/mindustry/world/blocks/power/VariableReactor.java @@ -12,6 +12,7 @@ import mindustry.entities.*; import mindustry.entities.effect.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.ui.*; import mindustry.world.blocks.heat.*; import mindustry.world.meta.*; @@ -151,6 +152,12 @@ public class VariableReactor extends PowerGenerator{ return maxHeat; } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.heat) return heat; + return super.sense(sensor); + } + @Override public void write(Writes write){ super.write(write); diff --git a/core/src/mindustry/world/blocks/production/HeatCrafter.java b/core/src/mindustry/world/blocks/production/HeatCrafter.java index 7cc1ee3d5c..26376a294d 100644 --- a/core/src/mindustry/world/blocks/production/HeatCrafter.java +++ b/core/src/mindustry/world/blocks/production/HeatCrafter.java @@ -3,6 +3,7 @@ package mindustry.world.blocks.production; import arc.*; import arc.math.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.ui.*; import mindustry.world.blocks.heat.*; import mindustry.world.meta.*; @@ -71,6 +72,12 @@ public class HeatCrafter extends GenericCrafter{ return Mathf.clamp(heat / heatRequirement); } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.heat) return heat; + return super.sense(sensor); + } + @Override public float efficiencyScale(){ float over = Math.max(heat - heatRequirement, 0f);