Nearly Finished

This commit is contained in:
2026-02-28 11:26:43 -05:00
parent 4a9f3d4476
commit 6e9aff9468
23 changed files with 264 additions and 202 deletions

View File

@@ -10,4 +10,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="OpenTK" Version="5.0.0-pre.15" /> <PackageReference Include="OpenTK" Version="5.0.0-pre.15" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Kernel\ComponentDocker\Attributes\" />
</ItemGroup>
</Project> </Project>

View File

@@ -293,6 +293,56 @@ public class ValueFitsRange : Attribute
/// <summary>
/// Requires that the index fits a given collection
/// </summary>
[AttributeUsage(AttributeTargets.All)]
public class CollectionContains : Attribute
{
/// <summary>
/// Verifies if the value fits a range
/// </summary>
/// <param name="__componentDocker"></param>
/// <returns></returns>
public static bool VerifyOrThrow<__Type>(__Type __object, ICollection<__Type> __collection) {
if(__collection.Contains(__object)) return true;
Debug.LogError("Collection does not contain object!", ["ObjectType"],
[__object.GetType().Name]);
return Awperative.IgnoreErrors;
}
}
/// <summary>
/// Requires that the index fits a given collection
/// </summary>
[AttributeUsage(AttributeTargets.All)]
public class CollectionDoesntContain : Attribute
{
/// <summary>
/// Verifies if the value fits a range
/// </summary>
/// <param name="__componentDocker"></param>
/// <returns></returns>
public static bool VerifyOrThrow<__Type>(__Type __object, ICollection<__Type> __collection) {
if(!__collection.Contains(__object)) return true;
Debug.LogError("Collection already contains object!", ["ObjectType"],
[__object.GetType().Name]);
return Awperative.IgnoreErrors;
}
}
/// <summary> /// <summary>
/// Shows that the given object is unsafe (ex. it doesn't check for null values and such, or it doesn't have guardrails based on cases). /// Shows that the given object is unsafe (ex. it doesn't check for null values and such, or it doesn't have guardrails based on cases).
/// This is just for internal/private methods to remind myself how to call it :) The reasoning is case by case, but most of the time, /// This is just for internal/private methods to remind myself how to call it :) The reasoning is case by case, but most of the time,

View File

