Updated ShiftPosition to return the final erased position.

This commit is contained in:
photonstorm 2017-06-19 16:02:52 +01:00
parent 5a871fcabe
commit b4a7b9246d
3 changed files with 18 additions and 7 deletions

View file

@ -1,18 +1,21 @@
// Iterate through items changing the position of each element to
// be that of the element that came before it in the array (or after it if direction = 1)
// The first items position is set to x/y.
// The final x/y coords are returned
var ShiftPosition = function (items, x, y, direction)
var ShiftPosition = function (items, x, y, direction, output)
{
if (direction === undefined) { direction = 0; }
if (output === undefined) { output = { x: 0, y: 0 }; }
var px;
var py;
if (items.length > 1)
{
var i;
var cx;
var cy;
var px;
var py;
var cur;
if (direction === 0)
@ -78,11 +81,19 @@ var ShiftPosition = function (items, x, y, direction)
}
else
{
px = items[0].x;
py = items[0].y;
items[0].x = x;
items[0].y = y;
}
return items;
// Return the final set of coordinates as they're effectively lost from the shift and may be needed
output.x = px;
output.y = py;
return output;
};
module.exports = ShiftPosition;

View file

@ -1,4 +1,4 @@
var CHECKSUM = {
build: '54effe90-54f3-11e7-845d-d91b54e9fe70'
build: '39f826c0-54fe-11e7-90c1-d1d02aa41ae8'
};
module.exports = CHECKSUM;

View file

@ -416,9 +416,9 @@ var Layer = new Class({
return this;
},
shiftPosition: function (x, y, direction)
shiftPosition: function (x, y, direction, output)
{
Actions.ShiftPosition(this.children.entries, x, y, direction);
Actions.ShiftPosition(this.children.entries, x, y, direction, output);
return this;
},