aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Letan <contact@thomasletan.fr>2018-07-04 13:51:22 +0200
committerThomas Letan <contact@thomasletan.fr>2018-07-04 13:51:22 +0200
commit5229fbd9ace7ac436abdaa9c63223b5f4ffaebec (patch)
tree2498682a292d893b6bcab93b56cb99f2c4e6be0e
parentfeature: Direction is now an angle, not an enum (diff)
feature: Use an environment variable to locate resources
-rw-r--r--lykanc/assets.lisp7
-rw-r--r--lykanc/client.lisp4
-rw-r--r--lykanc/parameter.lisp7
-rw-r--r--lykanc/puppet.lisp4
4 files changed, 15 insertions, 7 deletions
diff --git a/lykanc/assets.lisp b/lykanc/assets.lisp
index 1a7cc7c..3795771 100644
--- a/lykanc/assets.lisp
+++ b/lykanc/assets.lisp
@@ -3,9 +3,14 @@
(defmacro define-tileset (str)
`(gamekit:define-image (alexandria:make-keyword ,str) ,str))
-(gamekit:register-resource-package :keyword "../example/assets/tilesets/")
+(gamekit:register-resource-package :keyword *tilesets-dir*)
+
(define-tileset "character.png")
(define-tileset "map.png")
+
(gamekit:define-image :cursor "cursor.png")
(gamekit:define-font :lykanc-font "NotoSansMono-Regular.ttf")
+
+(defun tileset-path (name)
+ (concatenate 'string *tilesets-dir* "/" name))
diff --git a/lykanc/client.lisp b/lykanc/client.lisp
index a42903d..9563ae2 100644
--- a/lykanc/client.lisp
+++ b/lykanc/client.lisp
@@ -35,7 +35,7 @@
(fairy:add-child app ui :with-key :ui)))
(defmethod init-map ((app client) map-key)
- (let* ((tmx-file (concatenate 'string *maps_dir* map-key ".tmx"))
+ (let* ((tmx-file (concatenate 'string *maps-dir* map-key ".tmx"))
(map-layer (make-instance 'fairy/tiled:tile-map :path tmx-file)))
(setf (fairy:get-child app :game-scene) map-layer))
(setf (fairy:sort-with (get-objects-layer app))
@@ -56,7 +56,7 @@
(setf (main-puppet app) key))
(defmethod add-puppet ((app client) key x y dir)
- (let ((puppet (new-puppet "../example/assets/tilesets/character.tsx"
+ (let ((puppet (new-puppet "character.tsx"
x y)))
(changes-direction puppet dir)
(fairy:add-child (get-objects-layer app)
diff --git a/lykanc/parameter.lisp b/lykanc/parameter.lisp
index e757a95..3477a4d 100644
--- a/lykanc/parameter.lisp
+++ b/lykanc/parameter.lisp
@@ -2,7 +2,10 @@
(defparameter *viewport-width* 320)
(defparameter *viewport-height* 240)
-(defparameter *scale* 4)
+(defparameter *scale* 2)
(defparameter *cursor-size* 10)
(defparameter *server-url* "ws://localhost:4000")
-(defparameter *maps_dir* "../example/assets/maps/")
+(defparameter *lykan-assets-dir* (uiop:getenv "LYKAN_ASSETS_DIR"))
+
+(defparameter *tilesets-dir* (concatenate 'string *lykan-assets-dir* "/tilesets/"))
+(defparameter *maps-dir* (concatenate 'string *lykan-assets-dir* "/maps/"))
diff --git a/lykanc/puppet.lisp b/lykanc/puppet.lisp
index 33102d2..c4f8183 100644
--- a/lykanc/puppet.lisp
+++ b/lykanc/puppet.lisp
@@ -8,12 +8,12 @@
(attacking :initform nil
:accessor attacking?)))
-(defun new-puppet (path-tileset x y)
+(defun new-puppet (tileset-name x y)
(let ((layer (make-instance 'puppet
:origin (gamekit:vec2 x y)))
(tile (make-instance 'fairy/tiled:tile
:current 19
- :path path-tileset)))
+ :path (tileset-path tileset-name))))
(fairy:add-child layer tile :with-key :character)
layer))