internal void RegisterDragProcessor(DragProcessor dragProcessor) { if (!DragProcessors.Contains(dragProcessor)) { DragProcessors.Add(dragProcessor); } }
public void SetOnDrag(bool drag, Collider collider, DragProcessor dragProcessor) { if (isDragging != drag) { if (drag) // Press { MyDragProcessor = dragProcessor; caller.Draggable_SetStates(ref canDrag, ref dragFrom_DragArea); if (canDrag) { StartDragPos = MyDragProcessor.CurrentMousePosition_World; caller.Draggable_OnMouseDown(dragFrom_DragArea, collider); isDragging = true; } else { isDragging = false; DragManager.Instance.CancelDrag(); } } else // Release { if (canDrag) { caller.Draggable_OnMouseUp(DragManager.Instance.Current_DragArea, MyDragProcessor.CurrentMousePosition_World - StartDragPos, MyDragProcessor.DeltaMousePosition_World); DragManager.Instance.CurrentDrag = null; } else { DragManager.Instance.CurrentDrag = null; } dragFrom_DragArea = DragAreaDefines.None; isDragging = false; MyDragProcessor = null; } } }
internal void UnregisterDragProcessor(DragProcessor dragProcessor) { DragProcessors.Remove(dragProcessor); }