コード例 #1
0
 public PopulationModule(PersonBuilder personBuilder,
     Territory rootTerritory,
     IPersonCache personCache)
 {
     _personBuilder = personBuilder;
     _rootTerritory = rootTerritory;
     _personCache = personCache;
 }
コード例 #2
0
 public Territory(IProfessionCache professionCache,
     IPersonCache personCache,
     Territory parent = null)
 {
     _professionCache = professionCache;
     _personCache = personCache;
     _parent = parent;
 }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
 public SettleLifeEvent(Random random, Territory rootTerritory)
 {
     _random = random;
     _rootTerritory = rootTerritory;
 }
コード例 #5
0
 public MoveLifeEvent(Territory availableTerritory)
 {
     _availableTerritory = availableTerritory;
 }
コード例 #6
0
        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();
        }
コード例 #7
0
 /// <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);
 }
コード例 #8
0
 public void AddTerritory(Territory child)
 {
     _children.Add(child);
 }