rename some standalone projects
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
(loadFrom "nat-archive-tool" "src/nat/Lib.kiss")
|
||||
|
||||
(defNew [&prop :EntrySpriteSystem system
|
||||
&prop :String positionKey
|
||||
&prop :Position position
|
||||
&prop :Archive archive
|
||||
&prop :Entry e
|
||||
&prop :ArchiveController controller]
|
||||
[&mut :Bool selected false
|
||||
&mut :Bool isCircle false
|
||||
&mut :FlxColor unselectedColor FlxColor.WHITE
|
||||
&mut :FlxColor selectedColor FlxColor.WHITE]
|
||||
(super position.x position.y)
|
||||
(enableMouseClicks false)
|
||||
(set mousePressedCallback ->:Void [_ _ _] null)
|
||||
|
||||
(cond
|
||||
((hasComponent e Images2)
|
||||
(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 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)
|
||||
diam (Std.int (* 2 c.radius))
|
||||
squareSize (+ diam CIRCLE_THICKNESS)
|
||||
color (if (hasComponent e ColorF)
|
||||
(let [c (readComponent e ColorF)]
|
||||
(FlxColor.fromRGBFloat c.r c.g c.b c.a))
|
||||
CIRCLE_COLOR)]
|
||||
(makeGraphic squareSize squareSize FlxColor.TRANSPARENT true)
|
||||
(set unselectedColor color)
|
||||
(set selectedColor CIRCLE_SELECTED_COLOR)
|
||||
(FlxSpriteUtil.drawCircle this -1 -1 c.radius FlxColor.TRANSPARENT (object thickness CIRCLE_THICKNESS color color))))
|
||||
(true
|
||||
(set pixels .pixels
|
||||
(let [color (if (hasComponent e ColorF)
|
||||
(let [c (readComponent e ColorF)]
|
||||
(FlxColor.fromRGBFloat c.r c.g c.b c.a))
|
||||
DEFAULT_COLOR)
|
||||
t (new FlxText 0 0 0 (readComponent e Name) PlayState.TEXT_SIZE)]
|
||||
(set unselectedColor color)
|
||||
(set selectedColor SELECTED_COLOR)
|
||||
(set t.color color)
|
||||
t))))
|
||||
(updateColor)
|
||||
(let [:Float scale (getScale e)]
|
||||
(this.scale.set scale scale)
|
||||
(updateHitbox))
|
||||
(enableMouseClicks false (hasComponent e Circle)) // pixel-perfect if the sprite is a circle
|
||||
(enableMouseDrag false (hasComponent e Circle))
|
||||
(set mouseStartDragCallback
|
||||
->[self _dx _dy]
|
||||
(doFor sprite (system.getSelectedReps)
|
||||
(unless (= sprite.e.id this.e.id)
|
||||
(sprite.fixToSprite this))))
|
||||
|
||||
(set mouseStopDragCallback
|
||||
->[self _dx _dy]
|
||||
{
|
||||
(savePos)
|
||||
(doFor sprite (system.getSelectedReps)
|
||||
(unless (= sprite.e.id this.e.id)
|
||||
(sprite.endFixToSprite)))
|
||||
}))
|
||||
|
||||
(prop &mut :EntrySprite fixedToSprite)
|
||||
(prop &mut :FlxPoint fixedOffset)
|
||||
|
||||
(method savePos []
|
||||
(FlxG.camera.extendScrollBounds this PlayState.SCROLL_BOUND_MARGIN)
|
||||
(system.savePosition e (cast this.x Float) (cast this.y Float)))
|
||||
|
||||
(method &override :Void update [:Float elapsed]
|
||||
(super.update elapsed)
|
||||
(when fixedToSprite
|
||||
(set x (+ fixedToSprite.x fixedOffset.x))
|
||||
(set y (+ fixedToSprite.y fixedOffset.y))))
|
||||
|
||||
(method fixToSprite [:EntrySprite sprite]
|
||||
(set fixedToSprite sprite)
|
||||
(set fixedOffset (new FlxPoint (- x sprite.x) (- y sprite.y))))
|
||||
|
||||
|
||||
(method endFixToSprite []
|
||||
(savePos)
|
||||
(set fixedToSprite null))
|
||||
|
||||
(method updateColor []
|
||||
(set color
|
||||
(if (controller.isSelected e)
|
||||
selectedColor
|
||||
unselectedColor)))
|
||||
|
||||
(var SELECTED_COLOR FlxColor.BLUE)
|
||||
(var CIRCLE_COLOR FlxColor.LIME)
|
||||
(var CIRCLE_SELECTED_COLOR FlxColor.GRAY)
|
||||
(var DEFAULT_COLOR FlxColor.WHITE)
|
||||
|
||||
(var CIRCLE_THICKNESS 5)
|
Reference in New Issue
Block a user