public override void OnEdited(PlayerEditEventArgs e)
        {
            base.OnEdited(e);

            if (e.Response == EditObjectResponse.Cancel)
            {
                _dynamicTextLabel.Position = Position;
            }
            else
            {
                _dynamicTextLabel.Position = e.Position;
            }
            ((Player)e.Player).ObjectEditor.OnEdited(this, e);
        }
Пример #2
0
 public virtual void OnEdited(PlayerEditEventArgs e)
 {
     AssertNotDisposed();
     Edited?.Invoke(this, e);
 }
Пример #3
0
        public void OnEdited(MruDynamicObject o, PlayerEditEventArgs e)
        {
            if (_objectEditorState == ObjectEditorState.Edit)
            {
                if (e.Response == EditObjectResponse.Update)
                {
                    foreach (var selectedObject in _selectedObjects)
                    {
                        selectedObject.Position = _selectedObjectsPositions[selectedObject] + (e.Position - o.Position);
                    }
                    return;
                }

                if (e.Response == EditObjectResponse.Final)
                {
                    e.Player.SendClientMessage($"Edytowałeś obiekt: {o}");
                    foreach (var selectedObject in _selectedObjects)
                    {
                        selectedObject.Position = _selectedObjectsPositions[selectedObject] + (e.Position - o.Position);
                        selectedObject.ApiSave();
                    }

                    o.Position = e.Position;
                    o.ApiSave();
                }
                else if (e.Response == EditObjectResponse.Cancel)
                {
                    e.Player.SendClientMessage($"Anulowałeś edycję obiektu: {o}");
                    foreach (var selectedObject in _selectedObjects)
                    {
                        selectedObject.Position = _selectedObjectsPositions[selectedObject];
                    }
                    o.UnMark();
                    o.Position = o.Position;
                }

                _objectEditorState = ObjectEditorState.None;
                _selectedObjectsPositions.Clear();
                o.UnMark();
            }
            else if (_objectEditorState == ObjectEditorState.CreateGate)
            {
                switch (e.Response)
                {
                case EditObjectResponse.Update:
                    break;

                case EditObjectResponse.Final:
                    //2nd step - set opened position
                    o.Position = e.Position;
                    _player.SendClientMessage("Ustaw pozycję otwartej bramy.");

                    break;

                case EditObjectResponse.Cancel:
                    //destroy object
                    e.Player.SendClientMessage("Anulowałeś tworzenie bramy.");
                    o.ApiDelete();
                    break;
                }
            }
            else if (_objectEditorState == ObjectEditorState.CreateGate2NdState)
            {
                switch (e.Response)
                {
                case EditObjectResponse.Update:
                    break;

                case EditObjectResponse.Final:
                    //3nd step - gate params & save gate to API
                    MruV.Gates.CreateGateAsync(new CreateGateRequest()
                    {
                        Name = "Gate",
                        Spot = new Spot()
                        {
                            Name    = "Gate Spot",
                            Message = "",
                            Icon    = 0,
                            Marker  = 0,
                            Int     = _player.Interior,
                            Vw      = _player.VirtualWorld,
                            X       = _player.Position.X,
                            Y       = _player.Position.Y,
                            Z       = _player.Position.Z,
                        },
                        GateObjects =
                        {
                            new MovableObject()
                            {
                                Object = o,
                                States =
                                {
                                    new State()
                                    {
                                        Name            = "Closed",
                                        X               = o.Position.X,
                                        Y               = o.Position.Y,
                                        Z               = o.Position.Z,
                                        Rx              = o.Rotation.X,
                                        Ry              = o.Rotation.Y,
                                        Rz              = o.Rotation.Z,
                                        TransitionSpeed = 2.5f
                                    },
                                    new State()
                                    {
                                        Name            = "Opened",
                                        X               = e.Position.X,
                                        Y               = e.Position.Y,
                                        Z               = e.Position.Z,
                                        Rx              = e.Rotation.X,
                                        Ry              = e.Rotation.Y,
                                        Rz              = e.Rotation.Z,
                                        TransitionSpeed = 2.5f
                                    }
                                }
                            }
                        }
                    });
                    o.Position = o.Position;
                    break;

                case EditObjectResponse.Cancel:
                    e.Player.SendClientMessage("Anulowałeś tworzenie bramy.");
                    o.ApiDelete();
                    break;
                }
            }
        }
Пример #4
0
 protected virtual void OnPlayerEditDynamicObject(DynamicObject @object, PlayerEditEventArgs e)
 {
     PlayerEditDynamicObject?.Invoke(@object, e);
 }