Skip to content

Instantly share code, notes, and snippets.

@japboy
Created May 16, 2014 15:57
Show Gist options
  • Save japboy/13f5d4a6487e29d0f3fc to your computer and use it in GitHub Desktop.
Save japboy/13f5d4a6487e29d0f3fc to your computer and use it in GitHub Desktop.
Grunt task to generate sprite sheets using Spritesheet.js for PIXI.js
module.exports = (grunt) ->
grunt.initConfig
sprite:
common:
files:
'assets/img': 'assets/img/common/*.*'
options:
name: 'common'
grunt.registerMultiTask 'sprite', 'Automate spritesheet-js task', ->
fs = require 'fs'
path = require 'path'
jsonminify = require 'jsonminify'
spritesheetJs = require 'spritesheet-js'
done = @async()
options = @options { format: 'pixi.js', name: 'sprite', trim: true }
error = (err) ->
grunt.log.error err.message
done false
for file in @files
src = file.src.filter (filepath) ->
if grunt.file.exists filepath
return true
else
grunt.log.error "Source file #{filepath} not found."
return false
options.path = file.dest
spritesheetJs src, options, (err) ->
return error err if err and err instanceof Error
filename = "#{file.dest}/#{options.name}.json"
fs.readFile filename, { encoding: 'utf8' }, (err, data) ->
return error err if err and err instanceof Error
data = JSON.minify data
fs.writeFile filename, data, (err) ->
return error err if err and err instanceof Error
grunt.log.writeln 'Spritesheet generated.'
done true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment