Ent* new_citizen(Point pos, Security::Mask sec) { Ent* e = new Ent; e->emplace<Position>(pos); e->emplace<movement::Movable>(pos); e->emplace<AI>(std::make_shared<IdleAI>()); e->emplace<Clearance>(clearance{ sec, Department::random_dept() }); e->emplace<Renderable>(Security::mask_to_dcode(sec)[0]); e->add(random_citizenname()); e->emplace<needs::Needs>(); e->emplace<Item>(citizen_properties); e->emplace_system<AISystem>(); e->emplace_system<movement::MovableSystem>(); e->emplace_system<needs::NeedsSystem>(); return e; }
Ent* make_garbage(Position pos) { Ent* e = new Ent; e->add(new PositionComp(pos)); e->add(new Renderable(';')); return e; }