Beispiel #1
0
    public static Drone CreateDroneFromSave(DataSaver.DroneSaveData saveData)
    {
        var drone = new Drone(saveData.curPosition)
        {
            targetPosition = saveData.targetPosition,
            isTravelling   = saveData.isTravelling, isBusy = saveData.isBusy, isLaser = saveData.isLaser,
            myState        = Drone.IntToDroneState(saveData.droneState),
        };

        if (saveData.targetStorage.isValid())
        {
            if (Grid.s.GetTile(saveData.targetStorage).areThereBuilding)
            {
                drone.targetStorage = Grid.s.GetTile(saveData.targetStorage).myBuilding.invController;
            }
        }
        if (saveData.constructionInventory.isValid())
        {
            if (Grid.s.GetTile(saveData.constructionInventory).areThereConstruction)
            {
                drone.constructionInv = Grid.s.GetTile(saveData.constructionInventory).myConstruction.constructionInventory;
            }
        }
        if (saveData.currentTaskPosition.isValid())
        {
            drone.currentTask = new DroneTask(saveData);
        }

        drone.myInventory.SetInventory(DataSaver.InventoryData.ConvertToRegularData(saveData.myInv));

        FactoryMaster.s.AddDrone(drone);

        return(drone);
    }
Beispiel #2
0
    public DroneTask(DataSaver.DroneSaveData saveData)
    {
        construction = Grid.s.GetTile(saveData.currentTaskPosition).myConstruction;
        if (construction != null)
        {
            if (construction.isConstruction)
            {
                myType = DroneTaskType.build;
            }
            else
            {
                myType = DroneTaskType.destroy;
            }

            location  = construction.center;
            materials = DataSaver.InventoryData.ConvertToRegularData(saveData.currentTaskMaterials);
        }
        else
        {
            location = Position.InvalidPosition();
        }
    }