public override object Read(ES2Reader reader)
    {
        TownBuilder data = new TownBuilder();

        Read(reader, data);
        return(data);
    }
Esempio n. 2
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        TownBuilder builder = target as TownBuilder;

        if (GUILayout.Button("Generate"))
        {
            builder.Generate();
        }

        if (GUILayout.Button("Generate Random"))
        {
            builder.GenerateRandom();
        }
    }
Esempio n. 3
0
        public void setState(TownBuilder builder)
        {
            gameObject.transform.position = builder.Position;
            gameObject.transform.rotation = builder.Quaternion;

            this.direction = builder.Direction;
            layRoad();

            this.id            = builder.Id;
            this.level         = builder.Level;
            this.size          = builder.Size;
            this.priseMag      = builder.PriseMag;
            this.clients       = builder.Clients;
            this.merchants     = builder.Merchants;
            this.citizens      = builder.Citizens;
            this.attributeMag  = builder.AttributeMag;
            this.grid          = builder.Grid;
            this.buildingDatas = builder.BuildingDatas;

            this.attribute = TownAttributeMasterManager.getInstance().getTownAttributeFromId(builder.TownAttributeId);

            Debug.Log("attributeMag count " + attributeMag.Count);

            foreach (var buildingData in buildingDatas)
            {
                var building = buildingData.restore();
                buildings.Add(building);
                building.transform.SetParent(transform);
            }

            characters.AddRange(citizens);

            foreach (Merchant merchant in merchants)
            {
                merchant.setTown(this);
            }
            characters.AddRange(merchants);

            characters.AddRange(clients);

            foreach (IFriendly friendlyCharacter in characters)
            {
                friendlyCharacter.getContainer().transform.SetParent(transform);
            }

            observer = new TownObserver(this);
        }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        TownBuilder town = target as TownBuilder;

        if (GUILayout.Button("Generate"))
        {
            town.Generate();
        }

        if (GUILayout.Button("Generate Random"))
        {
            town.Seed = Random.Range(1, 99999);
            town.Generate();
        }
    }
    public override void Write(object obj, ES2Writer writer)
    {
        TownBuilder data = (TownBuilder)obj;

        // Add your writer.Write calls here.
        writer.Write(data.Id);
        writer.Write(data.Level);
        writer.Write(data.Size);
        writer.Write(data.Citizens);
        writer.Write(data.Merchants);
        writer.Write(data.Clients);
        writer.Write(data.PriseMag);
        writer.Write(data.BuildingDatas);
        writer.Write(data.AttributeMag);
        writer.Write(data.Grid);
        writer.Write(data.TownAttributeId);
        writer.Write(data.Direction);
        writer.Write(data.Position);
        writer.Write(data.Quaternion);
    }
    public override void Read(ES2Reader reader, object c)
    {
        TownBuilder data = (TownBuilder)c;

        // Add your reader.Read calls here to read the data into the object.
        data.Id              = reader.Read <System.Int32>();
        data.Level           = reader.Read <System.Int32>();
        data.Size            = reader.Read <System.Int32>();
        data.Citizens        = reader.ReadList <Character.Citizen>();
        data.Merchants       = reader.ReadList <Character.Merchant>();
        data.Clients         = reader.ReadList <Character.Client>();
        data.PriseMag        = reader.Read <System.Single>();
        data.BuildingDatas   = reader.ReadList <BuildingSaveData>();
        data.AttributeMag    = reader.ReadDictionary <Item.ItemParameters.ItemAttribute, System.Single>();
        data.Grid            = reader.Read2DArray <System.Boolean>();
        data.TownAttributeId = reader.Read <System.Int32>();
        data.Direction       = reader.Read <FieldMap.Town.RoadDirection>();
        data.Position        = reader.Read <UnityEngine.Vector3>();
        data.Quaternion      = reader.Read <UnityEngine.Quaternion>();
    }
Esempio n. 7
0
        public TownBuilder compressIntoBuilder()
        {
            var builder = new TownBuilder();

            builder.Id              = id;
            builder.Level           = level;
            builder.Merchants       = new List <Merchant>(merchants);
            builder.PriseMag        = priseMag;
            builder.Clients         = new List <Client>(clients);
            builder.Citizens        = new List <Citizen>(citizens);
            builder.Size            = size;
            builder.AttributeMag    = new Dictionary <ItemAttribute, float>(attributeMag);
            builder.Position        = transform.position;
            builder.Quaternion      = transform.rotation;
            builder.TownAttributeId = attribute.getId();
            builder.Direction       = this.direction;
            builder.BuildingDatas   = this.buildingDatas;
            Array.Copy(grid, builder.Grid, grid.Length);

            return(builder);
        }