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; }
public bool PlaceMachine(Item machineItem, MachinePrototype prototype, Vector2 placePosition) { if (prototype.name == "Empty") { return(false); } return(AddMachine(machineItem, prototype, placePosition)); }
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)); }
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; } }
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); }
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]); } } }
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); } }
public Machine CreateMachineInstance(MachinePrototype prototype) { return(Machine.CreateInstance(prototype)); }
public static Machine CreateInstance(MachinePrototype prototype) { return(new Machine(prototype)); }