mirror of
https://github.com/ZuneDev/Xune.git
synced 2026-07-27 13:13:10 -07:00
109 lines
4.6 KiB
C#
109 lines
4.6 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Microsoft.Iris.Markup.UIX.RandomSchema
|
|
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
|
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
|
|
// Assembly location: C:\Program Files\Zune\UIX.dll
|
|
|
|
using Microsoft.Iris.Session;
|
|
using System;
|
|
|
|
namespace Microsoft.Iris.Markup.UIX
|
|
{
|
|
internal static class RandomSchema
|
|
{
|
|
public static UIXTypeSchema Type;
|
|
|
|
private static object Construct() => new Random();
|
|
|
|
private static object ConstructInt32(object[] parameters) => new Random((int)parameters[0]);
|
|
|
|
private static object CallNext(object instanceObj, object[] parameters) => ((Random)instanceObj).Next();
|
|
|
|
private static object CallNextInt32(object instanceObj, object[] parameters)
|
|
{
|
|
Random random = (Random)instanceObj;
|
|
int parameter = (int)parameters[0];
|
|
if (parameter >= 0)
|
|
return random.Next(parameter);
|
|
ErrorManager.ReportError("Script runtime failure: Invalid '{0}' value is out of range for '{1}'", parameter, "maxValue");
|
|
return null;
|
|
}
|
|
|
|
private static object CallNextInt32Int32(object instanceObj, object[] parameters)
|
|
{
|
|
Random random = (Random)instanceObj;
|
|
int parameter1 = (int)parameters[0];
|
|
int parameter2 = (int)parameters[1];
|
|
if (parameter1 <= parameter2)
|
|
return random.Next(parameter1, parameter2);
|
|
ErrorManager.ReportError("Script runtime failure: Invalid '{0}' value is out of range for '{1}'", parameter1, "minValue");
|
|
return null;
|
|
}
|
|
|
|
private static object CallNextDouble(object instanceObj, object[] parameters) => ((Random)instanceObj).NextDouble();
|
|
|
|
private static object CallNextDoubleDoubleDouble(object instanceObj, object[] parameters)
|
|
{
|
|
Random random = (Random)instanceObj;
|
|
double parameter1 = (double)parameters[0];
|
|
double parameter2 = (double)parameters[1];
|
|
return random.NextDouble() * (parameter2 - parameter1) + parameter1;
|
|
}
|
|
|
|
private static object CallNextSingle(object instanceObj, object[] parameters) => (float)((Random)instanceObj).NextDouble();
|
|
|
|
private static object CallNextSingleSingleSingle(object instanceObj, object[] parameters)
|
|
{
|
|
Random random = (Random)instanceObj;
|
|
float parameter1 = (float)parameters[0];
|
|
float parameter2 = (float)parameters[1];
|
|
return (float)(random.NextDouble() * (parameter2 - (double)parameter1)) + parameter1;
|
|
}
|
|
|
|
public static void Pass1Initialize() => Type = new UIXTypeSchema(167, "Random", null, 153, typeof(Random), UIXTypeFlags.None);
|
|
|
|
public static void Pass2Initialize()
|
|
{
|
|
UIXConstructorSchema constructorSchema = new UIXConstructorSchema(167, new short[1]
|
|
{
|
|
115
|
|
}, new ConstructHandler(ConstructInt32));
|
|
UIXMethodSchema uixMethodSchema1 = new UIXMethodSchema(167, "Next", null, 115, new InvokeHandler(CallNext), false);
|
|
UIXMethodSchema uixMethodSchema2 = new UIXMethodSchema(167, "Next", new short[1]
|
|
{
|
|
115
|
|
}, 115, new InvokeHandler(CallNextInt32), false);
|
|
UIXMethodSchema uixMethodSchema3 = new UIXMethodSchema(167, "Next", new short[2]
|
|
{
|
|
115,
|
|
115
|
|
}, 115, new InvokeHandler(CallNextInt32Int32), false);
|
|
UIXMethodSchema uixMethodSchema4 = new UIXMethodSchema(167, "NextDouble", null, 61, new InvokeHandler(CallNextDouble), false);
|
|
UIXMethodSchema uixMethodSchema5 = new UIXMethodSchema(167, "NextDouble", new short[2]
|
|
{
|
|
61,
|
|
61
|
|
}, 61, new InvokeHandler(CallNextDoubleDoubleDouble), false);
|
|
UIXMethodSchema uixMethodSchema6 = new UIXMethodSchema(167, "NextSingle", null, 194, new InvokeHandler(CallNextSingle), false);
|
|
UIXMethodSchema uixMethodSchema7 = new UIXMethodSchema(167, "NextSingle", new short[2]
|
|
{
|
|
194,
|
|
194
|
|
}, 194, new InvokeHandler(CallNextSingleSingleSingle), false);
|
|
Type.Initialize(new DefaultConstructHandler(Construct), new ConstructorSchema[1]
|
|
{
|
|
constructorSchema
|
|
}, null, new MethodSchema[7]
|
|
{
|
|
uixMethodSchema1,
|
|
uixMethodSchema2,
|
|
uixMethodSchema3,
|
|
uixMethodSchema4,
|
|
uixMethodSchema5,
|
|
uixMethodSchema6,
|
|
uixMethodSchema7
|
|
}, null, null, null, null, null, null, null, null);
|
|
}
|
|
}
|
|
}
|