From 6f6f418ec90e4b0e37d554e41ad948a3b34ff9f1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 7 Apr 2019 17:36:28 -0400 Subject: [PATCH] Fixed save/multiplayer sync bugs --- core/src/io/anuke/mindustry/core/World.java | 2 +- .../anuke/mindustry/entities/type/Player.java | 35 ++++++------------- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index 273b1ae9e6..db18da815a 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -185,7 +185,7 @@ public class World implements ApplicationListener{ addDarkness(tiles); - EntityQuery.resizeTree(-finalWorldBounds, -finalWorldBounds, tiles.length * tilesize + finalWorldBounds, tiles[0].length * tilesize + finalWorldBounds); + EntityQuery.resizeTree(-finalWorldBounds, -finalWorldBounds, tiles.length * tilesize + finalWorldBounds*2, tiles[0].length * tilesize + finalWorldBounds*2); generating = false; Events.fire(new WorldLoadEvent()); diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index 75b0d491cd..cafebce954 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -8,22 +8,14 @@ import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.g2d.*; import io.anuke.arc.math.Angles; import io.anuke.arc.math.Mathf; -import io.anuke.arc.math.geom.Geometry; -import io.anuke.arc.math.geom.Point2; -import io.anuke.arc.math.geom.Rectangle; -import io.anuke.arc.math.geom.Vector2; -import io.anuke.arc.util.Align; -import io.anuke.arc.util.Interval; -import io.anuke.arc.util.Pack; -import io.anuke.arc.util.Time; +import io.anuke.arc.math.geom.*; +import io.anuke.arc.util.*; import io.anuke.arc.util.pooling.Pools; +import io.anuke.mindustry.Vars; import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.content.Mechs; import io.anuke.mindustry.entities.*; -import io.anuke.mindustry.entities.traits.BuilderTrait; -import io.anuke.mindustry.entities.traits.ShooterTrait; -import io.anuke.mindustry.entities.traits.SpawnerTrait; -import io.anuke.mindustry.entities.traits.TargetTrait; +import io.anuke.mindustry.entities.traits.*; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.graphics.Pal; @@ -37,9 +29,7 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Floor; -import java.io.DataInput; -import java.io.DataOutput; -import java.io.IOException; +import java.io.*; import static io.anuke.mindustry.Vars.*; @@ -821,22 +811,17 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{ public void readSave(DataInput stream) throws IOException{ boolean local = stream.readBoolean(); - if(local && !headless){ + if(local){ byte mechid = stream.readByte(); int spawner = stream.readInt(); - if(world.tile(spawner) != null && world.tile(spawner).entity != null && world.tile(spawner).entity instanceof SpawnerTrait){ - lastSpawner = (SpawnerTrait)(world.tile(spawner).entity); + Tile stile = world.tile(spawner); + if(stile != null && stile.entity instanceof SpawnerTrait){ + lastSpawner = (SpawnerTrait)stile.entity; } + Player player = headless ? this : Vars.player; player.readSaveSuper(stream); player.mech = content.getByID(ContentType.mech, mechid); player.dead = false; - }else if(local){ - byte mechid = stream.readByte(); - stream.readByte(); - stream.readInt(); - readSaveSuper(stream); - mech = content.getByID(ContentType.mech, mechid); - dead = false; } }