SVG support in NATFlixel. Close #165

This commit is contained in:
2022-12-05 00:06:54 +00:00
parent 8579b6b8f0
commit 4811395d43
6 changed files with 19 additions and 7 deletions

View File

@@ -36,6 +36,7 @@
<!-- _______________________________ Libraries ______________________________ -->
<haxelib name="flixel" />
<haxelib name="svg" />
<haxelib name="kiss" />
<haxelib name="kiss-tools" />

View File

@@ -3,6 +3,8 @@ package;
import kiss.Prelude;
import kiss.List;
import flash.display.BitmapData;
import openfl.display.Sprite;
import format.SVG;
import kiss_flixel.KissExtendedSprite;
import flixel.text.FlxText;
import flixel.util.FlxSpriteUtil;
@@ -13,7 +15,9 @@ import nat.BoolExpInterp;
import nat.components.Images;
import nat.components.Position;
import nat.components.Scale;
import sys.io.File;
using kiss_flixel.CameraTools;
using haxe.io.Path;
@:build(kiss.Kiss.build())
class EntrySprite extends KissExtendedSprite {}

View File

@@ -16,11 +16,17 @@
(cond
((hasComponent e Images2)
(let [images (readComponent e Images2)]
(.onComplete (BitmapData.loadFromFile (archive.filePath (nth images.imageFiles images.pinnedImageIndex)))
->bitmapData {
(loadGraphic bitmapData)
})))
(let [images (readComponent e Images2)
pinnedImage (archive.filePath (nth images.imageFiles images.pinnedImageIndex))]
(case (pinnedImage.extension)
("svg" (let [sprite (new Sprite)]
(.render (new SVG (File.getContent pinnedImage)) sprite.graphics)
(let [bitmapData (new BitmapData (Std.int sprite.width) (Std.int sprite.height))]
(bitmapData.draw sprite)
(loadGraphic bitmapData))))
(otherwise
(.onComplete (BitmapData.loadFromFile pinnedImage)
->bitmapData (loadGraphic bitmapData))))))
((hasComponent e Circle)
(set isCircle true)
(let [c (readComponent e Circle)