Next phase of the refactor is done. Now to replace everything in Systems.
This commit is contained in:
parent
644ff6edc0
commit
81e25f73bb
10 changed files with 163 additions and 82 deletions
17
systems.cpp
17
systems.cpp
|
@ -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.");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue