Merge pull request #26038 from neikeq/csharp_rand_funcs
C#: Add random functions to GD class
This commit is contained in:
commit
e1f01bf2ac
3 changed files with 87 additions and 10 deletions
|
@ -50,7 +50,7 @@ namespace Godot
|
|||
return godot_icall_GD_hash(var);
|
||||
}
|
||||
|
||||
public static Object InstanceFromId(int instanceId)
|
||||
public static Object InstanceFromId(ulong instanceId)
|
||||
{
|
||||
return godot_icall_GD_instance_from_id(instanceId);
|
||||
}
|
||||
|
@ -110,6 +110,31 @@ namespace Godot
|
|||
godot_icall_GD_printt(what);
|
||||
}
|
||||
|
||||
public static double Randf()
|
||||
{
|
||||
return godot_icall_GD_randf();
|
||||
}
|
||||
|
||||
public static uint Randi()
|
||||
{
|
||||
return godot_icall_GD_randi();
|
||||
}
|
||||
|
||||
public static void Randomize()
|
||||
{
|
||||
godot_icall_GD_randomize();
|
||||
}
|
||||
|
||||
public static double rand_range(double from, double to)
|
||||
{
|
||||
return godot_icall_GD_rand_range(from, to);
|
||||
}
|
||||
|
||||
public static uint RandSeed(ulong seed, out ulong newSeed)
|
||||
{
|
||||
return godot_icall_GD_rand_seed(seed, out newSeed);
|
||||
}
|
||||
|
||||
public static int[] Range(int length)
|
||||
{
|
||||
var ret = new int[length];
|
||||
|
@ -174,7 +199,7 @@ namespace Godot
|
|||
return ret;
|
||||
}
|
||||
|
||||
public static void Seed(int seed)
|
||||
public static void Seed(ulong seed)
|
||||
{
|
||||
godot_icall_GD_seed(seed);
|
||||
}
|
||||
|
@ -214,7 +239,7 @@ namespace Godot
|
|||
internal extern static int godot_icall_GD_hash(object var);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static Object godot_icall_GD_instance_from_id(int instance_id);
|
||||
internal extern static Object godot_icall_GD_instance_from_id(ulong instance_id);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static void godot_icall_GD_print(object[] what);
|
||||
|
@ -232,7 +257,22 @@ namespace Godot
|
|||
internal extern static void godot_icall_GD_printt(object[] what);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static void godot_icall_GD_seed(int seed);
|
||||
internal extern static double godot_icall_GD_randf();
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static uint godot_icall_GD_randi();
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static void godot_icall_GD_randomize();
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static double godot_icall_GD_rand_range(double from, double to);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static uint godot_icall_GD_rand_seed(ulong seed, out ulong newSeed);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static void godot_icall_GD_seed(ulong seed);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern static string godot_icall_GD_str(object[] what);
|
||||
|
|
|
@ -52,7 +52,7 @@ MonoObject *godot_icall_GD_bytes2var(MonoArray *p_bytes) {
|
|||
return GDMonoMarshal::variant_to_mono_object(ret);
|
||||
}
|
||||
|
||||
MonoObject *godot_icall_GD_convert(MonoObject *p_what, int p_type) {
|
||||
MonoObject *godot_icall_GD_convert(MonoObject *p_what, int32_t p_type) {
|
||||
Variant what = GDMonoMarshal::mono_object_to_variant(p_what);
|
||||
const Variant *args[1] = { &what };
|
||||
Variant::CallError ce;
|
||||
|
@ -65,7 +65,7 @@ int godot_icall_GD_hash(MonoObject *p_var) {
|
|||
return GDMonoMarshal::mono_object_to_variant(p_var).hash();
|
||||
}
|
||||
|
||||
MonoObject *godot_icall_GD_instance_from_id(int p_instance_id) {
|
||||
MonoObject *godot_icall_GD_instance_from_id(uint64_t p_instance_id) {
|
||||
return GDMonoUtils::unmanaged_get_managed(ObjectDB::get_instance(p_instance_id));
|
||||
}
|
||||
|
||||
|
@ -115,7 +115,29 @@ void godot_icall_GD_printt(MonoArray *p_what) {
|
|||
print_line(str);
|
||||
}
|
||||
|
||||
void godot_icall_GD_seed(int p_seed) {
|
||||
double godot_icall_GD_randf() {
|
||||
return Math::randf();
|
||||
}
|
||||
|
||||
uint32_t godot_icall_GD_randi() {
|
||||
return Math::rand();
|
||||
}
|
||||
|
||||
void godot_icall_GD_randomize() {
|
||||
Math::randomize();
|
||||
}
|
||||
|
||||
double godot_icall_GD_rand_range(double from, double to) {
|
||||
return Math::random(from, to);
|
||||
}
|
||||
|
||||
uint32_t godot_icall_GD_rand_seed(uint64_t seed, uint64_t *newSeed) {
|
||||
int ret = Math::rand_from_seed(&seed);
|
||||
*newSeed = seed;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void godot_icall_GD_seed(uint64_t p_seed) {
|
||||
Math::seed(p_seed);
|
||||
}
|
||||
|
||||
|
@ -201,6 +223,11 @@ void godot_register_gd_icalls() {
|
|||
mono_add_internal_call("Godot.GD::godot_icall_GD_printraw", (void *)godot_icall_GD_printraw);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_prints", (void *)godot_icall_GD_prints);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_printt", (void *)godot_icall_GD_printt);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_randf", (void *)godot_icall_GD_randf);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_randi", (void *)godot_icall_GD_randi);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_randomize", (void *)godot_icall_GD_randomize);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_rand_range", (void *)godot_icall_GD_rand_range);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_rand_seed", (void *)godot_icall_GD_rand_seed);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_seed", (void *)godot_icall_GD_seed);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_str", (void *)godot_icall_GD_str);
|
||||
mono_add_internal_call("Godot.GD::godot_icall_GD_str2var", (void *)godot_icall_GD_str2var);
|
||||
|
|
|
@ -37,11 +37,11 @@
|
|||
|
||||
MonoObject *godot_icall_GD_bytes2var(MonoArray *p_bytes);
|
||||
|
||||
MonoObject *godot_icall_GD_convert(MonoObject *p_what, int p_type);
|
||||
MonoObject *godot_icall_GD_convert(MonoObject *p_what, int32_t p_type);
|
||||
|
||||
int godot_icall_GD_hash(MonoObject *p_var);
|
||||
|
||||
MonoObject *godot_icall_GD_instance_from_id(int p_instance_id);
|
||||
MonoObject *godot_icall_GD_instance_from_id(uint64_t p_instance_id);
|
||||
|
||||
void godot_icall_GD_print(MonoArray *p_what);
|
||||
|
||||
|
@ -53,7 +53,17 @@ void godot_icall_GD_prints(MonoArray *p_what);
|
|||
|
||||
void godot_icall_GD_printt(MonoArray *p_what);
|
||||
|
||||
void godot_icall_GD_seed(int p_seed);
|
||||
double godot_icall_GD_randf();
|
||||
|
||||
uint32_t godot_icall_GD_randi();
|
||||
|
||||
void godot_icall_GD_randomize();
|
||||
|
||||
double godot_icall_GD_rand_range(double from, double to);
|
||||
|
||||
uint32_t godot_icall_GD_rand_seed(uint64_t seed, uint64_t *newSeed);
|
||||
|
||||
void godot_icall_GD_seed(uint64_t p_seed);
|
||||
|
||||
MonoString *godot_icall_GD_str(MonoArray *p_what);
|
||||
|
||||
|
|
Loading…
Reference in a new issue