From 843dfef2c6860b6d4f7584908bfa2088d38e3618 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Wed, 6 Jul 2022 20:49:40 +0000 Subject: [PATCH] make circle dragging less intrusive in NAT --- .../nat-flixel-desktop-playground/source/EntrySprite.kiss | 2 +- .../nat-flixel-desktop-playground/source/PlayState.kiss | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/projects/nat-flixel-desktop-playground/source/EntrySprite.kiss b/projects/nat-flixel-desktop-playground/source/EntrySprite.kiss index 9c14641c..e889670b 100644 --- a/projects/nat-flixel-desktop-playground/source/EntrySprite.kiss +++ b/projects/nat-flixel-desktop-playground/source/EntrySprite.kiss @@ -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) diff --git a/projects/nat-flixel-desktop-playground/source/PlayState.kiss b/projects/nat-flixel-desktop-playground/source/PlayState.kiss index 4522d5c7..d97ccbf4 100644 --- a/projects/nat-flixel-desktop-playground/source/PlayState.kiss +++ b/projects/nat-flixel-desktop-playground/source/PlayState.kiss @@ -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))