Play time tracking: Job timers 3: more titles: when the (#9978)
Co-authored-by: Veritius <veritiusgaming@gmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
committed by
GitHub
parent
6b94db0336
commit
e852ada6c8
@@ -134,54 +134,61 @@ namespace Content.Client.LateJoin
|
||||
|
||||
var firstCategory = true;
|
||||
|
||||
foreach (var job in gameTicker.JobsAvailable[id].OrderBy(x => x.Key))
|
||||
foreach (var department in _prototypeManager.EnumeratePrototypes<DepartmentPrototype>())
|
||||
{
|
||||
var prototype = _prototypeManager.Index<JobPrototype>(job.Key);
|
||||
foreach (var department in prototype.Departments)
|
||||
var departmentName = Loc.GetString($"department-{department.ID}");
|
||||
_jobCategories[id] = new Dictionary<string, BoxContainer>();
|
||||
_jobButtons[id] = new Dictionary<string, JobButton>();
|
||||
var stationAvailable = gameTicker.JobsAvailable[id];
|
||||
|
||||
var category = new BoxContainer
|
||||
{
|
||||
if (!_jobCategories.TryGetValue(id, out var _))
|
||||
_jobCategories[id] = new Dictionary<string, BoxContainer>();
|
||||
if (!_jobButtons.TryGetValue(id, out var _))
|
||||
_jobButtons[id] = new Dictionary<string, JobButton>();
|
||||
if (!_jobCategories[id].TryGetValue(department, out var category))
|
||||
Orientation = LayoutOrientation.Vertical,
|
||||
Name = department.ID,
|
||||
ToolTip = Loc.GetString("late-join-gui-jobs-amount-in-department-tooltip",
|
||||
("departmentName", departmentName))
|
||||
};
|
||||
|
||||
if (firstCategory)
|
||||
{
|
||||
firstCategory = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
category.AddChild(new Control
|
||||
{
|
||||
category = new BoxContainer
|
||||
{
|
||||
Orientation = LayoutOrientation.Vertical,
|
||||
Name = department,
|
||||
ToolTip = Loc.GetString("late-join-gui-jobs-amount-in-department-tooltip",
|
||||
("departmentName", department))
|
||||
};
|
||||
MinSize = new Vector2(0, 23),
|
||||
});
|
||||
}
|
||||
|
||||
if (firstCategory)
|
||||
category.AddChild(new PanelContainer
|
||||
{
|
||||
Children =
|
||||
{
|
||||
new Label
|
||||
{
|
||||
firstCategory = false;
|
||||
StyleClasses = { "LabelBig" },
|
||||
Text = Loc.GetString("late-join-gui-department-jobs-label", ("departmentName", departmentName))
|
||||
}
|
||||
else
|
||||
{
|
||||
category.AddChild(new Control
|
||||
{
|
||||
MinSize = new Vector2(0, 23),
|
||||
});
|
||||
}
|
||||
|
||||
category.AddChild(new PanelContainer
|
||||
{
|
||||
Children =
|
||||
{
|
||||
new Label
|
||||
{
|
||||
StyleClasses = { "LabelBig" },
|
||||
Text = Loc.GetString("late-join-gui-department-jobs-label", ("departmentName", department))
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
_jobCategories[id][department] = category;
|
||||
jobList.AddChild(category);
|
||||
}
|
||||
});
|
||||
|
||||
var jobButton = new JobButton(prototype.ID, job.Value);
|
||||
_jobCategories[id][department.ID] = category;
|
||||
jobList.AddChild(category);
|
||||
var jobsAvailable = new List<JobPrototype>();
|
||||
|
||||
foreach (var jobId in department.Roles)
|
||||
{
|
||||
if (!stationAvailable.ContainsKey(jobId)) continue;
|
||||
jobsAvailable.Add(_prototypeManager.Index<JobPrototype>(jobId));
|
||||
}
|
||||
|
||||
jobsAvailable.Sort((x, y) => -string.Compare(x.LocalizedName, y.LocalizedName, StringComparison.CurrentCultureIgnoreCase));
|
||||
|
||||
foreach (var prototype in jobsAvailable)
|
||||
{
|
||||
var value = stationAvailable[prototype.ID];
|
||||
var jobButton = new JobButton(prototype.ID, value);
|
||||
|
||||
var jobSelector = new BoxContainer
|
||||
{
|
||||
@@ -205,8 +212,8 @@ namespace Content.Client.LateJoin
|
||||
|
||||
var jobLabel = new Label
|
||||
{
|
||||
Text = job.Value != null ?
|
||||
Loc.GetString("late-join-gui-job-slot-capped", ("jobName", prototype.LocalizedName), ("amount", job.Value)) :
|
||||
Text = value != null ?
|
||||
Loc.GetString("late-join-gui-job-slot-capped", ("jobName", prototype.LocalizedName), ("amount", value)) :
|
||||
Loc.GetString("late-join-gui-job-slot-uncapped", ("jobName", prototype.LocalizedName))
|
||||
};
|
||||
|
||||
@@ -219,7 +226,7 @@ namespace Content.Client.LateJoin
|
||||
SelectedId?.Invoke((id, jobButton.JobId));
|
||||
};
|
||||
|
||||
if (job.Value == 0)
|
||||
if (value == 0)
|
||||
{
|
||||
jobButton.Disabled = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user