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); }
public virtual void OnEdited(PlayerEditEventArgs e) { AssertNotDisposed(); Edited?.Invoke(this, e); }
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; } } }
protected virtual void OnPlayerEditDynamicObject(DynamicObject @object, PlayerEditEventArgs e) { PlayerEditDynamicObject?.Invoke(@object, e); }