private static void SetBadge(HoverData hoverData, Entity targetEntity) { if (targetEntity != null && targetEntity.SubclassIndex == TypeIndex.Character) { hoverData.AddCommand(new BadgeCommand(targetEntity)); } }
private static Boolean OnHoverPrefix(Action action, HoverData hoverData, GameModeProcessor __instance) { if (!(__instance is PeaceModeProcessor)) { return(HarmonyPrefix.CallOriginal); } Boolean flag = action.Data.IsPossible(); if (flag) { if (action.Ability != null) { hoverData.CursorType = action.Data.GetCursor(action.BlockReasons); } else if (action.Tool != null) { hoverData.CursorType = CursorType.Variants; } } SetSilhouette(hoverData, action.Data); if (action.TargetEntity != null) { SetBadge(hoverData, action.TargetEntity); if (flag && action.Ability != null) { hoverData.AddCommand(ActionTooltipBuilder.GetBanner(action, RestrictionStrategy.DefaultTooltip)); } } return(HarmonyPrefix.SkipOriginal); }
public bool CloseToEndPoints(ref HoverData hoverData) { Vector2 mousePosition = Program.Instance.GetMouseCanvasPosition(); BezierSegment first = BezierCurve[0]; BezierSegment last = BezierCurve[BezierCurve.Count - 1]; //CloseToLast if (Vector2.Distance(mousePosition, last.Point) <= 5.5f) { last.PointHovered = true; UpdateHoverData(ref hoverData, last, BezierCurve.Count - 1); return(true); } //CloseToFirst if (Vector2.Distance(mousePosition, first.Point) <= 5.5f) { first.PointHovered = true; UpdateHoverData(ref hoverData, first, 0); return(true); } return(false); }
void UpdateHoverData(ref HoverData hoverData, BezierSegment segment, int index) { if (hoverData.HoveredBeziersegment == segment) { return; } hoverData.HoveredSegmentIndex = index; hoverData.UpdateBezierSegment(segment); }
void SetBezierSegmentData(HoverData data) { if (data.HoveredBeziersegment == null) { UnhoverCurrentData(); } else { _currentHoverData = data; _currentHoveredSegment = _currentHoverData.HoveredBeziersegment; } }
public bool MouseOverPathHandles(ref HoverData hoverData) { Vector2 mousePosition = Program.Instance.GetMouseCanvasPosition(); for (int i = 0; i < BezierCurve.Count; i++) { if (BezierCurve[i].MouseOverPathHandles(mousePosition, ref hoverData)) { return(true); } } return(false); }
/// <summary> /// All Conditions and Actions are set in Init /// </summary> /// <param name="hoverData">Program is handing over hoverdata</param> public virtual void Init(HoverData hoverData) { _hoverData = hoverData; AddListenerToToggle(); CastEditmodeList(); SetCollectionUpdater(); SetEditmodeActions(); AddPathObjectHoverConditions(); AddKeyboardEventsListener(); _isInitialized = true; }
public bool MouseOverPath(ref HoverData hoverData) { Vector2 mousePosition = Program.Instance.GetMouseCanvasPosition(); for (int i = 0; i < BezierCurve.Count; i++) { if (BezierCurve[i].MouseOverSegmentPoints(mousePosition, ref hoverData)) { hoverData.HoveredSegmentIndex = i; return(true); } } return(false); }
public bool MouseOverPathHandles(Vector2 mousePosition, ref HoverData hoverData) { bool isSecondHandle = Vector2.Distance(mousePosition, SecondHandle) <= 6.5f; if (isSecondHandle || Vector2.Distance(mousePosition, FirstHandle) <= 6.5f) { hoverData.IsSecondHandleHovered = isSecondHandle; hoverData.UpdateBezierSegment(this); FirstHandleHovered = !isSecondHandle; SecondHandleHovered = isSecondHandle; return(true); } return(false); }
public bool MouseOverPathPoints(ref HoverData hoverData) { Vector2 mousePosition = Program.Instance.GetMouseCanvasPosition(); for (int i = 0; i < BezierCurve.Count; i++) { if (BezierCurve[i].MouseOverPathPoint(mousePosition)) { BezierCurve[i].PointHovered = true; UpdateHoverData(ref hoverData, BezierCurve[i], i); return(true); } } return(false); }
public bool MouseOverSegmentPoints(Vector2 mousePosition, ref HoverData hoverData) { for (int i = 0; i < SegmentPoints.Count; i++) { if (Vector2.Distance(mousePosition, SegmentPoints[i]) <= 3f) { if (hoverData.HoveredBeziersegment != null && hoverData.HoveredBeziersegment.PointHovered) { hoverData.HoveredBeziersegment.PointHovered = false; } hoverData.HoveredSegmentPointIndex = i + 1; hoverData.UpdateBezierSegment(this); return(true); } } return(false); }
public void Awake() { HoverData _hoverData = new HoverData(); foreach (var item in _editModes) { item.Init(_hoverData); } _colorSelector.Init(_colorPicker); _layout.childControlHeight = false; _layout.childControlWidth = false; if (_colorPicker == null) { _colorPicker = FindObjectOfType <Colorpicker>(); } _colorPicker.Init(); }
private static void SetSilhouette(HoverData hoverData, ActionData actionData) { SilhouetteMaker maker = new SilhouetteMaker(hoverData, actionData); maker.Hover(); }
public SilhouetteMaker(HoverData hoverData, ActionData actionData) { _hoverData = hoverData; _actionData = actionData; }
// This implementation assumes a single hover is active at a time. public virtual void AddAndSortHoveredItem(Interactable interactable) { //if (interactable.GetComponent<InteractableUi>() != null) { // Debug.Log("Add and sort: " + interactable.name); //} #if UNITY_EDITOR if (debugInteractor) { Debug.Log("Add and sort hovered item: " + interactable.name); } #endif // First calculate the distance from the interaction source position // (such as the center of the controller tip) // float distance = interactable.DistanceFromController(this); // Store the object and distance into a HoverData structure var newHoverData = new HoverData(); newHoverData.interactable = interactable; newHoverData.distance = distance; #if UNITY_EDITOR if (debugInteractor) { Debug.Log("Distance for " + interactable.name + " = " + distance); } #endif // This ensures that the closest item is at the head of the stack var insertionIndex = 0; foreach (var storedHoverData in sortedHoveredObjects) { if (storedHoverData.distance > newHoverData.distance) { break; } else { insertionIndex++; } } // If the index has exceeded the stack, add object at the end if (insertionIndex > sortedHoveredObjects.Count) { #if UNITY_EDITOR if (debugInteractor) { Debug.Log(name + ": Adding sorted hovered item: " + interactable.name); } #endif sortedHoveredObjects.Add(newHoverData); } else { #if UNITY_EDITOR if (debugInteractor) { Debug.Log(name + ": Inserting sorted hovered item: " + interactable.name); } #endif // Otherwise insert it at the index sortedHoveredObjects.Insert(insertionIndex, newHoverData); } // GetTopHoveredItem (); #if UNITY_EDITOR // Add the interactable to the hovered list if (!rawHoveredObjects.Contains(interactable)) { rawHoveredObjects.Add(interactable); } #endif }
void SetBezierSegmentData(HoverData data) { UnhoverCurrentData(); _currentHoverData = data; _currentHoveredSegment = data.HoveredBeziersegment; }