@@ -19,7 +19,8 @@ public abstract partial class Component : ComponentDocker, IDisposable
/// <summary> Current parent of the Component. Can be either Scene or another Component.</summary> /// <summary> Current parent of the Component. Can be either Scene or another Component.</summary>
public ComponentDocker ComponentDocker { get; internal set; } = null; [UnsafeInternal]
internal ComponentDocker ComponentDocker { get; set; } = null;
/// <summary> /// <summary>
@@ -29,7 +30,7 @@ public abstract partial class Component : ComponentDocker, IDisposable
public string Name { public string Name {
get => _name; get => _name;
set { if (!NotNull.VerifyOrThrow(value)) return; _name = value; } set { if (!NotNull.VerifyOrThrow(value)) return; _name = value; }
} private string _name; } [UnsafeInternal] private string _name;
/// <summary> Represents the state of this Component, The largest bit represents if the Component is enabled or not, while the /// <summary> Represents the state of this Component, The largest bit represents if the Component is enabled or not, while the
@@ -38,14 +39,14 @@ public abstract partial class Component : ComponentDocker, IDisposable
private byte OrderProfile; private byte OrderProfile;
/// <summary> If the component receives time events or not. </summary> /// <summary> If the component receives time events or not. </summary>
[CalculatedProperty] [CalculatedPropertyExpense("Very Low")] [CalculatedProperty, CalculatedPropertyExpense("Very Low")]
public bool Enabled { public bool Enabled {
get => (OrderProfile & 128) > 0; get => (OrderProfile & 128) > 0;
set => OrderProfile = (byte)((OrderProfile & 127) | (value ? 128 : 0)); set => OrderProfile = (byte)((OrderProfile & 127) | (value ? 128 : 0));
} }
/// <summary> Represents the Component's Update priority, can be set to any value ranging from -64 to 63; otherwise an error will throw! </summary> /// <summary> Represents the Component's Update priority, can be set to any value ranging from -64 to 63; otherwise an error will throw! </summary>
[CalculatedProperty] [CalculatedPropertyExpense("Very Low")] [CalculatedProperty, CalculatedPropertyExpense("Very Low")]
public int Priority { public int Priority {
get => (sbyte)(OrderProfile << 1) >> 1; get => (sbyte)(OrderProfile << 1) >> 1;
set { set {
@@ -59,36 +60,22 @@ public abstract partial class Component : ComponentDocker, IDisposable
/// <summary> /// <summary>
/// Scene the Component resides in. /// Attempts to send an Event to the Component, terminates if the Component does not have the given Event
/// </summary> /// </summary>
public Scene Scene => __QueryScene(); /// <param name="__timeEvent">Type of Event</param>
protected Scene __QueryScene() { [UnsafeInternal]
if (ComponentDocker is Scene scene) return scene; internal void TryEvent(int __timeEvent) {
if (ComponentDocker is Component Component) return Component.__QueryScene(); Awperative._TypeAssociatedTimeEvents[GetType()][__timeEvent]?.Invoke(this);
return null;
} }
public void TryEvent(int __timeEvent) {
Action<Component> eventDelegates = Awperative._TypeAssociatedTimeEvents[GetType()][__timeEvent];
eventDelegates?.Invoke(this);
}
/// <summary> /// <summary>
/// Identifiers for Components. /// Identifiers for Components.
/// </summary> /// </summary>
public ImmutableArray<string> Tags => [.._tags]; public IReadOnlyList<string> Tags => [.._tags];
internal HashSet<string> _tags = []; [UnsafeInternal] internal HashSet<string> _tags = [];
@@ -98,44 +85,13 @@ public abstract partial class Component : ComponentDocker, IDisposable
/// Adds a new tag to the Component /// Adds a new tag to the Component
/// </summary> /// </summary>
/// <param name="__tag"> The tag to add</param> /// <param name="__tag"> The tag to add</param>
public void AddTag(string __tag) => ComponentDocker.HashTaggedComponent(this, __tag); public void AddTag([NotNull, CollectionDoesntContain] string __tag)
{
if(!NotNull.VerifyOrThrow(__tag)) return;
if(!CollectionDoesntContain.VerifyOrThrow(__tag, _tags)) return;
_tags.Add(__tag);
ComponentDocker.AddTagToComponent(__tag, this);
/// <summary>
/// Removes a tag from the Component
/// </summary>
/// <param name="__tag"> The tag to remove</param>
public void RemoveTag(string __tag) => ComponentDocker.UnhashTaggedComponent(this, __tag);
/// <summary>
/// All parent Dockers and the parents of the parents up until the Scene. Will only list parents of parents, not uncle dockers.
/// </summary>
/// <remarks> Dockers[0] is the parent of this object, and Dockers[^1] is the Scene.</remarks>
public ImmutableArray<ComponentDocker> Dockers => __QueryDockers();
protected ImmutableArray<ComponentDocker> __QueryDockers() {
List<ComponentDocker> returnValue = [];
ComponentDocker currentComponentDocker = ComponentDocker;
while (!(currentComponentDocker is Scene)) {
if (currentComponentDocker is Component Component) {
returnValue.Add(currentComponentDocker);
currentComponentDocker = Component.ComponentDocker;
} else {
Debug.LogError("Component has a Parent that is not a Scene or Component, Please do not use the Docker class unless you know what you are doing!", ["Component", "Type", "Docker"],
[GetHashCode().ToString(), GetType().ToString(), ComponentDocker.GetHashCode().ToString()]);
}
}
returnValue.Add(currentComponentDocker);
return [..returnValue];
} }
@@ -143,79 +99,23 @@ public abstract partial class Component : ComponentDocker, IDisposable
/// <summary> /// <summary>
/// Returns the Parent Component. Will be null if the Component is under a scene. /// Adds a new tag to the Component
/// </summary> /// </summary>
public Component Parent => __QueryParent(); /// <param name="__tag"> The tag to add</param>
protected Component __QueryParent() { public void RemoveTag([NotNull,CollectionContains] string __tag)
if (ComponentDocker is Component Component) {
return Component; if (!NotNull.VerifyOrThrow(__tag)) return;
return null; if(!CollectionContains.VerifyOrThrow(__tag, _tags)) return;
_tags.Remove(__tag);
ComponentDocker.RemoveTagFromComponent(__tag, this);
} }
/// <summary> public virtual void Dispose() { GC.SuppressFinalize(this); }
/// All parent Components and the parents of the parents up until the Scene. Will only list parents of parents, not uncle Components.
/// </summary>
public ImmutableArray<Component> Parents => __QueryComponents();
protected ImmutableArray<Component> __QueryComponents() {
List<Component> returnValue = [];
ComponentDocker currentComponentDocker = ComponentDocker;
while (!(currentComponentDocker is Scene))
if (currentComponentDocker is Component Component) {
returnValue.Add(Component);
currentComponentDocker = Component.ComponentDocker;
}
return [..returnValue];
}
/// <summary>
/// Creates a new Scene
/// </summary>
/// <param name="__name">Name of the Scene</param>
public Scene CreateScene(string __name) => Awperative.CreateScene(__name);
/// <summary>
/// Finds a scene.
/// </summary>
/// <param name="__name">Name of the Scene</param>
/// <returns></returns>
public Scene GetScene(string __name) => Awperative.GetScene(__name);
/// <summary>
/// Destroys a Scene forever
/// </summary>
/// <param name="__scene"> Target scene</param>
public void RemoveScene(Scene __scene) => Awperative.CloseScene(__scene);
/// <summary>
/// Destroys a Scene forever
/// </summary>
/// <param name="__name">Name of the Scene</param>
public void RemoveScene(string __name) => Awperative.CloseScene(__name);
public ImmutableArray<Component> GetAllChildren() {
List<Component> targets = [.._components];
for (int i = 0; i < targets.Count; i++) targets.InsertRange(i + 1, targets[i]._components);
return [..targets];
}
public virtual void Dispose() {
GC.SuppressFinalize(this);
}
public override string ToString() { public override string ToString() {
return this.Name; return this.Name;

View File

@@ -0,0 +1,52 @@
using System.Collections.Generic;
namespace AwperativeKernel;
public abstract partial class Component
{
/// <summary>
/// Scene the Component resides in.
/// </summary>
[CalculatedProperty, CalculatedPropertyExpense("Medium: O(Parents)")]
public Scene Scene => __QueryScene();
private Scene __QueryScene() {
if (ComponentDocker is Scene scene) return scene;
if (ComponentDocker is Component Component) return Component.__QueryScene();
return null;
}
/// <summary>
/// Returns the Parent Component. Will be null if the Component is at the base of a scene.
/// </summary>
[CalculatedProperty, CalculatedPropertyExpense("Very Low O(1)")]
public Component Parent => __QueryParent();
private Component __QueryParent() {
if (ComponentDocker is Component Component)
return Component;
return null;
}
/// <summary>
/// All parent Components and the parents of the parents up until the Scene. Will only list parents of parents, not uncle Components.
/// </summary>
[CalculatedProperty, CalculatedPropertyExpense("Medium O(Parents)")]
public IReadOnlyList<Component> AllParents => __QueryComponents();
private IReadOnlyList<Component> __QueryComponents() {
List<Component> returnValue = [];
ComponentDocker currentComponentDocker = ComponentDocker;
while (!(currentComponentDocker is Scene))
if (currentComponentDocker is Component Component) {
returnValue.Add(Component);
currentComponentDocker = Component.ComponentDocker;
}
return [..returnValue];
}
}

View File

@@ -0,0 +1,32 @@
namespace AwperativeKernel;
public abstract partial class Component
{
#region Scenes
/// <inheritdoc cref="Awperative.CreateScene"/>
public static Scene CreateScene(string __name) => Awperative.CreateScene(__name);
/// <inheritdoc cref="Awperative.GetScene"/>
public static Scene GetScene(string __name) => Awperative.GetScene(__name);
/// <inheritdoc cref="Awperative.CloseScene(AwperativeKernel.Scene)"/>
public void RemoveScene(Scene __scene) => Awperative.CloseScene(__scene);
/// <inheritdock cref="Awperative.CloseScene(string)" />
public void RemoveScene(string __name) => Awperative.CloseScene(__name);
#endregion
#region Components
public void Move(ComponentDocker __newDocker) => ComponentDocker.Move(this, __newDocker);
#endregion
}

View File

@@ -20,17 +20,14 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable<Compone
//Blocks external inheritance //Blocks external inheritance
internal ComponentDocker() {} internal ComponentDocker() {}
/// <summary>
/// Core of Docker, contains all of our precious Components. Sorts them by their priorities with highest going first.
/// If they are equal it defaults to hash codes to ensure consistent Behavior
/// </summary>
/// <summary> Core of the Docker, holds all of the Components, sorted by update priority.</summary> /// <summary> Core of the Docker, holds all of the Components, sorted by update priority.</summary>
[UnsafeInternal] internal List<Component> _components = new(); [UnsafeInternal] internal readonly List<Component> _components = [];
/// <summary> Holds a list of Components at each of their types. This optimizes Get&lt;Type&gt; to O(1) </summary> /// <summary> Holds a list of Components at each of their types. This optimizes Get&lt;Type&gt; to O(1) </summary>
[UnsafeInternal] internal Dictionary<Type, HashSet<Component>> _componentTypeDictionary = new(); [UnsafeInternal] internal readonly Dictionary<Type, HashSet<Component>> _componentTypeDictionary = new();
/// <summary> Stores a Component in a list at each of their tags. This optimizes Get(string tag) to O(1)</summary> /// <summary> Stores a Component in a list at each of their tags. This optimizes Get(string tag) to O(1)</summary>
[UnsafeInternal] internal Dictionary<string, HashSet<Component>> _componentTagDictionary = new(); [UnsafeInternal] internal readonly Dictionary<string, HashSet<Component>> _componentTagDictionary = new();
@@ -50,9 +47,6 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable<Compone
public IEnumerator<Component> GetEnumerator() { return new ComponentDockEnum([.._components]); } public IEnumerator<Component> GetEnumerator() { return new ComponentDockEnum([.._components]); }
/// <summary> List of all Components belonging to the Docker, Please Use Add, Get, Move and Destroy to modify it </summary>
public IReadOnlyList<Component> Components => _components;
/// <summary>Amount of Components attached to the Docker</summary> /// <summary>Amount of Components attached to the Docker</summary>
public int Count => _components.Count; public int Count => _components.Count;
@@ -113,7 +107,7 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable<Compone
_components.Add(__component); _components.Add(__component);
if (!_componentTypeDictionary.TryAdd(Type, [__component])) _componentTypeDictionary[Type].Add(__component); if (!_componentTypeDictionary.TryAdd(Type, [__component])) _componentTypeDictionary[Type].Add(__component);
for(var i = 0; i < __component.Tags.Length; i++) { AddTagToComponent(__component.Tags[i], __component); } foreach (var tag in __component._tags) RemoveTagFromComponent(tag, __component);
} }
/// <summary> /// <summary>
@@ -127,7 +121,7 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable<Compone
if(!_componentTypeDictionary.ContainsKey(Type)) _componentTypeDictionary[Type].Remove(__component); if(!_componentTypeDictionary.ContainsKey(Type)) _componentTypeDictionary[Type].Remove(__component);
for(var i = 0; i < __component.Tags.Length; i++) { RemoveTagFromComponent(__component.Tags[i], __component); } foreach (var tag in __component._tags) AddTagToComponent(tag, __component);
} }
/// <summary> /// <summary>
@@ -136,7 +130,7 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable<Compone
/// <param name="__tag">Tag to add</param> /// <param name="__tag">Tag to add</param>
/// <param name="__component">Component to add it to</param> /// <param name="__component">Component to add it to</param>
[UnsafeInternal] [UnsafeInternal]
private void AddTagToComponent(string __tag, Component __component) { internal void AddTagToComponent(string __tag, Component __component) {
if (!_componentTagDictionary.TryAdd(__tag, [__component])) if (!_componentTagDictionary.TryAdd(__tag, [__component]))
_componentTagDictionary[__tag].Add(__component); _componentTagDictionary[__tag].Add(__component);
} }
@@ -147,8 +141,29 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable<Compone
/// <param name="__tag">Tag to remove</param> /// <param name="__tag">Tag to remove</param>
/// <param name="__component">Component to remove it from</param> /// <param name="__component">Component to remove it from</param>
[UnsafeInternal] [UnsafeInternal]
private void RemoveTagFromComponent(string __tag, Component __component) { internal void RemoveTagFromComponent(string __tag, Component __component) {
if(!_componentTagDictionary.ContainsKey(__tag)) _componentTagDictionary[__tag].Remove(__component); if(!_componentTagDictionary.ContainsKey(__tag)) _componentTagDictionary[__tag].Remove(__component);
} }
/// <summary>
/// All children belonging to the Component.
/// </summary>
[CalculatedProperty, CalculatedPropertyExpense("Very Low")]
public IReadOnlyList<Component> Children => _components;
/// <summary>
/// All children and their children until the bottom of the scene. Uses Breadth First Search.
/// </summary>
[CalculatedProperty, CalculatedPropertyExpense("Medium O(Children)")]
public IReadOnlyList<Component> AllChildren => GetAllChildren();
public IReadOnlyList<Component> GetAllChildren() {
List<Component> targets = [.._components];
for (int i = 0; i < targets.Count; i++) targets.InsertRange(i + 1, targets[i]._components);
return [..targets];
}
} }

