Updated uCore, fixed GWT build, better client snapshot system

This commit is contained in:
Anuken
2018-06-09 17:05:47 -04:00
parent b33dd7e91c
commit d5a58be440
16 changed files with 125 additions and 59 deletions
@@ -3,6 +3,7 @@ package io.anuke.mindustry.io;
import io.anuke.annotations.Annotations.ReadClass;
import io.anuke.annotations.Annotations.WriteClass;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.net.Packets.KickReason;
import io.anuke.mindustry.type.Item;
@@ -10,6 +11,7 @@ import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.type.Upgrade;
import io.anuke.mindustry.type.Weapon;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.entities.Entities;
import java.nio.ByteBuffer;
@@ -34,6 +36,19 @@ public class TypeIO {
return id == -1 ? null : playerGroup.getByID(id);
}
@WriteClass(Unit.class)
public static void writeUnit(ByteBuffer buffer, Unit unit){
buffer.put((byte)unit.getGroup().getID());
buffer.putInt(unit.getID());
}
@ReadClass(Unit.class)
public static Unit writeUnit(ByteBuffer buffer){
byte gid = buffer.get();
int id = buffer.getInt();
return (Unit)Entities.getGroup(gid).getByID(id);
}
@WriteClass(Tile.class)
public static void writeTile(ByteBuffer buffer, Tile tile){
buffer.putInt(tile.packedPosition());