From 00f7f57c469217cc8ae66c013cbf167d32ff2ac7 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 18 Aug 2020 10:01:53 -0400 Subject: [PATCH] Bugfixes --- core/src/mindustry/ai/types/BuilderAI.java | 2 ++ core/src/mindustry/core/NetClient.java | 4 ++-- core/src/mindustry/core/NetServer.java | 5 +++-- core/src/mindustry/entities/comp/BuilderComp.java | 12 +++--------- core/src/mindustry/logic/LExecutor.java | 2 ++ 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java index 6db5e3e4c3..149f4ef6d0 100644 --- a/core/src/mindustry/ai/types/BuilderAI.java +++ b/core/src/mindustry/ai/types/BuilderAI.java @@ -19,6 +19,8 @@ public class BuilderAI extends AIController{ builder.lookAt(builder.vel().angle()); } + builder.updateBuilding(true); + //approach request if building if(builder.buildPlan() != null){ BuildPlan req = builder.buildPlan(); diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index 9bc0f40a48..2262e2248b 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -554,7 +554,7 @@ public class NetClient implements ApplicationListener{ void sync(){ if(timer.get(0, playerSyncTime)){ BuildPlan[] requests = null; - if(player.isBuilder() && control.input.isBuilding){ + if(player.isBuilder()){ //limit to 10 to prevent buffer overflows int usedRequests = Math.min(player.builder().plans().size, 10); @@ -574,7 +574,7 @@ public class NetClient implements ApplicationListener{ unit instanceof Mechc ? ((Mechc)unit).baseRotation() : 0, unit.vel.x, unit.vel.y, player.miner().mineTile(), - player.boosting, player.shooting, ui.chatfrag.shown(), + player.boosting, player.shooting, ui.chatfrag.shown(), control.input.isBuilding, requests, Core.camera.position.x, Core.camera.position.y, Core.camera.width * viewScale, Core.camera.height * viewScale); diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index 8374c4d609..0225f64f08 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -6,8 +6,8 @@ import arc.graphics.*; import arc.math.*; import arc.math.geom.*; import arc.struct.*; -import arc.util.ArcAnnotate.*; import arc.util.*; +import arc.util.ArcAnnotate.*; import arc.util.CommandHandler.*; import arc.util.io.*; import arc.util.serialization.*; @@ -535,7 +535,7 @@ public class NetServer implements ApplicationListener{ float rotation, float baseRotation, float xVelocity, float yVelocity, Tile mining, - boolean boosting, boolean shooting, boolean chatting, + boolean boosting, boolean shooting, boolean chatting, boolean building, @Nullable BuildPlan[] requests, float viewX, float viewY, float viewWidth, float viewHeight ){ @@ -572,6 +572,7 @@ public class NetServer implements ApplicationListener{ if(player.isBuilder()){ player.builder().clearBuilding(); + player.builder().updateBuilding(building); } if(player.isMiner()){ diff --git a/core/src/mindustry/entities/comp/BuilderComp.java b/core/src/mindustry/entities/comp/BuilderComp.java index 694686a2e1..241179e7ae 100644 --- a/core/src/mindustry/entities/comp/BuilderComp.java +++ b/core/src/mindustry/entities/comp/BuilderComp.java @@ -29,13 +29,7 @@ abstract class BuilderComp implements Unitc{ @Import float x, y, rotation; @SyncLocal Queue plans = new Queue<>(); - transient boolean updateBuilding = true; - - @Override - public void controller(UnitController next){ - //reset building state so AI controlled units will always start off building - updateBuilding = true; - } + @SyncLocal transient boolean updateBuilding = true; @Override public void update(){ @@ -85,12 +79,12 @@ abstract class BuilderComp implements Unitc{ boolean hasAll = infinite || !Structs.contains(current.block.requirements, i -> core != null && !core.items.has(i.item)); if(hasAll){ - Build.beginPlace(current.block, team(), current.x, current.y, current.rotation); + Call.beginPlace(current.block, team(), current.x, current.y, current.rotation); }else{ current.stuck = true; } }else if(!current.initialized && current.breaking && Build.validBreak(team(), current.x, current.y)){ - Build.beginBreak(team(), current.x, current.y); + Call.beginBreak(team(), current.x, current.y); }else{ plans.removeFirst(); return; diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index cca17d35cd..dbdb146513 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -326,6 +326,8 @@ public class LExecutor{ } exec.setobj(output, targeted); + }else{ + exec.setobj(output, null); } }