public void CreateWorldObject(WorldObjectDefinition worldObjectType)
        {
            this.SelectedWorldObject = null;
            var newWorldObject = worldObjectType.GetDefaultedObject();
            var viewModel = worldObjectType.CreateWorldObjectViewModel();

            viewModel.Context = Context;

            newWorldObject.Id = Guid.NewGuid().ToString();
            newWorldObject.X = CreationPointX / Settings.MetersToPixels;
            newWorldObject.Y = CreationPointY / Settings.MetersToPixels;

            viewModel.SetRepository(_packageRepository);
            viewModel.SetModel(newWorldObject);
            viewModel.X = CreationPointX / Settings.MetersToPixels;
            viewModel.Y = CreationPointY / Settings.MetersToPixels;

            _worldObjects.Add(viewModel);
            Context.AddWorldObjectViewModel(viewModel);
            this.SelectedWorldObject = viewModel;
        }
        public void CopyExecute()
        {
            _clipboardObjectDefinition = null;

            var model = (ArchetypeBasedWorldObject)_selectedWorldObject.MoveViewToModel();

            this.CreationPointX = (Int32)model.X + 5;
            this.CreationPointY = (Int32)model.Y + 5;

            foreach (var a in _archetypes)
            {
                if (a.Key == model.ArchetypeKey)
                {
                    _clipboardObjectDefinition = a;
                    break;
                }
            }
                        
            _pasteCommand.RaiseCanExecuteChanged();
        }