示例#1
0
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;
}
示例#2
0
Ent* make_garbage(Position pos) {
  Ent* e = new Ent;
  e->add(new PositionComp(pos));
  e->add(new Renderable(';'));
  return e;
}