Esempio n. 1
0
        public bool SetBlock(Block block)
        {
            _undoRecorder.RecordUndo(_level.GetBlock(block.Coordinates));
            try
            {
                if (block.PlaceBlock(_level, null, block.Coordinates, BlockFace.Up, Vector3.Zero))
                {
                    return(true);
                }


                _level.SetBlock(block);
            }
            finally
            {
                _undoRecorder.RecordRedo(block);
            }
            return(true);
        }
Esempio n. 2
0
        public bool SetBlock(Block block)
        {
            var existing = _level.GetBlock(block.Coordinates);

            _undoRecorder.RecordUndo(existing);
            try
            {
                if (_level.OnBlockPlace(new BlockPlaceEventArgs(_player, _level, block, existing)))
                {
                    //if (block.PlaceBlock(_level, _player, block.Coordinates, BlockFace.Up, Vector3.Zero)) return true;

                    _level.SetBlock(block);
                }
            }
            finally
            {
                _undoRecorder.RecordRedo(block);
            }
            return(true);
        }