Exemplo n.º 1
0
    public void AddStructureBySaveData(SavableComponent saveData)
    {
        GameObject structureGameObject = null;

        for (int i = 0; i < Structures.Length; i++)
        {
            if (Structures[i].name == saveData.name)
            {
                structureGameObject = ObjectPoolManager.Instantiate(Structures[i]);
            }
        }

        DisplayDelegate displayEventComponent = structureGameObject.GetComponent <DisplayDelegate>();

        displayEventComponent.OnDisableEvent += OnDestroyStructure;

        GridNode node = grid.GetNodeByIndex(saveData.gridIndeX, saveData.gridIndeY);

        Structure structureComponent = structureGameObject.GetComponent <Structure>();

        structureComponent.SetMainGridNode(node);
        List <GridNode> nodes = grid.GetBodeNeigbours(node, saveData.gridSizeX, saveData.gridSizeY);


        for (int i = 0; i < nodes.Count; i++)
        {
            nodes[i].userData = structureGameObject;
        }


        grid.BlockNeighbourNodes(node, saveData.gridSizeX, saveData.gridSizeY);
        AdjustStructureForGrid(node, structureGameObject);
    }
Exemplo n.º 2
0
    void OnGridNodeClick()
    {
        GridNode node = grid.GetCurrentNodeRespectToBorders(selectedStructureComponent.gridSizeX, selectedStructureComponent.gridSizeY);

        if (node != null && node.isValid && selectedStructure != null)
        {
            List <GridNode> nodes = grid.GetBodeNeigbours(node, selectedStructureComponent.gridSizeX, selectedStructureComponent.gridSizeY);
            for (int i = 0; i < nodes.Count; i++)
            {
                if (!nodes[i].isValid)
                {
                    return;
                }
            }

            for (int i = 0; i < nodes.Count; i++)
            {
                nodes[i].userData = selectedStructure;
                grid.BlockNode(nodes[i]);
            }
            selectedStructureComponent.SetMainGridNode(node);

            SavableComponent saveComponent = new SavableComponent(selectedStructure);
            SaveLoadManager.Save(saveComponent);
            selectedStructure           = null;
            selectedStructureSprite     = null;
            selectedStructureComponent  = null;
            grid.OnGridOverTileChanged -= OnGridTileChange;
            grid.OnGridNodeClick       -= OnGridNodeClick;
            placeableMarker.SetActive(false);
            unplaceableMarker.SetActive(false);
            FillStructureList();
        }
    }
Exemplo n.º 3
0
 public static void Save(SavableComponent savableGame)
 {
     saveableObjects.Add(savableGame);
     Save();
 }