mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
fix(spritesmith): split spritesheets in to multiple files to remove the
blurry iOS issue. Fixes https://github.com/HabitRPG/habitrpg/issues/2510, see http://goo.gl/IwxdI4 . Note, this commit isn't smart/dynamic, there's commented-out code for handling dynamic splitting, but I couldn't get it working - static 4 sheets for now
This commit is contained in:
50
Gruntfile.js
50
Gruntfile.js
@@ -1,22 +1,30 @@
|
||||
//var sizeOf = require('image-size');
|
||||
var _ = require('lodash');
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
var timestamp = +new Date;
|
||||
|
||||
grunt.initConfig({
|
||||
// So this sucks. Mobile Safari can't render image files > 1024x1024*3, so we have to break it down to multiple
|
||||
// files in this hack approach. See https://github.com/Ensighten/grunt-spritesmith/issues/67#issuecomment-34786248
|
||||
var images = grunt.file.expand('img/sprites/spritesmith/**/*.png');
|
||||
// var totalDims = {width:0,height:0};
|
||||
// _.each(images, function(img){
|
||||
// var dims = sizeOf(img);
|
||||
// if(!dims.width || !dims.height) console.log(dims);
|
||||
// totalDims.width += dims.width;
|
||||
// totalDims.height += dims.height;
|
||||
// })
|
||||
var COUNT = 4;//Math.ceil( (totalDims.width * totalDims.height) / (1024*1024*3) );
|
||||
//console.log({totalDims:totalDims,COUNT:COUNT});
|
||||
|
||||
// Cleanup previous spritesmith files
|
||||
clean: {
|
||||
main: ['dist/spritesmith.png']
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts our individual image files in img/spritesmith into a unified spritesheet.
|
||||
*/
|
||||
sprite:{
|
||||
main: {
|
||||
src: 'img/sprites/spritesmith/**/*.png',
|
||||
destImg: 'dist/spritesmith.png',
|
||||
destCSS: 'dist/spritesmith.css',
|
||||
var sprite = {};
|
||||
_.times(COUNT, function(i){
|
||||
var sliced = images.slice(i * (images.length/COUNT), (i+1) * images.length/COUNT)
|
||||
sprite[''+i] = {
|
||||
src: sliced,
|
||||
destImg: 'dist/spritesmith'+i+'.png',
|
||||
destCSS: 'dist/spritesmith'+i+'.css',
|
||||
algorithm: 'binary-tree',
|
||||
padding:1,
|
||||
cssTemplate: 'css/css.template.mustache',
|
||||
@@ -43,8 +51,20 @@ module.exports = function(grunt) {
|
||||
}
|
||||
}*/
|
||||
}
|
||||
})
|
||||
|
||||
grunt.initConfig({
|
||||
|
||||
// Cleanup previous spritesmith files
|
||||
clean: {
|
||||
main: ['dist/spritesmith*.*']
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts our individual image files in img/spritesmith into a unified spritesheet.
|
||||
*/
|
||||
sprite: sprite,
|
||||
|
||||
cssmin: {
|
||||
dist: {
|
||||
options: {
|
||||
@@ -52,7 +72,7 @@ module.exports = function(grunt) {
|
||||
},
|
||||
files:{
|
||||
"dist/habitrpg-shared.css": [
|
||||
"dist/spritesmith.css",
|
||||
"dist/spritesmith*.css",
|
||||
"css/backer.css",
|
||||
"css/Mounts.css",
|
||||
"css/index.css"
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
background-position: {{px.offset_x}} {{px.offset_y}};
|
||||
width: {{px.width}};
|
||||
height: {{px.height}};
|
||||
background-size: {{px.total_width}} {{px.total_height}};
|
||||
}
|
||||
{{#custom}}
|
||||
.customize-option.{{name}} {
|
||||
@@ -12,7 +11,6 @@
|
||||
background-position: {{custom.px.offset_x}} {{custom.px.offset_y}};
|
||||
width: {{custom.px.width}};
|
||||
height: {{custom.px.height}};
|
||||
background-size: {{px.total_width}} {{px.total_height}};
|
||||
}
|
||||
{{/custom}}
|
||||
{{/items}}
|
||||
2
dist/habitrpg-shared.css
vendored
2
dist/habitrpg-shared.css
vendored
File diff suppressed because one or more lines are too long
12516
dist/spritesmith.css
vendored
12516
dist/spritesmith.css
vendored
File diff suppressed because it is too large
Load Diff
BIN
dist/spritesmith.png
vendored
BIN
dist/spritesmith.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 732 KiB |
3966
dist/spritesmith0.css
vendored
Normal file
3966
dist/spritesmith0.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
dist/spritesmith0.png
vendored
Normal file
BIN
dist/spritesmith0.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
2598
dist/spritesmith1.css
vendored
Normal file
2598
dist/spritesmith1.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
dist/spritesmith1.png
vendored
Normal file
BIN
dist/spritesmith1.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 124 KiB |
2082
dist/spritesmith2.css
vendored
Normal file
2082
dist/spritesmith2.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
dist/spritesmith2.png
vendored
Normal file
BIN
dist/spritesmith2.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 228 KiB |
2082
dist/spritesmith3.css
vendored
Normal file
2082
dist/spritesmith3.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
dist/spritesmith3.png
vendored
Normal file
BIN
dist/spritesmith3.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 204 KiB |
@@ -17,7 +17,8 @@
|
||||
"grunt-contrib-cssmin": "~0.8.0",
|
||||
"grunt-browserify": "~1.3.1",
|
||||
"grunt-contrib-clean": "~0.5.0",
|
||||
"habitrpg": "git://github.com/HabitRPG/habitrpg.git#develop"
|
||||
"habitrpg": "git://github.com/HabitRPG/habitrpg.git#develop",
|
||||
"image-size": "~0.3.2"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "mocha"
|
||||
|
||||
Reference in New Issue
Block a user