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; }
// 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)); }
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; }
//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); }
void Awake() { if (tiles == null) { tiles = new TileData[xSize, ySize]; } //CreateTiles(); if (onlyOnce) { onlyOnce = false; CreateTiles(); } current = this; }
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]; } } }
// 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); }
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; }
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; }
public void SaveStateAsUnchanged() { mLoadedState = SaveInternal(); }