From af3467035bee4a28cb9a807244d4eac6606cc8e7 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 17 Oct 2021 19:55:37 -0400 Subject: [PATCH] Building tile referernce cleanup --- .../world/blocks/defense/turrets/LaserTurret.java | 2 +- .../world/blocks/defense/turrets/LiquidTurret.java | 6 ++++-- .../src/mindustry/world/blocks/distribution/Conveyor.java | 4 ++-- .../mindustry/world/blocks/distribution/MassDriver.java | 4 ++-- core/src/mindustry/world/blocks/logic/MessageBlock.java | 2 +- .../src/mindustry/world/blocks/payloads/BuildPayload.java | 1 + .../world/blocks/payloads/PayloadMassDriver.java | 4 ++-- core/src/mindustry/world/blocks/power/ImpactReactor.java | 2 +- core/src/mindustry/world/blocks/power/NuclearReactor.java | 8 ++++---- core/src/mindustry/world/blocks/production/Drill.java | 5 +++++ core/src/mindustry/world/blocks/units/CommandCenter.java | 4 ++-- core/src/mindustry/world/blocks/units/RepairPoint.java | 2 +- 12 files changed, 26 insertions(+), 18 deletions(-) diff --git a/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java index 8106aa836a..1f80bb26fc 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LaserTurret.java @@ -106,7 +106,7 @@ public class LaserTurret extends PowerTurret{ @Override protected void bullet(BulletType type, float angle){ - bullet = type.create(tile.build, team, x + tr.x, y + tr.y, angle); + bullet = type.create(this, team, x + tr.x, y + tr.y, angle); bulletLife = shootDuration; } diff --git a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java index c03f196367..caae54ad41 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -4,6 +4,7 @@ import arc.graphics.g2d.*; import arc.struct.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; +import mindustry.core.*; import mindustry.entities.*; import mindustry.entities.bullet.*; import mindustry.gen.*; @@ -100,13 +101,14 @@ public class LiquidTurret extends Turret{ @Override protected void findTarget(){ if(extinguish && liquids.current().canExtinguish()){ + int tx = World.toTile(x), ty = World.toTile(y); Fire result = null; float mindst = 0f; int tr = (int)(range / tilesize); for(int x = -tr; x <= tr; x++){ for(int y = -tr; y <= tr; y++){ - Tile other = world.tile(x + tile.x, y + tile.y); - var fire = Fires.get(x + tile.x, y + tile.y); + Tile other = world.tile(x + tx, y + ty); + var fire = Fires.get(x + tx, y + ty); float dst = fire == null ? 0 : dst2(fire); //do not extinguish fires on other team blocks if(other != null && fire != null && Fires.has(other.x, other.y) && dst <= range * range && (result == null || dst < mindst) && (other.build == null || other.team() == team)){ diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index 97dba6fc77..a1dab8d249 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -163,8 +163,8 @@ public class Conveyor extends Block implements Autotiler{ tr2.trns(rotation * 90, -tilesize / 2f, xs[i] * tilesize / 2f); Draw.rect(item.fullIcon, - (tile.x * tilesize + tr1.x * ys[i] + tr2.x), - (tile.y * tilesize + tr1.y * ys[i] + tr2.y), + (x + tr1.x * ys[i] + tr2.x), + (y + tr1.y * ys[i] + tr2.y), itemSize, itemSize); } } diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index c0bd7d73b2..f60d6b3c17 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -165,7 +165,7 @@ public class MassDriver extends Block{ } //align to shooter rotation - rotation = Angles.moveToward(rotation, tile.angleTo(currentShooter()), rotateSpeed * efficiency()); + rotation = Angles.moveToward(rotation, angleTo(currentShooter()), rotateSpeed * efficiency()); }else if(state == DriverState.shooting){ //if there's nothing to shoot at OR someone wants to shoot at this thing, bail if(!hasLink || (!waitingShooters.isEmpty() && (itemCapacity - items.total() >= minDistribute))){ @@ -173,7 +173,7 @@ public class MassDriver extends Block{ return; } - float targetRotation = tile.angleTo(link); + float targetRotation = angleTo(link); if( items.total() >= minDistribute && //must shoot minimum amount of items diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index 3a982c37cb..1c373056dc 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -119,7 +119,7 @@ public class MessageBlock extends Block{ dialog.hide(); }).size(130f, 60f); dialog.update(() -> { - if(tile.block() != MessageBlock.this){ + if(tile.build != this){ dialog.hide(); } }); diff --git a/core/src/mindustry/world/blocks/payloads/BuildPayload.java b/core/src/mindustry/world/blocks/payloads/BuildPayload.java index ad6a6a0fc9..07a501e579 100644 --- a/core/src/mindustry/world/blocks/payloads/BuildPayload.java +++ b/core/src/mindustry/world/blocks/payloads/BuildPayload.java @@ -80,6 +80,7 @@ public class BuildPayload implements Payload{ @Override public void draw(){ drawShadow(1f); + //build.draw(); //TODO broken for blocks that change layers, such as conveyors, but would be nice... Draw.rect(build.block.fullIcon, build.x, build.y); } diff --git a/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java b/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java index 7087c5f008..1d6386bc18 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java @@ -233,7 +233,7 @@ public class PayloadMassDriver extends PayloadBlock{ } //align to shooter rotation - turretRotation = Angles.moveToward(turretRotation, tile.angleTo(currentShooter()), rotateSpeed * efficiency()); + turretRotation = Angles.moveToward(turretRotation, angleTo(currentShooter()), rotateSpeed * efficiency()); }else if(state == shooting){ //if there's nothing to shoot at OR someone wants to shoot at this thing, bail if(!hasLink || (!waitingShooters.isEmpty() && payload == null)){ @@ -241,7 +241,7 @@ public class PayloadMassDriver extends PayloadBlock{ return; } - float targetRotation = tile.angleTo(link); + float targetRotation = angleTo(link); boolean movedOut = false; payRotation = Angles.moveToward(payRotation, turretRotation, payloadRotateSpeed * delta()); diff --git a/core/src/mindustry/world/blocks/power/ImpactReactor.java b/core/src/mindustry/world/blocks/power/ImpactReactor.java index 3679b2be80..45e8f394f4 100644 --- a/core/src/mindustry/world/blocks/power/ImpactReactor.java +++ b/core/src/mindustry/world/blocks/power/ImpactReactor.java @@ -141,7 +141,7 @@ public class ImpactReactor extends PowerGenerator{ if(warmup < 0.3f || !state.rules.reactorExplosions) return; - Sounds.explosionbig.at(tile); + Sounds.explosionbig.at(this); Damage.damage(x, y, explosionRadius * tilesize, explosionDamage * 4); diff --git a/core/src/mindustry/world/blocks/power/NuclearReactor.java b/core/src/mindustry/world/blocks/power/NuclearReactor.java index a26a99d5cd..ba8394b90a 100644 --- a/core/src/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/mindustry/world/blocks/power/NuclearReactor.java @@ -76,6 +76,7 @@ public class NuclearReactor extends PowerGenerator{ public class NuclearReactorBuild extends GeneratorBuild{ public float heat; + public float flash; @Override public void updateTile(){ @@ -130,7 +131,7 @@ public class NuclearReactor extends PowerGenerator{ public void onDestroyed(){ super.onDestroyed(); - Sounds.explosionbig.at(tile); + Sounds.explosionbig.at(this); int fuel = items.get(consumes.get(ConsumeType.item).items[0].item); @@ -160,10 +161,9 @@ public class NuclearReactor extends PowerGenerator{ Draw.rect(topRegion, x, y); if(heat > flashThreshold){ - float flash = 1f + ((heat - flashThreshold) / (1f - flashThreshold)) * 5.4f; - flash += flash * Time.delta; + flash += (1f + ((heat - flashThreshold) / (1f - flashThreshold)) * 5.4f) * Time.delta; Draw.color(Color.red, Color.yellow, Mathf.absin(flash, 9f, 1f)); - Draw.alpha(0.6f); + Draw.alpha(0.3f); Draw.rect(lightsRegion, x, y); } diff --git a/core/src/mindustry/world/blocks/production/Drill.java b/core/src/mindustry/world/blocks/production/Drill.java index fa3a274301..d31a130f96 100644 --- a/core/src/mindustry/world/blocks/production/Drill.java +++ b/core/src/mindustry/world/blocks/production/Drill.java @@ -243,6 +243,11 @@ public class Drill extends Block{ } } + @Override + public void pickedUp(){ + dominantItem = null; + } + @Override public void onProximityUpdate(){ super.onProximityUpdate(); diff --git a/core/src/mindustry/world/blocks/units/CommandCenter.java b/core/src/mindustry/world/blocks/units/CommandCenter.java index 3d8f9c024f..0629727acf 100644 --- a/core/src/mindustry/world/blocks/units/CommandCenter.java +++ b/core/src/mindustry/world/blocks/units/CommandCenter.java @@ -97,9 +97,9 @@ public class CommandCenter extends Block{ float size = 6f; Draw.color(bottomColor); - Draw.rect(commandRegions[team.data().command.ordinal()].getRegion(), tile.drawx(), tile.drawy() - 1, size, size); + Draw.rect(commandRegions[team.data().command.ordinal()].getRegion(), x, y - 1, size, size); Draw.color(topColor == null ? team.color : topColor); - Draw.rect(commandRegions[team.data().command.ordinal()].getRegion(), tile.drawx(), tile.drawy(), size, size); + Draw.rect(commandRegions[team.data().command.ordinal()].getRegion(), x, y, size, size); Draw.color(); } diff --git a/core/src/mindustry/world/blocks/units/RepairPoint.java b/core/src/mindustry/world/blocks/units/RepairPoint.java index 3ca61ec0d7..3c723c49e3 100644 --- a/core/src/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/mindustry/world/blocks/units/RepairPoint.java @@ -176,7 +176,7 @@ public class RepairPoint extends Block{ multiplier = liq.valid(this) ? 1f + liquids.current().heatCapacity * coolantMultiplier : 1f; } - if(target != null && (target.dead() || target.dst(tile) - target.hitSize/2f > repairRadius || target.health() >= target.maxHealth())){ + if(target != null && (target.dead() || target.dst(this) - target.hitSize/2f > repairRadius || target.health() >= target.maxHealth())){ target = null; }