/// <summary> /// Creates a new json level serializer that creates a json file from the given level structure and level elements. /// </summary> public void SerializeLevel() { if (levelSerializer == null) { levelSerializer = new JsonLevelSerializer(); } levelSerializer.SerializeLevel(pathToSave, level, levelDataCollection.levelElements, levelDataCollection.levelItems, levelDataCollection.enemies); }
public void LoadLevel(ILevelSerializer levelSerializer) { tileSpriteObserver.RemoveTiles(); wallSpriteObserver.RemoveWalls(); furnitureSpriteObserver.RemoveFurniture(); if (debugLoadSavedLevel) { level = levelSerializer.LoadLevel(); } else { level = new Level(levelWidth, levelHeight); } foreach (ILevelController levelController in customControllers) { levelController.OnLevelInit(level); } tileSpriteObserver.BindLevel(level); wallSpriteObserver.BindLevel(level); furnitureSpriteObserver.BindLevel(level); }
private void Awake() { transformer = new Transformer(transform); levelSerializer = GetComponent <ILevelSerializer>(); if (levelSerializer == null) { levelSerializer = gameObject.AddComponent <NullRoomSerializer>(); } foreach (IsoMonoBehaviour isoMonoBehaviour in GetComponents <IsoMonoBehaviour>()) { isoMonoBehaviour.OnInit(this); } if (loadOnStart) { LoadLevel(); } floorObserver = GetComponent <FloorObserver>(); wallObserver = GetComponent <WallObserver>(); itemObserver = GetComponent <ItemObserver>(); }
// Serialization public void Save(ILevelSerializer levelSerializer) { levelSerializer.SaveLevel(this, tiles, walls); }