clean up worldgen and remove verbose logging

This commit is contained in:
asrael 2025-11-11 21:24:53 -06:00
parent 4d84122ef3
commit 34e534b6f2
11 changed files with 359 additions and 174 deletions

View file

@ -18,6 +18,9 @@
(local turn-speed 2.0)
(local bob-speed 8.0)
(local bob-amount 4.0)
(local max-pitch 1.5)
(local cell-size 64)
(local grid-size 32)
(fn init []
(set world (pxl8.world_new))
@ -30,7 +33,37 @@
:iterations 4})]
(if (< result 0)
(pxl8.error (.. "Failed to generate cave - result: " result))
(pxl8.info "Generated procedural cave"))))
(do
(let [floor-tex (pxl8.procgen_tex {:name "floor"
:seed 11111
:width 64
:height 64
:base_color 20})
ceiling-tex (pxl8.procgen_tex {:name "ceiling"
:seed 22222
:width 64
:height 64
:base_color 0})
wall-tex (pxl8.procgen_tex {:name "wall"
:seed 12345
:width 64
:height 64
:base_color 4})]
(pxl8.upload_atlas)
(let [result (pxl8.world_apply_textures world [
{:name "floor"
:texture_id floor-tex
:rule (fn [normal] (> normal.y 0.7))}
{:name "ceiling"
:texture_id ceiling-tex
:rule (fn [normal] (< normal.y -0.7))}
{:name "wall"
:texture_id wall-tex
:rule (fn [normal] (and (<= normal.y 0.7) (>= normal.y -0.7)))}])]
(when (< result 0)
(pxl8.error (.. "Failed to apply textures - result: " result)))))))))
(fn update [dt]
(set fps-accumulator (+ fps-accumulator dt))
@ -50,36 +83,35 @@
forward-z (- (math.cos cam-yaw))
right-x (math.cos cam-yaw)
right-z (- (math.sin cam-yaw))
cell-size 64
grid-min 0
grid-max (* 32 cell-size)]
grid-max (* grid-size cell-size)
move-delta (* move-speed dt)]
(var moving false)
(var new-x cam-x)
(var new-z cam-z)
(when (pxl8.key_down "w")
(set new-x (+ new-x (* forward-x move-speed dt)))
(set new-z (+ new-z (* forward-z move-speed dt)))
(set new-x (+ new-x (* forward-x move-delta)))
(set new-z (+ new-z (* forward-z move-delta)))
(set moving true))
(when (pxl8.key_down "s")
(set new-x (- new-x (* forward-x move-speed dt)))
(set new-z (- new-z (* forward-z move-speed dt)))
(set new-x (- new-x (* forward-x move-delta)))
(set new-z (- new-z (* forward-z move-delta)))
(set moving true))
(when (pxl8.key_down "q")
(set new-x (- new-x (* right-x move-speed dt)))
(set new-z (- new-z (* right-z move-speed dt)))
(set new-x (- new-x (* right-x move-delta)))
(set new-z (- new-z (* right-z move-delta)))
(set moving true))
(when (pxl8.key_down "e")
(set new-x (+ new-x (* right-x move-speed dt)))
(set new-z (+ new-z (* right-z move-speed dt)))
(set new-x (+ new-x (* right-x move-delta)))
(set new-z (+ new-z (* right-z move-delta)))
(set moving true))
(when (and (>= new-x grid-min) (<= new-x grid-max)
(>= new-z grid-min) (<= new-z grid-max))
(when (and (>= new-x 0) (<= new-x grid-max)
(>= new-z 0) (<= new-z grid-max))
(set cam-x new-x)
(set cam-z new-z))
@ -90,12 +122,10 @@
(set cam-yaw (- cam-yaw (* turn-speed dt))))
(when (pxl8.key_down "up")
(set cam-pitch (+ cam-pitch (* turn-speed dt)))
(when (> cam-pitch 1.5) (set cam-pitch 1.5)))
(set cam-pitch (math.min max-pitch (+ cam-pitch (* turn-speed dt)))))
(when (pxl8.key_down "down")
(set cam-pitch (- cam-pitch (* turn-speed dt)))
(when (< cam-pitch -1.5) (set cam-pitch -1.5)))
(set cam-pitch (math.max (- max-pitch) (- cam-pitch (* turn-speed dt)))))
(if moving
(set bob-time (+ bob-time (* dt bob-speed)))
@ -134,17 +164,17 @@
(pxl8.text (.. "Pos: " (string.format "%.0f" cam-x) ","
(string.format "%.0f" cam-y) ","
(string.format "%.0f" cam-z)) 10 25 12))
(string.format "%.0f" cam-z)) 10 25 12)
(let [new-state (debug-ui.render {:show-debug-ui show-debug-ui
:fps fps
:wireframe false
:auto-rotate false
:orthographic false
:use-texture true
:affine affine})]
(when (not= new-state.show-debug-ui nil) (set show-debug-ui new-state.show-debug-ui))
(when (not= new-state.affine nil) (set affine new-state.affine)))))
(let [new-state (debug-ui.render {:show-debug-ui show-debug-ui
:fps fps
:wireframe false
:auto-rotate false
:orthographic false
:use-texture true
:affine affine})]
(when (not= new-state.show-debug-ui nil) (set show-debug-ui new-state.show-debug-ui))
(when (not= new-state.affine nil) (set affine new-state.affine))))))
{:init init
:update update