From 57701059b1b65fc08366318e92d32d9dd7094d25 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Sun, 2 Feb 2020 08:11:08 -0500 Subject: inital commit --- src/dispatch.moon | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/dispatch.moon (limited to 'src/dispatch.moon') 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 -- cgit v1.2.3-70-g09d2