Argentum Online - Servidor
Referencia de la Clase Map

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...
 
Itempickup_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
 

Documentación de las funciones miembro

◆ add_player()

nlohmann::json Map::add_player ( nlohmann::json  player_info)

Agrega un jugador al mapa a partir de su información.

Parámetros
player_infoInformación del jugador para agregarlo al mapa.
Devuelve
nlohmann::json Información del jugador actualizada luego de ser agregado.

◆ dirty_entities()

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.

Devuelve
true Se agregó o eliminó alguna entidad.
false No se agregó o eliminó ninguna entidad.

◆ dirty_loot()

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.

Devuelve
true Se agregó o eliminó algún item.
false No se agregó o eliminó ningún item.

◆ drop_loot() [1/2]

void Map::drop_loot ( EntityId  entity_id,
const std::vector< Item * > &  items 
)

Deja caer la lista de items en el mapa.

Parámetros
entity_idId de entidad que deja caer los items.
itemsLista de items transferidos al mapa.

◆ drop_loot() [2/2]

void Map::drop_loot ( EntityId  entity_id,
Item item 
)

Deja el item pasado por parámetro en la posición de la entidad.

Parámetros
entity_idId de entidad que deja caer el item.
itemItem transferido al mapa.

◆ entity_exists()

bool Map::entity_exists ( EntityId  entity_id)

Verificar si una entidad existe o no.

Parámetros
entity_idId de entidad a verificar si existe.
Devuelve
bool

◆ get_entity_data()

nlohmann::json Map::get_entity_data ( )

Obtiene la información de las entidades del mapa.

Devuelve
nlohmann::json Lista de información de las entidades en el mapa.

◆ get_loot_data()

nlohmann::json Map::get_loot_data ( )

Obtiene la información de los items del mapa.

Devuelve
nlohmann::json Lista de información y posiciones de los items en el mapa.

◆ get_map_data()

nlohmann::json Map::get_map_data ( )

Obtiene la información gráfica del mapa en forma de json.

Devuelve
nlohmann::json Información gráfica del mapa.

◆ get_nearest_entity_pos()

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.

Parámetros
entity_posPosición orígen desde donde buscar.
distanceDistancia máxima (Manhattan) a buscar la entidad.
entity_typeTipo de entidad buscada.
Devuelve
position_t Posición de una entidad del tipo buscada, o si no se encontró, la misma posición orígen.

◆ get_position_data()

nlohmann::json Map::get_position_data ( const PositionMap &  position_map)
static

Realizar una copia en forma de json de un mapa de posiciones.

Parámetros
position_mapMapa de posiciones.
Devuelve
nlohmann::json Mapa de posiciones transformado a json.

◆ get_position_map()

const PositionMap Map::get_position_map ( ) const

Obtiene una copia del mapa de posiciones de las entidades.

Devuelve
const PositionMap Lista de posiciones de entidades en el mapa.

◆ get_transitions()

std::queue< map_change_t > & Map::get_transitions ( )

Obtiene la cola de transiciones del mapa.

Devuelve
std::queue<map_change_t>& Referencia a la cola de transiciones.

◆ get_update_logs()

std::queue< map_log_t > & Map::get_update_logs ( )

Obtiene la cola de "logs" del mapa.

Devuelve
std::queue<map_log_t>& Referencia a la cola de logs del mapa.

◆ move()

void Map::move ( EntityId  entity_id,
position_t  steps 
)

Mueve la entidad asociada al entity_id hacia la posicion relativa steps.

Parámetros
entity_idId de entidad a mover.
stepsPosición relativa a la entidad a donde se va a mover.

◆ pickup_loot()

Item * Map::pickup_loot ( EntityId  entity_id)

Intenta obtener de la posición donde se encuentra la entidad el item que haya allí.

Parámetros
entity_idId de entidad que intenta obtener el item.
Devuelve
Item* El item obtenido, NULL si no había nada en esa posición.

◆ push_action()

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.

Parámetros
entity_idId de entidad.
actionPuntero a clase de tipo Accion alocada en el Heap.

◆ push_log()

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.

Parámetros
logLog del mapa.

◆ rm_player()

nlohmann::json Map::rm_player ( EntityId  entity_id)

Eliminar a un jugador identificado por su id del mapa.

Parámetros
entity_idId de entidad del jugador a eliminar.
Devuelve
nlohmann::json Información necesaria para persistir al personaje al ser sacado del mapa.

◆ teleport()

void Map::teleport ( EntityId  player_id,
position_t  dest 
)

Teletransporta a un jugador a través de una transición.

Parámetros
player_idId de entidad del jugador a teletransportar.
destPosición destino.

◆ update()

void Map::update ( uint64_t  delta_t)

Actualiza todas las entidades que contiene segun el delta_t transcurrido.

Parámetros
delta_tTiempo transcurrido (en microsegundos).

La documentación para esta clase fue generada a partir de los siguientes ficheros: