Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
0ee6e33
re-parents silicons to a base entity for languages.
walksanatora Aug 23, 2025
8dd0708
Update Resources/Prototypes/Entities/Mobs/Player/silicon.yml
walksanatora Aug 23, 2025
d3c8a20
I am smart child of the silicon.
walksanatora Aug 23, 2025
b85894d
PB has lang which AI inhereits.
walksanatora Aug 23, 2025
a720748
oops forgot to remove old langs list.
walksanatora Aug 23, 2025
768a5b7
Merge branch 'starlight-dev' into silicon-lang-parenting
walksanatora Sep 8, 2025
249d633
AI Sprite Madness
ShadesMars Sep 20, 2025
d3ba3e7
AI-Core Sprites
ShadesMars Sep 20, 2025
f4a38a7
Moved ContentEye
ShadesMars Sep 20, 2025
780a5ae
intellicard icons
ShadesMars Sep 21, 2025
01761f3
Intellicard Sprites
ShadesMars Sep 21, 2025
eb9d659
the house lost
ShadesMars Sep 21, 2025
a965a39
Merge branch 'starlight-dev' into silicon-lang-parenting
walksanatora Sep 28, 2025
40cacb4
Update language.yml
walksanatora Sep 28, 2025
ed7923e
Update MMI and Posibrain
CorruptOmega Sep 28, 2025
bfb58de
Oops
CorruptOmega Sep 28, 2025
63b0fd5
Merge pull request #2 from CorruptOmega/Side-addition
walksanatora Sep 28, 2025
8edb4b0
Automatic changelog update
PJBot Sep 17, 2025
8fae117
Turn the Satanic Bible's pentagram around, fix left inhand (#40234)
SurrealShibe Sep 17, 2025
cd64820
Automatic changelog update
PJBot Sep 17, 2025
c3d56c8
Adds Nukie IDs and PDAs, makes Nukie IDs able to copy accesses. (#37304)
PicklOH Sep 18, 2025
b03914f
Automatic changelog update
PJBot Sep 18, 2025
fc0838e
Updated the cyborg weapon module's uplink description to be accurate …
Kittygyat Sep 18, 2025
8f45445
Automatic changelog update
PJBot Sep 18, 2025
e984c0a
Renames the "Integrated GPS" to "integrated GPS" (#40431)
mnva0 Sep 18, 2025
6ba75a9
Stun rune Fix (#40432)
Pixel8-dev Sep 18, 2025
08300ee
Automatic changelog update
PJBot Sep 18, 2025
0607a2a
Plasma: add tropico to atmos (#40436)
F1restar4 Sep 18, 2025
2d56fea
Automatic changelog update
PJBot Sep 18, 2025
666405c
Bring vulpkanin in-line with other species on hugging (#40183)
sowelipililimute Sep 18, 2025
b26f22f
Automatic changelog update
PJBot Sep 18, 2025
7b62bf0
Add chemical analysis goggles to ChemDrobe (#40236)
vgskye Sep 18, 2025
5316855
Automatic changelog update
PJBot Sep 18, 2025
744fc49
Crashed the snakeskin boots stock-market by removing their hidden no-…
Kittygyat Sep 18, 2025
86f476e
Automatic changelog update
PJBot Sep 18, 2025
8f0e96a
Rename medifab implanter to implant extractor and made it's descripti…
TrixxedHeart Sep 18, 2025
d3f2b9f
Silence mime bags (#40317)
iaada Sep 18, 2025
3554bed
Ninja items are now highly illegal (#39855)
Hitlinemoss Sep 18, 2025
d329fb2
Automatic changelog update
PJBot Sep 18, 2025
8ab6ab9
Automatic changelog update
PJBot Sep 18, 2025
66a1248
Make ichor heal brute, burn, and toxin evenly (#39466)
rumaks-xyz Sep 18, 2025
f820f54
Automatic changelog update
PJBot Sep 18, 2025
36cff60
Add contraband levels for several reagents (#40426)
SlamBamActionman Sep 18, 2025
56dc274
Automatic changelog update
PJBot Sep 18, 2025
a3f4419
Added Cutting Slicing and Executing options to the cane blade (#40311)
Hi-Im-Shot Sep 18, 2025
bae92e0
Automatic changelog update
PJBot Sep 18, 2025
29265ea
Made all tarantulas able to drag entities (#40433)
Kittygyat Sep 18, 2025
7e39989
Automatic changelog update
PJBot Sep 18, 2025
d2eeee9
Better thief objectives (#39867)
2DSiggy Sep 18, 2025
53ec5e3
Automatic changelog update
PJBot Sep 18, 2025
f96ec39
adds ConveyorMask colission mask to it's fixture component (#40439)
Lordbrandon12 Sep 18, 2025
fcb7bf3
Update engine to v267.1.0 (#40445)
ElectroJr Sep 19, 2025
55c160b
Fixes some refuling welder typos (#40447)
mnva0 Sep 19, 2025
0550962
oasis warp fix (#40454)
GeneralGaws Sep 19, 2025
1497eb0
The Experimental Lecter 8 (#40372)
IProduceWidgets Sep 19, 2025
3d3d5cf
Automatic changelog update
PJBot Sep 19, 2025
a57c0a4
fix chasm heisentest (#40456)
slarticodefast Sep 20, 2025
78c90cc
Update Oasis Teg (#40463)
IProduceWidgets Sep 20, 2025
606861d
Automatic changelog update
PJBot Sep 20, 2025
bdd5265
fix disposal pipes deleting contents when welded (#40451)
deltanedas Sep 20, 2025
e977d4c
Renames the radar console computer board to "mass scanner computer bo…
mnva0 Sep 20, 2025
dfdc350
Inhand Sprites for Clear Glass (#40427)
TiniestShark Sep 20, 2025
0c06c2d
fixed localization text for vulp shock ear (inner) color (#40412)
SurrealShibe Sep 20, 2025
d2c72c2
moves magic number from SharedMoverController to InputMoverComponent …
Lordbrandon12 Sep 20, 2025
17355cd
Added AI console to amber (#40393)
ToastEnjoyer Sep 20, 2025
1d98665
Automatic changelog update
PJBot Sep 20, 2025
da5343f
Don't overwrite values that are mid-edit in air alarm window (#40338)
Absotively Sep 20, 2025
c55e3af
Automatic changelog update
PJBot Sep 20, 2025
a05d339
Show hand labeler label text on examine (#40334)
Absotively Sep 20, 2025
4df6db1
Automatic changelog update
PJBot Sep 20, 2025
d369fce
Fix RCD errors (#40278)
slarticodefast Sep 20, 2025
2545b6b
Fixing a syntax error (#40473)
2DSiggy Sep 20, 2025
426ecdb
Update Credits (#40478)
github-actions[bot] Sep 21, 2025
46e3ce1
Fix explosion grid alignment for static grids (#40193)
ElectroJr Sep 21, 2025
9c8544a
Fix render target caching in overlays (#40181)
PJB3005 Sep 21, 2025
977dc7d
Automatic changelog update
PJBot Sep 21, 2025
13dd7c2
Move TestPair & PoolManager to engine (#36797)
ElectroJr Sep 21, 2025
331fef4
Average min+max in MaterialArbitrageTest (#39578)
iaada Sep 21, 2025
b3a34c4
prevent repeat TriggerOnCollide triggers (#40428)
cmorley191 Sep 21, 2025
374cd48
Automatic changelog update
PJBot Sep 21, 2025
ae56308
Add date formatting to admin-notes-unbanned (#40484)
Kowlin Sep 21, 2025
9b2fc75
Automatic changelog update
PJBot Sep 21, 2025
f6e2531
Changed corpsman description (#40486)
ToastEnjoyer Sep 21, 2025
0a5af19
Automatic changelog update
PJBot Sep 21, 2025
19b0017
bugfix - correcting poster damage resistances (#40489)
Nyxilath Sep 21, 2025
c776a0d
Automatic changelog update
PJBot Sep 21, 2025
2858d37
Fool players with status command (#40460)
Samuka-C Sep 21, 2025
c6142ee
Removed suspicion antags from antags.ftl (#40493)
ToastEnjoyer Sep 21, 2025
25bc756
Health increase for station AI cores (#40487)
chromiumboy Sep 22, 2025
6024da2
add silicon smite (#40452)
Samuka-C Sep 22, 2025
cb45c2a
Automatic changelog update
PJBot Sep 22, 2025
969986a
Vulpkanin Admin Smite (#40360)
Princess-Cheeseballs Sep 22, 2025
e5608ec
Automatic changelog update
PJBot Sep 22, 2025
1ade6f9
Shuttle UI now properly goes into pilot mode only when using the UI (…
beck-thompson Sep 22, 2025
b1eb18e
Automatic changelog update
PJBot Sep 22, 2025
884a06e
Fixes all departamental typos (both just in comments) (#40502)
mnva0 Sep 22, 2025
0f3f231
Fixes suprise typo in the guidebook (#40501)
mnva0 Sep 22, 2025
c960e77
Cleanup warnings: Use TransformSystem for anchoring (#39778)
B-Kirill Sep 23, 2025
27f1cbe
Cleanup warnings: CS0067, CS8509, CS8073 (#39770)
B-Kirill Sep 23, 2025
9984d80
Cleanup - Use `RemoveAllChildren()` over `DisposeAllChildren()` (#39848)
LordCarve Sep 23, 2025
af63ff1
[HOTFIX] Chameleon projector invisibility (#40509)
Princess-Cheeseballs Sep 23, 2025
926a18c
Fire helmets alone no longer prevent you from heating up while on fir…
hoshizora-sayo Sep 23, 2025
3497e8b
Automatic changelog update
PJBot Sep 23, 2025
f25c364
Target Dummies Now Show Damage Numbers from Projectiles to User (#40101)
Prole0 Sep 23, 2025
65340c3
TriggerOnPlayerSpawnComplete and ExplosionOnTrigger (#39820)
iaada Sep 23, 2025
1402430
Weather On Trigger (#40505)
jessicamaybe Sep 23, 2025
2b2daac
Agent ID verbs now don't require you to pick it up (#40524)
beck-thompson Sep 23, 2025
4e23181
Fix SpawnAndDeleteEntityCountTest Entities and last assert being inco…
DrSmugleaf Sep 23, 2025
fd8056f
Predict identity (#40185)
iaada Sep 23, 2025
7c1292b
Miscellaneous Food/Drink/Edible fixes (#40060)
iaada Sep 23, 2025
72e535a
Fix dev crash when alt+clicking portals (#37540)
iaada Sep 24, 2025
00822ca
Move circuit tiles and faux tiles to the cutter machine (#37982)
iaada Sep 24, 2025
2528c66
Automatic changelog update
PJBot Sep 24, 2025
89f9d04
bunch of small cleanups (#40529)
lzk228 Sep 24, 2025
5846b3d
Added diagnostic huds to the engi-vend (#40461)
Kittygyat Sep 24, 2025
6bdc969
Automatic changelog update
PJBot Sep 24, 2025
f843af4
Recharger tweaks. (#38138)
RedBookcase Sep 24, 2025
e0b6f98
Automatic changelog update
PJBot Sep 24, 2025
16c17ce
Descriptions for .20 Rifle (#36496)
Nox38 Sep 24, 2025
4be3c7d
Automatic changelog update
PJBot Sep 24, 2025
5147550
Xenoborg jammer now ignores xenoborg associated frequencies (#38005)
Samuka-C Sep 24, 2025
20a4d71
Add "Lizard Visage" Snout Markings to lizards (#35294)
Keer-Sar Sep 24, 2025
0e8cf84
Automatic changelog update
PJBot Sep 24, 2025
9e7dc96
Xenoborg items are now highly illegal (#39856)
Hitlinemoss Sep 25, 2025
e7efbdb
Rat King Refactor Part 0: Separate Rummaging from RatKingComponent. (…
jessicamaybe Sep 25, 2025
14857da
Disable panic bunker for Leviathan (#40646)
crazybrain23 Oct 1, 2025
b617b4f
fix some errors.
walksanatora Oct 3, 2025
39b6c4d
Add chasm integration tests (#40286)
slarticodefast Sep 17, 2025
23c71fd
fix a little more.
walksanatora Oct 3, 2025
00c6e4e
The station AI can be destroyed (#39588)
chromiumboy Sep 15, 2025
7dbb4ef
oops.
walksanatora Oct 3, 2025
f2f8ca0
now it is all fixed
walksanatora Oct 3, 2025
c661f03
oops missed some states.
walksanatora Oct 3, 2025
066c7b8
Dark/Light Grass & Desert Astrotiles (#37867)
SharkSnake98 Sep 15, 2025
7fe14f4
dont skip the RSIs...
walksanatora Oct 3, 2025
41c2946
fix
walksanatora Oct 3, 2025
7276c92
part 1 of changes
CrazyPhantom779 Oct 3, 2025
985fa3b
Merge pull request #1454 from walksanatora/silicon-lang-parenting
Happyrobot33 Oct 3, 2025
b22dbb3
mabey fix? make it so the defaults match the calculated defaults.
walksanatora Oct 3, 2025
6a1139e
go go gadget default with species info.
walksanatora Oct 3, 2025
5faabff
FUCK IT MAKE A NEW FUNCTION THAT THROWS A ASSERTION ON DIFFRENT FIELDS.
walksanatora Oct 3, 2025
daa7152
am idiot. #region duh
walksanatora Oct 3, 2025
4f66fd0
and this function is void. if it returns it passed.
walksanatora Oct 3, 2025
79ec6ae
pov: you accidentally rollback some minorly important changes to test…
walksanatora Oct 4, 2025
34a4441
and dont break other stuff...
walksanatora Oct 4, 2025
90f385d
fix PDA proto id and add a migration.
walksanatora Oct 4, 2025
57de2bc
preference
CawsForConcern Oct 4, 2025
9f66857
Merge pull request #1826 from CawsForConcern/CawsTTS
darkrell Oct 4, 2025
a4e3e3d
Update changelog for PR #1826 [skip ci]
github-actions[bot] Oct 4, 2025
9095e30
Merge pull request #1812 from walksanatora/again
walksanatora Oct 4, 2025
fb1d41d
Update changelog for PR #1812 [skip ci]
github-actions[bot] Oct 4, 2025
051d7d9
Xenoborg stuff + Access Config and Door electronic changes + I forget…
CrazyPhantom779 Oct 4, 2025
bb2fc91
Merge branch 'ss14Starlight:starlight-dev' into Door-Electronics-Rework
CrazyPhantom779 Oct 4, 2025
f2d3357
boom no more RR
walksanatora Oct 4, 2025
c52e13f
Merge pull request #1829 from walksanatora/no-shunt-RR
walksanatora Oct 4, 2025
96bae11
Update changelog for PR #1829 [skip ci]
github-actions[bot] Oct 4, 2025
e28cccf
Add intellicards to AI crates (#40401)
ScarKy0 Sep 16, 2025
3fd1c65
Intellicards rename to AI stored on them (#40402)
ScarKy0 Sep 16, 2025
4a5e10b
Change Cryogenics to Cryosleep
CrazyPhantom779 Oct 4, 2025
b54b024
Removed Syndicate Cat Ears from Hug Dispenser, added to loot tables.
CorruptOmega Oct 4, 2025
11d06aa
Merge pull request #1841 from CrazyPhantom779/Change-Cryogenics-to-Cr…
ShadesMars Oct 4, 2025
332657b
Update changelog for PR #1841 [skip ci]
github-actions[bot] Oct 4, 2025
41790cb
Merge branch 'main/starlight-dev' into feature/sprites-maddness
ShadesMars Oct 4, 2025
32f5427
Merge pull request #1827 from CrazyPhantom779/Door-Electronics-Rework
walksanatora Oct 4, 2025
55deed8
Update changelog for PR #1827 [skip ci]
github-actions[bot] Oct 4, 2025
73520e0
Merge pull request #1842 from CorruptOmega/Syndicate-Cat-Ears-Hug-Dis…
walksanatora Oct 4, 2025
9454635
Update changelog for PR #1842 [skip ci]
github-actions[bot] Oct 4, 2025
be48047
fixes
ShadesMars Oct 4, 2025
b9877e9
Merge pull request #1699 from FoxxoTrystan/sprites-maddness
walksanatora Oct 4, 2025
9057ec2
Merge pull request #1830 from walksanatora/missed-ai-things
ShadesMars Oct 4, 2025
433bd8e
Update changelog for PR #1830 [skip ci]
github-actions[bot] Oct 4, 2025
75245fb
Update changelog for PR #1699 [skip ci]
github-actions[bot] Oct 4, 2025
37a5fa0
Devices with access restrictions list those restrictions in their exa…
chromiumboy Sep 15, 2025
db08a87
oops forgot they had to be able to speak.
walksanatora Oct 4, 2025
5ea1039
I USED THE WRONG - HOW HOW HOW
walksanatora Oct 4, 2025
f35fbe8
Remove Misgendering (#40425)
IProduceWidgets Sep 17, 2025
68b688e
Merge pull request #1853 from walksanatora/missed-diagnostics-hud
ShadesMars Oct 4, 2025
b3140f4
Update changelog for PR #1853 [skip ci]
github-actions[bot] Oct 4, 2025
3e6e724
Merge pull request #1854 from walksanatora/forgot-speaker
ShadesMars Oct 4, 2025
0c7485e
Merge pull request #1855 from walksanatora/got-everything
ShadesMars Oct 4, 2025
68948ec
Update changelog for PR #1855 [skip ci]
github-actions[bot] Oct 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions Content.Benchmarks/GlobalUsings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Global usings for Content.Benchmarks

global using Robust.UnitTesting.Pool;
64 changes: 43 additions & 21 deletions Content.Client/Access/UI/AccessOverriderWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -82,48 +82,70 @@ public void UpdateState(IPrototypeManager protoManager, AccessOverriderBoundUser
if (state.MissingPrivilegesList != null && state.MissingPrivilegesList.Any())
{
var missingPrivileges = new List<string>();
var unknownCount = 0;

foreach (string tag in state.MissingPrivilegesList)
{
var privilege = Loc.GetString(protoManager.Index<AccessLevelPrototype>(tag)?.Name ?? "generic-unknown");
missingPrivileges.Add(privilege);
// Starlight edit Start
var canDisplay = state.AccessGroups?.Any(group =>
protoManager.TryIndex(group, out AccessGroupPrototype? groupProto) &&
groupProto.Tags.Contains(tag)) ?? false;

if (canDisplay && protoManager.TryIndex<AccessLevelPrototype>(tag, out var accessProto))
{
var privilege = Loc.GetString(accessProto.Name ?? "generic-unknown");
missingPrivileges.Add(privilege);
}
else
{
unknownCount++;
}
}

MissingPrivilegesLabel.Text = Loc.GetString("access-overrider-window-missing-privileges");
MissingPrivilegesText.Text = string.Join(", ", missingPrivileges);
if (unknownCount > 0)
{
if (unknownCount == 1)
missingPrivileges.Add("Unknown");
else
missingPrivileges.Add($"Unknown ({unknownCount})");
}
if (missingPrivileges.Any())
{
MissingPrivilegesLabel.Text = Loc.GetString("access-overrider-window-missing-privileges");
MissingPrivilegesText.Text = string.Join(", ", missingPrivileges);
}
// Starlight edit End
}

var interfaceEnabled = state.IsPrivilegedIdPresent && state.IsPrivilegedIdAuthorized;

// Starlight-edit: Start
var allowedAccess = interfaceEnabled && state.AllowedModifyAccessList != null
? state.AllowedModifyAccessList.ToList()
: new List<ProtoId<AccessLevelPrototype>>();
// Starlight edit Start
var availableAccess = state.AvailableAccessLevels?.ToList() ?? new List<ProtoId<AccessLevelPrototype>>();
var pressedAccess = state.PressedAccessLevels?.ToList() ?? new List<ProtoId<AccessLevelPrototype>>();

var groupsWithCoverage = new List<ProtoId<AccessGroupPrototype>>();
if (allowedAccess.Count > 0 && state.AccessGroups != null)
if (availableAccess.Count > 0 && state.AccessGroups != null)
{
foreach (var g in state.AccessGroups)
{
if (!protoManager.TryIndex(g, out AccessGroupPrototype? gp))
continue;
var groupTags = gp.Tags.Where(tag =>
protoManager.TryIndex<AccessLevelPrototype>(tag, out var accessProto) &&
accessProto.CanAddToIdCard).ToList();

var groupTags = gp.Tags.Where(tag =>
protoManager.TryIndex<AccessLevelPrototype>(tag, out var accessProto) &&
accessProto.CanAddToIdCard && availableAccess.Contains(tag)).ToList();

if (groupTags.Count == 0)
continue;
var matchingTags = groupTags.Count(tag => allowedAccess.Contains(tag));

var matchingTags = groupTags.Count;
var threshold = Math.Max(1, Math.Min(3, groupTags.Count / 2));

if (matchingTags >= threshold)
groupsWithCoverage.Add(gp.ID);
}
}

var showGroups = groupsWithCoverage.Count > 1;
var showGroups = groupsWithCoverage.Count > 0;

AccessGroupControlContainer.RemoveAllChildren();
AccessLevelControlContainer.RemoveAllChildren();
Expand Down Expand Up @@ -151,10 +173,10 @@ public void UpdateState(IPrototypeManager protoManager, AccessOverriderBoundUser
showGroups ? state.CurrentAccessGroup : null;

_accessButtons.UpdateState(
state.TargetAccessReaderIdAccessList?.ToList() ?? new List<ProtoId<AccessLevelPrototype>>(),
pressedAccess,
effectiveGroup,
protoManager,
allowedAccess);
availableAccess);
AccessLevelControlContainer.AddChild(_accessButtons);

foreach (var (id, button) in _accessButtons.ButtonsList)
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Access/UI/AgentIDCardWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public AgentIDCardWindow()

public void SetAllowedIcons(string currentJobIconId)
{
IconGrid.RemoveAllChildren(); // Starlight-edit
IconGrid.RemoveAllChildren();

var jobIconButtonGroup = new ButtonGroup();
var i = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,8 @@ private void ArrangeAccessControls()

private bool TryRebuildAccessGroupControls()
{
// Starlight-edit: Start
AccessGroupList.RemoveAllChildren();
AccessLevelChecklist.RemoveAllChildren();
// Starlight-edit: End

// No access level prototypes were assigned to any of the access level groups.
// Either the turret controller has no assigned access levels or their names were invalid.
Expand Down Expand Up @@ -167,7 +165,7 @@ private bool TryRebuildAccessGroupControls()
/// </summary>
public void RebuildAccessLevelsControls()
{
AccessLevelChecklist.RemoveAllChildren(); // Starlight
AccessLevelChecklist.RemoveAllChildren();
_accessLevelEntries.Clear();

// No access level prototypes were assigned to any of the access level groups
Expand Down
26 changes: 23 additions & 3 deletions Content.Client/Actions/ActionsSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public sealed class ActionsSystem : SharedActionsSystem
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly IResourceManager _resources = default!;
[Dependency] private readonly MetaDataSystem _metaData = default!;
[Dependency] private readonly ISerializationManager _serialization = default!;

public event Action<EntityUid>? OnActionAdded;
public event Action<EntityUid>? OnActionRemoved;
Expand Down Expand Up @@ -286,8 +287,27 @@ public void LoadActionAssignments(string path, bool userData)
continue;
}

if (assignmentNode is SequenceDataNode sequenceAssignments)
{
try
{
var nodeAssignments = _serialization.Read<List<(byte Hotbar, byte Slot)>>(sequenceAssignments, notNullableOverride: true);

foreach (var index in nodeAssignments)
{
assignments.Add(new SlotAssignment(index.Hotbar, index.Slot, actionId));
}
}
catch (Exception ex)
{
Log.Error($"Failed to parse action assignments: {ex}");
}
}

AddActionDirect((user, actions), actionId);
}

AssignSlot?.Invoke(assignments);
}

private void OnWorldTargetAttempt(Entity<WorldTargetActionComponent> ent, ref ActionTargetAttemptEvent args)
Expand All @@ -309,10 +329,10 @@ private void OnWorldTargetAttempt(Entity<WorldTargetActionComponent> ent, ref Ac
// this is the actual entity-world targeting magic
EntityUid? targetEnt = null;
if (TryComp<EntityTargetActionComponent>(ent, out var entity) &&
args.Input.EntityUid != null &&
ValidateEntityTarget(user, args.Input.EntityUid, (uid, entity)))
args.Input.EntityUid is { Valid: true } entityUid &&
ValidateEntityTarget(user, entityUid, (uid, entity)))
{
targetEnt = args.Input.EntityUid;
targetEnt = entityUid;
}

if (action.ClientExclusive)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<DefaultWindow xmlns="https://spacestation14.io"
Title="{Loc admin-camera-window-title-placeholder}"
SetSize="425 550"
MinSize="200 225"
Name="Window">
MinSize="200 225">
</DefaultWindow>
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public void SetTargetEntity(NetEntity target)
/// </summary>
public void UpdateReagents()
{
ReagentList.DisposeAllChildren();
ReagentList.RemoveAllChildren();

if (_selectedSolution == null || _solutions == null)
return;
Expand All @@ -92,7 +92,7 @@ public void UpdateReagents()
/// <param name="solution">The selected solution.</param>
private void UpdateVolumeBox(Solution solution)
{
VolumeBox.DisposeAllChildren();
VolumeBox.RemoveAllChildren();

var volumeLabel = new Label();
volumeLabel.HorizontalExpand = true;
Expand Down Expand Up @@ -131,7 +131,7 @@ private void UpdateVolumeBox(Solution solution)
/// <param name="solution">The selected solution.</param>
private void UpdateThermalBox(Solution solution)
{
ThermalBox.DisposeAllChildren();
ThermalBox.RemoveAllChildren();
var heatCap = solution.GetHeatCapacity(null);
var specificHeatLabel = new Label();
specificHeatLabel.HorizontalExpand = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,11 @@ private void Refresh()

if (Note.UnbannedTime is not null)
{
ExtraLabel.Text = Loc.GetString("admin-notes-unbanned", ("admin", Note.UnbannedByName ?? "[error]"), ("date", Note.UnbannedTime));
ExtraLabel.Text = Loc.GetString(
"admin-notes-unbanned",
("admin", Note.UnbannedByName ?? "[error]"),
("date", Note.UnbannedTime.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"))
);
ExtraLabel.Visible = true;
}
else if (Note.ExpiryTime is not null)
Expand Down Expand Up @@ -139,7 +143,7 @@ private string FormatBanMessage()

private string FormatRoleBanMessage()
{
var banMessage = new StringBuilder($"{Loc.GetString("admin-notes-banned-from")} {string.Join(", ", Note.BannedRoles ?? new []{"unknown"})} ");
var banMessage = new StringBuilder($"{Loc.GetString("admin-notes-banned-from")} {string.Join(", ", Note.BannedRoles ?? new[] { "unknown" })} ");
return FormatBanMessageCommon(banMessage);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ private float ScaledValue
public void SetValue(float value)
{
_value = value;
CSpinner.Value = ScaledValue;
if (!CSpinner.HasKeyboardFocus())
{
CSpinner.Value = ScaledValue;
}
}

public void SetEnabled(bool enabled)
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ public void PopulateOrders(IEnumerable<CargoOrderData> orders)
if (!_orderConsoleQuery.TryComp(_owner, out var orderConsole))
return;

Requests.DisposeAllChildren();
Requests.RemoveAllChildren();

foreach (var order in orders)
{
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Cargo/UI/CargoShuttleMenu.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public void SetShuttleName(string name)

public void SetOrders(SpriteSystem sprites, IPrototypeManager protoManager, List<CargoOrderData> orders)
{
Orders.DisposeAllChildren();
Orders.RemoveAllChildren();

foreach (var order in orders)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Content.Client.CrewManifest.UI;
using Content.Client.CrewManifest.UI;
using Content.Shared.CrewManifest;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
Expand All @@ -21,7 +21,6 @@ public CrewManifestUiFragment()

public void UpdateState(string stationName, CrewManifestEntries? entries)
{
CrewManifestListing.DisposeAllChildren();
CrewManifestListing.RemoveAllChildren();

StationNameContainer.Visible = entries != null;
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Changelog/ChangelogWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ private async void PopulateChangelog()
// Changelog is not kept in memory so load it again.
var changelogs = await _changelog.LoadChangelog();

Tabs.DisposeAllChildren();
Tabs.RemoveAllChildren();

var i = 0;
foreach (var changelog in changelogs)
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/ContextMenu/UI/ContextMenuUIController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public void Shutdown()
/// </summary>
public void Close()
{
RootMenu.MenuBody.DisposeAllChildren();
RootMenu.MenuBody.RemoveAllChildren();
CancelOpen?.Cancel();
CancelClose?.Cancel();
OnContextClosed?.Invoke();
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/ContextMenu/UI/EntityMenuUIController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ private void AddEntityToMenu(EntityUid entity, ContextMenuPopup menu)
var element = new EntityMenuElement(entity);
element.SubMenu = new ContextMenuPopup(_context, element);
element.SubMenu.OnPopupOpen += () => _verb.OpenVerbMenu(entity, popup: element.SubMenu);
element.SubMenu.OnPopupHide += element.SubMenu.MenuBody.DisposeAllChildren;
element.SubMenu.OnPopupHide += element.SubMenu.MenuBody.RemoveAllChildren;
_context.AddElement(menu, element);
Elements.TryAdd(entity, element);
}
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Crayon/UI/CrayonWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private void TogglePreview(ButtonToggledEventArgs args)
private void RefreshList()
{
// Clear
Grids.DisposeAllChildren();
Grids.RemoveAllChildren();

if (_decals == null || _allDecals == null)
return;
Expand Down
1 change: 0 additions & 1 deletion Content.Client/CrewManifest/CrewManifestUi.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ public CrewManifestUi()

public void Populate(string name, CrewManifestEntries? entries)
{
CrewManifestListing.DisposeAllChildren();
CrewManifestListing.RemoveAllChildren();

StationNameContainer.Visible = entries != null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ protected override void Open()
base.Open();
_window = this.CreateWindow<DoorElectronicsConfigurationMenu>();
_window.OnAccessChanged += UpdateConfiguration;
Reset();
// Starlight edit Start
if (EntMan.TryGetComponent<MetaDataComponent>(Owner, out var meta))
_window.Title = meta.EntityName;
// Reset();
// Starlight edit End
}

public override void OnProtoReload(PrototypesReloadedEventArgs args)
Expand All @@ -31,32 +35,20 @@ public override void OnProtoReload(PrototypesReloadedEventArgs args)
if (!args.WasModified<AccessLevelPrototype>())
return;

Reset();
}

private void Reset()
{
List<ProtoId<AccessLevelPrototype>> accessLevels = new();

foreach (var accessLevel in _prototypeManager.EnumeratePrototypes<AccessLevelPrototype>())
{
if (accessLevel.Name != null)
{
accessLevels.Add(accessLevel.ID);
}
}

accessLevels.Sort();
_window?.Reset(_prototypeManager, accessLevels);
// Starlight edit Start
if (State is DoorElectronicsConfigurationState cast)
_window?.UpdateState(cast.AccessList, cast.AccessGroups);
// Starlight edit End
}

protected override void UpdateState(BoundUserInterfaceState state)
{
// Starlight Start
base.UpdateState(state);

var castState = (DoorElectronicsConfigurationState) state;

_window?.UpdateState(castState);
if (state is not DoorElectronicsConfigurationState cast)
return;
// Starlight End
_window?.UpdateState(cast.AccessList, cast.AccessGroups, cast.PressedAccessList); // Starlight edit
}

public void UpdateConfiguration(List<ProtoId<AccessLevelPrototype>> newAccessList)
Expand Down
Loading
Loading