From aeb36624144944dd29049c2ad6a4e33b89644e04 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 15 May 2019 17:40:31 -0400 Subject: [PATCH] Bugfixes --- core/src/io/anuke/mindustry/Vars.java | 3 ++- core/src/io/anuke/mindustry/core/Control.java | 2 +- core/src/io/anuke/mindustry/entities/type/Player.java | 1 + core/src/io/anuke/mindustry/entities/type/base/Drone.java | 2 +- core/src/io/anuke/mindustry/input/InputHandler.java | 6 ------ core/src/io/anuke/mindustry/io/LegacyMapIO.java | 2 +- core/src/io/anuke/mindustry/io/TypeIO.java | 2 +- core/src/io/anuke/mindustry/net/NetworkIO.java | 7 ++++--- core/src/io/anuke/mindustry/world/Block.java | 2 ++ .../mindustry/world/blocks/production/GenericCrafter.java | 6 ++++++ .../anuke/mindustry/world/blocks/sandbox/LiquidSource.java | 2 +- 11 files changed, 20 insertions(+), 15 deletions(-) diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index e45c036972..297c78f82d 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -40,9 +40,10 @@ public class Vars{ /** URL for Github API for releases */ public static final String releasesURL = "https://api.github.com/repos/Anuken/Mindustry/releases"; /** URL for Github API for contributors */ + //TODO remove and replace with a manually updated list public static final String contributorsURL = "https://api.github.com/repos/Anuken/Mindustry/contributors"; /** URL for sending crash reports to */ - public static final String crashReportURL = "http://mindustry.us.to/report"; + public static final String crashReportURL = "http://mins.us.to/report"; /** maximum distance between mine and core that supports automatic transferring */ public static final float mineTransferRange = 220f; /** team of the player by default */ diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index b2affb71e7..7bfb76aac8 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -201,8 +201,8 @@ public class Control implements ApplicationListener{ public void playMap(Map map, Rules rules){ ui.loadAnd(() -> { logic.reset(); - state.rules = rules; world.loadMap(map); + state.rules = rules; logic.play(); }); } diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index c7aabc016e..ceb10abcae 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -782,6 +782,7 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{ moveTarget = null; spawner = lastSpawner = null; health = maxHealth(); + mining = null; boostHeat = drownTime = hitTime = 0f; mech = Mechs.starter; placeQueue.clear(); diff --git a/core/src/io/anuke/mindustry/entities/type/base/Drone.java b/core/src/io/anuke/mindustry/entities/type/base/Drone.java index 3531e22d39..6fd10ba022 100644 --- a/core/src/io/anuke/mindustry/entities/type/base/Drone.java +++ b/core/src/io/anuke/mindustry/entities/type/base/Drone.java @@ -211,7 +211,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{ Events.on(BuildSelectEvent.class, event -> { EntityGroup group = unitGroups[event.team.ordinal()]; - if(!(event.builder instanceof Player) || !(event.tile.entity instanceof BuildEntity)) return; + if(!(event.tile.entity instanceof BuildEntity)) return; for(BaseUnit unit : group.all()){ if(unit instanceof Drone){ diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 9d553bdbfc..70f21df24a 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -199,12 +199,6 @@ public abstract class InputHandler implements InputProcessor{ frag.inv.hide(); } - if(!consumed && player.isBuilding()){ - player.clearBuilding(); - block = null; - return true; - } - return consumed; } diff --git a/core/src/io/anuke/mindustry/io/LegacyMapIO.java b/core/src/io/anuke/mindustry/io/LegacyMapIO.java index 4dac77cabe..0773534617 100644 --- a/core/src/io/anuke/mindustry/io/LegacyMapIO.java +++ b/core/src/io/anuke/mindustry/io/LegacyMapIO.java @@ -154,7 +154,7 @@ public class LegacyMapIO{ tile.setOverlay(block); } - if(namemap.get(id).equals("part")){ + if(namemap.get(id, "").equals("part")){ stream.readByte(); //link }else if(tile.entity != null){ byte tr = stream.readByte(); diff --git a/core/src/io/anuke/mindustry/io/TypeIO.java b/core/src/io/anuke/mindustry/io/TypeIO.java index 0d4aae2485..c3dc0be2d3 100644 --- a/core/src/io/anuke/mindustry/io/TypeIO.java +++ b/core/src/io/anuke/mindustry/io/TypeIO.java @@ -221,7 +221,7 @@ public class TypeIO{ @ReadClass(Liquid.class) public static Liquid readLiquid(ByteBuffer buffer){ short id = buffer.getShort(); - return id == -1 ? null : content.liquid(buffer.getShort()); + return id == -1 ? null : content.liquid(id); } @WriteClass(BulletType.class) diff --git a/core/src/io/anuke/mindustry/net/NetworkIO.java b/core/src/io/anuke/mindustry/net/NetworkIO.java index 48d467d17d..bda5a91628 100644 --- a/core/src/io/anuke/mindustry/net/NetworkIO.java +++ b/core/src/io/anuke/mindustry/net/NetworkIO.java @@ -4,8 +4,9 @@ import io.anuke.arc.Core; import io.anuke.arc.util.Time; import io.anuke.mindustry.entities.Entities; import io.anuke.mindustry.entities.type.Player; +import io.anuke.mindustry.game.Rules; import io.anuke.mindustry.game.Version; -import io.anuke.mindustry.gen.Serialization; +import io.anuke.mindustry.io.JsonIO; import io.anuke.mindustry.io.SaveIO; import io.anuke.mindustry.maps.Map; @@ -20,7 +21,7 @@ public class NetworkIO{ public static void writeWorld(Player player, OutputStream os){ try(DataOutputStream stream = new DataOutputStream(os)){ - Serialization.writeRules(stream, state.rules); + stream.writeUTF(JsonIO.write(state.rules)); SaveIO.getSaveWriter().writeStringMap(stream, world.getMap().tags); stream.writeInt(state.wave); @@ -39,7 +40,7 @@ public class NetworkIO{ try(DataInputStream stream = new DataInputStream(is)){ Time.clear(); - state.rules = Serialization.readRules(stream); + state.rules = JsonIO.read(Rules.class, stream.readUTF()); world.setMap(new Map(SaveIO.getSaveWriter().readStringMap(stream))); state.wave = stream.readInt(); diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 672c50d8b0..3c77052b8c 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.world; +import io.anuke.annotations.Annotations.CallSuper; import io.anuke.arc.Core; import io.anuke.arc.Graphics.Cursor; import io.anuke.arc.Graphics.Cursor.SystemCursor; @@ -313,6 +314,7 @@ public class Block extends BlockStorage{ /** Called after all blocks are created. */ @Override + @CallSuper public void init(){ //initialize default health based on size if(health == -1){ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java index e237dd1228..661b007331 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java @@ -58,6 +58,12 @@ public class GenericCrafter extends Block{ } } + @Override + public void init(){ + outputsLiquid = outputLiquid != null; + super.init(); + } + @Override public void draw(Tile tile){ if(drawer == null){ diff --git a/core/src/io/anuke/mindustry/world/blocks/sandbox/LiquidSource.java b/core/src/io/anuke/mindustry/world/blocks/sandbox/LiquidSource.java index 54675a0bdc..52f506d35a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/sandbox/LiquidSource.java +++ b/core/src/io/anuke/mindustry/world/blocks/sandbox/LiquidSource.java @@ -108,7 +108,7 @@ public class LiquidSource extends Block{ @Remote(targets = Loc.both, called = Loc.both, forward = true) public static void setLiquidSourceLiquid(Player player, Tile tile, Liquid liquid){ LiquidSourceEntity entity = tile.entity(); - entity.source = liquid; + if(entity != null) entity.source = liquid; } class LiquidSourceEntity extends TileEntity{