Beispiel #1
0
 protected Machine(ProducerPrototype prodProto) : base(prodProto.name, prodProto.sprite, prodProto.animatorController, BuildableType.Producer, prodProto.stats)
 {
     this.systemControlled = ShipSystemType.None;
     this.repairDifficulty = prodProto.repairDifficulty;
     this.tileHeight       = prodProto.tileHeight;
     this.tileWidth        = prodProto.tileWidth;
     this.machineCondition = prodProto.machineCondition;
 }
Beispiel #2
0
 protected Producer(ProducerPrototype b) : base(b)
 {
     this.productionBlueprints = b.productionBlueprints;
     this.showsGrowth          = b.showsGrowth;
     this.productionStage      = b.productionStage;
     if (b.curProductionName.Length > 0)
     {
         foreach (ProductionBlueprint blueprint in this.productionBlueprints)
         {
             if (blueprint.itemProduced.itemName == b.curProductionName)
             {
                 this.current_Blueprint = blueprint;
                 break;
             }
         }
     }
 }
Beispiel #3
0
    void AddTile(STile savedTile)
    {
        tileGrid[savedTile.grid_x, savedTile.grid_y] = new Tile_Data(savedTile.grid_x, savedTile.grid_y, new Vector3Int(savedTile.grid_x, savedTile.grid_y, 0), savedTile.tileType);

        if (savedTile.hasMachine == true)
        {
            MachinePrototype machineProto = Buildable_Manager.instance.GetMachinePrototype(savedTile.machineName);
            machineProto.machineCondition = savedTile.machineCondition;
            // use this proto to spawn the machine
        }
        else if (savedTile.hasProducer == true)
        {
            ProducerPrototype producerProto = Buildable_Manager.instance.GetProducerPrototype(savedTile.producerName);
            producerProto.productionStage   = savedTile.productionStage;
            producerProto.curProductionName = savedTile.itemProduced;
        }
    }
Beispiel #4
0
    public ProducerPrototype GetProducerPrototype(string itemName)
    {
        ProducerPrototype empty = new ProducerPrototype();

        empty.name = "Empty";
        if (producer_prototypes.Length < 0)
        {
            return(empty);
        }

        foreach (ProducerPrototype data in producer_prototypes)
        {
            if (data.name == itemName)
            {
                return(data);
            }
        }
        return(empty);
    }
Beispiel #5
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]);
            }
        }
    }
Beispiel #6
0
 public static Producer CreateInstance(ProducerPrototype prototype)
 {
     return(new Producer(prototype));
 }
Beispiel #7
0
 public Producer CreateProducerInstance(ProducerPrototype prototype)
 {
     return(Producer.CreateInstance(prototype));
 }