Nearly Finished
This commit is contained in:
@@ -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>
|
||||||
@@ -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,
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
32
AwperativeKernel/Kernel/Component/ComponentLambda.cs
Normal file
32
AwperativeKernel/Kernel/Component/ComponentLambda.cs
Normal 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
|
||||||
|
}
|
||||||
@@ -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<Type> to O(1) </summary>
|
/// <summary> Holds a list of Components at each of their types. This optimizes Get<Type> 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];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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]); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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")]
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
fd20f709f0c09dd5820bb098e786f44ec3ff4e66593743fc97dd004440680728
|
d26fbee268a2a19e12312d333a763a70899a64f6b3b49b30e13a2696cde111a2
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
fb1e5e1f7af8237ad8bd2d22975bb0a75e1f0b64faaaa35af565406d250bd296
|
d99749faea945604824f7022f457f0974d512ed438f5f0cc6813de62d37d1f41
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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": []
|
||||||
}
|
}
|
||||||
@@ -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"}}
|
||||||
@@ -1 +1 @@
|
|||||||
17713784696110717
|
17722910163812180
|
||||||
@@ -1 +1 @@
|
|||||||
17713784696110717
|
17722910991366692
|
||||||
Reference in New Issue
Block a user