/// <summary>
        /// Replaces StageData
        /// </summary>
        public void updateLevelProperties(LevelProperties newData)
        {
            LevelProperties oldData = levelProperties;

            levelProperties = newData;
            historyStack.Add(new HNodeLevelPropertiesUpdated(this, oldData, newData));
        }
        ///<summary>Sets up a new LevelSession</summary>
        public LevelSession(uint width, uint height, LevelProperties properties)
        {
            this.width           = width;
            this.height          = height;
            this.levelProperties = properties;

            for (uint i = 0; i < width * height; i++)
            {
                collisions.Add(defaultCollision);
                blocks.Add(defaultBlock);
                decos.Add(defaultDecoration);
                decosBack.Add(defaultDecoration);
                decosFront.Add(defaultDecoration);
                decosUnk.Add(defaultDecoration);
            }
        }
 public HNodeLevelPropertiesUpdated(LevelSession parent, LevelProperties oldProperties, LevelProperties newProperties)
     : base(parent)
 {
     this.oldProperties = oldProperties;
     this.newProperties = newProperties;
 }