using MoonTools.ECS; using Nerfed.Editor.Systems; using Nerfed.Runtime; using Nerfed.Runtime.Components; using Nerfed.Runtime.Systems; using Nerfed.Runtime.Util; using System.Numerics; namespace Nerfed.Editor; internal class Program { private static readonly World world = new World(); private static List systems = new List(); public static List editorSystems = 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)); editorSystems.Add(new EditorHierarchyWindow(world)); Entity ent1 = world.CreateEntity("parent"); world.Set(ent1, new LocalTransform(new Vector3(1, 0, 0), Quaternion.Identity, Vector3.One)); Entity ent2 = world.CreateEntity("child"); world.Set(ent2, new LocalTransform(new Vector3(0, 1, 0), Quaternion.Identity, Vector3.One)); Transform.SetParent(world, ent2, ent1); Entity ent3 = world.CreateEntity("entity3"); world.Set(ent3, new Root()); Transform.SetParent(world, ent3, ent2); Entity ent4 = world.CreateEntity("entity4"); world.Set(ent4, new Root()); Entity ent5 = world.CreateBaseEntity("entity5"); // 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. world.FinishUpdate(); } private static void HandleOnRender() { EditorGui.Render(); } private static void HandleOnQuit() { EditorGui.Quit(); } }