mirror of
https://github.com/wassname/phaser.git
synced 2026-08-16 11:25:21 +08:00
Tilemap collision working but needs speeding up
This commit is contained in:
+85
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* grunt-contrib-copy
|
||||
* http://gruntjs.com/
|
||||
*
|
||||
* Copyright (c) 2012 Chris Talkington, contributors
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/gruntjs/grunt-contrib-copy/blob/master/LICENSE-MIT
|
||||
*/
|
||||
|
||||
module.exports = function(grunt) {
|
||||
'use strict';
|
||||
|
||||
var path = require('path');
|
||||
|
||||
grunt.registerMultiTask('copy', 'Copy files.', function() {
|
||||
var kindOf = grunt.util.kindOf;
|
||||
|
||||
var options = this.options({
|
||||
processContent: false,
|
||||
processContentExclude: []
|
||||
});
|
||||
|
||||
var copyOptions = {
|
||||
process: options.processContent,
|
||||
noProcess: options.processContentExclude
|
||||
};
|
||||
|
||||
grunt.verbose.writeflags(options, 'Options');
|
||||
|
||||
var dest;
|
||||
var isExpandedPair;
|
||||
var tally = {
|
||||
dirs: 0,
|
||||
files: 0
|
||||
};
|
||||
|
||||
this.files.forEach(function(filePair) {
|
||||
isExpandedPair = filePair.orig.expand || false;
|
||||
|
||||
filePair.src.forEach(function(src) {
|
||||
if (detectDestType(filePair.dest) === 'directory') {
|
||||
dest = (isExpandedPair) ? filePair.dest : unixifyPath(path.join(filePair.dest, src));
|
||||
} else {
|
||||
dest = filePair.dest;
|
||||
}
|
||||
|
||||
if (grunt.file.isDir(src)) {
|
||||
grunt.verbose.writeln('Creating ' + dest.cyan);
|
||||
grunt.file.mkdir(dest);
|
||||
tally.dirs++;
|
||||
} else {
|
||||
grunt.verbose.writeln('Copying ' + src.cyan + ' -> ' + dest.cyan);
|
||||
grunt.file.copy(src, dest, copyOptions);
|
||||
tally.files++;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
if (tally.dirs) {
|
||||
grunt.log.write('Created ' + tally.dirs.toString().cyan + ' directories');
|
||||
}
|
||||
|
||||
if (tally.files) {
|
||||
grunt.log.write((tally.dirs ? ', copied ' : 'Copied ') + tally.files.toString().cyan + ' files');
|
||||
}
|
||||
|
||||
grunt.log.writeln();
|
||||
});
|
||||
|
||||
var detectDestType = function(dest) {
|
||||
if (grunt.util._.endsWith(dest, '/')) {
|
||||
return 'directory';
|
||||
} else {
|
||||
return 'file';
|
||||
}
|
||||
};
|
||||
|
||||
var unixifyPath = function(filepath) {
|
||||
if (process.platform === 'win32') {
|
||||
return filepath.replace(/\\/g, '/');
|
||||
} else {
|
||||
return filepath;
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user