summary refs log tree commit diff
path: root/lib/state.fnl
blob: 41dc31256ea9a6da5216fe541ec7e7c83e47d5c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
;; later if it becomes a hassle we can convert this into a separate
;; file that we can reload or something

(local proto (require :lib.proto))

{
 :init (proto.table-method :state.init)
 ;; update is a bit special; it can either return nothing (the state continues
 ;; as is, and mutated somehow (sorry we're doing things non-purely; i'd like
 ;; to do them purely but creating tables is slow as heck that'd be ridiculous))
 ;; or it can return a state that it transitions to automatically
 ;; game pausing basically works like that: it returns a pause structure with the
 ;; regular state within its object, and then the pause structure uses that state
 ;; object to return back to it later. pretty cool!
 :update (proto.meta-method-opt :state.update)
 ;; all of the next functions are just. regular love functions, exactly the same
 ;; i hope
 :draw (proto.meta-method-opt :state.draw)
 :keypressed (proto.meta-method-opt :state.keypressed)
 }