public DragAxisInfo(string handleName, DragAxis axis, Vector3 direction, Color axisColor) { _handleHash = handleName.GetHashCode(); _dragAxis = axis; _direction = direction; _axisColor = axisColor; }
public Dragger(IntVector2 surfaceDimensions, DragAxis dragAxis) { SurfaceDimensions = surfaceDimensions; DraggingAxis = dragAxis; Type = DragType.Translate; }
public Dragger(IntVector2 surfaceDimensions) { _surfaceDimensions = surfaceDimensions; _dragAxis = DragAxis.X; _dragType = DragType.Translate; }
public override void OnLeftClickUp(Vector3 cursor_pos) { cursor_pos -= placementPivot; KScreenManager.Instance.SetEventSystemEnabled(true); dragAxis = DragAxis.Invalid; if (dragging) { dragging = false; Mode mode = GetMode(); if (areaVisualizerText != Guid.Empty) { NameDisplayScreen.Instance.RemoveWorldText(areaVisualizerText); areaVisualizerText = Guid.Empty; } if (mode == Mode.Box && (UnityEngine.Object)areaVisualizer != (UnityEngine.Object)null) { areaVisualizer.SetActive(false); Grid.PosToXY(downPos, out int x, out int y); int num = x; int num2 = y; Grid.PosToXY(cursor_pos, out int x2, out int y2); if (x2 < x) { Util.Swap(ref x, ref x2); } if (y2 < y) { Util.Swap(ref y, ref y2); } for (int i = y; i <= y2; i++) { for (int j = x; j <= x2; j++) { int cell = Grid.XYToCell(j, i); if (Grid.IsValidCell(cell) && Grid.IsVisible(cell)) { int value = i - num2; int value2 = j - num; value = Mathf.Abs(value); value2 = Mathf.Abs(value2); OnDragTool(cell, value + value2); } } } string sound = GlobalAssets.GetSound(GetConfirmSound(), false); KMonoBehaviour.PlaySound(sound); OnDragComplete(downPos, cursor_pos); } } }
public override void OnKeyUp(KButtonEvent e) { if (e.TryConsume(Action.DragStraight)) { dragAxis = DragAxis.Invalid; } else if (interceptNumberKeysForPriority) { HandlePriorityKeysUp(e); } if (!e.Consumed) { base.OnKeyUp(e); } }
public override void OnLeftClickUp(Vector3 cursor_pos) { cursor_pos -= placementPivot; KScreenManager.Instance.SetEventSystemEnabled(true); if (dragging) { dragging = false; switch (dragAxis) { case DragAxis.Horizontal: cursor_pos.y = downPos.y; dragAxis = DragAxis.None; break; case DragAxis.Vertical: cursor_pos.x = downPos.x; dragAxis = DragAxis.None; break; } } }
public override void OnMouseMove(Vector3 cursorPos) { if (dragging) { if (Input.GetKey((KeyCode)Global.Instance.GetInputManager().GetDefaultController().GetInputForAction(Action.DragStraight))) { Vector3 vector = cursorPos - downPos; if ((canChangeDragAxis || dragAxis == DragAxis.Invalid) && vector.sqrMagnitude > 0.707f) { if (Mathf.Abs(vector.x) < Mathf.Abs(vector.y)) { dragAxis = DragAxis.Vertical; } else { dragAxis = DragAxis.Horizontal; } } } else { dragAxis = DragAxis.Invalid; } switch (dragAxis) { case DragAxis.Horizontal: cursorPos.y = downPos.y; break; case DragAxis.Vertical: cursorPos.x = downPos.x; break; } } base.OnMouseMove(cursorPos); if (dragging) { switch (GetMode()) { case Mode.Brush: AddDragPoints(cursorPos, previousCursorPos); if (areaVisualizerText != Guid.Empty) { int dragLength = GetDragLength(); GameObject worldText2 = NameDisplayScreen.Instance.GetWorldText(areaVisualizerText); LocText component2 = worldText2.GetComponent <LocText>(); component2.text = string.Format(UI.TOOLS.TOOL_LENGTH_FMT, dragLength); Vector3 a = Grid.CellToPos(Grid.PosToCell(cursorPos)); a += new Vector3(0f, 1f, 0f); component2.transform.SetPosition(a); } break; case Mode.Box: { Vector2 input = Vector3.Max(downPos, cursorPos); Vector2 input2 = Vector3.Min(downPos, cursorPos); input = GetRegularizedPos(input, false); input2 = GetRegularizedPos(input2, true); Vector2 vector2 = input - input2; Vector2 vector3 = (input + input2) * 0.5f; areaVisualizer.transform.SetPosition(new Vector2(vector3.x, vector3.y)); int num = (int)(input.x - input2.x + (input.y - input2.y) - 1f); if (areaVisualizerSpriteRenderer.size != vector2) { string sound = GlobalAssets.GetSound(GetDragSound(), false); if (sound != null) { EventInstance instance = SoundEvent.BeginOneShot(sound, areaVisualizer.transform.GetPosition()); instance.setParameterValue("tileCount", (float)num); SoundEvent.EndOneShot(instance); } } areaVisualizerSpriteRenderer.size = vector2; if (areaVisualizerText != Guid.Empty) { Vector2I vector2I = new Vector2I(Mathf.RoundToInt(vector2.x), Mathf.RoundToInt(vector2.y)); GameObject worldText = NameDisplayScreen.Instance.GetWorldText(areaVisualizerText); LocText component = worldText.GetComponent <LocText>(); component.text = string.Format(UI.TOOLS.TOOL_AREA_FMT, vector2I.x, vector2I.y); Vector2 v = vector3; component.transform.SetPosition(v); } break; } } previousCursorPos = cursorPos; } }
public Dragger(IntVector2 surfaceDimensions, DragAxis dragAxis, DragType dragType) { SurfaceDimensions = surfaceDimensions; DraggingAxis = dragAxis; Type = dragType; }