#pragma once
#include "dinkyecs.hpp"
#include "map.hpp"
#include "components.hpp"
#include <ftxui/dom/canvas.hpp>

using namespace components;

namespace System {
  void lighting(DinkyECS::World &world, Map &game_map, Player &player);
  void motion(DinkyECS::World &world, Map &game_map);
  void collision(DinkyECS::World &world, Player &player);
  void death(DinkyECS::World &world);
  void enemy_pathing(DinkyECS::World &world, Map &game_map, Player &player);
  void draw_map(DinkyECS::World &world, Map &game_map, ftxui::Canvas &canvas, size_t view_x, size_t view_y);
  void draw_entities(DinkyECS::World &world, Map &game_map, ftxui::Canvas &canvas, const Point &cam_orig, size_t view_x, size_t view_y);
  void init_positions(DinkyECS::World &world);
}
