Enhance AI and simulation components with presence management and routing capabilities
- Introduced the `HSchool.Ai` project, responsible for routing, day plans, and presence management. - Updated the `HSchool.Simulation` project to integrate with the new AI functionalities, improving decision-making and presence tracking. - Added `travelMinutes` to room and territory definitions, ensuring accurate movement calculations within the simulation. - Enhanced the `School` class to manage presence and implement empty-time skipping functionality. - Updated documentation to reflect the new AI features and their impact on school simulation. - Added tests for presence management and routing to ensure robust functionality and reliability.
This commit is contained in:
@@ -468,6 +468,19 @@ public sealed class CatalogLoader
|
||||
{
|
||||
throw new ContentLoadException($"RoomDef '{room.DefName}' is not a homeroom and cannot set seatThing or defaultSeats.");
|
||||
}
|
||||
|
||||
if (!room.Abstract && room.TravelMinutes <= 0)
|
||||
{
|
||||
throw new ContentLoadException($"RoomDef '{room.DefName}' travelMinutes must be positive.");
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var territory in catalog.Territories.Values)
|
||||
{
|
||||
if (!territory.Abstract && territory.TravelMinutes <= 0)
|
||||
{
|
||||
throw new ContentLoadException($"TerritoryDef '{territory.DefName}' travelMinutes must be positive.");
|
||||
}
|
||||
}
|
||||
|
||||
PeopleDefValidator.Validate(catalog);
|
||||
|
||||
Reference in New Issue
Block a user