Example #1
0
 /// <summary>Initializes a new instance of the <see cref="WorkBehavior"/> class.</summary>
 /// <param name="config">The configuration to run with.</param>
 /// <param name="randomizer">The randomizer implementation.</param>
 /// <param name="buildingManager">The building manager implementation.</param>
 /// <param name="timeInfo">The time information source.</param>
 /// <param name="travelBehavior">A behavior that provides simulation info for the citizens traveling.</param>
 /// <exception cref="ArgumentNullException">Thrown when any argument is null.</exception>
 public WorkBehavior(
     RealTimeConfig config,
     IRandomizer randomizer,
     IBuildingManagerConnection buildingManager,
     ITimeInfo timeInfo,
     TravelBehavior travelBehavior)
 {
     this.config          = config ?? throw new ArgumentNullException(nameof(config));
     this.randomizer      = randomizer ?? throw new ArgumentNullException(nameof(randomizer));
     this.buildingManager = buildingManager ?? throw new ArgumentNullException(nameof(buildingManager));
     this.timeInfo        = timeInfo ?? throw new ArgumentNullException(nameof(timeInfo));
     this.travelBehavior  = travelBehavior ?? throw new ArgumentNullException(nameof(travelBehavior));
 }
Example #2
0
        /// <summary>Initializes a new instance of the <see cref="RealTimeResidentAI{TAI, TCitizen}"/> class.</summary>
        /// <exception cref="ArgumentNullException">Thrown when any argument is null.</exception>
        /// <param name="config">A <see cref="RealTimeConfig"/> instance containing the mod's configuration.</param>
        /// <param name="connections">A <see cref="GameConnections{T}"/> instance that provides the game connection implementation.</param>
        /// <param name="residentAI">A connection to the game's resident AI.</param>
        /// <param name="eventManager">A <see cref="RealTimeEventManager"/> instance.</param>
        /// <param name="workBehavior">A behavior that provides simulation info for the citizens work time.</param>
        /// <param name="spareTimeBehavior">A behavior that provides simulation info for the citizens spare time.</param>
        /// <param name="travelBehavior">A behavior that provides simulation info for the citizens traveling.</param>
        public RealTimeResidentAI(
            RealTimeConfig config,
            GameConnections <TCitizen> connections,
            ResidentAIConnection <TAI, TCitizen> residentAI,
            RealTimeEventManager eventManager,
            WorkBehavior workBehavior,
            SpareTimeBehavior spareTimeBehavior,
            TravelBehavior travelBehavior)
            : base(config, connections, eventManager)
        {
            this.residentAI        = residentAI ?? throw new ArgumentNullException(nameof(residentAI));
            this.workBehavior      = workBehavior ?? throw new ArgumentNullException(nameof(workBehavior));
            this.spareTimeBehavior = spareTimeBehavior ?? throw new ArgumentNullException(nameof(spareTimeBehavior));
            this.travelBehavior    = travelBehavior ?? throw new ArgumentNullException(nameof(travelBehavior));

            residentSchedules = new CitizenSchedule[CitizenMgr.GetMaxCitizensCount()];
        }