using MoonTools.ECS; using Nerfed.Runtime; using Nerfed.Runtime.Components; using Nerfed.Runtime.Systems; using System.Numerics; namespace Nerfed.Editor; internal class Program { private static readonly World world = new World(); private static List systems = new List(); private static void Main(string[] args) { Engine.OnInitialize += HandleOnInitialize; Engine.OnUpdate += HandleOnUpdate; Engine.OnRender += HandleOnRender; Engine.OnQuit += HandleOnQuit; Engine.Run(args); } private static void HandleOnInitialize() { systems.Add(new ParentSystem(world)); systems.Add(new LocalToWorldSystem(world)); Entity ent1 = world.CreateEntity(); world.Set(ent1, new LocalTransform(new Vector3(1, 0, 0), Quaternion.Identity, Vector3.One)); Entity ent2 = world.CreateEntity(); world.Set(ent2, new LocalTransform(new Vector3(0, 1, 0), Quaternion.Identity, Vector3.One)); world.Set(ent2, new Parent(ent1)); // Open project. // Setip EditorGui. EditorGui.Initialize(); } private static void HandleOnUpdate() { foreach (MoonTools.ECS.System system in systems) { system.Update(Engine.Timestep); } // Editor Update. EditorGui.Update(); // Try Catch UserCode Update. } private static void HandleOnRender() { EditorGui.Render(); } private static void HandleOnQuit() { EditorGui.Quit(); } }