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) (this.scale.set scale scale)
(updateHitbox)) (updateHitbox))
(enableMouseClicks false (hasComponent e Circle)) // pixel-perfect if the sprite is a circle (enableMouseClicks false (hasComponent e Circle)) // pixel-perfect if the sprite is a circle
(enableMouseDrag) (enableMouseDrag false (hasComponent e Circle))
(set mouseStartDragCallback (set mouseStartDragCallback
->[self _dx _dy] ->[self _dx _dy]
(doFor sprite (system.getSelectedSprites) (doFor sprite (system.getSelectedSprites)

View File

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