From ce09bd79e944e2b904084acdf9f922adf33bcac4 Mon Sep 17 00:00:00 2001 From: Ludovic 'Archivist' Lagouardette Date: Mon, 2 Oct 2023 15:11:24 +0200 Subject: [PATCH] Added a world state object --- source/game.d | 9 ++++++++- source/world/package.d | 3 +++ source/world/world_object.d | 6 ++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/source/game.d b/source/game.d index 231e795..727feb5 100644 --- a/source/game.d +++ b/source/game.d @@ -9,13 +9,14 @@ import std.format; import std.conv : to; import core.time; import toki.symbols; -import world.screen; +import world; extern(C) __gshared string[] rt_options = [ "gcopt=initReserve:128 minPoolSize:256 parallel:2 profile:1" ]; int main(string[] args) { try { + worldContents = new WorldObjectList; InitWindow(800,600,"Unnamed project"); log(LogLevel.INFOHIGH, "Window Initialized..."); Screen.x = Screen.y = 0; @@ -58,6 +59,12 @@ int main(string[] args) { log(LogLevel.INFOLOW, "Render start..."); BeginDrawing();{ ClearBackground(Colors.WHITE); + + foreach (obj; worldContents) + { + obj.render(deltaTime); + } + DrawFPS(0,0); auto pos = GetMousePosition(); DrawText(toStringz(format("%f, %f", pos.x, pos.y)), 0, 24, 20, Colors.GREEN); diff --git a/source/world/package.d b/source/world/package.d index 808dae5..75ecbaa 100644 --- a/source/world/package.d +++ b/source/world/package.d @@ -4,4 +4,7 @@ public { import world.world_object; import world.entity; import world.rigid; + import world.screen; + + WorldObjectList worldContents; } \ No newline at end of file diff --git a/source/world/world_object.d b/source/world/world_object.d index a3e7b9e..b0fd378 100644 --- a/source/world/world_object.d +++ b/source/world/world_object.d @@ -1,12 +1,14 @@ module world.world_object; import utils.shapes; +import utils.indexedarray; +alias WorldObjectList = IndexedArray!(WorldObject, 1<<15); class WorldObject { public Vec2f position; public Rectf hitbox; - void update(float deltaTime); - void render(float deltaTime); + abstract void update(float deltaTime); + abstract void render(float deltaTime); } \ No newline at end of file