add shel
This commit is contained in:
@@ -87,6 +87,7 @@ internal sealed record CatalogResponse(
|
||||
IReadOnlyList<RoomInfoResponse> Rooms,
|
||||
IReadOnlyList<DefInfoResponse> Things,
|
||||
IReadOnlyList<DefInfoResponse> NameSets,
|
||||
IReadOnlyList<SubjectInfoResponse> Subjects,
|
||||
MapLayout DefaultMap)
|
||||
{
|
||||
public static CatalogResponse From(DefCatalog catalog, MapLayout map, string locale) =>
|
||||
@@ -97,6 +98,7 @@ internal sealed record CatalogResponse(
|
||||
PlaceableRooms(catalog, locale),
|
||||
PlaceableThings(catalog, locale),
|
||||
Placeable(catalog.NameSets.Values, catalog, locale),
|
||||
PlaceableSubjects(catalog, locale),
|
||||
map);
|
||||
|
||||
private static IReadOnlyList<DefInfoResponse> Placeable<T>(IEnumerable<T> defs, DefCatalog catalog, string locale)
|
||||
@@ -121,9 +123,25 @@ internal sealed record CatalogResponse(
|
||||
.Select(def => new RoomInfoResponse(
|
||||
def.DefName,
|
||||
catalog.Label(locale, def),
|
||||
def.Homeroom,
|
||||
def.SeatThing,
|
||||
def.DefaultSeats,
|
||||
def.Slots.Select(slot => new RoomSlotInfo(slot.Key, slot.Thing, slot.Count)).ToArray(),
|
||||
def.Positions.ToArray()))
|
||||
.ToArray();
|
||||
|
||||
private static IReadOnlyList<SubjectInfoResponse> PlaceableSubjects(DefCatalog catalog, string locale) =>
|
||||
catalog.Subjects.Values
|
||||
.Where(def => !def.Abstract)
|
||||
.OrderBy(def => def.DefName, StringComparer.Ordinal)
|
||||
.Select(def => new SubjectInfoResponse(
|
||||
def.DefName,
|
||||
catalog.Label(locale, def),
|
||||
def.Grades.Min,
|
||||
def.Grades.Max,
|
||||
def.HoursPerWeek,
|
||||
def.Skills.Select(share => new SubjectSkillInfo(share.Skill, share.Share)).ToArray()))
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
internal sealed record DefInfoResponse(string DefName, string Label, int PupilSlots = 0);
|
||||
@@ -131,7 +149,20 @@ internal sealed record DefInfoResponse(string DefName, string Label, int PupilSl
|
||||
internal sealed record RoomInfoResponse(
|
||||
string DefName,
|
||||
string Label,
|
||||
bool Homeroom,
|
||||
string? SeatThing,
|
||||
int DefaultSeats,
|
||||
IReadOnlyList<RoomSlotInfo> Slots,
|
||||
IReadOnlyList<string> Positions);
|
||||
|
||||
internal sealed record RoomSlotInfo(string Key, string Thing, int Count);
|
||||
|
||||
internal sealed record SubjectSkillInfo(string Skill, float Share);
|
||||
|
||||
internal sealed record SubjectInfoResponse(
|
||||
string DefName,
|
||||
string Label,
|
||||
int GradeMin,
|
||||
int GradeMax,
|
||||
int HoursPerWeek,
|
||||
IReadOnlyList<SubjectSkillInfo> Skills);
|
||||
|
||||
Reference in New Issue
Block a user