View File

@@ -48,11 +48,11 @@ public abstract partial class ComponentDocker
/// <typeparam name="__Type"> Type of Component to instantiate</typeparam> /// <typeparam name="__Type"> Type of Component to instantiate</typeparam>
/// <remarks>Component cannot have a Constructor</remarks> /// <remarks>Component cannot have a Constructor</remarks>
/// <author> Avery Norris</author> /// <author> Avery Norris</author>
public __Type Add<__Type>(string name = null, int priority = 0, Collection<string> tags = null) where __Type : Component, new() { public __Type Add<__Type>(string name = null, [ValueFitsRange] int priority = 0, Collection<string> tags = null) where __Type : Component, new() {
Component newComponent = new __Type(); Component newComponent = new __Type();
newComponent.Name = name ??= typeof(__Type).Name; newComponent.Name = name ??= typeof(__Type).Name;
newComponent._tags = [..tags ??= []]; newComponent._tags = [..tags ??= []];
newComponent._priority = priority; newComponent.Priority = priority;
InitiateComponent(newComponent); return (__Type)newComponent; InitiateComponent(newComponent); return (__Type)newComponent;
} }
@@ -170,7 +170,7 @@ public abstract partial class ComponentDocker
/// Destroys all Components from a given collection. /// Destroys all Components from a given collection.
/// </summary> /// </summary>
/// <param name="__Components"></param> /// <param name="__Components"></param>
public void DestroyAll([ComponentNotNull, DockerOwns] Collection<Component> __Components) { for (var i = 0; i < __Components.Count; i++) Destroy(__Components[i]); } public void DestroyAll([ComponentNotNull, DockerOwns] IReadOnlyList<Component> __Components) { for (var i = 0; i < __Components.Count; i++) Destroy(__Components[i]); }

