diff options
Diffstat (limited to 'src/dispatch.moon')
| -rw-r--r-- | src/dispatch.moon | 72 |
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 |
