Example #1
0
 protected Machine(MachinePrototype b) : base(b.name, b.sprite, b.animatorController, BuildableType.Machine, b.stats)
 {
     this.systemControlled = b.systemControlled;
     this.repairDifficulty = b.repairDifficulty;
     this.tileWidth        = b.tileWidth;
     this.tileHeight       = b.tileHeight;
     this.machineCondition = b.machineCondition;
 }
Example #2
0
 public bool PlaceMachine(Item machineItem, MachinePrototype prototype, Vector2 placePosition)
 {
     if (prototype.name == "Empty")
     {
         return(false);
     }
     return(AddMachine(machineItem, prototype, placePosition));
 }
Example #3
0
    public bool PlaceMachine(Item machineItem, Vector2 placePosition)
    {
        MachinePrototype prototype = Buildable_Manager.instance.GetMachinePrototype(machineItem.name);

        if (prototype.name == "Empty")
        {
            return(false);
        }
        return(AddMachine(machineItem, prototype, placePosition));
    }
Example #4
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;
        }
    }
Example #5
0
    public MachinePrototype GetMachinePrototype(string itemName)
    {
        MachinePrototype empty = new MachinePrototype();

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

        foreach (MachinePrototype mData in machineData_prototypes)
        {
            if (mData.name == itemName)
            {
                return(mData);
            }
        }
        return(empty);
    }
Example #6
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]);
            }
        }
    }
Example #7
0
    public bool AddMachine(Item machineItem, MachinePrototype prototype, Vector2 machinePosition)
    {
        if (machineItem == null)
        {
            return(false);
        }
        Machine machine = Buildable_Manager.instance.CreateMachineInstance(prototype);

        if (machine == null)
        {
            return(false);
        }
        Debug.Log("Adding " + machine.name);
        GameObject machineGObj = Buildable_Manager.instance.SpawnMachine(machine, machinePosition);

        if (machineGObj == null)
        {
            return(false);
        }

        Machine_Controller mController = machineGObj.GetComponent <Machine_Controller>();

        mController.InitMachine(machineItem, machine, TileManager.instance.GetTile(machinePosition), this);
        if (AddMachine(mController, machine) == true)
        {
            //machine.InitSystems(this);
            return(true);
        }
        else
        {
            mController.RemoveAndPool();

            /* machine.transform.SetParent(null);
             * machine.name = "Machine";
             * pool.PoolObject(machine); */
            return(false);
        }
    }
Example #8
0
 public Machine CreateMachineInstance(MachinePrototype prototype)
 {
     return(Machine.CreateInstance(prototype));
 }
Example #9
0
 public static Machine CreateInstance(MachinePrototype prototype)
 {
     return(new Machine(prototype));
 }