From: Brendan Hansen Date: Mon, 31 Jan 2022 14:18:44 +0000 (-0600) Subject: renamed 'entity_manager' to 'scene' X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=1593e0b4299fe77504475f4c18797b07e5961108;p=bar-game.git renamed 'entity_manager' to 'scene' --- diff --git a/src/entity/editor.onyx b/src/entity/editor.onyx index 8044048..9fdae6f 100644 --- a/src/entity/editor.onyx +++ b/src/entity/editor.onyx @@ -44,8 +44,8 @@ editor_update :: (dt: f32) { if is_button_just_down(GLFW_MOUSE_BUTTON_LEFT) && mouse_pos.x < ~~window_width - sidebar_width && mouse_pos.y > menubar_height { selected_entity_id = Entity_Nothing; - for entity_manager.entities { - get_rect := entity_manager.entity_types[it.type].get_rect; + for scene.entities { + get_rect := scene.entity_types[it.type].get_rect; if get_rect == null_proc do continue; if get_rect(it) |> Rect.contains(mouse_pos) { @@ -62,7 +62,7 @@ editor_update :: (dt: f32) { } if selected_entity_id != Entity_Nothing && active_tab == .Edit { - selected_entity := entity_manager->get(selected_entity_id); + selected_entity := scene->get(selected_entity_id); if dragging { selected_entity.pos += mouse_get_delta_vector(); @@ -76,12 +76,12 @@ editor_update :: (dt: f32) { } editor_draw :: () { - entity_manager->draw(); + scene->draw(); immediate_flush(); if selected_entity_id != Entity_Nothing { - selected_entity := entity_manager->get(selected_entity_id); - get_rect := entity_manager.entity_types[selected_entity.type].get_rect; + selected_entity := scene->get(selected_entity_id); + get_rect := scene.entity_types[selected_entity.type].get_rect; r := get_rect(selected_entity); immediate_set_color(.{1,1,0,0.5}); @@ -102,7 +102,7 @@ editor_draw :: () { x = 2; y += 2; - h = 36; + h -= 4; w = 100; for type_info.enum_values(Tabs) { @@ -149,7 +149,7 @@ editor_draw :: () { case .Edit { if selected_entity_id != Entity_Nothing { - selected_entity := entity_manager->get(selected_entity_id); + selected_entity := scene->get(selected_entity_id); render_entity_fields(selected_entity, x, y, w, h); } } @@ -199,7 +199,7 @@ editor_draw :: () { } elseif it.type == Entity_ID { value_buf: [1024] u8; - entity_type := (entity_manager->get(*cast(^Entity_ID) member_any.data)).type; // Dereferencing null here + entity_type := (scene->get(*cast(^Entity_ID) member_any.data)).type; // Dereferencing null here value_str := conv.format_va(value_buf, "{} ({})", .[member_any, .{^entity_type, type_expr}]); font_print(editor_font, x + w - font_get_width(editor_font, value_str) - 2, y + Field_Height, value_str); diff --git a/src/entity/player.onyx b/src/entity/player.onyx index a71fa45..b1c6a36 100644 --- a/src/entity/player.onyx +++ b/src/entity/player.onyx @@ -65,7 +65,7 @@ Player :: struct { if is_key_down(controls.left) do delta.x -= speed * dt; if is_key_down(controls.right) do delta.x += speed * dt; - walls := entity_manager->query_by_flags(.{pos.x - 100, pos.y - 100, 200, 200}, .Solid); + walls := scene->query_by_flags(.{pos.x - 100, pos.y - 100, 200, 200}, .Solid); defer memory.free_slice(^walls); try_move(this, .{delta.x, 0}, walls); @@ -78,9 +78,9 @@ Player :: struct { // if is_key_just_up(controls.pick_up) { if holding != Entity_Nothing { - holding_object := entity_manager->get(holding); + holding_object := scene->get(holding); holding_object.flags |= .Carryable; - vtable := ^entity_manager.entity_types[holding_object.type]; + vtable := ^scene.entity_types[holding_object.type]; if vtable.get_rect != null_proc { r := vtable.get_rect(holding_object); holding_object.pos = pos + .{Size + r.w / 2 + 4, 0}; @@ -89,7 +89,7 @@ Player :: struct { } else { area := Rect.{pos.x - Size * 2, pos.y - Size * 2, Size * 4, Size * 4}; - objects := entity_manager->query_by_flags(area, .Carryable); + objects := scene->query_by_flags(area, .Carryable); defer memory.free_slice(^objects); // This should first sort by the distance to the object @@ -112,11 +112,11 @@ Player :: struct { // if is_key_just_up(controls.interact) { area := Rect.{pos.x - Size * 2, pos.y - Size * 2, Size * 4, Size * 4}; - objects := entity_manager->query_by_flags(area, .Interactable); + objects := scene->query_by_flags(area, .Interactable); defer memory.free_slice(^objects); for objects { - vtable := ^entity_manager.entity_types[it.type]; + vtable := ^scene.entity_types[it.type]; if vtable.interact == null_proc do continue; vtable.interact(it, this); } @@ -127,8 +127,8 @@ Player :: struct { // to be above the players head. // if holding != Entity_Nothing { - holding_object := entity_manager->get(holding); - vtable := ^entity_manager.entity_types[holding_object.type]; + holding_object := scene->get(holding); + vtable := ^scene.entity_types[holding_object.type]; if vtable.get_rect != null_proc { r := vtable.get_rect(holding_object); holding_object.pos = pos - .{0, Size + r.h / 2}; @@ -146,7 +146,7 @@ Player :: struct { if it == this do continue; if it.id == this.holding do continue; - vtable := ^entity_manager.entity_types[it.type]; + vtable := ^scene.entity_types[it.type]; if Rect.intersects(ent_rect, vtable.get_rect(~~ it)) { pos -= delta; break; diff --git a/src/main.onyx b/src/main.onyx index 52f8487..8c40123 100644 --- a/src/main.onyx +++ b/src/main.onyx @@ -9,13 +9,15 @@ DEBUG :: #defined(runtime.vars.DEBUG) @GlobalVariable window: GLFWwindow_p +@GlobalVariable +scene: Entity_Manager; + @GlobalVariable window_width: u32 window_height: u32 #if DEBUG { debug_font: Font; } -entity_manager: Entity_Manager; init :: () { create_window(); @@ -42,27 +44,27 @@ init :: () { #if DEBUG { debug_font = font_lookup(.{"./assets/fonts/calibri.ttf", 16}); } - entity_manager = entity_manager_create(); - entity_manager->make(Player, .{ pos = .{300, 300}, controls=player_1_controls }); - entity_manager->make(Player, .{ pos = .{400, 300}, controls=player_2_controls, color=.{1,0,0} }); + scene = entity_manager_create(); + scene->make(Player, .{ pos = .{300, 300}, controls=player_1_controls }); + scene->make(Player, .{ pos = .{400, 300}, controls=player_2_controls, color=.{1,0,0} }); - entity_manager->make(Wall, .{ .{100, 100}, .{400, 50} }); - // entity_manager->make(Wall, .{ .{100, 100}, .{50, 400} }); - // entity_manager->make(Wall, .{ .{450, 100}, .{50, 400} }); - // entity_manager->make(Wall, .{ .{100, 450}, .{400, 50} }); + scene->make(Wall, .{ .{100, 100}, .{400, 50} }); + // scene->make(Wall, .{ .{100, 100}, .{50, 400} }); + // scene->make(Wall, .{ .{450, 100}, .{50, 400} }); + // scene->make(Wall, .{ .{100, 450}, .{400, 50} }); - entity_manager->make(Door, .{ .{150, 150}, .{50, 50} }); - entity_manager->make(Door, .{ .{400, 150}, .{50, 50} }); - entity_manager->make(Door, .{ .{400, 400}, .{50, 50} }); - entity_manager->make(Door, .{ .{150, 400}, .{50, 50} }); + scene->make(Door, .{ .{150, 150}, .{50, 50} }); + scene->make(Door, .{ .{400, 150}, .{50, 50} }); + scene->make(Door, .{ .{400, 400}, .{50, 50} }); + scene->make(Door, .{ .{150, 400}, .{50, 50} }); - entity_manager->make(Item, .{ pos=.{ 250, 250 }, color=.{1,0,0} }); - entity_manager->make(Item, .{ pos=.{ 275, 250 }, color=.{0,1,0} }); - entity_manager->make(Item, .{ pos=.{ 300, 250 }, color=.{0,0,1} }); + scene->make(Item, .{ pos=.{ 250, 250 }, color=.{1,0,0} }); + scene->make(Item, .{ pos=.{ 275, 250 }, color=.{0,1,0} }); + scene->make(Item, .{ pos=.{ 300, 250 }, color=.{0,0,1} }); #if DEBUG { println("Registered Entity types:"); - for entity_manager.entity_types.entries { + for scene.entity_types.entries { info := cast(^type_info.Type_Info_Struct) type_info.get_type_info(it.key); printf(" {}\n", info.name); } @@ -86,7 +88,7 @@ update :: (dt: f32) { return; } - entity_manager->update(dt); + scene->update(dt); } draw :: () { @@ -117,7 +119,7 @@ draw :: () { return; } - entity_manager->draw(); + scene->draw(); #if false { mx, my := mouse_get_position();