generate method

  1. @override
Location generate()
override

Generates an item of type T

Implementation

@override
Location generate() {
  final ownerGenerator = NpcGenerator(_ownerRace);
  ownerGenerator.seed(_seed);
  final owner = ownerGenerator.generate().copyWith(
        occupation: _locationType.getOwnerOccupation(),
      );

  final nameGenerator = _locationType.getNameGenerator(owner);
  nameGenerator.seed(_seed);
  final name = nameGenerator.generate();

  final generator = BatchGenerator(_getBatch(_locationType, name, owner));
  generator.seed(_seed);
  final result = generator.generate();

  Location location = Location.fromShallowMap(result);

  if (_locationType is Fixable<Location>) {
    location = (_locationType as Fixable).getFixed(location);
  }

  return location;
}