mirror of
https://github.com/smogon/sprites.git
synced 2026-07-03 17:12:27 -05:00
Add PS spritesheet generator tool
This commit is contained in:
parent
12fb7af96b
commit
5ba2e316e4
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,2 +1,4 @@
|
|||
build/
|
||||
.tup
|
||||
node_modules
|
||||
pnpm-debug.log
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ $ brew install tup graphicsmagick advancecomp
|
|||
|
||||
## Building
|
||||
|
||||
Install dependencies once with `pnpm install`. Then, to build:
|
||||
|
||||
```
|
||||
$ tup
|
||||
```
|
||||
|
|
|
|||
681
pnpm-lock.yaml
Normal file
681
pnpm-lock.yaml
Normal file
|
|
@ -0,0 +1,681 @@
|
|||
importers:
|
||||
tools/sprites:
|
||||
dependencies:
|
||||
commander: 5.0.0
|
||||
make-promises-safe: 5.1.0
|
||||
spritesmith: 3.4.0
|
||||
specifiers:
|
||||
commander: ^5.0.0
|
||||
make-promises-safe: ^5.1.0
|
||||
spritesmith: ^3.4.0
|
||||
lockfileVersion: 5.1
|
||||
packages:
|
||||
/ajv/6.12.0:
|
||||
dependencies:
|
||||
fast-deep-equal: 3.1.1
|
||||
fast-json-stable-stringify: 2.1.0
|
||||
json-schema-traverse: 0.4.1
|
||||
uri-js: 4.2.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==
|
||||
/asn1/0.2.4:
|
||||
dependencies:
|
||||
safer-buffer: 2.1.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
|
||||
/assert-plus/1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.8'
|
||||
resolution:
|
||||
integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
|
||||
/async/0.9.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
|
||||
/asynckit/0.4.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
||||
/aws-sign2/0.7.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
|
||||
/aws4/1.9.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
|
||||
/bcrypt-pbkdf/1.0.2:
|
||||
dependencies:
|
||||
tweetnacl: 0.14.5
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
|
||||
/bin-pack/1.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-wqAU7b8L7XCjKSBi7UZXe5YSBnk=
|
||||
/caseless/0.12.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
|
||||
/clone-stats/0.0.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=
|
||||
/clone/1.0.4:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.8'
|
||||
resolution:
|
||||
integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
|
||||
/combined-stream/1.0.8:
|
||||
dependencies:
|
||||
delayed-stream: 1.0.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.8'
|
||||
resolution:
|
||||
integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
|
||||
/commander/5.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 6'
|
||||
resolution:
|
||||
integrity: sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==
|
||||
/concat-stream/1.5.2:
|
||||
dependencies:
|
||||
inherits: 2.0.4
|
||||
readable-stream: 2.0.6
|
||||
typedarray: 0.0.6
|
||||
dev: false
|
||||
engines:
|
||||
'0': node >= 0.8
|
||||
resolution:
|
||||
integrity: sha1-cIl4Yk2FavQaWnQd790mHadSwmY=
|
||||
/contentstream/1.0.0:
|
||||
dependencies:
|
||||
readable-stream: 1.0.34
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.8.0'
|
||||
resolution:
|
||||
integrity: sha1-C9z6RtowRkqGzo+n7OVlQQ3G+aU=
|
||||
/core-util-is/1.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||
/cwise-compiler/1.1.3:
|
||||
dependencies:
|
||||
uniq: 1.0.1
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=
|
||||
/dashdash/1.14.1:
|
||||
dependencies:
|
||||
assert-plus: 1.0.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10'
|
||||
resolution:
|
||||
integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
|
||||
/data-uri-to-buffer/0.0.3:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=
|
||||
/delayed-stream/1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.4.0'
|
||||
resolution:
|
||||
integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
|
||||
/ecc-jsbn/0.1.2:
|
||||
dependencies:
|
||||
jsbn: 0.1.1
|
||||
safer-buffer: 2.1.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
|
||||
/extend/3.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
||||
/extsprintf/1.3.0:
|
||||
dev: false
|
||||
engines:
|
||||
'0': node >=0.6.0
|
||||
resolution:
|
||||
integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
|
||||
/fast-deep-equal/3.1.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
|
||||
/fast-json-stable-stringify/2.1.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
||||
/first-chunk-stream/1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=
|
||||
/forever-agent/0.6.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
||||
/form-data/2.3.3:
|
||||
dependencies:
|
||||
asynckit: 0.4.0
|
||||
combined-stream: 1.0.8
|
||||
mime-types: 2.1.26
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.12'
|
||||
resolution:
|
||||
integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
|
||||
/get-pixels/3.3.2:
|
||||
dependencies:
|
||||
data-uri-to-buffer: 0.0.3
|
||||
jpeg-js: 0.3.7
|
||||
mime-types: 2.1.26
|
||||
ndarray: 1.0.19
|
||||
ndarray-pack: 1.2.1
|
||||
node-bitmap: 0.0.1
|
||||
omggif: 1.0.10
|
||||
parse-data-uri: 0.2.0
|
||||
pngjs: 3.4.0
|
||||
request: 2.88.2
|
||||
through: 2.3.8
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-6ar+8yPxRd1pskEcl2GSEu1La0+xYRjjnkby6AYiRDDwZ0tJbPQmHnSeH9fGLskT8kvR0OukVgtZLcsENF9YKQ==
|
||||
/getpass/0.1.7:
|
||||
dependencies:
|
||||
assert-plus: 1.0.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
|
||||
/gif-encoder/0.4.3:
|
||||
dependencies:
|
||||
readable-stream: 1.1.14
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.8.0'
|
||||
resolution:
|
||||
integrity: sha1-iitP6MqJWkjjoLbLs0CgpqNXGJk=
|
||||
/graceful-fs/4.2.3:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
|
||||
/har-schema/2.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=4'
|
||||
resolution:
|
||||
integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
|
||||
/har-validator/5.1.3:
|
||||
dependencies:
|
||||
ajv: 6.12.0
|
||||
har-schema: 2.0.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=6'
|
||||
resolution:
|
||||
integrity: sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
|
||||
/http-signature/1.2.0:
|
||||
dependencies:
|
||||
assert-plus: 1.0.0
|
||||
jsprim: 1.4.1
|
||||
sshpk: 1.16.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.8'
|
||||
npm: '>=1.3.7'
|
||||
resolution:
|
||||
integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
|
||||
/inherits/2.0.4:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
/iota-array/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=
|
||||
/is-buffer/1.1.6:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
|
||||
/is-typedarray/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
|
||||
/is-utf8/0.2.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
|
||||
/isarray/0.0.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
|
||||
/isarray/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||
/isstream/0.1.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
|
||||
/jpeg-js/0.0.4:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Bqr0fv7HrwsZJKWc1pWm0rXthw4=
|
||||
/jpeg-js/0.3.7:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==
|
||||
/jsbn/0.1.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
|
||||
/json-schema-traverse/0.4.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
|
||||
/json-schema/0.2.3:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
|
||||
/json-stringify-safe/5.0.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
|
||||
/jsprim/1.4.1:
|
||||
dependencies:
|
||||
assert-plus: 1.0.0
|
||||
extsprintf: 1.3.0
|
||||
json-schema: 0.2.3
|
||||
verror: 1.10.0
|
||||
dev: false
|
||||
engines:
|
||||
'0': node >=0.6.0
|
||||
resolution:
|
||||
integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
|
||||
/layout/2.2.0:
|
||||
dependencies:
|
||||
bin-pack: 1.0.2
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.8.0'
|
||||
resolution:
|
||||
integrity: sha1-MeRL/BjdEBmz/7II5AKku/4uavQ=
|
||||
/make-promises-safe/5.1.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-AfdZ49rtyhQR/6cqVKGoH7y4ql7XkS5HJI1lZm0/5N6CQosy1eYbBJ/qbhkKHzo17UH7M918Bysf6XB9f3kS1g==
|
||||
/mime-db/1.43.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.6'
|
||||
resolution:
|
||||
integrity: sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
|
||||
/mime-types/2.1.26:
|
||||
dependencies:
|
||||
mime-db: 1.43.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.6'
|
||||
resolution:
|
||||
integrity: sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
|
||||
/ndarray-ops/1.2.2:
|
||||
dependencies:
|
||||
cwise-compiler: 1.1.3
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=
|
||||
/ndarray-pack/1.2.1:
|
||||
dependencies:
|
||||
cwise-compiler: 1.1.3
|
||||
ndarray: 1.0.19
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=
|
||||
/ndarray/1.0.19:
|
||||
dependencies:
|
||||
iota-array: 1.0.0
|
||||
is-buffer: 1.1.6
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==
|
||||
/node-bitmap/0.0.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=v0.6.5'
|
||||
resolution:
|
||||
integrity: sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=
|
||||
/oauth-sign/0.9.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
|
||||
/obj-extend/0.1.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-u0SKR3X7les0p4H5CLusLfI9u1s=
|
||||
/omggif/1.0.10:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==
|
||||
/parse-data-uri/0.2.0:
|
||||
dependencies:
|
||||
data-uri-to-buffer: 0.0.3
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-vwTYUd1ch7CrI45dAazklLYEtMk=
|
||||
/performance-now/2.1.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
|
||||
/pixelsmith/2.4.1:
|
||||
dependencies:
|
||||
async: 0.9.2
|
||||
concat-stream: 1.5.2
|
||||
get-pixels: 3.3.2
|
||||
mime-types: 2.1.26
|
||||
ndarray: 1.0.19
|
||||
obj-extend: 0.1.0
|
||||
save-pixels: 2.3.4
|
||||
vinyl-file: 1.3.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 8.0.0'
|
||||
resolution:
|
||||
integrity: sha512-6lVOPf9eBd9bWfxo5efmJcAiF6y65Ui9Ir8IR8jocrj/v/8QoLWZmgnhO7KGUfqkwPLNlCBfxVdjp4QihdPmPQ==
|
||||
/pngjs-nozlib/1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
iojs: '>= 1.0.0'
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-nmTWAs/pzOTZ1Zl9BodCmnPwt9c=
|
||||
/pngjs/3.4.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=4.0.0'
|
||||
resolution:
|
||||
integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
|
||||
/process-nextick-args/1.0.7:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
|
||||
/process-nextick-args/2.0.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
||||
/psl/1.8.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
|
||||
/punycode/2.1.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=6'
|
||||
resolution:
|
||||
integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
||||
/qs/6.5.2:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.6'
|
||||
resolution:
|
||||
integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
|
||||
/readable-stream/1.0.34:
|
||||
dependencies:
|
||||
core-util-is: 1.0.2
|
||||
inherits: 2.0.4
|
||||
isarray: 0.0.1
|
||||
string_decoder: 0.10.31
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
|
||||
/readable-stream/1.1.14:
|
||||
dependencies:
|
||||
core-util-is: 1.0.2
|
||||
inherits: 2.0.4
|
||||
isarray: 0.0.1
|
||||
string_decoder: 0.10.31
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
|
||||
/readable-stream/2.0.6:
|
||||
dependencies:
|
||||
core-util-is: 1.0.2
|
||||
inherits: 2.0.4
|
||||
isarray: 1.0.0
|
||||
process-nextick-args: 1.0.7
|
||||
string_decoder: 0.10.31
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-j5A0HmilPMySh4jaz80Rs265t44=
|
||||
/readable-stream/2.3.7:
|
||||
dependencies:
|
||||
core-util-is: 1.0.2
|
||||
inherits: 2.0.4
|
||||
isarray: 1.0.0
|
||||
process-nextick-args: 2.0.1
|
||||
safe-buffer: 5.1.2
|
||||
string_decoder: 1.1.1
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
|
||||
/replace-ext/0.0.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.4'
|
||||
resolution:
|
||||
integrity: sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
|
||||
/request/2.88.2:
|
||||
dependencies:
|
||||
aws-sign2: 0.7.0
|
||||
aws4: 1.9.1
|
||||
caseless: 0.12.0
|
||||
combined-stream: 1.0.8
|
||||
extend: 3.0.2
|
||||
forever-agent: 0.6.1
|
||||
form-data: 2.3.3
|
||||
har-validator: 5.1.3
|
||||
http-signature: 1.2.0
|
||||
is-typedarray: 1.0.0
|
||||
isstream: 0.1.2
|
||||
json-stringify-safe: 5.0.1
|
||||
mime-types: 2.1.26
|
||||
oauth-sign: 0.9.0
|
||||
performance-now: 2.1.0
|
||||
qs: 6.5.2
|
||||
safe-buffer: 5.2.0
|
||||
tough-cookie: 2.5.0
|
||||
tunnel-agent: 0.6.0
|
||||
uuid: 3.4.0
|
||||
deprecated: 'request has been deprecated, see https://github.com/request/request/issues/3142'
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 6'
|
||||
resolution:
|
||||
integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
|
||||
/safe-buffer/5.1.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||
/safe-buffer/5.2.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
|
||||
/safer-buffer/2.1.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
/save-pixels/2.3.4:
|
||||
dependencies:
|
||||
contentstream: 1.0.0
|
||||
gif-encoder: 0.4.3
|
||||
jpeg-js: 0.0.4
|
||||
ndarray: 1.0.19
|
||||
ndarray-ops: 1.2.2
|
||||
pngjs-nozlib: 1.0.0
|
||||
through: 2.3.8
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-SdNJwGuNfAEn2/DaJLRKylr7Wf4=
|
||||
/semver/5.0.3:
|
||||
dev: false
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=
|
||||
/spritesmith/3.4.0:
|
||||
dependencies:
|
||||
concat-stream: 1.5.2
|
||||
layout: 2.2.0
|
||||
pixelsmith: 2.4.1
|
||||
semver: 5.0.3
|
||||
through2: 2.0.5
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 4.0.0'
|
||||
resolution:
|
||||
integrity: sha512-epa/Ib2GzkrzOA6ZMKH+YOX4ooBlRz8JwIV5NQDt9FvqXVHTh4dVn/0oA+n5eeu6wem1CCrtZWODlOqvwXXpyA==
|
||||
/sshpk/1.16.1:
|
||||
dependencies:
|
||||
asn1: 0.2.4
|
||||
assert-plus: 1.0.0
|
||||
bcrypt-pbkdf: 1.0.2
|
||||
dashdash: 1.14.1
|
||||
ecc-jsbn: 0.1.2
|
||||
getpass: 0.1.7
|
||||
jsbn: 0.1.1
|
||||
safer-buffer: 2.1.2
|
||||
tweetnacl: 0.14.5
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
|
||||
/string_decoder/0.10.31:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
|
||||
/string_decoder/1.1.1:
|
||||
dependencies:
|
||||
safe-buffer: 5.1.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
|
||||
/strip-bom-stream/1.0.0:
|
||||
dependencies:
|
||||
first-chunk-stream: 1.0.0
|
||||
strip-bom: 2.0.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=
|
||||
/strip-bom/2.0.0:
|
||||
dependencies:
|
||||
is-utf8: 0.2.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
|
||||
/through/2.3.8:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
|
||||
/through2/2.0.5:
|
||||
dependencies:
|
||||
readable-stream: 2.3.7
|
||||
xtend: 4.0.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
|
||||
/tough-cookie/2.5.0:
|
||||
dependencies:
|
||||
psl: 1.8.0
|
||||
punycode: 2.1.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.8'
|
||||
resolution:
|
||||
integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
|
||||
/tunnel-agent/0.6.0:
|
||||
dependencies:
|
||||
safe-buffer: 5.2.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
|
||||
/tweetnacl/0.14.5:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||
/typedarray/0.0.6:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||
/uniq/1.0.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
|
||||
/uri-js/4.2.2:
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
|
||||
/util-deprecate/1.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
||||
/uuid/3.4.0:
|
||||
dev: false
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
||||
/verror/1.10.0:
|
||||
dependencies:
|
||||
assert-plus: 1.0.0
|
||||
core-util-is: 1.0.2
|
||||
extsprintf: 1.3.0
|
||||
dev: false
|
||||
engines:
|
||||
'0': node >=0.6.0
|
||||
resolution:
|
||||
integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
|
||||
/vinyl-file/1.3.0:
|
||||
dependencies:
|
||||
graceful-fs: 4.2.3
|
||||
strip-bom: 2.0.0
|
||||
strip-bom-stream: 1.0.0
|
||||
vinyl: 1.2.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-qgVjTTqGe6kUR77bs0r8sm9E9uc=
|
||||
/vinyl/1.2.0:
|
||||
dependencies:
|
||||
clone: 1.0.4
|
||||
clone-stats: 0.0.1
|
||||
replace-ext: 0.0.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 0.9'
|
||||
resolution:
|
||||
integrity: sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=
|
||||
/xtend/4.0.2:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.4'
|
||||
resolution:
|
||||
integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
||||
2
pnpm-workspace.yaml
Normal file
2
pnpm-workspace.yaml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
packages:
|
||||
- 'tools/sprites'
|
||||
1
tools/sprites/package.json
Normal file
1
tools/sprites/package.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"dependencies":{"commander":"^5.0.0","make-promises-safe":"^5.1.0","spritesmith":"^3.4.0"}}
|
||||
42
tools/sprites/ps.js
Executable file
42
tools/sprites/ps.js
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
require('make-promises-safe');
|
||||
|
||||
const program = require('commander');
|
||||
const spritesmith = require('spritesmith');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const util = require('util');
|
||||
|
||||
const run = util.promisify(spritesmith.run);
|
||||
|
||||
program
|
||||
.option('--output-image <file>', 'where to put image')
|
||||
.option('--output-metadata <file>', 'where to put JSON metadata')
|
||||
.parse(process.argv);
|
||||
|
||||
const files = [];
|
||||
|
||||
for (const directory of program.args) {
|
||||
for (const file of fs.readdirSync(directory)) {
|
||||
files.push(path.join(directory, file));
|
||||
}
|
||||
}
|
||||
|
||||
function toPSID(s) {
|
||||
return s.toLowerCase().replace(/[^a-z0-9]+/g, '');
|
||||
}
|
||||
|
||||
(async () => {
|
||||
const result = await run({
|
||||
src: files,
|
||||
});
|
||||
|
||||
const sprites = Object.create(null);
|
||||
for (const [filename, {x, y, width, height}] of Object.entries(result.coordinates)) {
|
||||
const id = toPSID(path.parse(filename).name);
|
||||
sprites[id] = {left: x, top: y};
|
||||
}
|
||||
|
||||
fs.writeFileSync(program.outputImage, result.image, 'binary');
|
||||
fs.writeFileSync(program.outputMetadata, JSON.stringify(sprites, null, 4));
|
||||
})();
|
||||
Loading…
Reference in New Issue
Block a user