summaryrefslogtreecommitdiff
path: root/src/menu
diff options
context:
space:
mode:
Diffstat (limited to 'src/menu')
-rw-r--r--src/menu/main.moon41
-rw-r--r--src/menu/settings.moon58
2 files changed, 63 insertions, 36 deletions
diff --git a/src/menu/main.moon b/src/menu/main.moon
index 764ce28..ee33dc9 100644
--- a/src/menu/main.moon
+++ b/src/menu/main.moon
@@ -12,50 +12,18 @@ buttons_data = {
require("menu.settings").initalize!
}
{
- text: "Join"
+ text: "Start"
on: () =>
menu.destroy!
- require("menu.join").initalize!
- }
- {
- text: "Host"
- on: () =>
- print("Setting co...")
- if not @node.co
- @node.co = coroutine.create(() ->
- server = router.Router!
- server\initalize!
- server
- )
- button = @
- @node\action(() =>
- print("In coroutine, menu is", menu)
- if @co and coroutine.status(@co) ~= "dead"
- succ, val = coroutine.resume(@co)
- if not succ
- error(debug.traceback(@co,val))
- if type(val) == "string"
- print("Setting text", val)
- button.text.text = val
- else
- print("Returned router")
- world.router = val
- menu.destroy!
- require("menu.playername").initalize(true)
- )
- }
- {
- text: "Tutorial"
- on: () =>
- menu.destroy!
- print("Load tutorial level")
+ require("worldgen")
+ --require("menu.join").initalize!
}
}
menu.initalize = () ->
starty = -200
for i = starty, ((#buttons_data-1) * (64 + 32)) + starty, 64 + 32
print("making button", #buttons + 1)
- buttons[#buttons + 1] = ui.button(-100,i,200,64,buttons_data[#buttons + 1].text)
+ buttons[#buttons + 1] = ui.button(-200,i,400,64,buttons_data[#buttons + 1].text)
buttons[#buttons].on = buttons_data[#buttons].on
print("intalize")
@@ -63,5 +31,6 @@ menu.initalize = () ->
menu.destroy = () ->
for button in *buttons
ui.delete(button)
+ buttons = {}
menu
diff --git a/src/menu/settings.moon b/src/menu/settings.moon
new file mode 100644
index 0000000..1f21cc3
--- /dev/null
+++ b/src/menu/settings.moon
@@ -0,0 +1,58 @@
+ui = require("ui")
+router = require("router")
+world = require("world")
+settings = require("settings")
+menu = {}
+
+buttons = {}
+buttons_data = {
+ {
+ text: "Streamer"
+ on: (depressed) =>
+ --error("depressed:" .. depressed)
+ settings.streamer = depressed and 0 or 1
+ print("streamer is now:", settings.streamer)
+ type: "boolean"
+ }
+ {
+ text: "Volume"
+ on: (e) =>
+ --require("worldgen")
+ --require("menu.join").initalize!
+ settings.volume = tonumber(@text.text)
+ type: "slider"
+
+ }
+ {
+ text: "Done"
+ on: () =>
+ menu.destroy!
+ require("menu.main").initalize!
+ type: "button"
+ }
+}
+menu.initalize = () ->
+ starty = -200
+ for i = starty, ((#buttons_data-1) * (64 + 32)) + starty, 64 + 32
+ button_data = buttons_data[#buttons + 1]
+ if button_data.type == "boolean"
+ buttons[#buttons + 1] = ui.checkbox(-200,i,400,64,button_data.text)
+ buttons[#buttons].on = button_data.on
+ elseif button_data.type == "slider"
+ buttons[#buttons + 1] = ui.textbox(-200,i,400,64,settings.volume)
+ buttons[#buttons].on = button_data.on
+ elseif button_data.type == "button"
+ buttons[#buttons + 1] = ui.button(-200,i,400,64,button_data.text)
+ buttons[#buttons].on = button_data.on
+ else
+ error("Unknown button type:" .. button_data.type)
+ print("making button", #buttons + 1)
+
+ print("intalize")
+
+menu.destroy = () ->
+ for button in *buttons
+ ui.delete(button)
+ buttons = {}
+
+menu