Nerfed/Nerfed.Editor/Program.cs

64 lines
1.6 KiB
C#

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<MoonTools.ECS.System> systems = new List<MoonTools.ECS.System>();
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();
}
}