(in-package :lobby) ;;; entries are all the buttons and interactive widgets that compose the system (defclass entry () ((x :accessor x) (y :accessor y) (w :accessor w) (h :accessor h) (centered :initarg :centered :documentation "decide if render from top-left or from center, when centered is on the real x and y will be x-w/2 and y-h/2" :initform nil) (border :accessor border :initarg :border :initform 1) (tileset-path :initform :tileset) (tileset :accessor tileset :initform nil) (actions :accessor actions :documentation "this is an a-list containing one or more actions the entry can take" :initform nil))) ;; when realized you can setup to start from center. ;; Planes need to create centered entries, but they usually don't know the dimension ;; an entry can take. Therefore entries need to have a key to start from center, so ;; instead of consider x and y as the top-left corner they consider it the middle. ;; ;; w and h will work the same way, but rectangles will be created from x-w/2 and y-h/2