/// <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);
    }
예제 #2
0
        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);
        }
예제 #3
0
        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>();
        }
예제 #4
0
 // Serialization
 public void Save(ILevelSerializer levelSerializer)
 {
     levelSerializer.SaveLevel(this, tiles, walls);
 }