public override void OnSelected(PlayerSelectEventArgs e)
        {
            base.OnSelected(e);

            ((Player)e.Player).ObjectEditor.OnSelected(this, e);
        }
Пример #2
0
 public virtual void OnSelected(PlayerSelectEventArgs e)
 {
     AssertNotDisposed();
     Selected?.Invoke(this, e);
 }
Пример #3
0
        public void OnSelected(MruDynamicObject o, PlayerSelectEventArgs e)
        {
            if (_objectEditorState != ObjectEditorState.MultiSelect && _selectedObjects.Contains(o))
            {
                _selectedObjects.Remove(o);
            }

            switch (_objectEditorState)
            {
            case ObjectEditorState.Edit:
                _player.SendClientMessage($"Wybrałeś obiekt: {o}");
                foreach (var selectedObject in _selectedObjects)
                {
                    _selectedObjectsPositions[selectedObject] = selectedObject.Position;
                }

                o.Edit(_player);
                o.Mark();
                break;

            case ObjectEditorState.Delete:
                _player.SendClientMessage($"Usunąłeś obiekt {o}");
                foreach (var selectedObject in _selectedObjects)
                {
                    selectedObject.ApiDelete();
                }

                _selectedObjects.Clear();
                o.ApiDelete();
                _objectEditorState = ObjectEditorState.Delete;
                break;

            case ObjectEditorState.Clone:
                _player.SendClientMessage($"Sklonowałeś obiekt: {o}");
                var oldSelected = _selectedObjects;
                _selectedObjects = new HashSet <MruDynamicObject>();
                foreach (var selectedObject in oldSelected)
                {
                    selectedObject.UnMark();
                    var c = new MruDynamicObject(selectedObject);
                    _selectedObjectsPositions[c] = c.Position;
                    SelectObject(c);
                }

                var clone = new MruDynamicObject(o);
                _objectEditorState = ObjectEditorState.Edit;
                clone.Edit(e.Player);
                break;

            case ObjectEditorState.MultiSelect:
                if (_selectedObjects.Contains(o))
                {
                    _player.SendClientMessage($"Usunąłeś obiekt {o} z zaznaczeń");
                    UnSelectObject(o);
                }
                else
                {
                    _player.SendClientMessage($"Dodałeś obiekt {o} do zaznaczeń");
                    SelectObject(o);
                }

                MultiSelectMode();
                break;
            }
        }
Пример #4
0
 protected virtual void OnPlayerSelectDynamicObject(DynamicObject @object, PlayerSelectEventArgs e)
 {
     PlayerSelectDynamicObject?.Invoke(@object, e);
 }