public static EnemyBuildingUpdater Deserialize(BinaryReader s, GameState state)
{
int ti = s.ReadInt32();
ViewedBuilding vb = new ViewedBuilding();
vb.Team = s.ReadInt32();
vb.Type = s.ReadInt32();
vb.CellPoint = s.ReadPoint();
vb.WorldPosition = s.ReadVector3();
vb.ViewDirection = s.ReadVector2();
int uuid = s.ReadInt32();
RTSBuilding b = null;
foreach(var building in state.teams[vb.Team].Buildings) {
if(building.UUID == uuid) {
b = building;
break;
}
}
EnemyBuildingUpdater ebu = new EnemyBuildingUpdater(state, ti, vb, b);
ebu.Added = s.ReadBoolean();
ebu.isDead = s.ReadBoolean();
if(ebu.Added) {
state.teams[ebu.teamIndex].ViewedEnemyBuildings.Add(vb);
}
return ebu;
}