aboutsummaryrefslogtreecommitdiff
path: root/src/dispatch.moon
blob: 49a4ba1f602e1239fb95ada7eb04a9399866adf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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