Next phase of the refactor is done. Now to replace everything in Systems.

This commit is contained in:
Zed A. Shaw 2025-08-19 01:07:28 -04:00
parent 644ff6edc0
commit 81e25f73bb
10 changed files with 163 additions and 82 deletions

View file

@ -16,6 +16,7 @@
#include <iostream>
#include "shaders.hpp"
#include "inventory.hpp"
#include "game_level.hpp"
using std::string;
using namespace fmt;
@ -55,7 +56,7 @@ void System::lighting(GameLevel &level) {
}
void System::generate_paths(GameLevel &level) {
const auto &player_pos = player_position(level);
const auto &player_pos = Game::player_position();
level.map->set_target(player_pos.location);
level.map->make_paths();
@ -91,7 +92,7 @@ void System::enemy_ai_initialize(GameLevel &level) {
void System::enemy_pathing(GameLevel &level) {
auto &world = *level.world;
auto &map = *level.map;
const auto &player_pos = player_position(level);
const auto &player_pos = Game::player_position();
world.query<Position, Motion>([&](auto ent, auto &position, auto &motion) {
if(ent != level.player) {
@ -228,7 +229,7 @@ void System::combat(GameLevel &level, int attack_id) {
if(!the_belt.has(attack_id)) return;
auto& ritual = the_belt.get(attack_id);
const auto& player_pos = player_position(level);
const auto& player_pos = Game::player_position();
auto& player_combat = world.get<Combat>(level.player);
// this is guaranteed to not return the given position
@ -279,7 +280,7 @@ void System::combat(GameLevel &level, int attack_id) {
void System::collision(GameLevel &level) {
auto &collider = *level.collision;
auto &world = *level.world;
const auto& player_pos = player_position(level);
const auto& player_pos = Game::player_position();
// this is guaranteed to not return the given position
auto [found, nearby] = collider.neighbors(player_pos.location);
@ -319,7 +320,7 @@ void System::remove_from_world(GameLevel &level, Entity entity) {
void System::pickup(GameLevel &level) {
auto &world = *level.world;
auto &collision = *level.collision;
auto pos = player_position(level);
auto pos = Game::player_position();
if(!collision.something_there(pos.aiming_at)) return;
@ -381,7 +382,7 @@ void System::device(World &world, Entity actor, Entity item) {
}
void System::plan_motion(GameLevel& level, Position move_to) {
auto& player_pos = player_position(level);
auto& player_pos = Game::player_position();
player_pos.aiming_at = move_to.aiming_at;
@ -479,10 +480,6 @@ void System::remove_from_container(World& world, Entity cont_id, const std::stri
container.remove(entity);
}
Position& System::player_position(GameLevel& level) {
auto& player = level.world->get_the<components::Player>();
return level.world->get<components::Position>(player.entity);
}
void System::inventory_swap(GameLevel &level, Entity container_id, const std::string& a_name, const std::string &b_name) {
dbc::check(a_name != b_name, "Attempt to inventory swap the same slot, you should check this and avoid calling me.");