From cffd35504520a58f4eba253856af510379c59c7f Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 2 Nov 2021 00:37:14 -0400 Subject: [PATCH] BuildTurret save queue --- .../world/blocks/defense/BuildTurret.java | 22 ++++++++++++++----- gradle.properties | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/world/blocks/defense/BuildTurret.java b/core/src/mindustry/world/blocks/defense/BuildTurret.java index d8c1a998c6..411853130a 100644 --- a/core/src/mindustry/world/blocks/defense/BuildTurret.java +++ b/core/src/mindustry/world/blocks/defense/BuildTurret.java @@ -3,11 +3,13 @@ package mindustry.world.blocks.defense; import arc.graphics.g2d.*; import arc.struct.*; import arc.util.*; +import arc.util.io.*; import mindustry.annotations.Annotations.*; import mindustry.entities.units.*; import mindustry.game.Teams.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.io.*; import mindustry.type.*; import mindustry.world.*; import mindustry.world.blocks.*; @@ -29,6 +31,8 @@ public class BuildTurret extends BaseTurret{ public BuildTurret(String name){ super(name); group = BlockGroup.turrets; + sync = false; + rotateSpeed = 10f; } @Override @@ -42,7 +46,7 @@ public class BuildTurret extends BaseTurret{ speed = 0f; hitSize = 0f; health = 1; - rotateSpeed = 360f; + rotateSpeed = BuildTurret.this.rotateSpeed; itemCapacity = 0; commandLimit = 0; constructor = BlockUnitUnit::create; @@ -79,7 +83,8 @@ public class BuildTurret extends BaseTurret{ unit.lookAt(angleTo(unit.buildPlan())); } - unit.buildSpeedMultiplier(efficiency() * timeScale); + //at 0 build speed the unit thinks it can't build, so make it >0 + unit.buildSpeedMultiplier(Math.max(efficiency() * timeScale, 0.000001f)); if(!isControlled()){ unit.updateBuilding(true); @@ -121,12 +126,12 @@ public class BuildTurret extends BaseTurret{ unit.drawBuilding(); } - /* @Override public void write(Writes write){ super.write(write); write.f(rotation); - //TODO build queue + //TODO queue can be very large due to logic? + TypeIO.writeRequests(write, unit.plans().toArray(BuildPlan.class)); } @Override @@ -134,6 +139,13 @@ public class BuildTurret extends BaseTurret{ super.read(read, revision); rotation = read.f(); unit.rotation(rotation); - }*/ + unit.plans().clear(); + var reqs = TypeIO.readRequests(read); + if(reqs != null){ + for(var req : reqs){ + unit.plans().add(req); + } + } + } } } diff --git a/gradle.properties b/gradle.properties index a7fc8bc057..0d1105982b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,4 +24,4 @@ android.useAndroidX=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=7289b987eb5aae0999f561551d1b3bb50a195dc2 +archash=ace698cee9e0ea2bc7993ffa44501122bd891b44