void MoveLevelLayout(ref Queue <AbstractCursorCommand> cursorCommands) { var levelLayoutElements = GameObject.FindObjectsOfType <LevelLayoutElement>(); levelLayoutElements = levelLayoutElements.OrderBy(x => x.PriorityOrder).ToArray(); for (int i = 0; i < levelLayoutElements.Length; i++) { var element = levelLayoutElements[i]; var moveToWindow = new MoveToCommand(element.transform); var dragWindow = new StartDragCommand(element.transform); var moveToNewPosition = new MoveToCommand(element.GetPosition(LevelLayoutManager.Instance.LevelLayoutState)); var stopDrag = new StopDragCommand(); // OPTIMIZATION: sortir cette line de la loop cursorCommands.Enqueue(moveToWindow); cursorCommands.Enqueue(dragWindow); cursorCommands.Enqueue(moveToNewPosition); cursorCommands.Enqueue(stopDrag); } var moveOutScreen = new MoveToCommand(Vector3.right * 10); cursorCommands.Enqueue(moveOutScreen); }
private void OnMouseMove(object sender, MouseEventArgs e) { if (!_mouseClicked) { return; } _mouseClicked = false; object item = this.AssociatedObject.DataContext; if (item != null) { if (StartDragCommand != null && StartDragCommand.CanExecute(item)) { DragStartOffset = e.GetPosition(this.AssociatedObject); StartDragCommand.Execute(item); DragDropEffects effects = DragDrop.DoDragDrop(this.AssociatedObject, item, DragDropEffects.Move); bool dragSuccess = effects != DragDropEffects.None; if (EndDragCommand != null && EndDragCommand.CanExecute(dragSuccess)) { EndDragCommand.Execute(dragSuccess); } } } }
void GrabStickmanToNextSpawnPoints() { // foreach stickman for (int i = 0; i < GameManager.Instance.Characters.Count; i++) { var charId = (CharId)i; var character = GameManager.Instance.Characters[charId]; var cursor = _owner.GrabStickmanCursors[i]; if (character == null) { continue; } // freeze character input character.Freeze = true; character.enabled = false; Queue <AbstractCursorCommand> cursorCommands = new Queue <AbstractCursorCommand>(); // cursor commands Vector3 spawnPosition = LevelDataLocator.GetLevelData().GetDefaultSpawnPoint(charId); var moveToStickman = new MoveToCommand(character.transform); var drag = new StartDragCommand(character.transform, character.ForceJumpSprite); var moveToSpawnPoint = new MoveToCommand(spawnPosition); cursorCommands.Enqueue(moveToStickman); cursorCommands.Enqueue(drag); cursorCommands.Enqueue(moveToSpawnPoint); cursor.StartCommandsSequence(cursorCommands); } }