Métodos públicos | |
Map (MapId map_id, const std::string &map_name, bool is_safe, const nlohmann::json &map_description, const nlohmann::json &map_mobs, const nlohmann::json &map_transitions) | |
Map (const Map &other)=delete | |
const std::string & | get_name () |
void | move (EntityId entity_id, position_t steps) |
Mueve la entidad asociada al entity_id hacia la posicion relativa steps. Más... | |
std::queue< map_change_t > & | get_transitions () |
Obtiene la cola de transiciones del mapa. Más... | |
void | teleport (EntityId player_id, position_t dest) |
Teletransporta a un jugador a través de una transición. Más... | |
nlohmann::json | add_player (nlohmann::json player_info) |
Agrega un jugador al mapa a partir de su información. Más... | |
nlohmann::json | rm_player (EntityId entity_id) |
Eliminar a un jugador identificado por su id del mapa. Más... | |
position_t | get_position (EntityId entity_id) |
position_t | get_healer_pos () const |
bool | is_safe () const |
position_t | get_nearest_entity_pos (position_t entity_pos, unsigned int distance, entity_type_t entity_type) |
Obtener la posición de la entidad de un tipo más cercana. Más... | |
bool | entity_exists (EntityId entity_id) |
Verificar si una entidad existe o no. Más... | |
void | update (uint64_t delta_t) |
Actualiza todas las entidades que contiene segun el delta_t transcurrido. Más... | |
void | push_log (const map_log_t &log) |
Agrega un log al mapa. Más... | |
void | push_action (EntityId entity_id, Action *action) |
Ejecuta sobre la entidad asociada al id la accion. Más... | |
void | drop_loot (EntityId entity_id, Item *item) |
Deja el item pasado por parámetro en la posición de la entidad. Más... | |
void | drop_loot (EntityId entity_id, const std::vector< Item * > &items) |
Deja caer la lista de items en el mapa. Más... | |
Item * | pickup_loot (EntityId entity_id) |
Intenta obtener de la posición donde se encuentra la entidad el item que haya allí. Más... | |
const PositionMap | get_position_map () const |
Obtiene una copia del mapa de posiciones de las entidades. Más... | |
bool | dirty_entities () const |
Verificar si hubo un cambio en las entidades del mapa desde la última vez que se utilizó este método. Más... | |
nlohmann::json | get_entity_data () |
Obtiene la información de las entidades del mapa. Más... | |
bool | dirty_loot () const |
Verificar si hubo un cambio en los items caidos en el mapa desde la última vez que se utilizó este método. Más... | |
nlohmann::json | get_loot_data () |
Obtiene la información de los items del mapa. Más... | |
std::queue< map_log_t > & | get_update_logs () |
Obtiene la cola de "logs" del mapa. Más... | |
nlohmann::json | get_map_data () |
Obtiene la información gráfica del mapa en forma de json . Más... | |
Métodos públicos estáticos | |
static nlohmann::json | get_position_data (const PositionMap &position_map) |
Realizar una copia en forma de json de un mapa de posiciones. Más... | |
Amigas | |
class | Action |
class | MonsterSpawner |
nlohmann::json Map::add_player | ( | nlohmann::json | player_info | ) |
Agrega un jugador al mapa a partir de su información.
player_info | Información del jugador para agregarlo al mapa. |
bool Map::dirty_entities | ( | ) | const |
Verificar si hubo un cambio en las entidades del mapa desde la última vez que se utilizó este método.
bool Map::dirty_loot | ( | ) | const |
Verificar si hubo un cambio en los items caidos en el mapa desde la última vez que se utilizó este método.
void Map::drop_loot | ( | EntityId | entity_id, |
const std::vector< Item * > & | items | ||
) |
Deja caer la lista de items en el mapa.
entity_id | Id de entidad que deja caer los items. |
items | Lista de items transferidos al mapa. |
void Map::drop_loot | ( | EntityId | entity_id, |
Item * | item | ||
) |
Deja el item pasado por parámetro en la posición de la entidad.
entity_id | Id de entidad que deja caer el item. |
item | Item transferido al mapa. |
bool Map::entity_exists | ( | EntityId | entity_id | ) |
Verificar si una entidad existe o no.
entity_id | Id de entidad a verificar si existe. |
nlohmann::json Map::get_entity_data | ( | ) |
Obtiene la información de las entidades del mapa.
nlohmann::json Map::get_loot_data | ( | ) |
Obtiene la información de los items del mapa.
nlohmann::json Map::get_map_data | ( | ) |
Obtiene la información gráfica del mapa en forma de json
.
position_t Map::get_nearest_entity_pos | ( | position_t | entity_pos, |
unsigned int | distance, | ||
entity_type_t | entity_type | ||
) |
Obtener la posición de la entidad de un tipo más cercana.
entity_pos | Posición orígen desde donde buscar. |
distance | Distancia máxima (Manhattan) a buscar la entidad. |
entity_type | Tipo de entidad buscada. |
|
static |
Realizar una copia en forma de json
de un mapa de posiciones.
position_map | Mapa de posiciones. |
json
. const PositionMap Map::get_position_map | ( | ) | const |
Obtiene una copia del mapa de posiciones de las entidades.
std::queue< map_change_t > & Map::get_transitions | ( | ) |
Obtiene la cola de transiciones del mapa.
std::queue< map_log_t > & Map::get_update_logs | ( | ) |
Obtiene la cola de "logs" del mapa.
void Map::move | ( | EntityId | entity_id, |
position_t | steps | ||
) |
Mueve la entidad asociada al entity_id hacia la posicion relativa steps.
entity_id | Id de entidad a mover. |
steps | Posición relativa a la entidad a donde se va a mover. |
Item * Map::pickup_loot | ( | EntityId | entity_id | ) |
Intenta obtener de la posición donde se encuentra la entidad el item que haya allí.
entity_id | Id de entidad que intenta obtener el item. |
NULL
si no había nada en esa posición. void Map::push_action | ( | EntityId | entity_id, |
Action * | action | ||
) |
Ejecuta sobre la entidad asociada al id la accion.
El mapa se encargará de liberar la memoria ocupada por la acción a través de un delete
.
entity_id | Id de entidad. |
action | Puntero a clase de tipo Accion alocada en el Heap. |
void Map::push_log | ( | const map_log_t & | log | ) |
Agrega un log al mapa.
Los logs son ulitizados para enviar a los jugadores correspondientes información específica según sus acciones recientes.
log | Log del mapa. |
nlohmann::json Map::rm_player | ( | EntityId | entity_id | ) |
Eliminar a un jugador identificado por su id del mapa.
entity_id | Id de entidad del jugador a eliminar. |
void Map::teleport | ( | EntityId | player_id, |
position_t | dest | ||
) |
Teletransporta a un jugador a través de una transición.
player_id | Id de entidad del jugador a teletransportar. |
dest | Posición destino. |
void Map::update | ( | uint64_t | delta_t | ) |
Actualiza todas las entidades que contiene segun el delta_t transcurrido.
delta_t | Tiempo transcurrido (en microsegundos). |