Add support for compiling and running engine without C# scripting

(configurable via `EngineConfiguration.UseCSharp` in Flax.Build)
This commit is contained in:
Wojtek Figat
2021-10-23 16:41:57 +02:00
parent 0b3d6b03ac
commit 8938f13a0b
86 changed files with 1244 additions and 688 deletions

View File

@@ -25,12 +25,12 @@ protected:
MString _name;
Array<MonoObject*> _attributes;
int32 _hasCachedAttributes : 1;
int32 _hasSetMethod : 1;
int32 _hasGetMethod : 1;
Array<MObject*> _attributes;
public:
#if USE_MONO
@@ -47,7 +47,6 @@ public:
/// <summary>
/// Gets the property name.
/// </summary>
/// <returns>The property name.</returns>
FORCE_INLINE const MString& GetName() const
{
return _name;
@@ -56,7 +55,6 @@ public:
/// <summary>
/// Returns the parent class that this method is contained with.
/// </summary>
/// <returns>The parent class.</returns>
FORCE_INLINE MClass* GetParentClass() const
{
return _parentClass;
@@ -65,31 +63,26 @@ public:
/// <summary>
/// Gets property type class.
/// </summary>
/// <returns>The property type.</returns>
MType GetType();
/// <summary>
/// Gets property get method.
/// </summary>
/// <returns>The getter method.</returns>
MMethod* GetGetMethod();
/// <summary>
/// Gets property set method.
/// </summary>
/// <returns>The setter method.</returns>
MMethod* GetSetMethod();
/// <summary>
/// Gets property visibility in the class.
/// </summary>
/// <returns>The property visibility.</returns>
MVisibility GetVisibility();
/// <summary>
/// Returns true if property is static.
/// </summary>
/// <returns>True if is static, otherwise false.</returns>
bool IsStatic();
public:
@@ -98,23 +91,24 @@ public:
/// Retrieves value currently set in the property on the specified object instance. If property is static object instance can be null.
/// </summary>
/// <remarks>
/// Value will be a pointer to raw data type for value types (for example int, float), and a MonoObject* for reference types.
/// Value will be a pointer to raw data type for value types (for example int, float), and a MObject* for reference types.
/// </remarks>
/// <param name="instance">The object of given type to get value from.</param>
/// <param name="exception">An optional pointer to the exception value to store exception object reference.</param>
/// <returns>The returned boxed value object.</returns>
MonoObject* GetValue(MonoObject* instance, MonoObject** exception);
MObject* GetValue(MObject* instance, MObject** exception);
/// <summary>
/// Sets a value for the property on the specified object instance. If property is static object instance can be null.
/// </summary>
/// <remarks>
/// Value should be a pointer to raw data type for value types (for example int, float), and a MonoObject* for reference types.
/// Value should be a pointer to raw data type for value types (for example int, float), and a MObject* for reference types.
/// </remarks>
/// <param name="instance">Object of given type to set value to.</param>
/// <param name="exception">An optional pointer to the exception value to store exception object reference.</param>
/// <param name="value">The value to set of undefined type.</param>
void SetValue(MonoObject* instance, void* value, MonoObject** exception);
void SetValue(MObject* instance, void* value, MObject** exception);
public:
@@ -136,11 +130,11 @@ public:
/// </summary>
/// <param name="monoClass">The attribute class to take.</param>
/// <returns>The attribute object.</returns>
MonoObject* GetAttribute(MClass* monoClass) const;
MObject* GetAttribute(MClass* monoClass) const;
/// <summary>
/// Returns an instance of all attributes connected with given property. Returns null if the property doesn't have any attributes.
/// </summary>
/// <returns>The array of attribute objects.</returns>
const Array<MonoObject*>& GetAttributes();
const Array<MObject*>& GetAttributes();
};