Forgot to add GroupTools
This commit is contained in:
12
src/kiss_flixel/GroupTools.hx
Normal file
12
src/kiss_flixel/GroupTools.hx
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package kiss_flixel;
|
||||||
|
|
||||||
|
import kiss.Prelude;
|
||||||
|
import kiss.List;
|
||||||
|
import flixel.FlxObject;
|
||||||
|
import flixel.FlxState;
|
||||||
|
import flixel.math.FlxRect;
|
||||||
|
import flixel.math.FlxPoint;
|
||||||
|
import flixel.group.FlxGroup;
|
||||||
|
|
||||||
|
@:build(kiss.Kiss.build())
|
||||||
|
class GroupTools {}
|
18
src/kiss_flixel/GroupTools.kiss
Normal file
18
src/kiss_flixel/GroupTools.kiss
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
(function :FlxRect calculateBounds <>[:FlxObject T] [:FlxTypedGroup<T> group &opt :Float margin]
|
||||||
|
(unless margin (set margin 0))
|
||||||
|
(let [&mut minX 0
|
||||||
|
&mut maxX 0
|
||||||
|
&mut minY 0
|
||||||
|
&mut maxY 0
|
||||||
|
r (new FlxRect)]
|
||||||
|
|
||||||
|
(group.forEach ->object
|
||||||
|
(let [bounds (object.getRotatedBounds r)]
|
||||||
|
(set minX (min minX bounds.left))
|
||||||
|
(set minY (min minY bounds.top))
|
||||||
|
(set maxX (max maxX bounds.right))
|
||||||
|
(set maxY (max maxY bounds.bottom))))
|
||||||
|
|
||||||
|
(r.fromTwoPoints
|
||||||
|
(new FlxPoint (- minX margin) (- minY margin))
|
||||||
|
(new FlxPoint (+ maxX margin) (+ maxY margin)))))
|
Reference in New Issue
Block a user