Fixed duplication bug
This commit is contained in:
@@ -368,7 +368,6 @@ public class Control extends Module{
|
|||||||
enemy.add();
|
enemy.add();
|
||||||
|
|
||||||
Effects.effect(Fx.spawn, enemy);
|
Effects.effect(Fx.spawn, enemy);
|
||||||
Vars.netServer.handleEnemySpawn(enemy);
|
|
||||||
|
|
||||||
enemies ++;
|
enemies ++;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import io.anuke.ucore.modules.Module;
|
|||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
public class NetClient extends Module {
|
public class NetClient extends Module {
|
||||||
public static final Color[] colorArray = {Color.ORANGE, Color.SCARLET, Color.LIME, Color.PURPLE,
|
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
|
Timers.run(10f, () -> { //TODO hack. should only run once world data is recieved
|
||||||
Vars.control.playerGroup.remap(Vars.player, data.playerid);
|
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 ++){
|
for(int i = 0; i < data.weapons.length; i ++){
|
||||||
Vars.control.addWeapon((Weapon) Upgrade.getByID(data.weapons[i]));
|
Vars.control.addWeapon((Weapon) Upgrade.getByID(data.weapons[i]));
|
||||||
}
|
}
|
||||||
Vars.player.weaponLeft = Vars.player.weaponRight = Vars.control.getWeapons().peek();
|
Vars.player.weaponLeft = Vars.player.weaponRight = Vars.control.getWeapons().peek();
|
||||||
Vars.ui.hudfrag.updateWeapons();
|
Vars.ui.hudfrag.updateWeapons();
|
||||||
|
|
||||||
UCore.log("Recieved entities: " + Arrays.toString(data.players) + " player ID: " + data.playerid);
|
|
||||||
gotEntities = true;
|
gotEntities = true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import java.io.ByteArrayInputStream;
|
|||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
public class NetServer extends Module{
|
public class NetServer extends Module{
|
||||||
/**Maps connection IDs to players.*/
|
/**Maps connection IDs to players.*/
|
||||||
@@ -67,32 +66,8 @@ public class NetServer extends Module{
|
|||||||
connections.put(id, player);
|
connections.put(id, player);
|
||||||
|
|
||||||
dp.playerid = player.id;
|
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();
|
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);
|
Net.sendTo(id, dp, SendMode.tcp);
|
||||||
|
|
||||||
sendMessage("[accent]"+Bundles.format("text.server.connected", packet.name));
|
sendMessage("[accent]"+Bundles.format("text.server.connected", packet.name));
|
||||||
@@ -118,7 +93,6 @@ public class NetServer extends Module{
|
|||||||
|
|
||||||
Net.handleServer(PositionPacket.class, pos -> {
|
Net.handleServer(PositionPacket.class, pos -> {
|
||||||
Player player = connections.get(Net.getLastConnection());
|
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);
|
player.getInterpolator().type.read(player, pos.data);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -250,17 +224,6 @@ public class NetServer extends Module{
|
|||||||
Net.send(packet, SendMode.udp);
|
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){
|
public void handleEnemyDeath(Enemy enemy){
|
||||||
EnemyDeathPacket packet = new EnemyDeathPacket();
|
EnemyDeathPacket packet = new EnemyDeathPacket();
|
||||||
packet.id = enemy.id;
|
packet.id = enemy.id;
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package io.anuke.mindustry.net;
|
package io.anuke.mindustry.net;
|
||||||
|
|
||||||
import io.anuke.mindustry.entities.Player;
|
|
||||||
|
|
||||||
/**Class for storing all packets.*/
|
/**Class for storing all packets.*/
|
||||||
public class Packets {
|
public class Packets {
|
||||||
|
|
||||||
@@ -20,9 +18,6 @@ public class Packets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class EntityDataPacket{
|
public static class EntityDataPacket{
|
||||||
public Player[] players;
|
|
||||||
public EnemySpawnPacket[] enemies;
|
|
||||||
public byte[] playerWeapons;
|
|
||||||
public int playerid;
|
public int playerid;
|
||||||
public byte[] weapons;
|
public byte[] weapons;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ public class ChatFragment extends Table implements Fragment{
|
|||||||
batch.setColor(Color.WHITE);
|
batch.setColor(Color.WHITE);
|
||||||
|
|
||||||
if(fadetime > 0 && !chatOpen)
|
if(fadetime > 0 && !chatOpen)
|
||||||
fadetime -= Timers.delta()/120f;
|
fadetime -= Timers.delta()/180f;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage(){
|
private void sendMessage(){
|
||||||
|
|||||||
Reference in New Issue
Block a user