Rectangle components in NAT

This commit is contained in:
2022-12-18 05:40:53 +00:00
parent 0ac7156366
commit f23e1ca622
5 changed files with 32 additions and 1 deletions

View File

@@ -34,6 +34,9 @@
(change playgrounds)
(File.saveContent (joinPath archiveDir "playgrounds.json") (haxe.Json.stringify playgrounds "\t")))
(method :String currentPlayground []
(dictGet playgrounds "default"))
(method addSystem [:System system]
(systems.push system)
system)

View File

@@ -313,6 +313,22 @@
(removeTags archive e tagsToRemove))
entries) // TODO this includes entries that didn't have the tag in the changeset
(defCommand AddRectangle [entries (SelectedEntries 1 null)
width (Number 0 null null)
height (Number 0 null null)]
(doFor e entries
(addComponent archive e Rectangle (objectWith width height)))
entries)
(defCommand CreateRectangleEntry [p1 Position p2 Position]
[(archive.createEntry ->e
(let [x (min p1.x p2.x)
y (min p1.y p2.y)
w (- (max p1.x p2.x) x)
h (- (max p1.y p2.y) y)]
(addComponent archive e Positions [=>(archive.currentPlayground) (objectWith [z 0.0] x y)])
(addComponent archive e Rectangle (object width w height h))))])
(defCommand AddDLURL [e SelectedEntry url (Text null)]
[(addComponent archive e DLURL url)])

View File

@@ -0,0 +1,6 @@
package nat.components;
typedef Rectangle = {
width:Float,
height:Float
}

View File

@@ -27,6 +27,12 @@
(otherwise
(.onComplete (BitmapData.loadFromFile pinnedImage)
->bitmapData (loadGraphic bitmapData))))))
((hasComponent e Rectangle)
(let [rect (readComponent e Rectangle)
w (Std.int rect.width)
h (Std.int rect.height)]
(makeGraphic w h FlxColor.TRANSPARENT)
(FlxSpriteUtil.drawRect this 0 0 w h FlxColor.TRANSPARENT (object color FlxColor.WHITE))))
((hasComponent e Circle)
(set isCircle true)
(let [c (readComponent e Circle)

View File

@@ -11,7 +11,7 @@
(super
playState
->[archive e]
?(or (hasComponent e Name) (hasComponent e Circle))
?(or (hasComponent e Name) (hasComponent e Circle) (hasComponent e Rectangle))
->[archive e pos &opt ui]
(unless (sprites.exists e.id)
(let [sprite (new EntrySprite this _playgroundKey pos archive e controller)]