summaryrefslogtreecommitdiff
path: root/README.org
blob: 4dc3e88278405afea648e081a0bc45b73462a17a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

* =imbricate= makes tilesheets for (Lisp) games

  The =imbricate= turns a directory, with possible nexted directories,
  containing images of varying sizes into a single tile sheet. The tool also
  produces file containing a list of property lists that includes a location and
  a name for each image within the sheet.

** Example


:  $ ls eg/
:  AcidArrow.png  AcidPellet.png  Acorn.png        Amber.png     AncientSpear.png  Arrow.png
:  AcidBolt.png   AcidSac.png     AdamantBone.png  Amythyst.png  Apple.png         AstralCloak.png
:  
:  $ imbricate eg/ example-graphics
:  ALL DONE!
:  
:  $ ls example-graphics*
:  example-graphics.bad.txt  example-graphics-index.lisp  example-graphics.png
:  
:  $ cat example-graphics-index.lisp
:  
:  ((:NAME "AstralCloak" :X 0 :Y 0 :PATH
:    #P"/tmp/eg/AstralCloak.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "Arrow" :X 0 :Y 30 :PATH
:    #P"/tmp/eg/Arrow.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "Apple" :X 0 :Y 60 :PATH
:    #P"/tmp/eg/Apple.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "AncientSpear" :X 30 :Y 0 :PATH
:    #P"/tmp/eg/AncientSpear.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "Amythyst" :X 30 :Y 30 :PATH
:    #P"/tmp/eg/Amythyst.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "Amber" :X 30 :Y 60 :PATH
:    #P"/tmp/eg/Amber.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "AdamantBone" :X 60 :Y 0 :PATH
:    #P"/tmp/eg/AdamantBone.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "Acorn" :X 60 :Y 30 :PATH
:    #P"/tmp/eg/Acorn.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "AcidSac" :X 60 :Y 60 :PATH
:    #P"/tmp/eg/AcidSac.png" :WIDTH 30 :HEIGHT 30)
:   (:NAME "AcidArrow" :X 0 :Y 90 :PATH
:    #P"/tmp/eg/AcidArrow.png" :WIDTH 30 :HEIGHT 30)) 

The =example-graphics.bad.txt= is a file that lists the any images that the
script could not decode as =png= files. Any such files are skipped.

** Building

Assuming that you have [[https://github.com/roswell/roswell][roswell]] installed:

: $ ros use sbcl 
: $ git clone https://github.com/thegoofist/imbricate.git 
: $ cd imbricate.git
: $ ros build imbricate.ros