From 5480a92cbbc6c5c946ab7f74dc57833e109bd81c Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 5 Jan 2018 19:58:57 -0500 Subject: [PATCH] Fixed weapons not being reset on multiplayer connect --- core/src/io/anuke/mindustry/core/Control.java | 2 +- core/src/io/anuke/mindustry/core/NetClient.java | 6 ++---- core/src/io/anuke/mindustry/core/Tutorial.java | 2 +- core/src/io/anuke/mindustry/input/DesktopInput.java | 2 +- core/src/io/anuke/mindustry/io/NetworkIO.java | 6 +++++- core/src/io/anuke/mindustry/io/versions/Save12.java | 2 +- core/src/io/anuke/mindustry/io/versions/Save13.java | 2 +- core/src/io/anuke/mindustry/io/versions/Save14.java | 2 +- core/src/io/anuke/mindustry/ui/dialogs/UpgradeDialog.java | 2 +- .../src/io/anuke/mindustry/ui/fragments/WeaponFragment.java | 2 +- 10 files changed, 15 insertions(+), 13 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 5d8449b6ea..2be67f3e86 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -245,7 +245,7 @@ public class Control extends Module{ } ui.hudfrag.updateItems(); - ui.weaponfrag.updateWeapons(); + ui.weaponfrag.update(); } public void play(){ diff --git a/core/src/io/anuke/mindustry/core/NetClient.java b/core/src/io/anuke/mindustry/core/NetClient.java index 7498949a33..7e3a7746e7 100644 --- a/core/src/io/anuke/mindustry/core/NetClient.java +++ b/core/src/io/anuke/mindustry/core/NetClient.java @@ -161,10 +161,8 @@ public class NetClient extends Module { }); Net.handle(StateSyncPacket.class, packet -> { - //TODO replace with arraycopy() - for(int i = 0; i < packet.items.length; i ++){ - Vars.control.items[i] = packet.items[i]; - } + System.arraycopy(packet.items, 0, Vars.control.items, 0, packet.items.length); + Vars.control.setWaveData(packet.enemies, packet.wave, packet.countdown); Timers.resetTime(packet.time + (float)(TimeUtils.timeSinceMillis(packet.timestamp) / 1000.0 * 60.0)); diff --git a/core/src/io/anuke/mindustry/core/Tutorial.java b/core/src/io/anuke/mindustry/core/Tutorial.java index 42d5d63cf4..8b8c86ff1c 100644 --- a/core/src/io/anuke/mindustry/core/Tutorial.java +++ b/core/src/io/anuke/mindustry/core/Tutorial.java @@ -394,7 +394,7 @@ public class Tutorial{ void onSwitch(){ if(!Vars.control.getWeapons().contains(Weapon.multigun, true)){ Vars.control.getWeapons().add(Weapon.multigun); - Vars.ui.weaponfrag.updateWeapons(); + Vars.ui.weaponfrag.update(); } } }, diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index d4dcd53e48..01f53a3651 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -81,7 +81,7 @@ public class DesktopInput extends InputHandler{ for(int i = 1; i <= 6 && i <= control.getWeapons().size; i ++){ if(Inputs.keyTap("weapon_" + i)){ player.weapon = control.getWeapons().get(i - 1); - ui.weaponfrag.updateWeapons(); + ui.weaponfrag.update(); } } diff --git a/core/src/io/anuke/mindustry/io/NetworkIO.java b/core/src/io/anuke/mindustry/io/NetworkIO.java index d142bb4f4f..28008ca20c 100644 --- a/core/src/io/anuke/mindustry/io/NetworkIO.java +++ b/core/src/io/anuke/mindustry/io/NetworkIO.java @@ -3,10 +3,10 @@ package io.anuke.mindustry.io; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.TimeUtils; -import com.badlogic.gdx.utils.reflect.ClassReflection; import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.EnemyType; +import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.GameMode; import io.anuke.mindustry.world.Tile; @@ -185,6 +185,10 @@ public class NetworkIO { Vars.ui.hudfrag.updateItems(); + Vars.control.getWeapons().clear(); + Vars.control.getWeapons().add(Weapon.blaster); + Vars.ui.weaponfrag.update(); + //enemies Entities.clear(); diff --git a/core/src/io/anuke/mindustry/io/versions/Save12.java b/core/src/io/anuke/mindustry/io/versions/Save12.java index 7c61f2b5a8..85a8410f11 100644 --- a/core/src/io/anuke/mindustry/io/versions/Save12.java +++ b/core/src/io/anuke/mindustry/io/versions/Save12.java @@ -68,7 +68,7 @@ public class Save12 extends SaveFileVersion { Vars.control.addWeapon(Weapon.values()[stream.readByte()]); } - Vars.ui.weaponfrag.updateWeapons(); + Vars.ui.weaponfrag.update(); //inventory diff --git a/core/src/io/anuke/mindustry/io/versions/Save13.java b/core/src/io/anuke/mindustry/io/versions/Save13.java index 730899d6b2..ba4ccbee17 100644 --- a/core/src/io/anuke/mindustry/io/versions/Save13.java +++ b/core/src/io/anuke/mindustry/io/versions/Save13.java @@ -68,7 +68,7 @@ public class Save13 extends SaveFileVersion { Vars.control.addWeapon(Weapon.values()[stream.readByte()]); } - Vars.ui.weaponfrag.updateWeapons(); + Vars.ui.weaponfrag.update(); //inventory diff --git a/core/src/io/anuke/mindustry/io/versions/Save14.java b/core/src/io/anuke/mindustry/io/versions/Save14.java index ef39df632f..a17bb8a914 100644 --- a/core/src/io/anuke/mindustry/io/versions/Save14.java +++ b/core/src/io/anuke/mindustry/io/versions/Save14.java @@ -86,7 +86,7 @@ public class Save14 extends SaveFileVersion{ Vars.control.addWeapon(Weapon.values()[stream.readByte()]); } - Vars.ui.weaponfrag.updateWeapons(); + Vars.ui.weaponfrag.update(); //inventory diff --git a/core/src/io/anuke/mindustry/ui/dialogs/UpgradeDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/UpgradeDialog.java index ab4ccc85ce..8000210ee4 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/UpgradeDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/UpgradeDialog.java @@ -125,7 +125,7 @@ public class UpgradeDialog extends FloatingDialog{ control.removeItems(weapon.requirements); control.addWeapon(weapon); - ui.weaponfrag.updateWeapons(); + ui.weaponfrag.update(); run.listen(); Effects.sound("purchase"); diff --git a/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java b/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java index 887359f0a6..3d69f44ee1 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java @@ -25,7 +25,7 @@ public class WeaponFragment implements Fragment{ } } - public void updateWeapons(){ + public void update(){ weapontable.clearChildren(); ButtonGroup group = new ButtonGroup<>();