64 lines
1.6 KiB
C#
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();
|
|
}
|
|
} |