public override MapComponent Create() { if (TypeObject.Naming?.Value) { var namingFactory = new NamingFactory(TypeObject.Naming.Value, GameObject); namingFactory.Create(); } var entityRegistryFactory = new EntityRegistryFactory(TypeObject.EntityRegistry.Value, GameObject); var entityRegistryComponent = entityRegistryFactory.Create(); Component.Size = TypeObject.Size.Value; Component.MapLayout = TypeObject.MapLayout.Value; var navFactory = new NavFactory(TypeObject.Nav.Value, GameObject); var navComponent = navFactory.Create(); entityRegistryComponent.Registered += Component.OnEntityRegistered; entityRegistryComponent.Unregistered += Component.OnEntityUnregistered; CreateMarket(TypeObject); navComponent.CalculateNavMap(); foreach (var workerHome in TypeObject.WorkerHomes) { var workerHomeFactory = new WorkerHomeFactory(workerHome.Value, parentObject: GameObject); workerHomeFactory.Create(Component); navComponent.CalculateNavMap(); } foreach (var company in TypeObject.Companies) { var companyFactory = new CompanyFactory(company.Value, parentObject: GameObject); companyFactory.Create(Component); navComponent.CalculateNavMap(); } return(Component); }
public override LocationComponent Create() { if (TypeObject.Naming?.Value) { var namingFactory = new NamingFactory(TypeObject.Naming.Value, GameObject); namingFactory.Create(); } Component.MapPrefab = TypeObject.MapPrefab; var entityRegistryFactory = new EntityRegistryFactory(TypeObject.EntityRegistry.Value, GameObject); var entityRegistryComponent = entityRegistryFactory.Create(); entityRegistryComponent.Registered += Component.OnEntityRegistered; entityRegistryComponent.Unregistered += Component.OnEntityUnregistered; if (TypeObject.Building?.Value) { var buildingFactory = new BuildingFactory(TypeObject.Building.Value, GameObject); buildingFactory.Create(); } return(Component); }