absorb FlxKeyShortcutHandler from kiss-tools
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# @install: lix --silent download "gh://github.com/kiss-lang/kiss-tools#a01cc6b76a2dfd7dcb72ee201fec1064ee050795" into kiss-tools/0.0.0/github/a01cc6b76a2dfd7dcb72ee201fec1064ee050795
|
||||
# @install: lix --silent download "gh://github.com/kiss-lang/kiss-tools#31f11e8edaeefdd64d5f6a397a09ac1898647e21" into kiss-tools/0.0.0/github/31f11e8edaeefdd64d5f6a397a09ac1898647e21
|
||||
-lib kiss
|
||||
-cp ${HAXE_LIBCACHE}/kiss-tools/0.0.0/github/a01cc6b76a2dfd7dcb72ee201fec1064ee050795/src/
|
||||
-cp ${HAXE_LIBCACHE}/kiss-tools/0.0.0/github/31f11e8edaeefdd64d5f6a397a09ac1898647e21/src/
|
||||
-D kiss-tools=0.0.0
|
13
src/kiss_flixel/FlxKeyShortcutHandler.hx
Normal file
13
src/kiss_flixel/FlxKeyShortcutHandler.hx
Normal file
@@ -0,0 +1,13 @@
|
||||
#if flixel
|
||||
|
||||
package kiss_tools;
|
||||
|
||||
import kiss.Prelude;
|
||||
import kiss.List;
|
||||
import kiss_tools.KeyShortcutHandler;
|
||||
import flixel.input.keyboard.FlxKey;
|
||||
import flixel.FlxG;
|
||||
|
||||
@:build(kiss.Kiss.build())
|
||||
class FlxKeyShortcutHandler<T> extends KeyShortcutHandler<T> {}
|
||||
#end
|
46
src/kiss_flixel/FlxKeyShortcutHandler.kiss
Normal file
46
src/kiss_flixel/FlxKeyShortcutHandler.kiss
Normal file
@@ -0,0 +1,46 @@
|
||||
(var KEY_MAP [
|
||||
=>"ZERO" "0"
|
||||
=>"ONE" "1"
|
||||
=>"TWO" "2"
|
||||
=>"THREE" "3"
|
||||
=>"FOUR" "4"
|
||||
=>"FIVE" "5"
|
||||
=>"SIX" "6"
|
||||
=>"SEVEN" "7"
|
||||
=>"EIGHT" "8"
|
||||
=>"NINE" "9"
|
||||
=>"NUMPADZERO" "0"
|
||||
=>"NUMPADONE" "1"
|
||||
=>"NUMPADTWO" "2"
|
||||
=>"NUMPADTHREE" "3"
|
||||
=>"NUMPADFOUR" "4"
|
||||
=>"NUMPADFIVE" "5"
|
||||
=>"NUMPADSIX" "6"
|
||||
=>"NUMPADSEVEN" "7"
|
||||
=>"NUMPADEIGHT" "8"
|
||||
=>"NUMPADNINE" "9"
|
||||
// TODO there are probably other keys worth converting
|
||||
])
|
||||
|
||||
(defNew []
|
||||
(super)
|
||||
(set cancelKey "escape")
|
||||
// TODO generic error handlers
|
||||
)
|
||||
|
||||
// automatically pass the last pressed key to handle key
|
||||
(method :Void update []
|
||||
(let [:FlxKey id (FlxG.keys.firstJustPressed)]
|
||||
(unless (= id -1)
|
||||
(let [key (id.toString)]
|
||||
(case key
|
||||
("SHIFT" (return))
|
||||
(otherwise
|
||||
(handleKey
|
||||
(case key
|
||||
((when (KEY_MAP.exists key) key)
|
||||
(dictGet KEY_MAP key))
|
||||
((when FlxG.keys.pressed.SHIFT key)
|
||||
(.toUpperCase key))
|
||||
(key (.toLowerCase key))
|
||||
(otherwise (throw "FlxKey.toString returned null!"))))))))))
|
Reference in New Issue
Block a user