Mods Functional

Mathematical Functions Datapack

  • 9.2k views 1 today
  • save_alt 430 downloads
Game Version
Minecraft 1.13
Progress
100% complete
Added CreditMcskware for the PRNG
  • 13
  • 6
  • 1
yosho27
Lvl 58Grandmaster Programmer
63
Mathematical Functions Datapack by yosho27
Version 0.1.3
Includes sine, cosine, tangent, absolute value, exponent, square root, and random
This was designed to be like the Math import in Java or Python, but for datapacks
Feel free to use this with your datapacks; if you use it credit would be appreciated
To use the functions, set the "math_in" and other input variables, call the function, and then get the "math_out" variable




function math:sin
"math_in" is an angle in degrees; "math_out" will be the sine of the angle scaled up by 100


function math:cos
"math_in" is an angle in degrees; "math_out" will be the cosine of the angle scaled up by 100


function math:tan
"math_in" is an angle in degrees; "math_out" will be the tangent of the angle scaled up by 100


function math:abs
"math_in" is a number; "math_out" will be the absolute value of the number


function math:pow
"math_in" is a base; "math_exp" is an exponent; "math_out" will be the base to the power of the exponent


function math:sqrt
"math_in" is a number; "math_out" will be the absolute value of the number scaled up by 100


function math:rand       (Contributed by Mcskware using using the random0 LCG)
"math_maxrand" is a maximum value; "math_out" will be a psuedo-random number from 0 to the maximum value, inclusive




because scoreboard variables have to be integers, all input and output values are integers
sin, cos, tan, and sqrt output values are scaled up by 100 to allow 2 extra decimal places of precision
sin, cos, and tan are approximations, and have an average error of about 0.04 (so an average error of about 4 for the scaled up value)
input values are preserved by all functions

Thanks to Mcskware for contributing the PRNG!

More like this

  Have something to say?

GatKong
03/02/2020 12:55 am
Level 70 : Legendary Technomancer
I was hoping to use this to calculate a new spreadplayers function that flings everybody out to the same far away radius distance, thus needed for square roots (pythagorean). But when it runs squareroots of big numbers, (like 900000000) it returns nonsense :(

For smaller numbers it works great.
1

Welcome