luvcraft/birthday/package.lisp
defpackage#:luvcraft.birthday
:use#:cl
:local-nicknames
#:luv#:luv
#:luvcraft#:luvcraft
:export#:birthday-world-source#:make-birthday-world#:build-birthday-gazebo#:add-birthday-balloons#:remove-birthday-balloons#:add-dancing-gnomes#:remove-dancing-gnomes#:add-birthday-fireworks#:stop-birthday-fireworks#:add-birthday-marquee#:remove-birthday-marquee#:celebrate-birthday#:film-birthday-party#:film-birthday-cutscenes
world.lisp
gazebo.lisp
balloons.lisp
gnomes.lisp
fireworks.lisp
marquee.lisp
party.lisp
A birthday party in the little world.
This system decorates luvcraft for a celebration: a meadow world of its own, a gazebo built from blocks, balloons and dancing gnomes drawn as signed distance fields, and a fireworks show at dusk. Each file owns one aspect and exposes a small constructor; PARTY.LISP is the only file that knows how they compose.
Shader code for these scene objects lives in sections of the same files under (in-package #:luvcraft.shaders), beside the gnome's SDF vocabulary.