using System.Numerics; using Raylib_cs; using RaylibTest.Support; namespace RaylibTest.Support; public class Window { protected int Width { get; set; } protected int Height { get; set; } protected string Title { get; set; } protected int TargetFps { get; set; } public Camera2D Camera; private List gameObjects = new List(); private List uiObjects = new List(); public Window(int width, int height, string title, int targetFps, Camera2D camera) { Width = width; Height = height; Title = title; TargetFps = targetFps; Camera = camera; } public virtual void Start() { Raylib.InitWindow(Width, Height, Title); Raylib.SetTargetFPS(TargetFps); Raylib.SetWindowMinSize(Width, Height); } public virtual void Update() { foreach (var gameObject in gameObjects) { gameObject.Draw(); } } public virtual void UpdateUi() { foreach (var uiObject in uiObjects) { uiObject.Draw(); } } public virtual void RegisterGameObject(GameObject gameObject) { gameObjects.Add(gameObject); } public virtual void UnregisterGameObject(GameObject gameObject) { gameObjects.Remove(gameObject); } public virtual void RegisterUiObject(UiObject uiObject) { uiObjects.Add(uiObject); } public virtual void Close() { Raylib.CloseWindow(); } }