Make entry sprites draggable + save their positions

This commit is contained in:
2021-09-18 17:32:25 -06:00
parent b8372420f0
commit 65323a3d96
4 changed files with 15 additions and 3 deletions

View File

@@ -3,7 +3,7 @@ package;
import kiss.Prelude;
import kiss.List;
import flash.display.BitmapData;
import flixel.FlxSprite;
import flixel.addons.display.FlxExtendedSprite;
import nat.Entry;
import nat.Archive;
import nat.BoolExpInterp;
@@ -11,4 +11,4 @@ import nat.components.Images;
import nat.components.Positions;
@:build(kiss.Kiss.build())
class EntrySprite extends FlxSprite {}
class EntrySprite extends FlxExtendedSprite {}

View File

@@ -8,4 +8,12 @@
((object x x y y z z)
(super x y)))
(.onComplete (BitmapData.loadFromFile (joinPath archive.archiveDir "files" (nth images.imageFiles images.pinnedImageIndex)))
->bitmapData (loadGraphic bitmapData))))
->bitmapData {
(loadGraphic bitmapData)
(enableMouseClicks false)
(enableMouseDrag)
}))
(set mouseStopDragCallback
->[self _dx _dy]
(withWritableComponents archive e [positions Positions]
(dictSet positions positionKey (object x (cast this.x Float) y (cast this.y Float) z 0.0)))))

View File

@@ -14,6 +14,7 @@ import flixel.text.FlxText;
import flixel.util.FlxColor;
import flixel.FlxCamera;
import flixel.math.FlxVector;
import flixel.addons.plugin.FlxMouseControl;
using StringTools;

View File

@@ -7,6 +7,9 @@
(method &override :Void create []
(super.create)
(FlxG.plugins.add (new FlxMouseControl))
// TODO find a better way to pass the archiveDir to a HaxeFlixel game
(let [archiveDir
(or (Sys.getEnv "NAT_DIR") (throw "NAT_DIR environment variable must be set"))