From 93a50835ddef12e85c1be33a18d72972b9a51bd8 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 31 Aug 2023 16:17:56 -0600 Subject: [PATCH] logSprites take cameras into account for layering --- src/kiss_flixel/DebugTools.kiss | 20 ++++++++++++++++- src/kiss_flixel/SpriteTools.hx | 1 + src/kiss_flixel/SpriteTools.kiss | 37 ++++++++++++++++++++++++-------- 3 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/kiss_flixel/DebugTools.kiss b/src/kiss_flixel/DebugTools.kiss index 6cd4c3f..9becc2e 100644 --- a/src/kiss_flixel/DebugTools.kiss +++ b/src/kiss_flixel/DebugTools.kiss @@ -1,4 +1,5 @@ (var &mut :FlxActionDigital f1Action null) +(var &mut :FlxActionDigital f2Action null) (function f1ToRecord [&opt :FlxActionManager _manager] (unless _manager @@ -17,4 +18,21 @@ (OBSTools.stopObs) (OBSTools.startObs)))) (_manager.removeAction f1Action 0) - (_manager.addAction f1Action)) \ No newline at end of file + (_manager.addAction f1Action)) + +(function f2ToLogSprites [&opt :FlxActionManager _manager] + (unless _manager + (set _manager (new FlxActionManager)) + (set _manager.resetOnStateSwitch NONE)) + + (doFor mightByManager (reverse FlxG.inputs.list) + (when (Std.isOfType mightByManager FlxActionManager) + (FlxG.inputs.remove mightByManager))) + (FlxG.inputs.add _manager) + (unless f2Action + (set f2Action (new FlxActionDigital "Log sprites and groups onscreen")) + (f2Action.addKey FlxKey.F2 JUST_PRESSED) + (set f2Action.callback + ->_ (kiss_flixel.SpriteTools.logSprites))) + (_manager.removeAction f2Action 0) + (_manager.addAction f2Action)) \ No newline at end of file diff --git a/src/kiss_flixel/SpriteTools.hx b/src/kiss_flixel/SpriteTools.hx index 2e0995a..4d4b542 100644 --- a/src/kiss_flixel/SpriteTools.hx +++ b/src/kiss_flixel/SpriteTools.hx @@ -14,6 +14,7 @@ import flash.utils.ByteArray; #if sys import sys.io.File; #end +import kiss_flixel.DebugLayer; enum RelativeCoordinate { // Negative means to count back from the far edge diff --git a/src/kiss_flixel/SpriteTools.kiss b/src/kiss_flixel/SpriteTools.kiss index a11fd55..7f7bacd 100644 --- a/src/kiss_flixel/SpriteTools.kiss +++ b/src/kiss_flixel/SpriteTools.kiss @@ -84,20 +84,39 @@ (s.loadGraphic s.graphic false 0 0 true))) (var &mut _idx 0) -(function :Void logSprites [&opt :FlxGroup group :String tab] - (unless group +(function :Void logSprites [&opt :flixel.FlxCamera _camera :FlxGroup group :String tab] + (unless _camera (print "Logging Sprites") (print "###############") + (let [cameras (enumerate (filter FlxG.cameras.list))] + (doFor [idx camera] cameras + (print "Camera #${idx} (${camera.x}, ${camera.y}, ${camera.width}x${camera.height})") + (print "bgColor: ${camera.bgColor}") + (print "--------------") + (logSprites camera null "")) + (return))) + (unless group (set _idx 0) (set group FlxG.state) (set tab "")) (group.forEach ->:Void obj - (typeCase [obj] - ([:FlxSprite sprite] - (print "${tab}${_idx++}. ${sprite}")) - ([:FlxTypedGroup innerGroup] - (logSprites innerGroup "${tab}| ")) - (otherwise - (print "${tab}${_idx++}. Unknown type")))) + (cond + ((let [cameras (or obj.cameras (Reflect.field FlxG.cameras "defaults"))] + (cameras.contains _camera)) + + (typeCase [obj] + ([:FlxText text] + (print "${tab}${_idx++}. ${text.text}")) + ([:FlxSprite sprite] + (print "${tab}${_idx++}. ${sprite}")) + ([:DebugLayer innerGroup] + (print "${tab}DebugLayer:") + (logSprites _camera (cast innerGroup) "${tab}| ")) + ([:FlxTypedGroup innerGroup] + (logSprites _camera innerGroup "${tab}| ")) + (otherwise + (print "${tab}${_idx++}. Unknown type")))) + (true + (+= _idx 1)))) (print "${tab}---------------")) \ No newline at end of file