underworld_core 0.6.3

Small library to either play a game or assist in generating rooms
Documentation
use std::collections::HashMap;

use uuid::Uuid;

use crate::components::{
    rooms::{NpcPosition, NpcPositionView},
    NonPlayerViewArgs,
};

pub fn view(
    npc_position: &NpcPosition,
    non_player_args: &HashMap<Uuid, NonPlayerViewArgs>,
    knows_all: bool,
) -> NpcPositionView {
    let args = non_player_args
        .get(&npc_position.npc.id)
        .cloned()
        .unwrap_or_else(|| {
            if knows_all {
                NonPlayerViewArgs::knows_all_args()
            } else {
                NonPlayerViewArgs::default()
            }
        });
    let npc = super::non_player::view(&npc_position.npc, &args.character_args, knows_all);
    NpcPositionView {
        npc,
        position_descriptor: npc_position.position_descriptor,
    }
}