make circle dragging less intrusive in NAT

This commit is contained in:
2022-07-06 20:49:40 +00:00
parent 6610f4f77f
commit 843dfef2c6
2 changed files with 7 additions and 3 deletions

View File

@@ -29,7 +29,7 @@
(this.scale.set scale scale)
(updateHitbox))
(enableMouseClicks false (hasComponent e Circle)) // pixel-perfect if the sprite is a circle
(enableMouseDrag)
(enableMouseDrag false (hasComponent e Circle))
(set mouseStartDragCallback
->[self _dx _dy]
(doFor sprite (system.getSelectedSprites)

View File

@@ -54,8 +54,11 @@
(set mouseDown (FlxG.mouse.getScreenPosition))
(let [&mut clickedOnSomething false]
(entryGroup.forEach
->entrySprite
->:Void entrySprite
(when (.containsPoint (entrySprite.getScreenBounds) (FlxG.mouse.getScreenPosition))
(when (hasComponent entrySprite.e Circle)
(unless (entrySprite.pixelsOverlapPoint (FlxG.mouse.getWorldPosition))
(return)))
(set clickedOnSomething true)
(unless (controller.isSelected entrySprite.e)
(controller.SelectEntry entrySprite.e))))
@@ -92,7 +95,8 @@
(entryGroup.forEach ->entrySprite
(let [overlaps (rectangle.overlaps (entrySprite.getScreenBounds))]
(when !(= overlaps (controller.isSelected entrySprite.e))
(controller.ToggleSelectEntry entrySprite.e))))))))
(unless (hasComponent entrySprite.e Circle)
(controller.ToggleSelectEntry entrySprite.e)))))))))
(FlxG.camera.calculateScrollBounds entryGroup SCROLL_BOUND_MARGIN))