chore: simplifying world bootstrapping
This commit is contained in:
@@ -16,15 +16,10 @@ internal sealed class WorldBuilder(
|
|||||||
generationService.InjectSpecialSystems(catalog.AuthoredSystems),
|
generationService.InjectSpecialSystems(catalog.AuthoredSystems),
|
||||||
worldGeneration.TargetSystemCount);
|
worldGeneration.TargetSystemCount);
|
||||||
|
|
||||||
Console.WriteLine("TEST");
|
|
||||||
Console.WriteLine(string.Join(',', systems.Select(s => s.Id)));
|
|
||||||
|
|
||||||
var scenario = dataLoader.NormalizeScenarioToAvailableSystems(
|
var scenario = dataLoader.NormalizeScenarioToAvailableSystems(
|
||||||
catalog.Scenario,
|
catalog.Scenario,
|
||||||
systems.Select(system => system.Id).ToList());
|
systems.Select(system => system.Id).ToList());
|
||||||
|
|
||||||
Console.WriteLine(string.Join(',', systems.Select(s => s.Id)));
|
|
||||||
|
|
||||||
var systemRuntimes = systems
|
var systemRuntimes = systems
|
||||||
.Select(definition => new SystemRuntime
|
.Select(definition => new SystemRuntime
|
||||||
{
|
{
|
||||||
@@ -72,35 +67,6 @@ internal sealed class WorldBuilder(
|
|||||||
? seedingService.CreatePlayerFaction(factions, stations, ships, commanders, policies, nowUtc)
|
? seedingService.CreatePlayerFaction(factions, stations, ships, commanders, policies, nowUtc)
|
||||||
: null;
|
: null;
|
||||||
var claims = seedingService.CreateClaims(stations, spatialLayout.Celestials, nowUtc);
|
var claims = seedingService.CreateClaims(stations, spatialLayout.Celestials, nowUtc);
|
||||||
var bootstrapWorld = new SimulationWorld
|
|
||||||
{
|
|
||||||
Label = "Split Viewer / Bootstrap World",
|
|
||||||
Seed = WorldSeed,
|
|
||||||
Balance = catalog.Balance,
|
|
||||||
Systems = systemRuntimes,
|
|
||||||
Celestials = spatialLayout.Celestials,
|
|
||||||
Nodes = spatialLayout.Nodes,
|
|
||||||
Wrecks = [],
|
|
||||||
Stations = stations,
|
|
||||||
Ships = ships,
|
|
||||||
Factions = factions,
|
|
||||||
PlayerFaction = playerFaction,
|
|
||||||
Commanders = commanders,
|
|
||||||
Claims = claims,
|
|
||||||
ConstructionSites = [],
|
|
||||||
MarketOrders = [],
|
|
||||||
Policies = policies,
|
|
||||||
ShipDefinitions = new Dictionary<string, ShipDefinition>(catalog.ShipDefinitions, StringComparer.Ordinal),
|
|
||||||
ItemDefinitions = new Dictionary<string, ItemDefinition>(catalog.ItemDefinitions, StringComparer.Ordinal),
|
|
||||||
ModuleDefinitions = new Dictionary<string, ModuleDefinition>(catalog.ModuleDefinitions, StringComparer.Ordinal),
|
|
||||||
ModuleRecipes = new Dictionary<string, ModuleRecipeDefinition>(catalog.ModuleRecipes, StringComparer.Ordinal),
|
|
||||||
Recipes = new Dictionary<string, RecipeDefinition>(catalog.Recipes, StringComparer.Ordinal),
|
|
||||||
ProductionGraph = catalog.ProductionGraph,
|
|
||||||
OrbitalTimeSeconds = WorldSeed * 97d,
|
|
||||||
GeneratedAtUtc = nowUtc,
|
|
||||||
};
|
|
||||||
var (constructionSites, marketOrders) = seedingService.CreateConstructionSites(bootstrapWorld);
|
|
||||||
|
|
||||||
var world = new SimulationWorld
|
var world = new SimulationWorld
|
||||||
{
|
{
|
||||||
Label = "Split Viewer / Simulation World",
|
Label = "Split Viewer / Simulation World",
|
||||||
@@ -117,8 +83,8 @@ internal sealed class WorldBuilder(
|
|||||||
Geopolitics = null,
|
Geopolitics = null,
|
||||||
Commanders = commanders,
|
Commanders = commanders,
|
||||||
Claims = claims,
|
Claims = claims,
|
||||||
ConstructionSites = constructionSites,
|
ConstructionSites = [],
|
||||||
MarketOrders = marketOrders,
|
MarketOrders = [],
|
||||||
Policies = policies,
|
Policies = policies,
|
||||||
ShipDefinitions = new Dictionary<string, ShipDefinition>(catalog.ShipDefinitions, StringComparer.Ordinal),
|
ShipDefinitions = new Dictionary<string, ShipDefinition>(catalog.ShipDefinitions, StringComparer.Ordinal),
|
||||||
ItemDefinitions = new Dictionary<string, ItemDefinition>(catalog.ItemDefinitions, StringComparer.Ordinal),
|
ItemDefinitions = new Dictionary<string, ItemDefinition>(catalog.ItemDefinitions, StringComparer.Ordinal),
|
||||||
@@ -127,9 +93,13 @@ internal sealed class WorldBuilder(
|
|||||||
Recipes = new Dictionary<string, RecipeDefinition>(catalog.Recipes, StringComparer.Ordinal),
|
Recipes = new Dictionary<string, RecipeDefinition>(catalog.Recipes, StringComparer.Ordinal),
|
||||||
ProductionGraph = catalog.ProductionGraph,
|
ProductionGraph = catalog.ProductionGraph,
|
||||||
OrbitalTimeSeconds = WorldSeed * 97d,
|
OrbitalTimeSeconds = WorldSeed * 97d,
|
||||||
GeneratedAtUtc = DateTimeOffset.UtcNow,
|
GeneratedAtUtc = nowUtc,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var (constructionSites, marketOrders) = seedingService.CreateConstructionSites(world);
|
||||||
|
world.ConstructionSites.AddRange(constructionSites);
|
||||||
|
world.MarketOrders.AddRange(marketOrders);
|
||||||
|
|
||||||
var geopolitics = new GeopoliticalSimulationService();
|
var geopolitics = new GeopoliticalSimulationService();
|
||||||
geopolitics.Update(world, 0f, []);
|
geopolitics.Update(world, 0f, []);
|
||||||
return world;
|
return world;
|
||||||
|
|||||||
Reference in New Issue
Block a user