From 8c81bdbe50e035cd2e3719d6645930534be40ba4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 25 Apr 2026 16:08:27 -0400 Subject: [PATCH] Fixed #11982 / Fixed #11981 --- core/src/mindustry/core/NetServer.java | 11 +++++++++++ core/src/mindustry/input/InputHandler.java | 4 ++-- core/src/mindustry/maps/filters/NoiseFilter.java | 2 +- .../world/blocks/payloads/PayloadConveyor.java | 2 ++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index b5b9c70ced..d91e591a1e 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -651,6 +651,17 @@ public class NetServer implements ApplicationListener{ return Float.isInfinite(f) || Float.isNaN(f); } + public static void syncBuilding(Building build){ + if(build == null) return; + netServer.syncStream.reset(); + netServer.dataStreamWrites.i(build.pos()); + netServer.dataStreamWrites.s(build.block.id); + build.writeSync(netServer.dataStreamWrites); + + Call.blockSnapshot((short)1, netServer.syncStream.toByteArray()); + netServer.syncStream.reset(); + } + @Remote(targets = Loc.client, priority = PacketPriority.low, unreliable = true) public static void requestBlockSnapshot(Player player, int pos){ Building build = world.build(pos); diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index eea6d79341..226370ab0b 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -732,7 +732,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ Events.fire(new TapEvent(player, tile)); } - @Remote(targets = Loc.both, called = Loc.server, forward = true) + @Remote(targets = Loc.both, called = Loc.server) public static void buildingControlSelect(Player player, Building build){ if(player == null || build == null || player.dead()) return; @@ -744,7 +744,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(player.team() == build.team && build.canControlSelect(player.unit())){ var before = player.unit(); - build.onControlSelect(player.unit()); + Call.unitBuildingControlSelect(player.unit(), build); if(!before.dead && before.spawnedByCore && !before.isPlayer()){ Call.unitDespawn(before); diff --git a/core/src/mindustry/maps/filters/NoiseFilter.java b/core/src/mindustry/maps/filters/NoiseFilter.java index 289489b865..a27bb0771c 100644 --- a/core/src/mindustry/maps/filters/NoiseFilter.java +++ b/core/src/mindustry/maps/filters/NoiseFilter.java @@ -35,7 +35,7 @@ public class NoiseFilter extends GenerateFilter{ if(noise > threshold && (target == Blocks.air || in.floor == target || in.block == target)){ if(floor != Blocks.air) in.floor = floor; - if(block != Blocks.air && in.block != Blocks.air && !in.block.breakable) in.block = block; + if(block != Blocks.air && in.block != Blocks.air && !in.block.synthetic()) in.block = block; } } } diff --git a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java index c9a0caa87f..f225cb1e6d 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java @@ -7,6 +7,7 @@ import arc.math.geom.*; import arc.util.*; import arc.util.io.*; import mindustry.annotations.Annotations.*; +import mindustry.core.*; import mindustry.ctype.Content; import mindustry.entities.*; import mindustry.gen.*; @@ -176,6 +177,7 @@ public class PayloadConveyor extends Block{ if(item.dump()){ item = null; moved(); + NetServer.syncBuilding(this); } } }