Example #1
0
 public MapSaveState GetMapSaveState()
 {
     if (this.mapSaveState == null)
     {
         this.mapSaveState = MapSaveState.CreateFromSerialized(this);
     }
     return(this.mapSaveState);
 }
 public void LoadInternal(MapSaveState state, bool import = false)
 {
     LocalEvents.Clear();
     LocalEventsJson = state.EventData;
     Load(state.Metadata, import, false);
     LoadTileData(state.Tiles);
     AttributeData = state.Attributes;
 }
Example #3
0
    // Use this for initialization
    private void Awake()
    {
        //To Check : This or a generated grid "over" the game
        tiles = new List <Tile>(FindObjectsOfType <Tile>());
        Debug.Assert(tiles.Count == levelX * levelY, "Nb of tiles incorrect");
        MapSaveState rootState = MapSaveState.Create(levelY, levelY);

        root = NodeData.CreateRoot(new MapSaveStateSerializable(rootState));
    }
Example #4
0
 private void Awake()
 {
     initalSaveState = FindObjectOfType <MapSaveState>();
     //ToDo check initialSaveState;
     //  Certainly need to load it from files, when the initialState'd been designed
     //nodes = new List<Node>();
     root = NodeData.CreateRoot(new MapSaveStateSerializable(initalSaveState)).GetNode();
     root.transform.SetParent(transform, false);
     root.GetComponent <RectTransform>().sizeDelta          = nodeSize;
     root.GetComponent <RectTransform>().anchoredPosition3D = Vector3.Scale(new Vector3(nodeSize.x / 2 + margin, GetComponent <RectTransform>().rect.height / 2 - nodeSize.y / 2 - margin, 0), root.GetComponent <RectTransform>().localScale);
     SetCurrent(root, true);
     instance = this;
 }
Example #5
0
    //internal static MapSaveState GetCopy(MapSaveState original)
    //{
    //    MapSaveState toReturn = Instantiate(original).GetComponent<MapSaveState>();
    //    toReturn.xSize = original.xSize;
    //    toReturn.ySize = original.ySize;
    //    toReturn.tiles = original.tiles;
    //    return toReturn;
    //}

    public static MapSaveState Create(int xSize, int ySize)
    {
        MapSaveState toReturn = Instantiate(original).GetComponent <MapSaveState>();

        toReturn.xSize  = xSize;
        toReturn.ySize  = ySize;
        toReturn.isDead = false;

        toReturn.tiles        = new TileData[toReturn.xSize, toReturn.ySize];
        toReturn.serializable = new MapSaveStateSerializable(toReturn);
        //toReturn.CreateTiles();
        return(toReturn);
    }
Example #6
0
 void Awake()
 {
     if (tiles == null)
     {
         tiles = new TileData[xSize, ySize];
     }
     //CreateTiles();
     if (onlyOnce)
     {
         onlyOnce = false;
         CreateTiles();
     }
     current = this;
 }
Example #7
0
    public void Update(MapSaveState saveState)
    {
        xSize  = saveState.xSize;
        ySize  = saveState.ySize;
        isDead = saveState.isDead;
        int size = saveState.xSize * saveState.ySize;

        tiles = new TileData[size];
        for (int i = 0; i < saveState.xSize; i++)
        {
            for (int j = 0; j < saveState.ySize; j++)
            {
                tiles[i + j * saveState.xSize] = saveState.tiles[i, j];
            }
        }
    }
Example #8
0
    // Use this for initialization
    public static MapSaveState CreateFromSerialized(MapSaveStateSerializable serialized)
    {
        //MapSaveState toReturn = Create(serialized.xSize, serialized.ySize);
        MapSaveState toReturn = Instantiate(original).GetComponent <MapSaveState>();

        toReturn.xSize  = serialized.xSize;
        toReturn.ySize  = serialized.ySize;
        toReturn.isDead = false;
        toReturn.tiles  = new TileData[toReturn.xSize, toReturn.ySize];

        for (int i = 0; i < serialized.tiles.Length; i++)
        {
            toReturn.tiles[i % toReturn.xSize, i / toReturn.xSize] = serialized.tiles[i].GetCopy();
        }
        toReturn.serializable = serialized;
        toReturn.LinkTilesWithData();
        return(toReturn);
    }
Example #9
0
    public MapSaveStateSerializable(MapSaveState saveState)
    {
        xSize  = saveState.xSize;
        ySize  = saveState.ySize;
        isDead = saveState.isDead;
        int size = saveState.xSize * saveState.ySize;

        tiles = new TileData[size];
        for (int i = 0; i < saveState.xSize; i++)
        {
            for (int j = 0; j < saveState.ySize; j++)
            {
                tiles[i + j * saveState.xSize] = saveState.tiles[i, j];
            }
        }
        this.mapSaveState = saveState;
        this.mapSaveState.serializable = this;
    }
Example #10
0
 internal void SetCurrent(Node node, bool init = false)
 {
     if (mergeOnGoing)
     {
         mergeOnGoing = false;
         SetCurrent(Merge(fromTMP, node));
         return;
     }
     if (current != null)
     {
         current.GetComponent <Image>().color = current.defaultColor;
     }
     current = node;
     current.GetComponent <Image>().color = current.selectedColor;
     if (!init)
     {
         Destroy(initalSaveState.gameObject);
     }
     initalSaveState      = node.data.saveState.GetMapSaveState();
     MapSaveState.current = initalSaveState;
 }
Example #11
0
 public void SaveStateAsUnchanged()
 {
     mLoadedState = SaveInternal();
 }