From cc4fee7a34972940e4ce95a9723f222e7b5da0c2 Mon Sep 17 00:00:00 2001 From: Avery Norris Date: Mon, 19 Jan 2026 13:56:50 -0500 Subject: [PATCH] Initial commit --- .idea/.idea.Awperative/.idea/.gitignore | 13 + .idea/.idea.Awperative/.idea/indexLayout.xml | 8 + .idea/.idea.Awperative/.idea/vcs.xml | 6 + Awperative.sln | 16 + Awperative.sln.DotSettings.user | 4 + Awperative/.config/dotnet-tools.json | 30 ++ Awperative/Awperative.csproj | 11 + .../Kernel/Entities/Bodies/Components.cs | 127 +++++++ Awperative/Kernel/Entities/Bodies/Core.cs | 29 ++ Awperative/Kernel/Entities/Bodies/Events.cs | 12 + Awperative/Kernel/Entities/Bodies/Time.cs | 19 + .../Kernel/Entities/Scenes/Behaviors.cs | 134 +++++++ Awperative/Kernel/Entities/Scenes/Bodies.cs | 66 ++++ Awperative/Kernel/Entities/Scenes/Core.cs | 10 + Awperative/Kernel/Entities/Scenes/Events.cs | 15 + Awperative/Kernel/Entities/Scenes/Time.cs | 32 ++ .../Events/Behaviors/BehaviorCreateEvent.cs | 15 + .../Events/Behaviors/BehaviorDestroyEvent.cs | 15 + .../Kernel/Events/Bodies/BodyCreateEvent.cs | 15 + .../Kernel/Events/Bodies/BodyDestroyEvent.cs | 15 + .../Events/Components/ComponentCreateEvent.cs | 17 + .../Components/ComponentDestroyEvent.cs | 17 + .../Kernel/Events/Scenes/SceneCreateEvent.cs | 14 + .../Kernel/Events/Scenes/SceneDestroyEvent.cs | 14 + .../Events/Transform/TransformModifyEvent.cs | 60 +++ Awperative/Kernel/Kernel.txt | 3 + Awperative/Kernel/Overhead/AwperativeClass.cs | 10 + Awperative/Kernel/Overhead/Base.cs | 107 ++++++ Awperative/Kernel/Overhead/Core.cs | 21 ++ .../Kernel/Scripting/Behaviors/Behavior.cs | 65 ++++ .../Kernel/Scripting/Components/Component.cs | 82 ++++ .../Kernel/Types/Transform/Transform.cs | 92 +++++ Awperative/Kernel/todo.txt | 24 ++ .../bin/Debug/net8.0/Awperative.deps.json | 173 +++++++++ Awperative/bin/Debug/net8.0/Awperative.dll | Bin 0 -> 32256 bytes Awperative/bin/Debug/net8.0/Awperative.pdb | Bin 0 -> 22280 bytes .../obj/Awperative.csproj.nuget.dgspec.json | 84 +++++ .../obj/Awperative.csproj.nuget.g.props | 15 + .../obj/Awperative.csproj.nuget.g.targets | 6 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../Debug/net8.0/Awperative.AssemblyInfo.cs | 22 ++ .../Awperative.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../obj/Debug/net8.0/Awperative.assets.cache | Bin 0 -> 5256 bytes .../Awperative.csproj.AssemblyReference.cache | Bin 0 -> 500 bytes .../Awperative.csproj.CoreCompileInputs.cache | 1 + .../Awperative.csproj.FileListAbsolute.txt | 12 + Awperative/obj/Debug/net8.0/Awperative.dll | Bin 0 -> 32256 bytes Awperative/obj/Debug/net8.0/Awperative.pdb | Bin 0 -> 22280 bytes .../obj/Debug/net8.0/ref/Awperative.dll | Bin 0 -> 13312 bytes .../obj/Debug/net8.0/refint/Awperative.dll | Bin 0 -> 13312 bytes Awperative/obj/project.assets.json | 354 ++++++++++++++++++ Awperative/obj/project.nuget.cache | 17 + Awperative/obj/project.packagespec.json | 1 + Awperative/obj/rider.project.restore.info | 1 + 55 files changed, 1824 insertions(+) create mode 100644 .idea/.idea.Awperative/.idea/.gitignore create mode 100644 .idea/.idea.Awperative/.idea/indexLayout.xml create mode 100644 .idea/.idea.Awperative/.idea/vcs.xml create mode 100644 Awperative.sln create mode 100644 Awperative.sln.DotSettings.user create mode 100644 Awperative/.config/dotnet-tools.json create mode 100644 Awperative/Awperative.csproj create mode 100644 Awperative/Kernel/Entities/Bodies/Components.cs create mode 100644 Awperative/Kernel/Entities/Bodies/Core.cs create mode 100644 Awperative/Kernel/Entities/Bodies/Events.cs create mode 100644 Awperative/Kernel/Entities/Bodies/Time.cs create mode 100644 Awperative/Kernel/Entities/Scenes/Behaviors.cs create mode 100644 Awperative/Kernel/Entities/Scenes/Bodies.cs create mode 100644 Awperative/Kernel/Entities/Scenes/Core.cs create mode 100644 Awperative/Kernel/Entities/Scenes/Events.cs create mode 100644 Awperative/Kernel/Entities/Scenes/Time.cs create mode 100644 Awperative/Kernel/Events/Behaviors/BehaviorCreateEvent.cs create mode 100644 Awperative/Kernel/Events/Behaviors/BehaviorDestroyEvent.cs create mode 100644 Awperative/Kernel/Events/Bodies/BodyCreateEvent.cs create mode 100644 Awperative/Kernel/Events/Bodies/BodyDestroyEvent.cs create mode 100644 Awperative/Kernel/Events/Components/ComponentCreateEvent.cs create mode 100644 Awperative/Kernel/Events/Components/ComponentDestroyEvent.cs create mode 100644 Awperative/Kernel/Events/Scenes/SceneCreateEvent.cs create mode 100644 Awperative/Kernel/Events/Scenes/SceneDestroyEvent.cs create mode 100644 Awperative/Kernel/Events/Transform/TransformModifyEvent.cs create mode 100644 Awperative/Kernel/Kernel.txt create mode 100644 Awperative/Kernel/Overhead/AwperativeClass.cs create mode 100644 Awperative/Kernel/Overhead/Base.cs create mode 100644 Awperative/Kernel/Overhead/Core.cs create mode 100644 Awperative/Kernel/Scripting/Behaviors/Behavior.cs create mode 100644 Awperative/Kernel/Scripting/Components/Component.cs create mode 100644 Awperative/Kernel/Types/Transform/Transform.cs create mode 100644 Awperative/Kernel/todo.txt create mode 100644 Awperative/bin/Debug/net8.0/Awperative.deps.json create mode 100644 Awperative/bin/Debug/net8.0/Awperative.dll create mode 100644 Awperative/bin/Debug/net8.0/Awperative.pdb create mode 100644 Awperative/obj/Awperative.csproj.nuget.dgspec.json create mode 100644 Awperative/obj/Awperative.csproj.nuget.g.props create mode 100644 Awperative/obj/Awperative.csproj.nuget.g.targets create mode 100644 Awperative/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 Awperative/obj/Debug/net8.0/Awperative.AssemblyInfo.cs create mode 100644 Awperative/obj/Debug/net8.0/Awperative.AssemblyInfoInputs.cache create mode 100644 Awperative/obj/Debug/net8.0/Awperative.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Awperative/obj/Debug/net8.0/Awperative.assets.cache create mode 100644 Awperative/obj/Debug/net8.0/Awperative.csproj.AssemblyReference.cache create mode 100644 Awperative/obj/Debug/net8.0/Awperative.csproj.CoreCompileInputs.cache create mode 100644 Awperative/obj/Debug/net8.0/Awperative.csproj.FileListAbsolute.txt create mode 100644 Awperative/obj/Debug/net8.0/Awperative.dll create mode 100644 Awperative/obj/Debug/net8.0/Awperative.pdb create mode 100644 Awperative/obj/Debug/net8.0/ref/Awperative.dll create mode 100644 Awperative/obj/Debug/net8.0/refint/Awperative.dll create mode 100644 Awperative/obj/project.assets.json create mode 100644 Awperative/obj/project.nuget.cache create mode 100644 Awperative/obj/project.packagespec.json create mode 100644 Awperative/obj/rider.project.restore.info diff --git a/.idea/.idea.Awperative/.idea/.gitignore b/.idea/.idea.Awperative/.idea/.gitignore new file mode 100644 index 0000000..5c63dfb --- /dev/null +++ b/.idea/.idea.Awperative/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/.idea.Awperative.iml +/contentModel.xml +/projectSettingsUpdater.xml +/modules.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.Awperative/.idea/indexLayout.xml b/.idea/.idea.Awperative/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.Awperative/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.Awperative/.idea/vcs.xml b/.idea/.idea.Awperative/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/.idea.Awperative/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Awperative.sln b/Awperative.sln new file mode 100644 index 0000000..b046489 --- /dev/null +++ b/Awperative.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Awperative", "Awperative\Awperative.csproj", "{0130E4FD-B03B-4A9F-8431-B602C98BE466}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0130E4FD-B03B-4A9F-8431-B602C98BE466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0130E4FD-B03B-4A9F-8431-B602C98BE466}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0130E4FD-B03B-4A9F-8431-B602C98BE466}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0130E4FD-B03B-4A9F-8431-B602C98BE466}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/Awperative.sln.DotSettings.user b/Awperative.sln.DotSettings.user new file mode 100644 index 0000000..13e04fa --- /dev/null +++ b/Awperative.sln.DotSettings.user @@ -0,0 +1,4 @@ + + <AssemblyExplorer> + <Assembly Path="/Users/averynorris/Programming/Test/Awperative/Awperative/bin/Debug/net8.0/Awperative.dll" /> +</AssemblyExplorer> \ No newline at end of file diff --git a/Awperative/.config/dotnet-tools.json b/Awperative/.config/dotnet-tools.json new file mode 100644 index 0000000..b345335 --- /dev/null +++ b/Awperative/.config/dotnet-tools.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-mgcb-editor": { + "version": "3.8.4", + "commands": [ + "mgcb-editor" + ] + }, + "dotnet-mgcb-editor-linux": { + "version": "3.8.4", + "commands": [ + "mgcb-editor-linux" + ] + }, + "dotnet-mgcb-editor-windows": { + "version": "3.8.4", + "commands": [ + "mgcb-editor-windows" + ] + }, + "dotnet-mgcb-editor-mac": { + "version": "3.8.4", + "commands": [ + "mgcb-editor-mac" + ] + } + } +} \ No newline at end of file diff --git a/Awperative/Awperative.csproj b/Awperative/Awperative.csproj new file mode 100644 index 0000000..ab81ce1 --- /dev/null +++ b/Awperative/Awperative.csproj @@ -0,0 +1,11 @@ + + + net8.0 + Library + + + + All + + + \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Bodies/Components.cs b/Awperative/Kernel/Entities/Bodies/Components.cs new file mode 100644 index 0000000..b655d27 --- /dev/null +++ b/Awperative/Kernel/Entities/Bodies/Components.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; + + +namespace Gravity.Kernel; + +public sealed partial class Body +{ + + public Generic AddComponent(object[] args) where Generic : Component { + + if (SingletonExists()) + throw new Exception("Cannot add component when singleton exists!"); + + Generic component = (Generic) Activator.CreateInstance(typeof(Generic), args); + + if(component == null) + throw new Exception("Failed to create component!"); + + components.Add(component); + component.Initiate(this); + + ComponentCreatedEvent?.Invoke(this, new ComponentCreateEvent(component, this, scene)); + + return component; + } + + public Generic AddComponent() where Generic : Component { + + if (SingletonExists()) + throw new Exception("Cannot add component when singleton exists!"); + + Generic component = (Generic) Activator.CreateInstance(typeof(Generic)); + + if(component == null) + throw new Exception("Failed to create component!"); + + components.Add(component); + component.Initiate(this); + + ComponentCreatedEvent?.Invoke(this, new ComponentCreateEvent(component, this, scene)); + + return component; + } + + public Generic[] GetComponents() where Generic : Component { + + List foundComponents = components.FindAll(x => x.GetType() == typeof(Generic)); + + if(foundComponents.Count == 0) + throw new Exception("Scene has no components of that type!"); + + return foundComponents.ToArray() as Generic[]; + } + + public Generic GetComponent() where Generic : Component { + + Component foundComponent = components.Find(x => x.GetType() == typeof(Generic)); + + if(foundComponent == null) + throw new Exception("Scene has no components of that type!"); + + return foundComponent as Generic; + } + + public void RemoveComponent(Component __component) { + __component.End(); + components.Remove(__component); + } + + public void RemoveComponents() where Generic : Component { + + Component[] foundComponents = GetComponents(); + + if(foundComponents.Length == 0) + throw new Exception("Scene has no components of that type!"); + + foreach (Component component in foundComponents) { + component.End(); + components.Remove(component); + ComponentDestroyedEvent?.Invoke(this, new ComponentDestroyEvent(component, this, scene)); + } + } + + public void RemoveComponent() where Generic : Component { + + Component foundComponent = GetComponent(); + + if(foundComponent == null) + throw new Exception("Scene has no components of that type!"); + + foundComponent.End(); + components.Remove(foundComponent); + ComponentDestroyedEvent?.Invoke(this ,new ComponentDestroyEvent(foundComponent, this, scene)); + } + + public Generic FindSingleton() where Generic : Component + { + foreach (Component component in components) + if (component.GetType() == typeof(Generic)) + if(component.EnforceSingleton) + return (Generic) component; + else + throw new Exception("Component is not a singleton"); + + throw new Exception("Component not found"); + return null; + } + + public bool SingletonExists() where Generic : Component + { + + foreach (Component __component in components) + if (__component.GetType() == typeof(Generic)) + if (__component.EnforceSingleton) + return true; + else + return false; + + return false; + } + + public void RecompileComponentOrder() { + components.Sort((a, b) => a.Priority.CompareTo(b.Priority)); + components.Reverse(); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Bodies/Core.cs b/Awperative/Kernel/Entities/Bodies/Core.cs new file mode 100644 index 0000000..bc8dd47 --- /dev/null +++ b/Awperative/Kernel/Entities/Bodies/Core.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; + + +namespace Gravity.Kernel; + +public sealed partial class Body +{ + + public readonly Scene scene; + public readonly Transform transform = new Transform(); + + public readonly List tags = []; + + public readonly List components = []; + + + public Body(Scene __scene) { + scene = __scene; + } + + public Body(Scene __scene, Transform __transform) { + scene = __scene; + transform = __transform; + } + + + //todo: make internal +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Bodies/Events.cs b/Awperative/Kernel/Entities/Bodies/Events.cs new file mode 100644 index 0000000..45b3bef --- /dev/null +++ b/Awperative/Kernel/Entities/Bodies/Events.cs @@ -0,0 +1,12 @@ +using System; + + +namespace Gravity.Kernel; + +public sealed partial class Body +{ + //todo: add component events to scene in v5 + + public event EventHandler ComponentCreatedEvent; + public event EventHandler ComponentDestroyedEvent; +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Bodies/Time.cs b/Awperative/Kernel/Entities/Bodies/Time.cs new file mode 100644 index 0000000..25d9ccd --- /dev/null +++ b/Awperative/Kernel/Entities/Bodies/Time.cs @@ -0,0 +1,19 @@ +using Microsoft.Xna.Framework; + + +namespace Gravity.Kernel; + + +public sealed partial class Body +{ + public void Initialize() { foreach (Component component in components) component.Initialize(); } + public void Terminate() { foreach (Component component in components) component.Terminate(); } + + public void Load() { foreach (Component component in components) { component.Load(); } } + + public void Update(GameTime __gameTime) { foreach (Component component in components) { component.Update(__gameTime); } } + public void Draw(GameTime __gameTime) { foreach (Component component in components) { component.Draw(__gameTime); } } + + public void Destroy() { foreach(Component component in components) component.Destroy(); } + public void Create() { foreach (Component component in components) component.Create(); } +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Scenes/Behaviors.cs b/Awperative/Kernel/Entities/Scenes/Behaviors.cs new file mode 100644 index 0000000..e69ca5e --- /dev/null +++ b/Awperative/Kernel/Entities/Scenes/Behaviors.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; + + +namespace Gravity.Kernel; + + +public sealed partial class Scene +{ + + public List behaviors { get; private set; } = []; + + //todo: use extern keyword to make transform ambiguous to support potential 3D games + + + public Generic AddBehavior(object[] args) where Generic : Behavior { + + if (SingletonExists()) + throw new Exception("Cannot add behavior when singleton exists!"); + + Generic behavior = (Generic) Activator.CreateInstance(typeof(Generic), args); + + if(behavior == null) + throw new Exception("Failed to create behavior!"); + + behaviors.Add(behavior); + behavior.Initiate(this); + + BehaviorCreatedEvent?.Invoke(this, new BehaviorCreateEvent(behavior, this)); + + return behavior; + } + + public Generic AddBehavior() where Generic : Behavior { + + if (SingletonExists()) + throw new Exception("Cannot add behavior when singleton exists!"); + + Generic behavior = (Generic) Activator.CreateInstance(typeof(Generic)); + + if(behavior == null) + throw new Exception("Failed to create behavior!"); + + behaviors.Add(behavior); + behavior.Initiate(this); + + BehaviorCreatedEvent?.Invoke(this, new BehaviorCreateEvent(behavior, this)); + + return behavior; + } + + public Generic[] GetBehaviors() where Generic : Behavior { + + List foundBehaviors = behaviors.FindAll(x => x.GetType() == typeof(Generic)); + + if(foundBehaviors.Count == 0) + throw new Exception("Scene has no behaviors of that type!"); + + return foundBehaviors.ToArray() as Generic[]; + } + + public Generic GetBehavior() where Generic : Behavior { + + Behavior foundBehavior = behaviors.Find(x => x.GetType() == typeof(Generic)); + + if(foundBehavior == null) + throw new Exception("Scene has no behaviors of that type!"); + + return foundBehavior as Generic; + } + + public void RemoveBehaviors() where Generic : Behavior { + + Behavior[] foundBehaviors = GetBehaviors(); + + if(foundBehaviors.Length == 0) + throw new Exception("Scene has no behaviors of that type!"); + + foreach (Behavior behavior in foundBehaviors) { + behavior.End(); + behaviors.Remove(behavior); + BehaviorDestroyedEvent?.Invoke(this, new BehaviorDestroyEvent(behavior, this)); + } + } + + public void RemoveBehavior() where Generic : Behavior { + + Behavior foundBehavior = GetBehavior(); + + if(foundBehavior == null) + throw new Exception("Scene has no behaviors of that type!"); + + foundBehavior.End(); + behaviors.Remove(foundBehavior); + BehaviorDestroyedEvent?.Invoke(this ,new BehaviorDestroyEvent(foundBehavior, this)); + } + + public void RemoveBehavior(Behavior __behavior) { + __behavior.End(); + behaviors.Remove(__behavior); + BehaviorDestroyedEvent?.Invoke(this, new BehaviorDestroyEvent(__behavior, this)); + } + + public Generic FindSingleton() where Generic : Behavior + { + foreach (Behavior __behavior in behaviors) + if (__behavior.GetType() == typeof(Generic)) + if(__behavior.EnforceSingleton) + return (Generic) __behavior; + else + throw new Exception("Behavior is not a singleton"); + + throw new Exception("Behavior not found"); + return null; + } + + public bool SingletonExists() where Generic : Behavior + { + + foreach (Behavior __behavior in behaviors) + if (__behavior.GetType() == typeof(Generic)) + if (__behavior.EnforceSingleton) + return true; + else + return false; + + return false; + } + + public void RecompileBehaviorOrder() { + behaviors.Sort((a, b) => a.Priority.CompareTo(b.Priority)); + behaviors.Reverse(); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Scenes/Bodies.cs b/Awperative/Kernel/Entities/Scenes/Bodies.cs new file mode 100644 index 0000000..77b80d4 --- /dev/null +++ b/Awperative/Kernel/Entities/Scenes/Bodies.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; + + +namespace Gravity.Kernel; + + +public sealed partial class Scene +{ + public List bodies { get; private set; } = []; + + public Body AddBody(Transform __transform) { + Body body = new Body(this, __transform); + bodies.Add(body); + body.Create(); + + BodyCreatedEvent?.Invoke(this, new BodyCreateEvent(body, this)); + + return body; + } + + public Body AddBody() { + Body body = new Body(this, new Transform()); + bodies.Add(body); + body.Create(); + + BodyCreatedEvent?.Invoke(this, new BodyCreateEvent(body, this)); + + return body; + } + + public Body[] GetBodies(string tag) { + List _bodies = new List(); + + foreach (Body body in bodies) + if (body.tags.Contains(tag)) + _bodies.Add(body); + + + if(_bodies.Count == 0) + throw new Exception("No Bodies found with the tag " + tag); + + return _bodies.ToArray(); + } + + public Body GetBody(string tag) { + foreach (Body body in bodies) + if (body.tags.Contains(tag)) + return body; + + throw new Exception("No Body found with the tag " + tag); + } + + public void DestroyBody(Body __body) { + __body.Destroy(); + BodyDestroyedEvent?.Invoke(this, new BodyDestroyEvent(__body, this)); + if (!bodies.Remove(__body)) + throw new Exception("Removal Failed! Does the Body Exist?"); + } + + //todo: add destroying and creating bodies with tags + + + //TAG SYSTEM IN V4 + +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Scenes/Core.cs b/Awperative/Kernel/Entities/Scenes/Core.cs new file mode 100644 index 0000000..144a14b --- /dev/null +++ b/Awperative/Kernel/Entities/Scenes/Core.cs @@ -0,0 +1,10 @@ + + +namespace Gravity.Kernel; + +public sealed partial class Scene +{ + + + //todo: add scene.destroy in v5 +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Scenes/Events.cs b/Awperative/Kernel/Entities/Scenes/Events.cs new file mode 100644 index 0000000..28035a6 --- /dev/null +++ b/Awperative/Kernel/Entities/Scenes/Events.cs @@ -0,0 +1,15 @@ +using System; + + +namespace Gravity.Kernel; + + +public sealed partial class Scene +{ + public event EventHandler BehaviorCreatedEvent; + public event EventHandler BehaviorDestroyedEvent; + + + public event EventHandler BodyCreatedEvent; + public event EventHandler BodyDestroyedEvent; +} \ No newline at end of file diff --git a/Awperative/Kernel/Entities/Scenes/Time.cs b/Awperative/Kernel/Entities/Scenes/Time.cs new file mode 100644 index 0000000..688d633 --- /dev/null +++ b/Awperative/Kernel/Entities/Scenes/Time.cs @@ -0,0 +1,32 @@ +using Microsoft.Xna.Framework; + + +namespace Gravity.Kernel; + +public sealed partial class Scene +{ + public void Initialize() { + foreach (Behavior behavior in behaviors) behavior.Initialize(); + foreach (Body body in bodies) body.Initialize(); + } + + public void Terminate() { + foreach (Behavior behavior in behaviors) behavior.Terminate(); + foreach (Body body in bodies) body.Terminate(); + } + + public void Load() { + foreach (Behavior behavior in behaviors) { behavior.Load(); } + foreach (Body body in bodies) { body.Load(); } + } + + public void Update(GameTime __gameTime) { + foreach (Behavior behavior in behaviors) { behavior.Update(__gameTime); } + foreach (Body body in bodies) { body.Update(__gameTime); } + } + + public void Draw(GameTime __gameTime) { + foreach (Behavior behavior in behaviors) { behavior.Draw(__gameTime); } + foreach (Body body in bodies) { body.Draw(__gameTime); } + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Behaviors/BehaviorCreateEvent.cs b/Awperative/Kernel/Events/Behaviors/BehaviorCreateEvent.cs new file mode 100644 index 0000000..b3a77f8 --- /dev/null +++ b/Awperative/Kernel/Events/Behaviors/BehaviorCreateEvent.cs @@ -0,0 +1,15 @@ +namespace Gravity.Kernel; + +public sealed record BehaviorCreateEvent +{ + public readonly Behavior behavior; + public readonly Scene scene; + + internal BehaviorCreateEvent() {} + + internal BehaviorCreateEvent(Behavior __behavior, Scene __scene) + { + behavior = __behavior; + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Behaviors/BehaviorDestroyEvent.cs b/Awperative/Kernel/Events/Behaviors/BehaviorDestroyEvent.cs new file mode 100644 index 0000000..13518e5 --- /dev/null +++ b/Awperative/Kernel/Events/Behaviors/BehaviorDestroyEvent.cs @@ -0,0 +1,15 @@ +namespace Gravity.Kernel; + +public sealed record BehaviorDestroyEvent +{ + public readonly Behavior behavior; + public readonly Scene scene; + + internal BehaviorDestroyEvent() {} + + internal BehaviorDestroyEvent(Behavior __behavior, Scene __scene) + { + behavior = __behavior; + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Bodies/BodyCreateEvent.cs b/Awperative/Kernel/Events/Bodies/BodyCreateEvent.cs new file mode 100644 index 0000000..0ec322a --- /dev/null +++ b/Awperative/Kernel/Events/Bodies/BodyCreateEvent.cs @@ -0,0 +1,15 @@ +namespace Gravity.Kernel; + +public sealed record BodyCreateEvent +{ + public readonly Body body; + public readonly Scene scene; + + internal BodyCreateEvent() {} + + internal BodyCreateEvent(Body __body, Scene __scene) + { + body = __body; + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Bodies/BodyDestroyEvent.cs b/Awperative/Kernel/Events/Bodies/BodyDestroyEvent.cs new file mode 100644 index 0000000..4244b63 --- /dev/null +++ b/Awperative/Kernel/Events/Bodies/BodyDestroyEvent.cs @@ -0,0 +1,15 @@ +namespace Gravity.Kernel; + +public sealed record BodyDestroyEvent +{ + public readonly Body body; + public readonly Scene scene; + + internal BodyDestroyEvent() {} + + internal BodyDestroyEvent(Body __body, Scene __scene) + { + body = __body; + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Components/ComponentCreateEvent.cs b/Awperative/Kernel/Events/Components/ComponentCreateEvent.cs new file mode 100644 index 0000000..c8f8183 --- /dev/null +++ b/Awperative/Kernel/Events/Components/ComponentCreateEvent.cs @@ -0,0 +1,17 @@ +namespace Gravity.Kernel; + +public sealed record ComponentCreateEvent +{ + public readonly Component component; + public readonly Body body; + public readonly Scene scene; + + internal ComponentCreateEvent() {} + + internal ComponentCreateEvent(Component __component, Body __body, Scene __scene) + { + component = __component; + body = __body; + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Components/ComponentDestroyEvent.cs b/Awperative/Kernel/Events/Components/ComponentDestroyEvent.cs new file mode 100644 index 0000000..a0941e4 --- /dev/null +++ b/Awperative/Kernel/Events/Components/ComponentDestroyEvent.cs @@ -0,0 +1,17 @@ +namespace Gravity.Kernel; + +public sealed record ComponentDestroyEvent +{ + public readonly Component component; + public readonly Body body; + public readonly Scene scene; + + internal ComponentDestroyEvent() {} + + internal ComponentDestroyEvent(Component __component, Body __body, Scene __scene) + { + component = __component; + body = __body; + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Scenes/SceneCreateEvent.cs b/Awperative/Kernel/Events/Scenes/SceneCreateEvent.cs new file mode 100644 index 0000000..2e0e0b9 --- /dev/null +++ b/Awperative/Kernel/Events/Scenes/SceneCreateEvent.cs @@ -0,0 +1,14 @@ +namespace Gravity.Kernel; + + +public sealed record SceneCreateEvent +{ + public Scene scene; + + internal SceneCreateEvent() {} + + internal SceneCreateEvent(Scene __scene) + { + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Scenes/SceneDestroyEvent.cs b/Awperative/Kernel/Events/Scenes/SceneDestroyEvent.cs new file mode 100644 index 0000000..e29c93e --- /dev/null +++ b/Awperative/Kernel/Events/Scenes/SceneDestroyEvent.cs @@ -0,0 +1,14 @@ +namespace Gravity.Kernel; + + +public sealed record SceneDestroyEvent +{ + public Scene scene; + + internal SceneDestroyEvent() {} + + internal SceneDestroyEvent(Scene __scene) + { + scene = __scene; + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Events/Transform/TransformModifyEvent.cs b/Awperative/Kernel/Events/Transform/TransformModifyEvent.cs new file mode 100644 index 0000000..1dbeebe --- /dev/null +++ b/Awperative/Kernel/Events/Transform/TransformModifyEvent.cs @@ -0,0 +1,60 @@ +using Microsoft.Xna.Framework; + + +namespace Gravity.Kernel; + +public sealed record TransformModifyEvent +{ + public readonly Transform before; + public readonly Transform after; + + internal TransformModifyEvent() {} + + internal TransformModifyEvent(Transform __before, Transform __after) + { + before = __before; + after = __after; + } + + internal static TransformModifyEvent FromTransforms(Transform __previous, Transform __after) + { + Transform before = __previous; + Transform after = new Transform(__after.Origin, __after.Position, __after.Depth, __after.Rotation, __after.Scale); + return new TransformModifyEvent(before, after); + } + + internal static TransformModifyEvent FromOrigin(Transform __previous, Vector2 __origin) + { + Transform before = __previous; + Transform after = new Transform(__origin, __previous.Position, __previous.Depth, __previous.Rotation, __previous.Scale); + return new TransformModifyEvent(before, after); + } + + internal static TransformModifyEvent FromPosition(Transform __previous, Vector2 __position) + { + Transform before = __previous; + Transform after = new Transform(__previous.Origin, __position, __previous.Depth, __previous.Rotation, __previous.Scale); + return new TransformModifyEvent(before, after); + } + + internal static TransformModifyEvent FromDepth(Transform __previous, float __depth) + { + Transform before = __previous; + Transform after = new Transform(__previous.Origin, __previous.Position, __depth, __previous.Rotation, __previous.Scale); + return new TransformModifyEvent(before, after); + } + + internal static TransformModifyEvent FromRotation(Transform __previous, float __rotation) + { + Transform before = __previous; + Transform after = new Transform(__previous.Origin, __previous.Position, __previous.Depth, __rotation, __previous.Scale); + return new TransformModifyEvent(before, after); + } + + internal static TransformModifyEvent FromScale(Transform __previous, Vector2 __scale) + { + Transform before = __previous; + Transform after = new Transform(__previous.Origin, __previous.Position, __previous.Depth, __previous.Rotation, __scale); + return new TransformModifyEvent(before, after); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Kernel.txt b/Awperative/Kernel/Kernel.txt new file mode 100644 index 0000000..c54ca12 --- /dev/null +++ b/Awperative/Kernel/Kernel.txt @@ -0,0 +1,3 @@ +ESSENTIAL TO THE FUNCTION OF THE GAME, + +Component entity system! \ No newline at end of file diff --git a/Awperative/Kernel/Overhead/AwperativeClass.cs b/Awperative/Kernel/Overhead/AwperativeClass.cs new file mode 100644 index 0000000..7354f25 --- /dev/null +++ b/Awperative/Kernel/Overhead/AwperativeClass.cs @@ -0,0 +1,10 @@ +namespace Gravity.Kernel; + +public interface AwperativeHook +{ + //DONT LOAD ASSETS HERE + public void Initialize() {} + public void Terminate() {} + + public void Load() {} +} \ No newline at end of file diff --git a/Awperative/Kernel/Overhead/Base.cs b/Awperative/Kernel/Overhead/Base.cs new file mode 100644 index 0000000..f10d88f --- /dev/null +++ b/Awperative/Kernel/Overhead/Base.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; + + +namespace Gravity.Kernel; + +//todo: make static +public class Base : Game +{ + public static GraphicsDeviceManager GraphicsDeviceManager; + + public static ContentManager ContentManager { get; private set; } + public static SpriteBatch SpritesBatch; + + public static List LoadedScenes { get; private set; } = []; + + public static Scene MainScene { get; private set; } + + public Base() + { + + //todo: move this asshole to camera + GraphicsDeviceManager = new GraphicsDeviceManager(this); + GraphicsDeviceManager.PreferredBackBufferWidth = 1920; + GraphicsDeviceManager.PreferredBackBufferHeight = 1080; + GraphicsDeviceManager.IsFullScreen = true; + Content.RootDirectory = "Content"; + IsMouseVisible = true; + } + + protected override void Initialize() + { + + + ContentManager = Content; + SpritesBatch = new SpriteBatch(GraphicsDevice); + + MainScene = new Scene(); + LoadedScenes.Add(MainScene); + + //todo: generalize initialization, load a json file containing scripts to run and try running them + //intptr.size + //Marshal.Sizeof + + foreach (AwperativeHook hook in Core.ScriptingHooks) + hook.Initialize(); + + // TODO: Add your initialization logic here + foreach(Scene scene in LoadedScenes) + scene.Initialize(); + + base.Initialize(); + } + + protected override void LoadContent() + { + foreach (AwperativeHook hook in Core.ScriptingHooks) + hook.Load(); + + foreach(Scene scene in LoadedScenes) + scene.Load(); + } + + protected override void Update(GameTime gameTime) + { + + if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || + Keyboard.GetState().IsKeyDown(Keys.Escape)) + Exit(); + + // TODO: Add your update logic here + //TODO: add specific error codes so i know when json went wrong + foreach(Scene scene in LoadedScenes) + scene.Update(gameTime); + base.Update(gameTime); + } + + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.Black); + + // TODO: Add your drawing code here + //collider.Center += Vector2.One; + + + + + //ADD MOVING COLLIDERS + + foreach(Scene scene in LoadedScenes) + scene.Draw(gameTime); + base.Draw(gameTime); + } + + protected override void EndRun() + { + foreach (AwperativeHook hook in Core.ScriptingHooks) + hook.Terminate(); + + foreach (Scene scene in LoadedScenes) + scene.Terminate(); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Overhead/Core.cs b/Awperative/Kernel/Overhead/Core.cs new file mode 100644 index 0000000..04a2b4f --- /dev/null +++ b/Awperative/Kernel/Overhead/Core.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; + + +namespace Gravity.Kernel; + + +public static class Core +{ + public static Base Base; + public static List LoadedScenes => Base.LoadedScenes; + + public static List ScriptingHooks; + + //hooks are called in order + public static void Start(List __hooks) { + ScriptingHooks = __hooks; + + Base = new Base(); + Base.Run(); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Scripting/Behaviors/Behavior.cs b/Awperative/Kernel/Scripting/Behaviors/Behavior.cs new file mode 100644 index 0000000..054f52d --- /dev/null +++ b/Awperative/Kernel/Scripting/Behaviors/Behavior.cs @@ -0,0 +1,65 @@ + + +using Microsoft.Xna.Framework; + + +namespace Gravity.Kernel; + +public abstract class Behavior +{ + public Scene scene; + + public bool Enabled = false; + public bool EnforceSingleton = false; + + public int Priority = 0; + + + //scene relay + protected Body AddBody() => scene.AddBody(); + protected Body AddBody(Transform __transform) => scene.AddBody(__transform); + + protected Body GetBody(string __tag) => scene.GetBody(__tag); + protected Body[] GetBodies(string __tag) => scene.GetBodies(__tag); + + protected void DestroyBody(Body __body) => scene.DestroyBody(__body); + + + + protected Generic AddBehavior() where Generic : Behavior => scene.AddBehavior(); + protected Generic AddBehavior(object[] __args) where Generic : Behavior => scene.AddBehavior(__args); + + protected Generic GetBehavior() where Generic : Behavior => scene.GetBehavior(); + protected Generic[] GetBehaviors() where Generic : Behavior => scene.GetBehaviors(); + + protected void RemoveBehavior() where Generic : Behavior => scene.RemoveBehavior(); + + + + //GAME HAS JUST BEGUN/ended + public virtual void Initialize() {} + public virtual void Terminate() {} + + //WE ARE LOADING STUFF + public virtual void Load() {} + + //You know what these do + public virtual void Update(GameTime __gameTime) {} + public virtual void Draw(GameTime __gameTime) {} + + //component/body/scene is being created or destroyed + public virtual void Create() {} + public virtual void Destroy() {} + + //New behavior functionality + internal void Initiate(Scene __scene) { + scene = __scene; + Create(); + } + + //destroy behavior functionality + internal void End() + { + Destroy(); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Scripting/Components/Component.cs b/Awperative/Kernel/Scripting/Components/Component.cs new file mode 100644 index 0000000..57133d2 --- /dev/null +++ b/Awperative/Kernel/Scripting/Components/Component.cs @@ -0,0 +1,82 @@ +using Microsoft.Xna.Framework; + + +namespace Gravity.Kernel; + +public abstract class Component +{ + public Scene scene; + public Body body; + + public bool Enabled = false; + public bool EnforceSingleton = false; + + //0 = default highest priority called first, lowest priority called last + //todo: add optional parameter for priority at creation + public int Priority { + get => _priority; + set { _priority = value; body.RecompileComponentOrder(); } + } private int _priority = 0; + + + protected Transform transform => body.transform; + + protected Body AddBody() => scene.AddBody(); + protected Body AddBody(Transform __transform) => scene.AddBody(__transform); + + protected Body GetBody(string __tag) => scene.GetBody(__tag); + protected Body[] GetBodies(string __tag) => scene.GetBodies(__tag); + + protected void DestroyBody(Body __body) => scene.DestroyBody(__body); + + + + public Generic AddBehavior() where Generic : Behavior => scene.AddBehavior(); + public Generic AddBehavior(object[] __args) where Generic : Behavior => scene.AddBehavior(__args); + + public Generic GetBehavior() where Generic : Behavior => scene.GetBehavior(); + public Generic[] GetBehaviors() where Generic : Behavior => scene.GetBehaviors(); + + + public void RemoveBehavior() where Generic : Behavior => scene.RemoveBehavior(); + + + + public Generic AddComponent() where Generic : Component => body.AddComponent(); + public Generic AddComponent(object[] __args) where Generic : Component => body.AddComponent(__args); + + public Generic GetComponent() where Generic : Component => body.GetComponent(); + public Generic[] GetComponents() where Generic : Component => body.GetComponents(); + + public void RemoveComponent() where Generic : Component => body.RemoveComponent(); + + + + //GAME HAS JUST BEGUN/ended + public virtual void Initialize() {} + public virtual void Terminate() {} + + //WE ARE LOADING STUFF + public virtual void Load() {} + + //You know what these do + public virtual void Update(GameTime __gameTime) {} + public virtual void Draw(GameTime __gameTime) {} + + //component/body/scene is being created or destroyed + public virtual void Create() {} + public virtual void Destroy() {} + + //creation logic + internal void Initiate(Body __body) + { + body = __body; + scene = __body.scene; + Create(); + } + + internal void End() + { + Destroy(); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/Types/Transform/Transform.cs b/Awperative/Kernel/Types/Transform/Transform.cs new file mode 100644 index 0000000..066125d --- /dev/null +++ b/Awperative/Kernel/Types/Transform/Transform.cs @@ -0,0 +1,92 @@ +using System; +using Microsoft.Xna.Framework; + + +namespace Gravity.Kernel; + +public sealed class Transform +{ + + public event EventHandler OnTransformChangedEvent; + + + public Vector2 Origin { + get => _origin; set { + if(!value.Equals(_origin)) + OnTransformChangedEvent?.Invoke(this, TransformModifyEvent.FromPosition(this, value)); _origin = value; + } + } + private Vector2 _origin = Vector2.Zero; + + public Vector2 Position { + get => _position; set { + if(!value.Equals(_position)) + OnTransformChangedEvent?.Invoke(this, TransformModifyEvent.FromPosition(this, value)); _position = value; + } + } + private Vector2 _position = Vector2.Zero; + + public float Depth { + get => _depth; set { + if(!value.Equals(_depth)) + OnTransformChangedEvent?.Invoke(this, TransformModifyEvent.FromDepth(this, value)); _depth = value; + } + } + private float _depth = 0f; + + public float Rotation { + get => _rotation; set { + if(!value.Equals(_rotation)) + OnTransformChangedEvent?.Invoke(this, TransformModifyEvent.FromRotation(this, value)); _rotation = value; + } + } + private float _rotation = 0f; + + public Vector2 Scale { + get => _scale; set { + if(!value.Equals(_scale)) + OnTransformChangedEvent?.Invoke(this, TransformModifyEvent.FromScale(this, value)); _scale = value; + } + } + private Vector2 _scale = Vector2.One; + + public void Set(Vector2 __origin, Vector2 __position, float __depth, float __rotation, Vector2 __scale) + { + //todo: rename to previous and check names` + var previous = Clone(); + bool changed = false; + + if (!_origin.Equals(_origin)) { _origin = __origin; changed = true; } + if (!_position.Equals(_position)) { _position = __position; changed = true; } + if (!_depth.Equals(_depth)) { _depth = __depth; changed = true; } + if (!_rotation.Equals(_rotation)) { _rotation = __rotation; changed = true; } + if (!_scale.Equals(_scale)) { _scale = __scale; changed = true; } + + if (changed) + OnTransformChangedEvent?.Invoke(this, TransformModifyEvent.FromTransforms(this, previous)); + } + + public Transform() {} + + public Transform(Vector2 __origin, Vector2 __position, float __depth, float __rotation, Vector2 __scale) { + Origin = __origin; Position = __position; Depth = __depth; Rotation = __rotation; Scale = __scale; + } + + + //todo: operators? + + public Transform Clone() + { + return new Transform(Origin, Position, Depth, Rotation, Scale); + } + + public Matrix ToMatrix() + { + return + Matrix.CreateTranslation(new Vector3(-Position, 0f)) * + Matrix.CreateTranslation(new Vector3(-Origin, 0f)) * + Matrix.CreateRotationZ(Rotation) * + Matrix.CreateScale(new Vector3(Scale, 1f)) * + Matrix.CreateTranslation(new Vector3(Origin, 0f)); + } +} \ No newline at end of file diff --git a/Awperative/Kernel/todo.txt b/Awperative/Kernel/todo.txt new file mode 100644 index 0000000..1926cc7 --- /dev/null +++ b/Awperative/Kernel/todo.txt @@ -0,0 +1,24 @@ +events system + +json parser + +cool lossless compressor to make my files look more complex + +name save files something like ansf + + //todo: spinny loady wheel, error graphic and make it so multiple scenes can be loaded and modularized, make it so behaviors can be enabled and disabled and merging scenes loading + +body tags, behavior and component tags search methods add a way to enforce one component between all scenes, behaviors and components upgrade base script + +show colliders option + +streamline asset registries + +make the grass go in blocks kinda +and add a fading border to the edge of grass + +add multiple languages + +add collision layers and triggers + +add aabb change events \ No newline at end of file diff --git a/Awperative/bin/Debug/net8.0/Awperative.deps.json b/Awperative/bin/Debug/net8.0/Awperative.deps.json new file mode 100644 index 0000000..f7dc231 --- /dev/null +++ b/Awperative/bin/Debug/net8.0/Awperative.deps.json @@ -0,0 +1,173 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Awperative/1.0.0": { + "dependencies": { + "MonoGame.Framework.DesktopGL": "3.8.4.1" + }, + "runtime": { + "Awperative.dll": {} + } + }, + "MonoGame.Framework.DesktopGL/3.8.4.1": { + "dependencies": { + "MonoGame.Library.OpenAL": "1.24.3.2", + "MonoGame.Library.SDL": "2.32.2.1", + "NVorbis": "0.10.4" + }, + "runtime": { + "lib/net8.0/MonoGame.Framework.dll": { + "assemblyVersion": "3.8.4.1", + "fileVersion": "3.8.4.1" + } + } + }, + "MonoGame.Library.OpenAL/1.24.3.2": { + "runtimeTargets": { + "runtimes/android-arm/native/libopenal.so": { + "rid": "android-arm", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/android-arm64/native/libopenal.so": { + "rid": "android-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/android-x64/native/libopenal.so": { + "rid": "android-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/android-x86/native/libopenal.so": { + "rid": "android-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/ios-arm64/native/libopenal.a": { + "rid": "ios-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/iossimulator-arm64/native/libopenal.a": { + "rid": "iossimulator-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/iossimulator-x64/native/libopenal.a": { + "rid": "iossimulator-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libopenal.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libopenal.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx/native/libopenal.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/openal.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "MonoGame.Library.SDL/2.32.2.1": { + "runtimeTargets": { + "runtimes/linux-x64/native/libSDL2-2.0.so.0": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx/native/libSDL2-2.0.0.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/SDL2.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "NVorbis/0.10.4": { + "dependencies": { + "System.Memory": "4.5.3", + "System.ValueTuple": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/NVorbis.dll": { + "assemblyVersion": "0.10.4.0", + "fileVersion": "0.10.4.0" + } + } + }, + "System.Memory/4.5.3": {}, + "System.ValueTuple/4.5.0": {} + } + }, + "libraries": { + "Awperative/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "MonoGame.Framework.DesktopGL/3.8.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YybxIIT5+Ky78E/XdkS0glyluMr2EeDZwx2LqXULAOCqiKt1+aDrjPZaqLL5qpNgBcMEHUeZJ4YjWe4TAZlWLw==", + "path": "monogame.framework.desktopgl/3.8.4.1", + "hashPath": "monogame.framework.desktopgl.3.8.4.1.nupkg.sha512" + }, + "MonoGame.Library.OpenAL/1.24.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nGRsXQXs+NSUC3C5w90hFQfyKdZPpBnHnyg2w+Dw/2pUH7s+CoRWTJNYbzzdJf3+aeUvfvG4rTbFvMKDDj5olA==", + "path": "monogame.library.openal/1.24.3.2", + "hashPath": "monogame.library.openal.1.24.3.2.nupkg.sha512" + }, + "MonoGame.Library.SDL/2.32.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-T4E2ppGlSTC2L9US1rxtdg3qTbarRzNId31xZoumUW9cf9Nq8nRQPMu9GzvZGrhfSySf0+UWPEj1rlicps+P/w==", + "path": "monogame.library.sdl/2.32.2.1", + "hashPath": "monogame.library.sdl.2.32.2.1.nupkg.sha512" + }, + "NVorbis/0.10.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WYnil3DhQHzjCY0dM9I2B3r1vWip90AOuQd25KE4NrjPQBg0tBJFluRLm5YPnO5ZLDmwrfosY8jCQGQRmWI/Pg==", + "path": "nvorbis/0.10.4", + "hashPath": "nvorbis.0.10.4.nupkg.sha512" + }, + "System.Memory/4.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "path": "system.memory/4.5.3", + "hashPath": "system.memory.4.5.3.nupkg.sha512" + }, + "System.ValueTuple/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", + "path": "system.valuetuple/4.5.0", + "hashPath": "system.valuetuple.4.5.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Awperative/bin/Debug/net8.0/Awperative.dll b/Awperative/bin/Debug/net8.0/Awperative.dll new file mode 100644 index 0000000000000000000000000000000000000000..0d4bf7038a58776131c83051e801c0161f271f44 GIT binary patch literal 32256 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 literal 0 HcmV?d00001 diff --git a/Awperative/bin/Debug/net8.0/Awperative.pdb b/Awperative/bin/Debug/net8.0/Awperative.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ef94919f7772b57502d212022bf94eb2f463b127 GIT binary patch literal 22280 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 literal 0 HcmV?d00001 diff --git a/Awperative/obj/Awperative.csproj.nuget.dgspec.json b/Awperative/obj/Awperative.csproj.nuget.dgspec.json new file mode 100644 index 0000000..d950c54 --- /dev/null +++ b/Awperative/obj/Awperative.csproj.nuget.dgspec.json @@ -0,0 +1,84 @@ +{ + "format": 1, + "restore": { + "/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj": {} + }, + "projects": { + "/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj", + "projectName": "Awperative", + "projectPath": "/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj", + "packagesPath": "/Users/averynorris/.nuget/packages/", + "outputPath": "/Users/averynorris/Programming/Test/Awperative/Awperative/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/averynorris/.nuget/NuGet/NuGet.Config" + ], + "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": { + "MonoGame.Framework.DesktopGL": { + "suppressParent": "All", + "target": "Package", + "version": "[3.8.*, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.20, 8.0.20]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.20, 8.0.20]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.305/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Awperative/obj/Awperative.csproj.nuget.g.props b/Awperative/obj/Awperative.csproj.nuget.g.props new file mode 100644 index 0000000..3e128ba --- /dev/null +++ b/Awperative/obj/Awperative.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /Users/averynorris/.nuget/packages/ + /Users/averynorris/.nuget/packages/ + PackageReference + 6.14.0 + + + + + \ No newline at end of file diff --git a/Awperative/obj/Awperative.csproj.nuget.g.targets b/Awperative/obj/Awperative.csproj.nuget.g.targets new file mode 100644 index 0000000..6a2cdf1 --- /dev/null +++ b/Awperative/obj/Awperative.csproj.nuget.g.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Awperative/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/Awperative/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..dca70aa --- /dev/null +++ b/Awperative/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/Awperative/obj/Debug/net8.0/Awperative.AssemblyInfo.cs b/Awperative/obj/Debug/net8.0/Awperative.AssemblyInfo.cs new file mode 100644 index 0000000..76a227e --- /dev/null +++ b/Awperative/obj/Debug/net8.0/Awperative.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Awperative")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("Awperative")] +[assembly: System.Reflection.AssemblyTitleAttribute("Awperative")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Awperative/obj/Debug/net8.0/Awperative.AssemblyInfoInputs.cache b/Awperative/obj/Debug/net8.0/Awperative.AssemblyInfoInputs.cache new file mode 100644 index 0000000..03a8bfe --- /dev/null +++ b/Awperative/obj/Debug/net8.0/Awperative.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +5ba9dc33764c600be126a717504a7b55bb9ffa034b1ff0e7811e1287f2a9c3ab diff --git a/Awperative/obj/Debug/net8.0/Awperative.GeneratedMSBuildEditorConfig.editorconfig b/Awperative/obj/Debug/net8.0/Awperative.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..f39e7ae --- /dev/null +++ b/Awperative/obj/Debug/net8.0/Awperative.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,15 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = Awperative +build_property.ProjectDir = /Users/averynorris/Programming/Test/Awperative/Awperative/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/Awperative/obj/Debug/net8.0/Awperative.assets.cache b/Awperative/obj/Debug/net8.0/Awperative.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..d246e1c389c977976b869a21c3f1380eb01f0e34 GIT binary patch literal 5256 zcmchbOHSTat0dL^FRI>zsSL)s!l?<+^E@Ri(~Z#lq)H)2cC*+cn2*RCRfm?XfJ|k#(&s8{FAr zY55ua3*>*``|J93chtA=O(WCq1T+biEJK)B&S|hDM1xI3VHf$Wg>dJ)&sjL6Mk~VMP%B%C)n?x{xUt`{Ee+U?^BqIdrJ@dI zkK4Ax>+Bh?n^v3d%)56^6}`z%nhl-PT?)}1(V-tjLE}Z8VwZ9oyp3;)=?p}fFbmPk zeixd9sMF0$#2Id#kiDVIxTx#&g6Iln#&|O#Fi0>XXwWx12`CTg3O=eg3FdKs0a}EX zp!c9aw9YT8q;h@47SFq%^1NCPeS-7DTXX5W#)`g+-3+>(Gag1Z_aZ zRe|TSqoCggN*p@b34IfipgYjj#Qb73@Vfws11CFy--9IRK6FLkd$~~}z6FptaIzEl z14x1%LL;q%L$h2nZOZVlcq>sU{t+nRsL4*$k01%!hODusIH+x{-qaPxv_{5fz=^{r zJK@Wa1f`+I)!~QcdSvW(022pKc7o4960{4AH`R5`XkJ7GJ$hZt0wfNc>;(QXBtbdo zhp|Sz3mzKoXzWjb5r<87!rp@<=u@aVR&3M07+g}+HfDCz{QL|Iam-{V=FcGs`U0wq zmHDM+YzG4EZkpKQqmaJ@LL4&L3Hd8Xg1&}o{|DJtbveU!Gc1D|LG1Nmse$uyW*f(N z?DZ_|aX-emwA=4PwA+6J#c`9pKRwRJ$K9J7f;i23^5Zceg3wQfK$E>cKa}x7_az5W zQ;8H6;`|U=viGM3ZgsAw_`Gq{EO4jPEgp+%Y*n=w^gTr#s+mU8tte+pigR8x+>SOd z|KjUQuh5$67KrO^gNOn#afAXj=?=MAw2SqIuAOO)-p=!iW^i@#K+$bJ{hZsT-r{QF z#A@;cAr(e>Gcgr&YTvfGbJA|`q&qKCPs~R9&^%N0goDwR>F0@AYL<1)KF@0wKg0Ih zo~#hq0%}1=qjR!p95>4Zwj5G1;yup<%HpUBcG^3RZ;2^7<<; zAr5hz3EaCUAi_2wkpzB>2i#KPjvut%jltW0>Cmtw#tZmd$KSVwp>KiqTI>31luOcW p68c}KX>Y&vXObWeoNUDIMf>f2F;ajM^uo#A;w0hM2kq@D{{d0+jdTD2 literal 0 HcmV?d00001 diff --git a/Awperative/obj/Debug/net8.0/Awperative.csproj.AssemblyReference.cache b/Awperative/obj/Debug/net8.0/Awperative.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..5aa557fdd9d2787f7c8d2418c0110e301d776a4d GIT binary patch literal 500 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 literal 0 HcmV?d00001 diff --git a/Awperative/obj/Debug/net8.0/Awperative.pdb b/Awperative/obj/Debug/net8.0/Awperative.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ef94919f7772b57502d212022bf94eb2f463b127 GIT binary patch literal 22280 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 literal 0 HcmV?d00001 diff --git a/Awperative/obj/Debug/net8.0/ref/Awperative.dll b/Awperative/obj/Debug/net8.0/ref/Awperative.dll new file mode 100644 index 0000000000000000000000000000000000000000..40fa95f869d234d965cafd55aa407135c3ca54dc GIT binary patch literal 13312 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 F{|Ug7PL}`x literal 0 HcmV?d00001 diff --git a/Awperative/obj/Debug/net8.0/refint/Awperative.dll b/Awperative/obj/Debug/net8.0/refint/Awperative.dll new file mode 100644 index 0000000000000000000000000000000000000000..40fa95f869d234d965cafd55aa407135c3ca54dc GIT binary patch literal 13312 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 F{|Ug7PL}`x literal 0 HcmV?d00001 diff --git a/Awperative/obj/project.assets.json b/Awperative/obj/project.assets.json new file mode 100644 index 0000000..e8ed7c2 --- /dev/null +++ b/Awperative/obj/project.assets.json @@ -0,0 +1,354 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "MonoGame.Framework.DesktopGL/3.8.4.1": { + "type": "package", + "dependencies": { + "MonoGame.Library.OpenAL": "1.24.3.2", + "MonoGame.Library.SDL": "2.32.2.1", + "NVorbis": "0.10.4" + }, + "compile": { + "lib/net8.0/MonoGame.Framework.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MonoGame.Framework.dll": { + "related": ".xml" + } + }, + "build": { + "build/MonoGame.Framework.DesktopGL.targets": {} + } + }, + "MonoGame.Library.OpenAL/1.24.3.2": { + "type": "package", + "runtimeTargets": { + "runtimes/android-arm/native/libopenal.so": { + "assetType": "native", + "rid": "android-arm" + }, + "runtimes/android-arm64/native/libopenal.so": { + "assetType": "native", + "rid": "android-arm64" + }, + "runtimes/android-x64/native/libopenal.so": { + "assetType": "native", + "rid": "android-x64" + }, + "runtimes/android-x86/native/libopenal.so": { + "assetType": "native", + "rid": "android-x86" + }, + "runtimes/ios-arm64/native/libopenal.a": { + "assetType": "native", + "rid": "ios-arm64" + }, + "runtimes/iossimulator-arm64/native/libopenal.a": { + "assetType": "native", + "rid": "iossimulator-arm64" + }, + "runtimes/iossimulator-x64/native/libopenal.a": { + "assetType": "native", + "rid": "iossimulator-x64" + }, + "runtimes/linux-arm64/native/libopenal.so": { + "assetType": "native", + "rid": "linux-arm64" + }, + "runtimes/linux-x64/native/libopenal.so": { + "assetType": "native", + "rid": "linux-x64" + }, + "runtimes/osx/native/libopenal.dylib": { + "assetType": "native", + "rid": "osx" + }, + "runtimes/win-x64/native/openal.dll": { + "assetType": "native", + "rid": "win-x64" + } + } + }, + "MonoGame.Library.SDL/2.32.2.1": { + "type": "package", + "runtimeTargets": { + "runtimes/linux-x64/native/libSDL2-2.0.so.0": { + "assetType": "native", + "rid": "linux-x64" + }, + "runtimes/osx/native/libSDL2-2.0.0.dylib": { + "assetType": "native", + "rid": "osx" + }, + "runtimes/win-x64/native/SDL2.dll": { + "assetType": "native", + "rid": "win-x64" + } + } + }, + "NVorbis/0.10.4": { + "type": "package", + "dependencies": { + "System.Memory": "4.5.3", + "System.ValueTuple": "4.5.0" + }, + "compile": { + "lib/netstandard2.0/NVorbis.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/NVorbis.dll": { + "related": ".xml" + } + } + }, + "System.Memory/4.5.3": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.ValueTuple/4.5.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + } + } + }, + "libraries": { + "MonoGame.Framework.DesktopGL/3.8.4.1": { + "sha512": "YybxIIT5+Ky78E/XdkS0glyluMr2EeDZwx2LqXULAOCqiKt1+aDrjPZaqLL5qpNgBcMEHUeZJ4YjWe4TAZlWLw==", + "type": "package", + "path": "monogame.framework.desktopgl/3.8.4.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "README-packages.md", + "build/MonoGame.Framework.DesktopGL.targets", + "lib/net8.0/MonoGame.Framework.dll", + "lib/net8.0/MonoGame.Framework.xml", + "monogame.framework.desktopgl.3.8.4.1.nupkg.sha512", + "monogame.framework.desktopgl.nuspec" + ] + }, + "MonoGame.Library.OpenAL/1.24.3.2": { + "sha512": "nGRsXQXs+NSUC3C5w90hFQfyKdZPpBnHnyg2w+Dw/2pUH7s+CoRWTJNYbzzdJf3+aeUvfvG4rTbFvMKDDj5olA==", + "type": "package", + "path": "monogame.library.openal/1.24.3.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE", + "README.md", + "monogame.library.openal.1.24.3.2.nupkg.sha512", + "monogame.library.openal.nuspec", + "runtimes/android-arm/native/libopenal.so", + "runtimes/android-arm64/native/libopenal.so", + "runtimes/android-x64/native/libopenal.so", + "runtimes/android-x86/native/libopenal.so", + "runtimes/ios-arm64/native/libopenal.a", + "runtimes/iossimulator-arm64/native/libopenal.a", + "runtimes/iossimulator-x64/native/libopenal.a", + "runtimes/linux-arm64/native/libopenal.so", + "runtimes/linux-x64/native/libopenal.so", + "runtimes/osx/native/libopenal.dylib", + "runtimes/win-x64/native/openal.dll" + ] + }, + "MonoGame.Library.SDL/2.32.2.1": { + "sha512": "T4E2ppGlSTC2L9US1rxtdg3qTbarRzNId31xZoumUW9cf9Nq8nRQPMu9GzvZGrhfSySf0+UWPEj1rlicps+P/w==", + "type": "package", + "path": "monogame.library.sdl/2.32.2.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.txt", + "README.md", + "monogame.library.sdl.2.32.2.1.nupkg.sha512", + "monogame.library.sdl.nuspec", + "runtimes/linux-x64/native/libSDL2-2.0.so.0", + "runtimes/osx/native/libSDL2-2.0.0.dylib", + "runtimes/win-x64/native/SDL2.dll" + ] + }, + "NVorbis/0.10.4": { + "sha512": "WYnil3DhQHzjCY0dM9I2B3r1vWip90AOuQd25KE4NrjPQBg0tBJFluRLm5YPnO5ZLDmwrfosY8jCQGQRmWI/Pg==", + "type": "package", + "path": "nvorbis/0.10.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE", + "lib/net45/NVorbis.dll", + "lib/net45/NVorbis.xml", + "lib/netstandard2.0/NVorbis.dll", + "lib/netstandard2.0/NVorbis.xml", + "nvorbis.0.10.4.nupkg.sha512", + "nvorbis.nuspec" + ] + }, + "System.Memory/4.5.3": { + "sha512": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "type": "package", + "path": "system.memory/4.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.1/System.Memory.dll", + "lib/netstandard1.1/System.Memory.xml", + "lib/netstandard2.0/System.Memory.dll", + "lib/netstandard2.0/System.Memory.xml", + "ref/netcoreapp2.1/_._", + "system.memory.4.5.3.nupkg.sha512", + "system.memory.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.ValueTuple/4.5.0": { + "sha512": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", + "type": "package", + "path": "system.valuetuple/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net461/System.ValueTuple.dll", + "lib/net461/System.ValueTuple.xml", + "lib/net47/System.ValueTuple.dll", + "lib/net47/System.ValueTuple.xml", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.0/System.ValueTuple.dll", + "lib/netstandard1.0/System.ValueTuple.xml", + "lib/netstandard2.0/_._", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "lib/portable-net40+sl4+win8+wp8/System.ValueTuple.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net461/System.ValueTuple.dll", + "ref/net47/System.ValueTuple.dll", + "ref/netcoreapp2.0/_._", + "ref/netstandard2.0/_._", + "ref/portable-net40+sl4+win8+wp8/System.ValueTuple.dll", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.valuetuple.4.5.0.nupkg.sha512", + "system.valuetuple.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "MonoGame.Framework.DesktopGL >= 3.8.*" + ] + }, + "packageFolders": { + "/Users/averynorris/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj", + "projectName": "Awperative", + "projectPath": "/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj", + "packagesPath": "/Users/averynorris/.nuget/packages/", + "outputPath": "/Users/averynorris/Programming/Test/Awperative/Awperative/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/averynorris/.nuget/NuGet/NuGet.Config" + ], + "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": { + "MonoGame.Framework.DesktopGL": { + "suppressParent": "All", + "target": "Package", + "version": "[3.8.*, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.20, 8.0.20]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.20, 8.0.20]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.305/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/Awperative/obj/project.nuget.cache b/Awperative/obj/project.nuget.cache new file mode 100644 index 0000000..a43b9fc --- /dev/null +++ b/Awperative/obj/project.nuget.cache @@ -0,0 +1,17 @@ +{ + "version": 2, + "dgSpecHash": "50jaUrtOXhI=", + "success": true, + "projectFilePath": "/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj", + "expectedPackageFiles": [ + "/Users/averynorris/.nuget/packages/monogame.framework.desktopgl/3.8.4.1/monogame.framework.desktopgl.3.8.4.1.nupkg.sha512", + "/Users/averynorris/.nuget/packages/monogame.library.openal/1.24.3.2/monogame.library.openal.1.24.3.2.nupkg.sha512", + "/Users/averynorris/.nuget/packages/monogame.library.sdl/2.32.2.1/monogame.library.sdl.2.32.2.1.nupkg.sha512", + "/Users/averynorris/.nuget/packages/nvorbis/0.10.4/nvorbis.0.10.4.nupkg.sha512", + "/Users/averynorris/.nuget/packages/system.memory/4.5.3/system.memory.4.5.3.nupkg.sha512", + "/Users/averynorris/.nuget/packages/system.valuetuple/4.5.0/system.valuetuple.4.5.0.nupkg.sha512", + "/Users/averynorris/.nuget/packages/microsoft.netcore.app.ref/8.0.20/microsoft.netcore.app.ref.8.0.20.nupkg.sha512", + "/Users/averynorris/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.20/microsoft.aspnetcore.app.ref.8.0.20.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/Awperative/obj/project.packagespec.json b/Awperative/obj/project.packagespec.json new file mode 100644 index 0000000..890866e --- /dev/null +++ b/Awperative/obj/project.packagespec.json @@ -0,0 +1 @@ +"restore":{"projectUniqueName":"/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj","projectName":"Awperative","projectPath":"/Users/averynorris/Programming/Test/Awperative/Awperative/Awperative.csproj","outputPath":"/Users/averynorris/Programming/Test/Awperative/Awperative/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":{"MonoGame.Framework.DesktopGL":{"suppressParent":"All","target":"Package","version":"[3.8.*, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.AspNetCore.App.Ref","version":"[8.0.20, 8.0.20]"},{"name":"Microsoft.NETCore.App.Ref","version":"[8.0.20, 8.0.20]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/local/share/dotnet/sdk/9.0.305/PortableRuntimeIdentifierGraph.json"}} \ No newline at end of file diff --git a/Awperative/obj/rider.project.restore.info b/Awperative/obj/rider.project.restore.info new file mode 100644 index 0000000..b3f2120 --- /dev/null +++ b/Awperative/obj/rider.project.restore.info @@ -0,0 +1 @@ +17687727448637213 \ No newline at end of file