Add math.round and fix vector.round (#10803)
				
					
				
			This commit is contained in:
		
							parent
							
								
									1e4913cd76
								
							
						
					
					
						commit
						3560691c0a
					
				@ -20,7 +20,7 @@ read_globals = {
 | 
			
		||||
 | 
			
		||||
	string = {fields = {"split", "trim"}},
 | 
			
		||||
	table  = {fields = {"copy", "getn", "indexof", "insert_all"}},
 | 
			
		||||
	math   = {fields = {"hypot"}},
 | 
			
		||||
	math   = {fields = {"hypot", "round"}},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
globals = {
 | 
			
		||||
 | 
			
		||||
@ -244,6 +244,15 @@ function math.factorial(x)
 | 
			
		||||
	return v
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function math.round(x)
 | 
			
		||||
	if x >= 0 then
 | 
			
		||||
		return math.floor(x + 0.5)
 | 
			
		||||
	end
 | 
			
		||||
	return math.ceil(x - 0.5)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function core.formspec_escape(text)
 | 
			
		||||
	if text ~= nil then
 | 
			
		||||
		text = string.gsub(text,"\\","\\\\")
 | 
			
		||||
 | 
			
		||||
@ -41,9 +41,9 @@ end
 | 
			
		||||
 | 
			
		||||
function vector.round(v)
 | 
			
		||||
	return {
 | 
			
		||||
		x = math.floor(v.x + 0.5),
 | 
			
		||||
		y = math.floor(v.y + 0.5),
 | 
			
		||||
		z = math.floor(v.z + 0.5)
 | 
			
		||||
		x = math.round(v.x),
 | 
			
		||||
		y = math.round(v.y),
 | 
			
		||||
		z = math.round(v.z)
 | 
			
		||||
	}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3163,6 +3163,7 @@ For the following functions, `v`, `v1`, `v2` are vectors,
 | 
			
		||||
    * Returns a vector, each dimension rounded down.
 | 
			
		||||
* `vector.round(v)`:
 | 
			
		||||
    * Returns a vector, each dimension rounded to nearest integer.
 | 
			
		||||
    * At a multiple of 0.5, rounds away from zero.
 | 
			
		||||
* `vector.apply(v, func)`:
 | 
			
		||||
    * Returns a vector where the function `func` has been applied to each
 | 
			
		||||
      component.
 | 
			
		||||
@ -3237,6 +3238,8 @@ Helper functions
 | 
			
		||||
    * If the absolute value of `x` is within the `tolerance` or `x` is NaN,
 | 
			
		||||
      `0` is returned.
 | 
			
		||||
* `math.factorial(x)`: returns the factorial of `x`
 | 
			
		||||
* `math.round(x)`: Returns `x` rounded to the nearest integer.
 | 
			
		||||
    * At a multiple of 0.5, rounds away from zero.
 | 
			
		||||
* `string.split(str, separator, include_empty, max_splits, sep_is_pattern)`
 | 
			
		||||
    * `separator`: string, default: `","`
 | 
			
		||||
    * `include_empty`: boolean, default: `false`
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user