public PopulationModule(PersonBuilder personBuilder, Territory rootTerritory, IPersonCache personCache) { _personBuilder = personBuilder; _rootTerritory = rootTerritory; _personCache = personCache; }
public Territory(IProfessionCache professionCache, IPersonCache personCache, Territory parent = null) { _professionCache = professionCache; _personCache = personCache; _parent = parent; }
private void PopulateTerritory(Territory territory, ItemsControl parent) { var item = new TreeViewItem { Header = territory.Name, Tag = territory, IsExpanded = true}; parent.Items.Add(item); foreach (var child in territory.GetTerritories()) { this.PopulateTerritory(child, item); } }
public SettleLifeEvent(Random random, Territory rootTerritory) { _random = random; _rootTerritory = rootTerritory; }
public MoveLifeEvent(Territory availableTerritory) { _availableTerritory = availableTerritory; }
public void SetupSimulation(SimulationParameters simulationParameters) { PersonCache = _container.GetInstance<IPersonCache>(); _simulationParameters = simulationParameters; _universeFactory = new UniverseFactory(_container); _universeFactory.SetRandom(_container.GetInstance<Random>()); _universeFactory.SetPersonCache(PersonCache); _universeFactory.SetPersonBuilder( new PersonBuilder( _container.GetInstance<FirstNameGenerator>(), _container.GetInstance<LastNameGenerator>(), _container.GetInstance<Random>())); _universeFactory.GenerateRootTerritory(); _universeFactory.AddLifeEvent<GetMarriedLifeEvent>() .AddLifeEvent<StartDatingLifeEvent>() .AddLifeEvent<OrphanChildLifeEvent>() .AddLifeEvent<GetEngagedLifeEvent>() .AddLifeEvent<BreakupLifeEvent>() .AddLifeEvent<SwitchJobLifeEvent>() .AddLifeEvent<HaveChildrenLifeEvent>() .AddLifeEvent<DeathLifeEvent>() .AddLifeEvent<SexReassignmentLifeEvent>() .AddLifeEvent<GenderChangeLifeEvent>() .AddLifeEvent<MoveLifeEvent>() .AddLifeEvent<SettleLifeEvent>() .AddLifeEvent<GetJobLifeEvent>() .AddLifeEvent<FiredLifeEvent>(); _universe = _universeFactory.Build(); RootTerritory = _universeFactory.GetRootTerritory(); // TODO: Move this eventually: _universe.Start(); }
/// <summary> /// Loads a territory tree structure. /// </summary> /// <param name="territoryRoot">The territory root.</param> public void LoadTerritoryRoot(Territory territoryRoot) { _loadedRoot = territoryRoot; TerritoryTreeView.Items.Clear(); PopulateTerritory(territoryRoot, TerritoryTreeView); }
public void AddTerritory(Territory child) { _children.Add(child); }