View File

@@ -1,20 +1,20 @@
{ {
"format": 1, "format": 1,
"restore": { "restore": {
"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": {} "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": {}
}, },
"projects": { "projects": {
"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": { "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "projectUniqueName": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj",
"projectName": "AwperativeKernel", "projectName": "AwperativeKernel",
"projectPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "projectPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj",
"packagesPath": "/home/avery/.nuget/packages/", "packagesPath": "/Users/averynorris/.nuget/packages/",
"outputPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/obj/", "outputPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"/home/avery/.nuget/NuGet/NuGet.Config" "/Users/averynorris/.nuget/NuGet/NuGet.Config"
], ],
"originalTargetFrameworks": [ "originalTargetFrameworks": [
"net8.0" "net8.0"
@@ -38,7 +38,7 @@
"auditLevel": "low", "auditLevel": "low",
"auditMode": "direct" "auditMode": "direct"
}, },
"SdkAnalysisLevel": "9.0.300" "SdkAnalysisLevel": "10.0.100"
}, },
"frameworks": { "frameworks": {
"net8.0": { "net8.0": {
@@ -63,11 +63,11 @@
"downloadDependencies": [ "downloadDependencies": [
{ {
"name": "Microsoft.AspNetCore.App.Ref", "name": "Microsoft.AspNetCore.App.Ref",
"version": "[8.0.24, 8.0.24]" "version": "[8.0.23, 8.0.23]"
}, },
{ {
"name": "Microsoft.NETCore.App.Ref", "name": "Microsoft.NETCore.App.Ref",
"version": "[8.0.24, 8.0.24]" "version": "[8.0.23, 8.0.23]"
} }
], ],
"frameworkReferences": { "frameworkReferences": {
@@ -75,7 +75,7 @@
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "/home/avery/.dotnet/sdk/9.0.311/PortableRuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/10.0.102/PortableRuntimeIdentifierGraph.json"
} }
} }
} }

View File

@@ -4,12 +4,12 @@
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/avery/.nuget/packages/</NuGetPackageRoot> <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/Users/averynorris/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/avery/.nuget/packages/</NuGetPackageFolders> <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/Users/averynorris/.nuget/packages/</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion> <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="/home/avery/.nuget/packages/" /> <SourceRoot Include="/Users/averynorris/.nuget/packages/" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyCompanyAttribute("AwperativeKernel")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+89daba3278f3425069ad72c1e889e2d5c12ffebb")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4a9f3d4476aad85ea81cf5539e1cbe307a50bee5")]
[assembly: System.Reflection.AssemblyProductAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyProductAttribute("AwperativeKernel")]
[assembly: System.Reflection.AssemblyTitleAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyTitleAttribute("AwperativeKernel")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
fd20f709f0c09dd5820bb098e786f44ec3ff4e66593743fc97dd004440680728 d26fbee268a2a19e12312d333a763a70899a64f6b3b49b30e13a2696cde111a2

View File

@@ -1,5 +1,7 @@
is_global = true is_global = true
build_property.TargetFramework = net8.0 build_property.TargetFramework = net8.0
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v8.0
build_property.TargetPlatformMinVersion = build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb = build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids = build_property.ProjectTypeGuids =
@@ -8,7 +10,7 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules = build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Awperative build_property.RootNamespace = Awperative
build_property.ProjectDir = /home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/ build_property.ProjectDir = /Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/
build_property.EnableComHosting = build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop = build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 8.0 build_property.EffectiveAnalysisLevelStyle = 8.0

View File

@@ -1 +1 @@
fb1e5e1f7af8237ad8bd2d22975bb0a75e1f0b64faaaa35af565406d250bd296 d99749faea945604824f7022f457f0974d512ed438f5f0cc6813de62d37d1f41

View File

@@ -25,3 +25,11 @@
/home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.deps.json /home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.deps.json
/home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.dll /home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.dll
/home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.pdb /home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.pdb
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.AssemblyReference.cache
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.GeneratedMSBuildEditorConfig.editorconfig
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.CoreCompileInputs.cache
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.dll
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/refint/AwperativeKernel.dll
/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.pdb

View File

@@ -442,19 +442,19 @@
] ]
}, },
"packageFolders": { "packageFolders": {
"/home/avery/.nuget/packages/": {} "/Users/averynorris/.nuget/packages/": {}
}, },
"project": { "project": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "projectUniqueName": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj",
"projectName": "AwperativeKernel", "projectName": "AwperativeKernel",
"projectPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "projectPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj",
"packagesPath": "/home/avery/.nuget/packages/", "packagesPath": "/Users/averynorris/.nuget/packages/",
"outputPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/obj/", "outputPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"/home/avery/.nuget/NuGet/NuGet.Config" "/Users/averynorris/.nuget/NuGet/NuGet.Config"
], ],
"originalTargetFrameworks": [ "originalTargetFrameworks": [
"net8.0" "net8.0"
@@ -478,7 +478,7 @@
"auditLevel": "low", "auditLevel": "low",
"auditMode": "direct" "auditMode": "direct"
}, },
"SdkAnalysisLevel": "9.0.300" "SdkAnalysisLevel": "10.0.100"
}, },
"frameworks": { "frameworks": {
"net8.0": { "net8.0": {
@@ -503,11 +503,11 @@
"downloadDependencies": [ "downloadDependencies": [
{ {
"name": "Microsoft.AspNetCore.App.Ref", "name": "Microsoft.AspNetCore.App.Ref",
"version": "[8.0.24, 8.0.24]" "version": "[8.0.23, 8.0.23]"
}, },
{ {
"name": "Microsoft.NETCore.App.Ref", "name": "Microsoft.NETCore.App.Ref",
"version": "[8.0.24, 8.0.24]" "version": "[8.0.23, 8.0.23]"
} }
], ],
"frameworkReferences": { "frameworkReferences": {
@@ -515,7 +515,7 @@
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "/home/avery/.dotnet/sdk/9.0.311/PortableRuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/10.0.102/PortableRuntimeIdentifierGraph.json"
} }
} }
} }

