--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