From ce2dd89f44a6362bb0f91fc4223d3a3e51befa43 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 16 Sep 2020 23:34:56 -0400 Subject: [PATCH] Fixed #2571 --- core/src/mindustry/core/NetClient.java | 4 ++++ core/src/mindustry/entities/comp/PayloadComp.java | 5 +++++ core/src/mindustry/type/Weather.java | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index 2c472e0e61..d42c8d7b4f 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -549,6 +549,10 @@ public class NetClient implements ApplicationListener{ quiet = true; } + public void clearRemovedEntity(int id){ + removed.remove(id); + } + public void addRemovedEntity(int id){ removed.add(id); } diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index 52dc2bb0b5..86f5a35c3f 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -71,6 +71,11 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ boolean tryDropPayload(Payload payload){ Tile on = tileOn(); + //clear removed state of unit so it can be synced + if(Vars.net.client() && payload instanceof UnitPayload){ + Vars.netClient.clearRemovedEntity(((UnitPayload)payload).unit.id); + } + //drop off payload on an acceptor if possible if(on != null && on.build != null && on.build.acceptPayload(on.build, payload)){ Fx.unitDrop.at(on.build); diff --git a/core/src/mindustry/type/Weather.java b/core/src/mindustry/type/Weather.java index c8547b8d2b..b14cec7f30 100644 --- a/core/src/mindustry/type/Weather.java +++ b/core/src/mindustry/type/Weather.java @@ -143,7 +143,7 @@ public abstract class Weather extends UnlockableContent{ @EntityDef(value = {WeatherStatec.class}, pooled = true, isFinal = false) @Component(base = true) - abstract static class WeatherStateComp implements Drawc{ + abstract static class WeatherStateComp implements Drawc, Syncc{ private static final float fadeTime = 60 * 4; Weather weather;