aboutsummaryrefslogtreecommitdiff
path: root/src/dispatch.moon
diff options
context:
space:
mode:
authorAlexander Pickering <alex@cogarr.net>2020-02-02 08:11:08 -0500
committerAlexander Pickering <alex@cogarr.net>2020-02-02 08:11:08 -0500
commit57701059b1b65fc08366318e92d32d9dd7094d25 (patch)
treea569db68d27982d83fead3cc9c8192056c49509f /src/dispatch.moon
downloaddrydock-57701059b1b65fc08366318e92d32d9dd7094d25.tar.gz
drydock-57701059b1b65fc08366318e92d32d9dd7094d25.tar.bz2
drydock-57701059b1b65fc08366318e92d32d9dd7094d25.zip
inital commit
Diffstat (limited to 'src/dispatch.moon')
-rw-r--r--src/dispatch.moon72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/dispatch.moon b/src/dispatch.moon
new file mode 100644
index 0000000..49a4ba1
--- /dev/null
+++ b/src/dispatch.moon
@@ -0,0 +1,72 @@
+--Control utilities
+state = require "global"
+ui = require "ui"
+mod = ...
+
+mod.window_to_normal = (pos) ->
+ nx = pos.x - state.win.left
+ ny = pos.y - state.win.top
+ vec2(nx,-ny)
+
+mod.normal_to_window = (pos) ->
+ print("in:",pos)
+ nx = pos.x + state.win.left
+ ny = -(pos.y) + state.win.top
+ print("out:",nx,ny)
+ vec2(nx,ny)
+
+state.layers\action(coroutine.create(()->
+ while true
+ if state.win\mouse_pressed("left")
+ pos = state.win\mouse_position!
+ --print("Mouse pos:",pos)
+ npos = mod.window_to_normal(pos)
+ --print("newpos:", mod.window_to_normal(pos))
+ gridx, gridy = math.floor(npos.x / 32), math.floor(npos.y / 32)
+ l = state.selected_layer
+ --print("Looking at active layer:",l)
+ tile = l\get_tile(gridx,gridy)
+ --print("tile:",tile)
+ if tile and tile.type.cantoggle --we want to remove
+ l\clear_square(gridx,gridy)
+ state.money += l.cost
+ state.play(77430200)
+ else
+ if state.money >= l.cost and not tile
+ state.play(77430200)
+ state.money -= l.cost
+ l\toggle_square(gridx,gridy)
+ state.update!
+ l\print_grid!
+ else
+ state.play(4807804)
+ if (state.win\key_pressed("1") or state.win\key_pressed("kp_1")) and state.layer_tbl[1]
+ print("setting selected layer to 1")
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[1]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ elseif (state.win\key_pressed("2") or state.win\key_pressed("kp_2")) and state.layer_tbl[2]
+ print("setting selected layer to 2")
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[2]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ elseif (state.win\key_pressed("3") or state.win\key_pressed("kp_3")) and state.layer_tbl[3]
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[3]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ elseif (state.win\key_pressed("4") or state.win\key_pressed("kp_4")) and state.layer_tbl[4]
+ print("setting selected layer to 4")
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[4]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ --for layernum, layer in pairs state.layer_tbl do
+ --if state.selected_layer == layer
+ --state.selecte
+ coroutine.yield!
+))
+
+mod