virtualx-engine/modules/mono/glue/cs_files/GD.cs
Aaron Franke 577f3ccaf9 Replace float with real_t, default Vectors, other misc C# improvements
Replace float with real_t in most files, defined at the top of each file via using. Objects such as Vector3 now accept doubles as inputs, and convert to real_t internally. I've added default Vectors such as Vector3.Zero. Other misc C# improvements such as Mathf.RoundToInt(). Color continues to use float only because high precision is not needed for 8-bit color math and to keep things simple. Everything seems to compile and work fine, but testing is requested, as this is the first time I've ever contributed to Godot.

(cherry picked from commit ff97c97c93)
2018-04-14 23:20:03 +02:00

191 lines
4.8 KiB
C#

using System;
// TODO: Add comments describing what this class does. It is not obvious.
namespace Godot
{
public static partial class GD
{
public static object Bytes2Var(byte[] bytes)
{
return NativeCalls.godot_icall_Godot_bytes2var(bytes);
}
public static object Convert(object what, int type)
{
return NativeCalls.godot_icall_Godot_convert(what, type);
}
public static float Db2Linear(float db)
{
return (float)Math.Exp(db * 0.11512925464970228420089957273422);
}
public static float Dectime(float value, float amount, float step)
{
float sgn = value < 0 ? -1.0f : 1.0f;
float val = Mathf.Abs(value);
val -= amount * step;
if (val < 0.0f)
val = 0.0f;
return val * sgn;
}
public static FuncRef Funcref(Object instance, string funcname)
{
var ret = new FuncRef();
ret.SetInstance(instance);
ret.SetFunction(funcname);
return ret;
}
public static int Hash(object var)
{
return NativeCalls.godot_icall_Godot_hash(var);
}
public static Object InstanceFromId(int instanceId)
{
return NativeCalls.godot_icall_Godot_instance_from_id(instanceId);
}
public static double Linear2Db(double linear)
{
return Math.Log(linear) * 8.6858896380650365530225783783321;
}
public static Resource Load(string path)
{
return ResourceLoader.Load(path);
}
public static void Print(params object[] what)
{
NativeCalls.godot_icall_Godot_print(what);
}
public static void PrintStack()
{
Print(System.Environment.StackTrace);
}
public static void Printerr(params object[] what)
{
NativeCalls.godot_icall_Godot_printerr(what);
}
public static void Printraw(params object[] what)
{
NativeCalls.godot_icall_Godot_printraw(what);
}
public static void Prints(params object[] what)
{
NativeCalls.godot_icall_Godot_prints(what);
}
public static void Printt(params object[] what)
{
NativeCalls.godot_icall_Godot_printt(what);
}
public static int[] Range(int length)
{
int[] ret = new int[length];
for (int i = 0; i < length; i++)
{
ret[i] = i;
}
return ret;
}
public static int[] Range(int from, int to)
{
if (to < from)
return new int[0];
int[] ret = new int[to - from];
for (int i = from; i < to; i++)
{
ret[i - from] = i;
}
return ret;
}
public static int[] Range(int from, int to, int increment)
{
if (to < from && increment > 0)
return new int[0];
if (to > from && increment < 0)
return new int[0];
// Calculate count
int count = 0;
if (increment > 0)
count = ((to - from - 1) / increment) + 1;
else
count = ((from - to - 1) / -increment) + 1;
int[] ret = new int[count];
if (increment > 0)
{
int idx = 0;
for (int i = from; i < to; i += increment)
{
ret[idx++] = i;
}
}
else
{
int idx = 0;
for (int i = from; i > to; i += increment)
{
ret[idx++] = i;
}
}
return ret;
}
public static void Seed(int seed)
{
NativeCalls.godot_icall_Godot_seed(seed);
}
public static string Str(params object[] what)
{
return NativeCalls.godot_icall_Godot_str(what);
}
public static object Str2Var(string str)
{
return NativeCalls.godot_icall_Godot_str2var(str);
}
public static bool TypeExists(string type)
{
return NativeCalls.godot_icall_Godot_type_exists(type);
}
public static byte[] Var2Bytes(object var)
{
return NativeCalls.godot_icall_Godot_var2bytes(var);
}
public static string Var2Str(object var)
{
return NativeCalls.godot_icall_Godot_var2str(var);
}
public static WeakRef Weakref(Object obj)
{
return NativeCalls.godot_icall_Godot_weakref(Object.GetPtr(obj));
}
}
}