Implemented saving of weapons after disconnect
This commit is contained in:
@@ -162,6 +162,7 @@ text.blocks.powerrange=Power range
|
|||||||
text.blocks.lasertilerange=Laser tile range
|
text.blocks.lasertilerange=Laser tile range
|
||||||
text.blocks.capacity=Capacity
|
text.blocks.capacity=Capacity
|
||||||
text.blocks.itemcapacity=Item Capacity
|
text.blocks.itemcapacity=Item Capacity
|
||||||
|
text.blocks.maxpowergenerationsecond=Max Power Generation/second
|
||||||
text.blocks.powergenerationsecond=Power Generation/second
|
text.blocks.powergenerationsecond=Power Generation/second
|
||||||
text.blocks.generationsecondsitem=Generation Seconds/item
|
text.blocks.generationsecondsitem=Generation Seconds/item
|
||||||
text.blocks.input=Input
|
text.blocks.input=Input
|
||||||
|
|||||||
@@ -102,6 +102,12 @@ public class NetClient extends Module {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
UCore.log("Recieved entities: " + Arrays.toString(data.players) + " player ID: " + data.playerid);
|
||||||
gotEntities = true;
|
gotEntities = true;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package io.anuke.mindustry.core;
|
package io.anuke.mindustry.core;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.utils.IntArray;
|
import com.badlogic.gdx.utils.*;
|
||||||
import com.badlogic.gdx.utils.IntMap;
|
|
||||||
import com.badlogic.gdx.utils.TimeUtils;
|
|
||||||
import io.anuke.mindustry.Vars;
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.core.GameState.State;
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
import io.anuke.mindustry.entities.BulletType;
|
import io.anuke.mindustry.entities.BulletType;
|
||||||
@@ -33,6 +31,7 @@ import java.util.Arrays;
|
|||||||
public class NetServer extends Module{
|
public class NetServer extends Module{
|
||||||
/**Maps connection IDs to players.*/
|
/**Maps connection IDs to players.*/
|
||||||
IntMap<Player> connections = new IntMap<>();
|
IntMap<Player> connections = new IntMap<>();
|
||||||
|
ObjectMap<String, ByteArray> weapons = new ObjectMap<>();
|
||||||
float serverSyncTime = 4, itemSyncTime = 10, blockSyncTime = 120;
|
float serverSyncTime = 4, itemSyncTime = 10, blockSyncTime = 120;
|
||||||
boolean closing = false;
|
boolean closing = false;
|
||||||
|
|
||||||
@@ -67,6 +66,7 @@ public class NetServer extends Module{
|
|||||||
|
|
||||||
dp.playerid = player.id;
|
dp.playerid = player.id;
|
||||||
dp.players = Vars.control.playerGroup.all().toArray(Player.class);
|
dp.players = Vars.control.playerGroup.all().toArray(Player.class);
|
||||||
|
dp.weapons = weapons.get(packet.name, new ByteArray()).toArray();
|
||||||
|
|
||||||
UCore.log("Sending entities: " + Arrays.toString(dp.players));
|
UCore.log("Sending entities: " + Arrays.toString(dp.players));
|
||||||
|
|
||||||
@@ -145,7 +145,13 @@ public class NetServer extends Module{
|
|||||||
});
|
});
|
||||||
|
|
||||||
Net.handleServer(UpgradePacket.class, packet -> {
|
Net.handleServer(UpgradePacket.class, packet -> {
|
||||||
|
Player player = connections.get(Net.getLastConnection());
|
||||||
|
|
||||||
Weapon weapon = (Weapon)Upgrade.getByID(packet.id);
|
Weapon weapon = (Weapon)Upgrade.getByID(packet.id);
|
||||||
|
|
||||||
|
if(!weapons.containsKey(player.name)) weapons.put(player.name, new ByteArray());
|
||||||
|
if(!weapons.get(player.name).contains(weapon.id)) weapons.get(player.name).add(weapon.id);
|
||||||
|
|
||||||
Vars.control.removeItems(UpgradeRecipes.get(weapon));
|
Vars.control.removeItems(UpgradeRecipes.get(weapon));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ public class Packets {
|
|||||||
public static class EntityDataPacket{
|
public static class EntityDataPacket{
|
||||||
public Player[] players;
|
public Player[] players;
|
||||||
public int playerid;
|
public int playerid;
|
||||||
|
public byte[] weapons;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class SyncPacket{
|
public static class SyncPacket{
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import io.anuke.ucore.core.Draw;
|
|||||||
import io.anuke.ucore.core.Effects;
|
import io.anuke.ucore.core.Effects;
|
||||||
import io.anuke.ucore.core.Timers;
|
import io.anuke.ucore.core.Timers;
|
||||||
import io.anuke.ucore.util.Mathf;
|
import io.anuke.ucore.util.Mathf;
|
||||||
|
import io.anuke.ucore.util.Strings;
|
||||||
import io.anuke.ucore.util.Tmp;
|
import io.anuke.ucore.util.Tmp;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
@@ -52,6 +53,9 @@ public class NuclearReactor extends LiquidPowerGenerator{
|
|||||||
public void getStats(Array<String> list){
|
public void getStats(Array<String> list){
|
||||||
super.getStats(list);
|
super.getStats(list);
|
||||||
list.add("[powerinfo]Input Item: " + generateItem);
|
list.add("[powerinfo]Input Item: " + generateItem);
|
||||||
|
list.add("[powerinfo]Max Power Generation/second: " + Strings.toFixed(powerMultiplier*60f, 2));
|
||||||
|
list.removeValue(list.select(s -> s.contains("Power/Liquid")).iterator().next(), true);
|
||||||
|
list.removeValue(list.select(s -> s.contains("Max liquid/second:")).iterator().next(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user