Skip to content

Commit

Permalink
Expose asset registry functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
nxrighthere committed Oct 14, 2020
1 parent b87ef8b commit 81efbb3
Show file tree
Hide file tree
Showing 27 changed files with 512 additions and 1 deletion.
12 changes: 12 additions & 0 deletions API/Asset-Equals(Asset).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.Equals(UnrealEngine.Framework.Asset) Method
Indicates equality of objects
```csharp
public bool Equals(UnrealEngine.Framework.Asset other);
```
#### Parameters
<a name='UnrealEngine-Framework-Asset-Equals(UnrealEngine-Framework-Asset)-other'></a>
`other` [Asset](./Asset.md 'UnrealEngine.Framework.Asset')

#### Returns
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
12 changes: 12 additions & 0 deletions API/Asset-Equals(object).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.Equals(object) Method
Indicates equality of objects
```csharp
public override bool Equals(object value);
```
#### Parameters
<a name='UnrealEngine-Framework-Asset-Equals(object)-value'></a>
`value` [System.Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object 'System.Object')

#### Returns
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
8 changes: 8 additions & 0 deletions API/Asset-GetHashCode().md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.GetHashCode() Method
Returns a hash code for the object
```csharp
public override int GetHashCode();
```
#### Returns
[System.Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32 'System.Int32')
8 changes: 8 additions & 0 deletions API/Asset-IsCreated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.IsCreated Property
Returns `true` if the object is created
```csharp
public bool IsCreated { get; }
```
#### Property Value
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
8 changes: 8 additions & 0 deletions API/Asset-Name.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.Name Property
Returns the name of the asset
```csharp
public string Name { get; }
```
#### Property Value
[System.String](https://docs.microsoft.com/en-us/dotnet/api/System.String 'System.String')
8 changes: 8 additions & 0 deletions API/Asset-Path.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.Path Property
Returns the path to the asset
```csharp
public string Path { get; }
```
#### Property Value
[System.String](https://docs.microsoft.com/en-us/dotnet/api/System.String 'System.String')
15 changes: 15 additions & 0 deletions API/Asset-op_Equality(Asset_Asset).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.operator ==(UnrealEngine.Framework.Asset, UnrealEngine.Framework.Asset) Operator
Tests for equality between two objects
```csharp
public static bool operator ==(UnrealEngine.Framework.Asset left, UnrealEngine.Framework.Asset right);
```
#### Parameters
<a name='UnrealEngine-Framework-Asset-op_Equality(UnrealEngine-Framework-Asset_UnrealEngine-Framework-Asset)-left'></a>
`left` [Asset](./Asset.md 'UnrealEngine.Framework.Asset')

<a name='UnrealEngine-Framework-Asset-op_Equality(UnrealEngine-Framework-Asset_UnrealEngine-Framework-Asset)-right'></a>
`right` [Asset](./Asset.md 'UnrealEngine.Framework.Asset')

#### Returns
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
15 changes: 15 additions & 0 deletions API/Asset-op_Inequality(Asset_Asset).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[Asset](./Asset.md 'UnrealEngine.Framework.Asset')
## Asset.operator !=(UnrealEngine.Framework.Asset, UnrealEngine.Framework.Asset) Operator
Tests for inequality between two objects
```csharp
public static bool operator !=(UnrealEngine.Framework.Asset left, UnrealEngine.Framework.Asset right);
```
#### Parameters
<a name='UnrealEngine-Framework-Asset-op_Inequality(UnrealEngine-Framework-Asset_UnrealEngine-Framework-Asset)-left'></a>
`left` [Asset](./Asset.md 'UnrealEngine.Framework.Asset')

<a name='UnrealEngine-Framework-Asset-op_Inequality(UnrealEngine-Framework-Asset_UnrealEngine-Framework-Asset)-right'></a>
`right` [Asset](./Asset.md 'UnrealEngine.Framework.Asset')

#### Returns
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
19 changes: 19 additions & 0 deletions API/Asset.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework')
## Asset Struct
A representation of the asset
```csharp
public struct Asset :
IEquatable<Asset>
```
Implements [System.IEquatable&lt;](https://docs.microsoft.com/en-us/dotnet/api/System.IEquatable-1 'System.IEquatable`1')[Asset](./Asset.md 'UnrealEngine.Framework.Asset')[&gt;](https://docs.microsoft.com/en-us/dotnet/api/System.IEquatable-1 'System.IEquatable`1')
### Properties
- [IsCreated](./Asset-IsCreated.md 'UnrealEngine.Framework.Asset.IsCreated')
- [Name](./Asset-Name.md 'UnrealEngine.Framework.Asset.Name')
- [Path](./Asset-Path.md 'UnrealEngine.Framework.Asset.Path')
### Methods
- [Equals(object)](./Asset-Equals(object).md 'UnrealEngine.Framework.Asset.Equals(object)')
- [Equals(UnrealEngine.Framework.Asset)](./Asset-Equals(Asset).md 'UnrealEngine.Framework.Asset.Equals(UnrealEngine.Framework.Asset)')
- [GetHashCode()](./Asset-GetHashCode().md 'UnrealEngine.Framework.Asset.GetHashCode()')
### Operators
- [operator ==(UnrealEngine.Framework.Asset, UnrealEngine.Framework.Asset)](./Asset-op_Equality(Asset_Asset).md 'UnrealEngine.Framework.Asset.op_Equality(UnrealEngine.Framework.Asset, UnrealEngine.Framework.Asset)')
- [operator !=(UnrealEngine.Framework.Asset, UnrealEngine.Framework.Asset)](./Asset-op_Inequality(Asset_Asset).md 'UnrealEngine.Framework.Asset.op_Inequality(UnrealEngine.Framework.Asset, UnrealEngine.Framework.Asset)')
6 changes: 6 additions & 0 deletions API/AssetRegistry-AssetRegistry().md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')
## AssetRegistry() Constructor
Initializes a new instance of the asset registry
```csharp
public AssetRegistry();
```
12 changes: 12 additions & 0 deletions API/AssetRegistry-Equals(AssetRegistry).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')
## AssetRegistry.Equals(UnrealEngine.Framework.AssetRegistry) Method
Indicates equality of objects
```csharp
public bool Equals(UnrealEngine.Framework.AssetRegistry other);
```
#### Parameters
<a name='UnrealEngine-Framework-AssetRegistry-Equals(UnrealEngine-Framework-AssetRegistry)-other'></a>
`other` [AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')

#### Returns
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
19 changes: 19 additions & 0 deletions API/AssetRegistry-ForEachAsset(Action-Asset-_string_bool_bool).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')
## AssetRegistry.ForEachAsset(System.Action&lt;UnrealEngine.Framework.Asset&gt;, string, bool, bool) Method
Performs the specified action on each asset if any
```csharp
public void ForEachAsset(System.Action<UnrealEngine.Framework.Asset> action, string path, bool recursive=false, bool includeOnlyOnDiskAssets=false);
```
#### Parameters
<a name='UnrealEngine-Framework-AssetRegistry-ForEachAsset(System-Action-UnrealEngine-Framework-Asset-_string_bool_bool)-action'></a>
`action` [System.Action&lt;](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1 'System.Action`1')[Asset](./Asset.md 'UnrealEngine.Framework.Asset')[&gt;](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1 'System.Action`1')

<a name='UnrealEngine-Framework-AssetRegistry-ForEachAsset(System-Action-UnrealEngine-Framework-Asset-_string_bool_bool)-path'></a>
`path` [System.String](https://docs.microsoft.com/en-us/dotnet/api/System.String 'System.String')

<a name='UnrealEngine-Framework-AssetRegistry-ForEachAsset(System-Action-UnrealEngine-Framework-Asset-_string_bool_bool)-recursive'></a>
`recursive` [System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')

<a name='UnrealEngine-Framework-AssetRegistry-ForEachAsset(System-Action-UnrealEngine-Framework-Asset-_string_bool_bool)-includeOnlyOnDiskAssets'></a>
`includeOnlyOnDiskAssets` [System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')

8 changes: 8 additions & 0 deletions API/AssetRegistry-GetHashCode().md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')
## AssetRegistry.GetHashCode() Method
Returns a hash code for the object
```csharp
public override int GetHashCode();
```
#### Returns
[System.Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32 'System.Int32')
15 changes: 15 additions & 0 deletions API/AssetRegistry-HasAssets(string_bool).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')
## AssetRegistry.HasAssets(string, bool) Method
Checks whether the given path contain assets, optionally testing sub-paths
```csharp
public bool HasAssets(string path, bool recursive=false);
```
#### Parameters
<a name='UnrealEngine-Framework-AssetRegistry-HasAssets(string_bool)-path'></a>
`path` [System.String](https://docs.microsoft.com/en-us/dotnet/api/System.String 'System.String')

<a name='UnrealEngine-Framework-AssetRegistry-HasAssets(string_bool)-recursive'></a>
`recursive` [System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')

#### Returns
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
8 changes: 8 additions & 0 deletions API/AssetRegistry-IsCreated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework').[AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')
## AssetRegistry.IsCreated Property
Returns `true` if the object is created
```csharp
public bool IsCreated { get; }
```
#### Property Value
[System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean 'System.Boolean')
19 changes: 19 additions & 0 deletions API/AssetRegistry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### [UnrealEngine.Framework](./UnrealEngine-Framework.md 'UnrealEngine.Framework')
## AssetRegistry Class
An asset registry
```csharp
public class AssetRegistry :
IEquatable<AssetRegistry>
```
Inheritance [System.Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object 'System.Object') &#129106; AssetRegistry

Implements [System.IEquatable&lt;](https://docs.microsoft.com/en-us/dotnet/api/System.IEquatable-1 'System.IEquatable`1')[AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')[&gt;](https://docs.microsoft.com/en-us/dotnet/api/System.IEquatable-1 'System.IEquatable`1')
### Constructors
- [AssetRegistry()](./AssetRegistry-AssetRegistry().md 'UnrealEngine.Framework.AssetRegistry.AssetRegistry()')
### Properties
- [IsCreated](./AssetRegistry-IsCreated.md 'UnrealEngine.Framework.AssetRegistry.IsCreated')
### Methods
- [Equals(UnrealEngine.Framework.AssetRegistry)](./AssetRegistry-Equals(AssetRegistry).md 'UnrealEngine.Framework.AssetRegistry.Equals(UnrealEngine.Framework.AssetRegistry)')
- [ForEachAsset(System.Action&lt;UnrealEngine.Framework.Asset&gt;, string, bool, bool)](./AssetRegistry-ForEachAsset(Action-Asset-_string_bool_bool).md 'UnrealEngine.Framework.AssetRegistry.ForEachAsset(System.Action&lt;UnrealEngine.Framework.Asset&gt;, string, bool, bool)')
- [GetHashCode()](./AssetRegistry-GetHashCode().md 'UnrealEngine.Framework.AssetRegistry.GetHashCode()')
- [HasAssets(string, bool)](./AssetRegistry-HasAssets(string_bool).md 'UnrealEngine.Framework.AssetRegistry.HasAssets(string, bool)')
2 changes: 2 additions & 0 deletions API/UnrealEngine-Framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- [AnimationSequenceBase](./AnimationSequenceBase.md 'UnrealEngine.Framework.AnimationSequenceBase')
- [Application](./Application.md 'UnrealEngine.Framework.Application')
- [Assert](./Assert.md 'UnrealEngine.Framework.Assert')
- [AssetRegistry](./AssetRegistry.md 'UnrealEngine.Framework.AssetRegistry')
- [AudioComponent](./AudioComponent.md 'UnrealEngine.Framework.AudioComponent')
- [Blueprint](./Blueprint.md 'UnrealEngine.Framework.Blueprint')
- [BoxComponent](./BoxComponent.md 'UnrealEngine.Framework.BoxComponent')
Expand Down Expand Up @@ -81,6 +82,7 @@
- [World](./World.md 'UnrealEngine.Framework.World')
### Structs
- [ActorReference](./ActorReference.md 'UnrealEngine.Framework.ActorReference')
- [Asset](./Asset.md 'UnrealEngine.Framework.Asset')
- [Bounds](./Bounds.md 'UnrealEngine.Framework.Bounds')
- [CollisionShape](./CollisionShape.md 'UnrealEngine.Framework.CollisionShape')
- [ComponentReference](./ComponentReference.md 'UnrealEngine.Framework.ComponentReference')
Expand Down
Binary file modified Content/Tests/Tests.umap
Binary file not shown.
Binary file modified Content/Tests/Tests_BuiltData.uasset
Binary file not shown.
32 changes: 31 additions & 1 deletion Source/Managed/Framework/Codegen.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ namespace UnrealEngine.Framework {
// Automatically generated

internal static class Shared {
internal const int checksum = 0x2A4;
internal const int checksum = 0x2AC;
internal static Dictionary<int, IntPtr> userFunctions = new();
private const string dynamicTypesAssemblyName = "UnrealEngine.DynamicTypes";
private static readonly ModuleBuilder moduleBuilder = AssemblyBuilder.DefineDynamicAssembly(new(dynamicTypesAssemblyName), AssemblyBuilderAccess.RunAndCollect).DefineDynamicModule(dynamicTypesAssemblyName);
Expand Down Expand Up @@ -228,6 +228,24 @@ internal static unsafe Dictionary<int, IntPtr> Load(IntPtr* events, IntPtr funct
World.overlapBlockingTestByProfile = (delegate* unmanaged[Cdecl]<in Vector3, in Quaternion, string, in CollisionShape, IntPtr, IntPtr, Bool>)worldFunctions[head++];
}

unchecked {
int head = 0;
IntPtr* assetFunctions = (IntPtr*)buffer[position++];

Asset.isValid = (delegate* unmanaged[Cdecl]<IntPtr, Bool>)assetFunctions[head++];
Asset.getName = (delegate* unmanaged[Cdecl]<IntPtr, byte[], void>)assetFunctions[head++];
Asset.getPath = (delegate* unmanaged[Cdecl]<IntPtr, byte[], void>)assetFunctions[head++];
}

unchecked {
int head = 0;
IntPtr* assetRegistryFunctions = (IntPtr*)buffer[position++];

AssetRegistry.get = (delegate* unmanaged[Cdecl]<IntPtr>)assetRegistryFunctions[head++];
AssetRegistry.hasAssets = (delegate* unmanaged[Cdecl]<IntPtr, string, Bool, Bool>)assetRegistryFunctions[head++];
AssetRegistry.forEachAsset = (delegate* unmanaged[Cdecl]<IntPtr, string, Bool, Bool, ref Asset*, ref int, void>)assetRegistryFunctions[head++];
}

unchecked {
int head = 0;
IntPtr* blueprintFunctions = (IntPtr*)buffer[position++];
Expand Down Expand Up @@ -1436,6 +1454,18 @@ static unsafe partial class World {
internal static delegate* unmanaged[Cdecl]<in Vector3, in Quaternion, string, in CollisionShape, IntPtr, IntPtr, Bool> overlapBlockingTestByProfile;
}

unsafe partial struct Asset {
internal static delegate* unmanaged[Cdecl]<IntPtr, Bool> isValid;
internal static delegate* unmanaged[Cdecl]<IntPtr, byte[], void> getName;
internal static delegate* unmanaged[Cdecl]<IntPtr, byte[], void> getPath;
}

unsafe partial class AssetRegistry {
internal static delegate* unmanaged[Cdecl]<IntPtr> get;
internal static delegate* unmanaged[Cdecl]<IntPtr, string, Bool, Bool> hasAssets;
internal static delegate* unmanaged[Cdecl]<IntPtr, string, Bool, Bool, ref Asset*, ref int, void> forEachAsset;
}

unsafe partial class Blueprint {
internal static delegate* unmanaged[Cdecl]<IntPtr, ActorType, Bool> isValidActorClass;
internal static delegate* unmanaged[Cdecl]<IntPtr, ComponentType, Bool> isValidComponentClass;
Expand Down
Loading

0 comments on commit 81efbb3

Please sign in to comment.