예제 #1
0
        public virtual void UpdateState(T t, ExtractedParameters state)
        {
            var dispatchee = t as Dispatchee <T>;

            dispatchee.ThrowIfNull(nameof(t));

            if (state.HasValue(nameof(Coordinates)))
            {
                dispatchee.Coordinates = state.ToValue <Coordinate>(nameof(Coordinates));
            }
        }
예제 #2
0
        public override void UpdateState(Maze clone, ExtractedParameters state)
        {
            if (state.HasValue(nameof(Tiles.Tiles)))
            {
                var tiles        = state.ToString(nameof(Tiles.Tiles));
                var tilesChanged = tiles.ToTiles();

                foreach (var tileChange in tilesChanged)
                {
                    clone._tiles[tileChange.Coordinates] = tileChange.Name;
                }
            }

            base.UpdateState(clone, state);
        }