示例#1
0
    public void LoadSavedTiles()
    {
        buildable_Manager = Buildable_Manager.instance;
        Item_Manager item_Manager = Item_Manager.instance;

        if (savedAreaTiles.savedTiles == null)
        {
            return;
        }
        if (savedAreaTiles.savedTiles.Length <= 0)
        {
            return;
        }

        SetCurrentArea((AreaID)savedAreaTiles.areaID);
        SetupGrid();
        SetGridFromTileMap();
        foreach (STile sTile in savedAreaTiles.savedTiles)
        {
            if (sTile.hasMachine == true)
            {
                MachinePrototype proto = buildable_Manager.GetMachinePrototype(sTile.machineName);
                proto.machineCondition = sTile.machineCondition;
                Item machineItem = item_Manager.CreateInstance(item_Manager.GetPrototype(proto.name));
                ShipManager.instance.PlaceMachine(machineItem, proto, new Vector2(sTile.world_x, sTile.world_y));
            }
            else if (sTile.hasProducer == true)
            {
                ProducerPrototype proto = buildable_Manager.GetProducerPrototype(sTile.producerName);
                proto.machineCondition  = sTile.machineCondition;
                proto.curProductionName = sTile.itemProduced;
                proto.productionStage   = sTile.productionStage;
                Item       prodItem = item_Manager.CreateInstance(item_Manager.GetPrototype(proto.name));
                Producer   producer = buildable_Manager.CreateProducerInstance(proto);
                GameObject prodGObj = buildable_Manager.SpawnProducer(producer, new Vector2(sTile.world_x, sTile.world_y));
                if (prodGObj == null)
                {
                    return;
                }
                prodGObj.GetComponent <Producer_Controller>().Init(prodItem, producer, grid_data[sTile.grid_x, sTile.grid_y]);
            }
        }
    }