Fixed duplication bug

This commit is contained in:
Anuken
2018-01-11 16:15:33 -05:00
parent 804758b179
commit e91aa62b4a
5 changed files with 1 additions and 59 deletions

View File

@@ -368,7 +368,6 @@ public class Control extends Module{
enemy.add();
Effects.effect(Fx.spawn, enemy);
Vars.netServer.handleEnemySpawn(enemy);
enemies ++;
});

View File

@@ -31,7 +31,6 @@ import io.anuke.ucore.modules.Module;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Arrays;
public class NetClient extends Module {
public static final Color[] colorArray = {Color.ORANGE, Color.SCARLET, Color.LIME, Color.PURPLE,
@@ -105,25 +104,11 @@ public class NetClient extends Module {
Timers.run(10f, () -> { //TODO hack. should only run once world data is recieved
Vars.control.playerGroup.remap(Vars.player, data.playerid);
for (int i = 0; i < data.players.length; i ++) {
Player player = data.players[i];
if (player.id != data.playerid) {
player.weaponLeft = player.weaponRight = (Weapon) Upgrade.getByID(data.playerWeapons[i]);
player.add();
}
}
for(int i = 0; i < data.enemies.length; i ++){
Net.handleClientReceived(data.enemies[i]);
}
for(int i = 0; i < data.weapons.length; i ++){
Vars.control.addWeapon((Weapon) Upgrade.getByID(data.weapons[i]));
}
Vars.player.weaponLeft = Vars.player.weaponRight = Vars.control.getWeapons().peek();
Vars.ui.hudfrag.updateWeapons();
UCore.log("Recieved entities: " + Arrays.toString(data.players) + " player ID: " + data.playerid);
gotEntities = true;
});
});

View File

@@ -26,7 +26,6 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class NetServer extends Module{
/**Maps connection IDs to players.*/
@@ -67,32 +66,8 @@ public class NetServer extends Module{
connections.put(id, player);
dp.playerid = player.id;
dp.players = Vars.control.playerGroup.all().toArray(Player.class);
dp.playerWeapons = new byte[dp.players.length];
dp.weapons = weapons.get(packet.name, new ByteArray()).toArray();
for(int i = 0; i < dp.playerWeapons.length; i ++){
dp.playerWeapons[i] = dp.players[i].weaponLeft.id;
}
dp.enemies = new EnemySpawnPacket[Vars.control.enemyGroup.amount()];
for(int i = 0; i < Vars.control.enemyGroup.amount(); i ++){
Enemy enemy = Vars.control.enemyGroup.all().get(i);
EnemySpawnPacket e = new EnemySpawnPacket();
e.x = enemy.x;
e.y = enemy.y;
e.id = enemy.id;
e.tier = (byte)enemy.tier;
e.lane = (byte)enemy.lane;
e.type = enemy.type.id;
dp.enemies[i] = e;
}
UCore.log("Sending entities: " + Arrays.toString(dp.players));
Net.sendExcept(id, player, SendMode.tcp);
Net.sendTo(id, dp, SendMode.tcp);
sendMessage("[accent]"+Bundles.format("text.server.connected", packet.name));
@@ -118,7 +93,6 @@ public class NetServer extends Module{
Net.handleServer(PositionPacket.class, pos -> {
Player player = connections.get(Net.getLastConnection());
UCore.log("Recieving data: " + Arrays.toString(pos.data), "Player pos: " +player.x, player.y);
player.getInterpolator().type.read(player, pos.data);
});
@@ -250,17 +224,6 @@ public class NetServer extends Module{
Net.send(packet, SendMode.udp);
}
public void handleEnemySpawn(Enemy enemy){
EnemySpawnPacket packet = new EnemySpawnPacket();
packet.type = enemy.type.id;
packet.lane = (byte)enemy.lane;
packet.tier = (byte)enemy.tier;
packet.x = enemy.x;
packet.y = enemy.y;
packet.id = enemy.id;
Net.send(packet, SendMode.tcp);
}
public void handleEnemyDeath(Enemy enemy){
EnemyDeathPacket packet = new EnemyDeathPacket();
packet.id = enemy.id;

View File

@@ -1,7 +1,5 @@
package io.anuke.mindustry.net;
import io.anuke.mindustry.entities.Player;
/**Class for storing all packets.*/
public class Packets {
@@ -20,9 +18,6 @@ public class Packets {
}
public static class EntityDataPacket{
public Player[] players;
public EnemySpawnPacket[] enemies;
public byte[] playerWeapons;
public int playerid;
public byte[] weapons;
}

View File

@@ -138,7 +138,7 @@ public class ChatFragment extends Table implements Fragment{
batch.setColor(Color.WHITE);
if(fadetime > 0 && !chatOpen)
fadetime -= Timers.delta()/120f;
fadetime -= Timers.delta()/180f;
}
private void sendMessage(){