implement our own gui module, drop microui
This commit is contained in:
parent
2555bec8eb
commit
8baf5f06ea
25 changed files with 495 additions and 507 deletions
|
|
@ -1,5 +1,5 @@
|
|||
(local pxl8 (require :pxl8))
|
||||
(local cube3d (require :mod.cube3d))
|
||||
(local menu (require :mod.menu))
|
||||
(local worldgen (require :mod.worldgen))
|
||||
|
||||
(var time 0)
|
||||
|
|
@ -29,53 +29,59 @@
|
|||
(pxl8.load_palette "res/sprites/pxl8_logo.ase")
|
||||
(set logo-sprite (pxl8.load_sprite "res/sprites/pxl8_logo.ase"))
|
||||
(set particles (pxl8.particles_new 1000))
|
||||
(cube3d.init)
|
||||
(worldgen.init)))
|
||||
|
||||
(global update (fn [dt]
|
||||
(set time (+ time dt))
|
||||
(when (pxl8.key_pressed "escape")
|
||||
(menu.toggle)
|
||||
(when (= active-demo :worldgen)
|
||||
(pxl8.set_relative_mouse_mode (not (menu.is-paused)))))
|
||||
|
||||
(when transition
|
||||
(pxl8.transition_update transition dt)
|
||||
(when (pxl8.transition_is_complete transition)
|
||||
(when transition-pending
|
||||
(when (and (= active-demo :worldgen) (not= transition-pending :worldgen))
|
||||
(pxl8.set_relative_mouse_mode false))
|
||||
(set active-demo transition-pending)
|
||||
(set transition-pending nil)
|
||||
(when (= active-demo :fire) (set fire-init? false))
|
||||
(when (= active-demo :rain) (set rain-init? false))
|
||||
(when (= active-demo :snow) (set snow-init? false)))
|
||||
(pxl8.transition_destroy transition)
|
||||
(set transition nil)))
|
||||
(when (not (menu.is-paused))
|
||||
(set time (+ time dt))
|
||||
|
||||
(when (pxl8.key_pressed "1") (switch-demo :logo))
|
||||
(when (pxl8.key_pressed "2") (switch-demo :plasma))
|
||||
(when (pxl8.key_pressed "3") (switch-demo :tunnel))
|
||||
(when (pxl8.key_pressed "4") (switch-demo :raster))
|
||||
(when (pxl8.key_pressed "5") (switch-demo :fire))
|
||||
(when (pxl8.key_pressed "6") (switch-demo :rain))
|
||||
(when (pxl8.key_pressed "7") (switch-demo :snow))
|
||||
(when (pxl8.key_pressed "8") (switch-demo :cube3d))
|
||||
(when (pxl8.key_pressed "9") (switch-demo :worldgen))
|
||||
(when (pxl8.key_pressed "=")
|
||||
(set use-famicube-palette? (not use-famicube-palette?))
|
||||
(local palette-path (if use-famicube-palette? "res/palettes/famicube.ase" "res/sprites/pxl8_logo.ase"))
|
||||
(pxl8.load_palette palette-path))
|
||||
(when transition
|
||||
(pxl8.transition_update transition dt)
|
||||
(when (pxl8.transition_is_complete transition)
|
||||
(when transition-pending
|
||||
(when (and (= active-demo :worldgen) (not= transition-pending :worldgen))
|
||||
(pxl8.set_relative_mouse_mode false))
|
||||
(set active-demo transition-pending)
|
||||
(set transition-pending nil)
|
||||
(when (= active-demo :fire) (set fire-init? false))
|
||||
(when (= active-demo :rain) (set rain-init? false))
|
||||
(when (= active-demo :snow) (set snow-init? false)))
|
||||
(pxl8.transition_destroy transition)
|
||||
(set transition nil)))
|
||||
|
||||
(case active-demo
|
||||
:logo (do
|
||||
(set logo-x (+ logo-x (* logo-dx dt)))
|
||||
(set logo-y (+ logo-y (* logo-dy dt)))
|
||||
(when (or (< logo-x 0) (> logo-x 512))
|
||||
(set logo-dx (- logo-dx)))
|
||||
(when (or (< logo-y 0) (> logo-y 296))
|
||||
(set logo-dy (- logo-dy))))
|
||||
:cube3d (cube3d.update dt)
|
||||
:worldgen (worldgen.update dt))
|
||||
(when (pxl8.key_pressed "1") (switch-demo :logo))
|
||||
(when (pxl8.key_pressed "2") (switch-demo :plasma))
|
||||
(when (pxl8.key_pressed "3") (switch-demo :tunnel))
|
||||
(when (pxl8.key_pressed "4") (switch-demo :raster))
|
||||
(when (pxl8.key_pressed "5") (switch-demo :fire))
|
||||
(when (pxl8.key_pressed "6") (switch-demo :rain))
|
||||
(when (pxl8.key_pressed "7") (switch-demo :snow))
|
||||
(when (pxl8.key_pressed "8") (switch-demo :worldgen))
|
||||
(when (pxl8.key_pressed "=")
|
||||
(set use-famicube-palette? (not use-famicube-palette?))
|
||||
(local palette-path (if use-famicube-palette? "res/palettes/famicube.ase" "res/sprites/pxl8_logo.ase"))
|
||||
(pxl8.load_palette palette-path))
|
||||
|
||||
(when particles
|
||||
(pxl8.particles_update particles dt))))
|
||||
(case active-demo
|
||||
:logo (do
|
||||
(set logo-x (+ logo-x (* logo-dx dt)))
|
||||
(set logo-y (+ logo-y (* logo-dy dt)))
|
||||
(when (or (< logo-x 0) (> logo-x 512))
|
||||
(set logo-dx (- logo-dx)))
|
||||
(when (or (< logo-y 0) (> logo-y 296))
|
||||
(set logo-dy (- logo-dy))))
|
||||
:worldgen (worldgen.update dt))
|
||||
|
||||
(when particles
|
||||
(pxl8.particles_update particles dt)))
|
||||
|
||||
(when (menu.is-paused)
|
||||
(menu.update))))
|
||||
|
||||
(global frame (fn []
|
||||
(case active-demo
|
||||
|
|
@ -122,11 +128,12 @@
|
|||
(set snow-init? true))
|
||||
(pxl8.particles_render particles)))
|
||||
|
||||
:cube3d (cube3d.frame)
|
||||
|
||||
:worldgen (worldgen.frame)
|
||||
|
||||
_ (pxl8.clear 0))
|
||||
|
||||
(when transition
|
||||
(pxl8.transition_render transition))))
|
||||
(pxl8.transition_render transition))
|
||||
|
||||
(when (menu.is-paused)
|
||||
(menu.draw))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue