diff options
| author | Anthony Zhang <azhang9@gmail.com> | 2012-09-25 17:04:24 -0400 | 
|---|---|---|
| committer | Anthony Zhang <azhang9@gmail.com> | 2012-09-25 17:04:24 -0400 | 
| commit | d89fded397184bebe333ceec0f6f48bb7c55378b (patch) | |
| tree | 93accc231eb5079844875882ec15b3bdf1045224 | |
| parent | 724cd6ccb633fcc55d0210b282cb7bd696329412 (diff) | |
Fix negative cylinder lengths (thanks @cornernote).
| -rw-r--r-- | functions.lua | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/functions.lua b/functions.lua index 2d16daf..eaac5d6 100644 --- a/functions.lua +++ b/functions.lua @@ -90,6 +90,11 @@ worldedit.hollow_cylinder = function(pos, axis, length, radius, nodename)  	local currentpos = {x=pos.x, y=pos.y, z=pos.z}
  	local node = {name=nodename}
  	local count = 0
 +	local step = 1
 +	if length < 0
 +		length = -length
 +		step = -1
 +	end
  	for i = 1, length do
  		local offset1, offset2 = 0, radius
  		local delta = -radius
 @@ -126,7 +131,7 @@ worldedit.hollow_cylinder = function(pos, axis, length, radius, nodename)  			end
  			offset1 = offset1 + 1
  		end
 -		currentpos[axis] = currentpos[axis] + 1
 +		currentpos[axis] = currentpos[axis] + step
  	end
  	return count
  end
 @@ -146,6 +151,11 @@ worldedit.cylinder = function(pos, axis, length, radius, nodename)  	local currentpos = {x=pos.x, y=pos.y, z=pos.z}
  	local node = {name=nodename}
  	local count = 0
 +	local step = 1
 +	if length < 0
 +		length = -length
 +		step = -1
 +	end
  	for i = 1, length do
  		local offset1, offset2 = 0, radius
  		local delta = -radius
 @@ -180,7 +190,7 @@ worldedit.cylinder = function(pos, axis, length, radius, nodename)  				delta = delta - (offset2 * 2)
  			end
  		end
 -		currentpos[axis] = currentpos[axis] + 1
 +		currentpos[axis] = currentpos[axis] + step
  	end
  	return count
  end
 | 
