;;;; Ru*** roLeplay Playground virtual tabletop ;;;; Copyright (C) 2022 Zull ;;;; ;;;; This program is free software: you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by ;;;; the Free Software Foundation, either version 3 of the License, or ;;;; (at your option) any later version. ;;;; ;;;; This program is distributed in the hope that it will be useful, ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;;; GNU General Public License for more details. ;;;; ;;;; You should have received a copy of the GNU General Public License ;;;; along with this program. If not, see . (defpackage :rulp.layers (:use :cl) (:export screen x y w h rotation path texture surface image-path screen-source screen-destination screen-purge coordinate size model interactions interact movep usep pokep ;; temporaries render get-screen background plane-grid add spr coordinates display plane collision-list entities-list span grid-dimension bounce entity ball grid-span displayp empty-screen-list)) (in-package :rulp.layers) (defgeneric x (obj) (:documentation "get the first coordinate of the object")) (defgeneric y (obj) (:documentation "get the second coordinate of the object")) (defgeneric w (obj) (:documentation "get the width of the object")) (defgeneric h (obj) (:documentation "get the height of the dispalyable object")) (defgeneric (setf x) (value obj) (:documentation "set the first coordinate of the object")) (defgeneric (setf y) (value obj) (:documentation "set the second coordinate of the object")) (defgeneric (setf w) (value obj) (:documentation "set the width of the object")) (defgeneric (setf h) (value obj) (:documentation "set the height of the object"))