restructure toward ecs

This commit is contained in:
Travis Shears 2026-04-23 13:53:22 +02:00
parent 842a9899ca
commit e7197f93fc
Signed by: travisshears
GPG key ID: CB9BF1910F3F7469
7 changed files with 120 additions and 90 deletions

View file

@ -2,36 +2,15 @@
(local levels (. (require "levels.fnl") :levels))
(local bump (require "libs/bump"))
(local tiny (require "libs/tiny"))
(local assets (require "assets.fnl"))
(local assets (require "src/assets.fnl"))
(local utils (require "src/utils.fnl"))
(local colors (require "src/colors.fnl"))
(local tutorial (require "src/levels/tutorial.fnl"))
(lambda debug-print [obj]
(print (fennel.view obj)))
(debug-print assets)
; (utils.debug-print assets)
; (local network (require "network.fnl"))
;; colors
; (lambda color [full-r full-g full-b]
; (let [(r g b) (love.math.colorFromBytes full-r full-g full-b)]
; [r g b]
; ))
; (local color-pallet {
; :cream (color 255 238 204)
; :dark-purple (color 70 66 94)
; :dark-pink (color 255 105 115)
; :dark-blue (color 21 120 140)
; :light-blue (color 0 185 190)
; :light-pink (color 255 176 163)
; :black [0 0 0]
; :black-half-tone [0 0 0 0.25]
; })
; (fn reset-color []
; "reset color to white (no tinting)"
; (love.graphics.setColor 1 1 1))
; (lambda set-color [color]
; "set color to the given color from the color pallet"
; (love.graphics.setColor (unpack (. color-pallet color))))
(var world nil)
;; global vars
; (var level-key "tutorial")
@ -49,16 +28,14 @@
; :list []
; })
; (local screen
; (let [scale 2 canvas-w 800 canvas-h 450]
; { :screen-w (* canvas-w scale)
; :screen-h (* canvas-h scale)
; :canvas-w canvas-w
; :canvas-h canvas-h
; :scale scale
; :canvas nil}))
; (local camera {:x 0 :y 0})
; (local debug true)
(local screen
(let [scale 2 canvas-w 800 canvas-h 450]
{ :screen-w (* canvas-w scale)
:screen-h (* canvas-h scale)
:canvas-w canvas-w
:canvas-h canvas-h
:scale scale}))
(local debug true)
; (local collider-debug-boxes [])
; (lambda add-collider-debug-box [x y w h]
@ -194,18 +171,20 @@
; )
; (fn love.load []
; (love.window.setMode screen.screen-w screen.screen-h)
; (tset screen :canvas (love.graphics.newCanvas screen.canvas-w screen.canvas-h))
; (load-assets)
; (load-level :tutorial)
; ;; Initialize network
; (network.init)
; (network.send-msg "REGISTER")
(fn love.load []
(love.window.setMode screen.screen-w screen.screen-h)
; (tset screen :canvas (love.graphics.newCanvas screen.canvas-w screen.canvas-h))
(set world (tutorial.load screen))
(utils.debug-print world)
; (load-assets)
; (load-level :tutorial)
;; Initialize network
; (network.init)
; (network.send-msg "REGISTER")
; ;; start a thread listening on stdin
; (: (love.thread.newThread "require('love.event')
; while 1 do love.event.push('stdin', io.read('*line')) end") :start))
;; start a thread listening on stdin
(: (love.thread.newThread "require('love.event')
while 1 do love.event.push('stdin', io.read('*line')) end") :start))
(fn love.handlers.stdin [line]
;; evaluate lines read from stdin as fennel code
@ -223,7 +202,10 @@
; (love.graphics.rectangle "line" collider.x collider.y collider.width collider.height))))
(fn love.update [dt] nil)
(fn love.update [dt]
(let [filter (tiny.requireAll :update)]
; (utils.debug-print filter)
(tiny.update world dt filter)))
; (fn love.update [dt]
; (each [_ obj (pairs objects.list)]
@ -335,7 +317,11 @@
; ; (print (fennel.view obj))
; (obj:draw)))
(fn love.draw [] nil)
(fn love.draw [dt]
(tiny.update world dt (tiny.requireAll :pre-draw))
(tiny.update world dt (tiny.requireAll :draw))
; (world:update dt (tiny.requireAll "post-draw"))
)
; (fn love.draw []
; (love.graphics.setCanvas screen.canvas)
; (love.graphics.clear)