View File

@@ -1,24 +1,24 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "nvLY3cNblzg=", "dgSpecHash": "LpP/nHq7BJc=",
"success": true, "success": true,
"projectFilePath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "projectFilePath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"/home/avery/.nuget/packages/opentk/5.0.0-pre.15/opentk.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk/5.0.0-pre.15/opentk.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.audio/5.0.0-pre.15/opentk.audio.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.audio/5.0.0-pre.15/opentk.audio.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.compute/5.0.0-pre.15/opentk.compute.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.compute/5.0.0-pre.15/opentk.compute.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.core/5.0.0-pre.15/opentk.core.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.core/5.0.0-pre.15/opentk.core.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.graphics/5.0.0-pre.15/opentk.graphics.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.graphics/5.0.0-pre.15/opentk.graphics.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.input/5.0.0-pre.15/opentk.input.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.input/5.0.0-pre.15/opentk.input.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.mathematics/5.0.0-pre.15/opentk.mathematics.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.mathematics/5.0.0-pre.15/opentk.mathematics.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.platform/5.0.0-pre.15/opentk.platform.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.platform/5.0.0-pre.15/opentk.platform.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.redist.glfw/3.4.0.44/opentk.redist.glfw.3.4.0.44.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.redist.glfw/3.4.0.44/opentk.redist.glfw.3.4.0.44.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.windowing.common/5.0.0-pre.15/opentk.windowing.common.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.windowing.common/5.0.0-pre.15/opentk.windowing.common.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.windowing.desktop/5.0.0-pre.15/opentk.windowing.desktop.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.windowing.desktop/5.0.0-pre.15/opentk.windowing.desktop.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/opentk.windowing.graphicslibraryframework/5.0.0-pre.15/opentk.windowing.graphicslibraryframework.5.0.0-pre.15.nupkg.sha512", "/Users/averynorris/.nuget/packages/opentk.windowing.graphicslibraryframework/5.0.0-pre.15/opentk.windowing.graphicslibraryframework.5.0.0-pre.15.nupkg.sha512",
"/home/avery/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", "/Users/averynorris/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
"/home/avery/.nuget/packages/microsoft.netcore.app.ref/8.0.24/microsoft.netcore.app.ref.8.0.24.nupkg.sha512", "/Users/averynorris/.nuget/packages/microsoft.netcore.app.ref/8.0.23/microsoft.netcore.app.ref.8.0.23.nupkg.sha512",
"/home/avery/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.24/microsoft.aspnetcore.app.ref.8.0.24.nupkg.sha512" "/Users/averynorris/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.23/microsoft.aspnetcore.app.ref.8.0.23.nupkg.sha512"
], ],
"logs": [] "logs": []
} }

View File

@@ -1 +1 @@
"restore":{"projectUniqueName":"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","projectName":"AwperativeKernel","projectPath":"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","outputPath":"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.300"}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"OpenTK":{"target":"Package","version":"[5.0.0-pre.15, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.AspNetCore.App.Ref","version":"[8.0.24, 8.0.24]"},{"name":"Microsoft.NETCore.App.Ref","version":"[8.0.24, 8.0.24]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/home/avery/.dotnet/sdk/9.0.311/PortableRuntimeIdentifierGraph.json"}} "restore":{"projectUniqueName":"/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","projectName":"AwperativeKernel","projectPath":"/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","outputPath":"/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"10.0.100"}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"OpenTK":{"target":"Package","version":"[5.0.0-pre.15, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.AspNetCore.App.Ref","version":"[8.0.23, 8.0.23]"},{"name":"Microsoft.NETCore.App.Ref","version":"[8.0.23, 8.0.23]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/local/share/dotnet/sdk/10.0.102/PortableRuntimeIdentifierGraph.json"}}

View File

@@ -1 +1 @@
17713784696110717 17722910163812180

View File

@@ -1 +1 @@
17713784696110717 17722910991366692