Esempio n. 1
0
        public static MoveAction ReadFrom(BinaryReader reader)
        {
            var result = new MoveAction();

            result.Target = Vec2Int.ReadFrom(reader);
            result.FindClosestPosition = reader.ReadBoolean();
            result.BreakThrough        = reader.ReadBoolean();
            return(result);
        }
Esempio n. 2
0
        public static BuildAction ReadFrom(BinaryReader reader)
        {
            var result = new BuildAction();

            switch (reader.ReadInt32())
            {
            case 0:
                result.EntityType = EntityType.Wall;
                break;

            case 1:
                result.EntityType = EntityType.House;
                break;

            case 2:
                result.EntityType = EntityType.BuilderBase;
                break;

            case 3:
                result.EntityType = EntityType.BuilderUnit;
                break;

            case 4:
                result.EntityType = EntityType.MeleeBase;
                break;

            case 5:
                result.EntityType = EntityType.MeleeUnit;
                break;

            case 6:
                result.EntityType = EntityType.RangedBase;
                break;

            case 7:
                result.EntityType = EntityType.RangedUnit;
                break;

            case 8:
                result.EntityType = EntityType.Resource;
                break;

            case 9:
                result.EntityType = EntityType.Turret;
                break;

            default:
                throw new Exception("Unexpected tag value");
            }

            result.Position = Vec2Int.ReadFrom(reader);
            return(result);
        }
Esempio n. 3
0
        public static DebugState ReadFrom(BinaryReader reader)
        {
            var result = new DebugState();

            result.WindowSize     = Vec2Int.ReadFrom(reader);
            result.MousePosWindow = Vec2Float.ReadFrom(reader);
            result.MousePosWorld  = Vec2Float.ReadFrom(reader);
            result.PressedKeys    = new string[reader.ReadInt32()];
            for (int i = 0; i < result.PressedKeys.Length; i++)
            {
                result.PressedKeys[i] = Encoding.UTF8.GetString(reader.ReadBytes(reader.ReadInt32()));
            }

            result.Camera      = Camera.ReadFrom(reader);
            result.PlayerIndex = reader.ReadInt32();
            return(result);
        }
Esempio n. 4
0
        public static Entity ReadFrom(BinaryReader reader)
        {
            var result = new Entity();

            result.Id = reader.ReadInt32();
            if (reader.ReadBoolean())
            {
                result.PlayerId = reader.ReadInt32();
            }
            else
            {
                result.PlayerId = null;
            }

            switch (reader.ReadInt32())
            {
            case 0:
                result.EntityType = EntityType.Wall;
                break;

            case 1:
                result.EntityType = EntityType.House;
                break;

            case 2:
                result.EntityType = EntityType.BuilderBase;
                break;

            case 3:
                result.EntityType = EntityType.BuilderUnit;
                break;

            case 4:
                result.EntityType = EntityType.MeleeBase;
                break;

            case 5:
                result.EntityType = EntityType.MeleeUnit;
                break;

            case 6:
                result.EntityType = EntityType.RangedBase;
                break;

            case 7:
                result.EntityType = EntityType.RangedUnit;
                break;

            case 8:
                result.EntityType = EntityType.Resource;
                break;

            case 9:
                result.EntityType = EntityType.Turret;
                break;

            default:
                throw new Exception("Unexpected tag value");
            }

            result.Position = Vec2Int.ReadFrom(reader);
            result.Health   = reader.ReadInt32();
            result.Active   = reader.ReadBoolean();
            return(result);
        }