protected WorldBase(IWorldOptions options, IWorldCreator worldCreator) { if (worldCreator is null) { throw new ArgumentNullException(nameof(worldCreator)); } Options = options ?? throw new ArgumentNullException(nameof(options)); WorldCreator = worldCreator; worldCreator.WorldCreated += () => WorldCreated?.Invoke(); WorldCreated += OnWorldCreated; if (Options.CreateWorldOnInstantiate) { CreateWorld(); } }
public static World GetWorld(this IWorldOptions options) { // Create the world object World world = null; if (!string.IsNullOrEmpty(options.WorldDir)) { world = World.FromDirectory(options.WorldDir); } else if (!string.IsNullOrEmpty(options.WorldName)) { world = World.FromName(options.WorldName); } else { throw new CliException("You must specify either a world directory or a world name."); } return(world); }
public MyWorldBaseImpl(IWorldOptions options, IWorldCreator worldCreator) : base(options, worldCreator) { }