Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
97f73da
Replace Regular Boxing Gloves with Rigged Boxing Gloves in the Uplink…
Princess-Cheeseballs Jan 26, 2026
4ddac14
Automatic changelog update
PJBot Jan 26, 2026
4e9a456
Drop ICharacterProfile/ICharacterAppearance interfaces (#42661)
sowelipililimute Jan 26, 2026
eb76388
fixing the handling of the RespiratorComponent without checking (#42665)
DIMMoon1 Jan 26, 2026
b625152
Add the Uplink changes to feedback popups. (#42649)
Princess-Cheeseballs Jan 26, 2026
d11f3fb
Content.Packaging can now emit binlogs for the build (#42659)
PJB3005 Jan 27, 2026
8dbdb19
Fix 42643 meat spike doafter race condition (#42644)
ScholarNZL Jan 27, 2026
80b0239
Automatic changelog update
PJBot Jan 27, 2026
9e6b0f6
Some bonfire fixes (#42675)
B-Kirill Jan 27, 2026
ed3a4d8
Automatic changelog update
PJBot Jan 27, 2026
ec57280
Add Attribution for Web Walls. (#42677)
VerinSenpai Jan 27, 2026
ffd9c22
Fix incorrect tip (#42678)
DaturoDewitt Jan 27, 2026
0c2b17b
Removed duplicate disposal unit in Oasis Kitchen. (#42670)
ScholarNZL Jan 27, 2026
58dc0c1
Automatic changelog update
PJBot Jan 27, 2026
479579e
Remove Visitor Shuttles (Real) and also cleanup the event rule system…
Princess-Cheeseballs Jan 27, 2026
4b65de4
Automatic changelog update
PJBot Jan 27, 2026
7d7ca77
[FIX] Fix spacing explosions ignoring indestructible flag in stacked …
Velken Jan 28, 2026
9bb1e7a
Automatic changelog update
PJBot Jan 28, 2026
ceb175c
Health Analyzer Reactivation (#42608)
ShepardToTheStars Jan 28, 2026
b252636
Automatic changelog update
PJBot Jan 28, 2026
57b7310
Lizard Unhappy (#42594)
Huaqas Jan 28, 2026
275facf
Automatic changelog update
PJBot Jan 28, 2026
e4e9371
Update RT to 272.0.0 (#42694)
PJB3005 Jan 29, 2026
1f8365f
Log Criminal Status changes for admin panel (#42691)
M4rchy-S Jan 29, 2026
338503b
Automatic changelog update
PJBot Jan 29, 2026
407664a
Add Cyborg crew indicator (#37038)
SlamBamActionman Jan 29, 2026
236eaa1
Automatic changelog update
PJBot Jan 29, 2026
4537da5
Estoc DMR made Nukie Only (#42698)
Princess-Cheeseballs Jan 29, 2026
aad8729
Automatic changelog update
PJBot Jan 29, 2026
2a268a5
Add fontconfig and pipewire to shell.nix (#42700)
mdrkrg Jan 29, 2026
801b024
[Admin] Made admin log be high if the buyer is not from expected fact…
Velken Jan 29, 2026
769075e
[STAGING] Fix Diona not transferring their minds to their nymphs when…
Princess-Cheeseballs Jan 31, 2026
8474396
[STAGING] Fix Hardsuit Helmets dropping on being gibbed. (#42703)
Princess-Cheeseballs Jan 31, 2026
5a920c9
Merge commit '8474396c804' into upstream/sylpheed-between-the-dry-val…
wonderfulnewworld Aug 31, 2026
f3f1f1f
fix ai and k9 stuff
wonderfulnewworld Aug 31, 2026
e20fdbb
restore estoc loc
wonderfulnewworld Sep 1, 2026
15773dd
visitors arent crew
wonderfulnewworld Sep 1, 2026
138cf7a
Merge branch 'starlight-dev' into upstream/sylpheed-between-the-dry-v…
wonderfulnewworld Sep 1, 2026
0a3b164
editor config
wonderfulnewworld Sep 1, 2026
39138b4
test packaging can come back
wonderfulnewworld Sep 1, 2026
850790a
so like theoretically
wonderfulnewworld Sep 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions .github/workflows/test-packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,11 @@ jobs:
cd RobustToolbox/
git submodule update --init --recursive

- name: Setup .NET Core
# ubuntu-latest has .NET 10
- name: Setup .NET Core # Starlight start
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
dotnet-version: 10.0.x # Starlight end

- name: Install dependencies
run: dotnet restore
Expand All @@ -65,7 +66,13 @@ jobs:
run: dotnet build Content.Packaging --configuration Release --no-restore /m

- name: Package server
run: dotnet run --project Content.Packaging server --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64
run: dotnet run --project Content.Packaging server --log-build --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64

- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release
run: dotnet run --project Content.Packaging client --log-build --no-wipe-release

- uses: actions/upload-artifact@v4
with:
name: binlogs
path: release/*.binlog
retention-days: 7
28 changes: 28 additions & 0 deletions Content.Client/Access/Systems/JobStatusSystem.Starlight.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using Content.Shared.Access.Systems;
using Content.Shared.Medical.SuitSensor;
using Content.Shared.Medical.SuitSensors;
using Content.Shared.Silicons.StationAi;

namespace Content.Client.Access.Systems;

public sealed partial class JobStatusSystem : SharedJobStatusSystem
{
// Show job icons if entity is in camera view (only relevant for AI viewers) OR they have active suit sensors.
private bool CanSeeJobStatus(EntityUid uid)
{
if (_player.LocalEntity is not { } localEnt
|| !HasComp<StationAiOverlayComponent>(localEnt)
|| !_vision.IsOutsideCameraViewCached(uid))
{
return true;
}

foreach (var sensor in EntityQuery<SuitSensorComponent>(true))
{
if (sensor.User == uid && sensor.Mode == SuitSensorMode.SensorCords)
return true;
}

return false;
}
}
45 changes: 45 additions & 0 deletions Content.Client/Access/Systems/JobStatusSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using Content.Client.Overlays;
using Content.Shared.Access.Systems;
using Content.Shared.Silicons.StationAi;
using Content.Shared.StatusIcon;
using Content.Shared.StatusIcon.Components;
using Robust.Client.Player;
using Robust.Shared.Prototypes;

namespace Content.Client.Access.Systems;

public sealed partial class JobStatusSystem : SharedJobStatusSystem
{
[Dependency] private ShowJobIconsSystem _showJobIcons = default!;
[Dependency] private ShowCrewIconsSystem _showCrewIcons = default!;
[Dependency] private IPrototypeManager _prototype = default!;
[Dependency] private StationAiVisionSystem _vision = default!;
[Dependency] private IPlayerManager _player = default!;

private static readonly ProtoId<SecurityIconPrototype> CrewBorderIcon = "CrewBorderIcon";
private static readonly ProtoId<SecurityIconPrototype> CrewUncertainBorderIcon = "CrewUncertainBorderIcon";

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<JobStatusComponent, GetStatusIconsEvent>(OnGetStatusIconsEvent);
}

// show the status icons if the player has the correponding HUDs
private void OnGetStatusIconsEvent(Entity<JobStatusComponent> ent, ref GetStatusIconsEvent ev)
{
var canSeeJobStatus = CanSeeJobStatus(ent); // Starlight

if (_showJobIcons.IsActive && canSeeJobStatus && ent.Comp.JobStatusIcon != null) // Starlight
ev.StatusIcons.Add(_prototype.Index(ent.Comp.JobStatusIcon));

if (_showCrewIcons.IsActive && canSeeJobStatus) // Starlight
{
if (_showCrewIcons.UncertainCrewBorder)
ev.StatusIcons.Add(_prototype.Index(CrewUncertainBorderIcon));
else if (ent.Comp.IsCrew)
ev.StatusIcons.Add(_prototype.Index(CrewBorderIcon));
}
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Linq;
using Content.Client.SubFloor;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Components;
Expand Down Expand Up @@ -30,7 +31,11 @@ private void OnInit(EntityUid uid, PipeAppearanceComponent component, ComponentI
var numberOfPipeLayers = GetNumberOfPipeLayers(uid, out _);

// Starlight START
_sprite.LayerMapTryGet((uid, sprite), PipeVisualLayers.Pipe, out var pipeIndex, false);
// Prefer inserting the generated connections directly after the main pipe layer. If a prototype does not
// have one, fall back to appending them like LayerMapReserve would instead of using an invalid layer index.
var insertionIndex = sprite.AllLayers.Count();
if (_sprite.LayerMapTryGet((uid, sprite), PipeVisualLayers.Pipe, out var pipeIndex, false))
insertionIndex = pipeIndex + 1;
// Starlight END

foreach (var layerKey in Enum.GetValues<PipeConnectionLayer>())
Expand All @@ -40,10 +45,10 @@ private void OnInit(EntityUid uid, PipeAppearanceComponent component, ComponentI
var layerName = layerKey.ToString() + i.ToString();

// Starlight START
// The generated layer should go directly after the main pipe layer, not at the end, hence the pipeIndex+1.
// The generated layer should go directly after the main pipe layer when it exists, not at the end.
if (!_sprite.LayerMapTryGet((uid, sprite), layerName, out var layer, false))
{
layer = pipeIndex + 1;
layer = insertionIndex;
_sprite.AddBlankLayer((uid, sprite), layer);
_sprite.LayerMapSet((uid, sprite), layerName, layer);
}
Expand Down
12 changes: 6 additions & 6 deletions Content.Client/Lobby/ClientPreferencesManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public void SetCharacterEnable(int slot, bool enable = true)
if (characterProfile is not HumanoidCharacterProfile profile)
return;

var characters = new Dictionary<int, ICharacterProfile>(Preferences.Characters)
var characters = new Dictionary<int, HumanoidCharacterProfile>(Preferences.Characters)
{
[slot] = new HumanoidCharacterProfile(profile) {Enabled = enable},
};
Expand All @@ -72,11 +72,11 @@ public void SetCharacterEnable(int slot, bool enable = true)
_netManager.ClientSendMessage(msg);
}

public void UpdateCharacter(ICharacterProfile profile, int slot)
public void UpdateCharacter(HumanoidCharacterProfile profile, int slot)
{
var collection = IoCManager.Instance!;
profile.EnsureValid(_playerManager.LocalSession!, collection);
var characters = new Dictionary<int, ICharacterProfile>(Preferences.Characters) {[slot] = profile};
var characters = new Dictionary<int, HumanoidCharacterProfile>(Preferences.Characters) {[slot] = profile};
Preferences = new PlayerPreferences(characters, Preferences.AdminOOCColor, Preferences.ConstructionFavorites, Preferences.JobPriorities);
var msg = new MsgUpdateCharacter
{
Expand All @@ -86,9 +86,9 @@ public void UpdateCharacter(ICharacterProfile profile, int slot)
_netManager.ClientSendMessage(msg);
}

public void CreateCharacter(ICharacterProfile profile)
public void CreateCharacter(HumanoidCharacterProfile profile)
{
var characters = new Dictionary<int, ICharacterProfile>(Preferences.Characters);
var characters = new Dictionary<int, HumanoidCharacterProfile>(Preferences.Characters);
var lowest = Enumerable.Range(0, Settings.MaxCharacterSlots)
.Except(characters.Keys)
.FirstOrNull();
Expand All @@ -105,7 +105,7 @@ public void CreateCharacter(ICharacterProfile profile)
UpdateCharacter(profile, l);
}

public void DeleteCharacter(ICharacterProfile profile)
public void DeleteCharacter(HumanoidCharacterProfile profile)
{
DeleteCharacter(Preferences.IndexOfCharacter(profile));
}
Expand Down
6 changes: 3 additions & 3 deletions Content.Client/Lobby/IClientPreferencesManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ public interface IClientPreferencesManager
PlayerPreferences? Preferences { get; }
void Initialize();
void SetCharacterEnable(int slot, bool enable);
void UpdateCharacter(ICharacterProfile profile, int slot);
void CreateCharacter(ICharacterProfile profile);
void DeleteCharacter(ICharacterProfile profile);
void UpdateCharacter(HumanoidCharacterProfile profile, int slot);
void CreateCharacter(HumanoidCharacterProfile profile);
void DeleteCharacter(HumanoidCharacterProfile profile);
void DeleteCharacter(int slot);
void UpdateConstructionFavorites(List<ProtoId<ConstructionPrototype>> favorites);
void UpdateJobPriorities(Dictionary<ProtoId<JobPrototype>, JobPriority> jobPriorities);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,12 @@
/// <param name="showClothes">If false, render the dummy without clothes</param>
/// <param name="antagOverride"> Starlight: Optional antag prototype override to preview</param>
/// <exception cref="ArgumentException">Throws if something other than <see cref="HumanoidCharacterProfile"/> is passed in</exception>
public void LoadPreview(ICharacterProfile profile, JobPrototype? jobOverride = null, bool showClothes = true, ProtoId<AntagPrototype>? antagOverride = null) // Starlight edit: Antag Loadouts
public void LoadPreview(HumanoidCharacterProfile profile, JobPrototype? jobOverride = null, bool showClothes = true, ProtoId<AntagPrototype>? antagOverride = null) // Starlight edit: Antag Loadouts
{
EntMan.DeleteEntity(PreviewDummy);
PreviewDummy = EntityUid.Invalid;

switch (profile)
{
case HumanoidCharacterProfile humanoid:
LoadHumanoidEntity(humanoid, jobOverride, showClothes, antagOverride); // Starlight edit: Antag Loadouts
break;
default:
throw new ArgumentException("Only humanoid profiles are implemented in ProfilePreviewSpriteView");
}
LoadHumanoidEntity(profile, jobOverride, showClothes, antagOverride); // Starlight edit: Antag Loadouts

FullDescription = ConstructFullDescription();

Expand All @@ -101,16 +94,9 @@
/// </summary>
/// <param name="profile"></param>
/// <exception cref="ArgumentException"></exception>
public void ReloadProfilePreview(ICharacterProfile profile)
public void ReloadProfilePreview(HumanoidCharacterProfile profile)
{
switch (profile)
{
case HumanoidCharacterProfile humanoid:
ReloadHumanoidEntity(humanoid);
break;
default:
throw new ArgumentException("Only humanoid profiles are implemented in ProfilePreviewSpriteView");
}
ReloadHumanoidEntity(profile);

Check warning on line 99 in Content.Client/Lobby/UI/ProfileEditorControls/ProfilePreviewSpriteView.cs

View workflow job for this annotation

GitHub Actions / build

[C# diagnostics] reported by reviewdog 🐶 Use expression body for method Raw Output: {"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/Lobby/UI/ProfileEditorControls/ProfilePreviewSpriteView.cs"},"region":{"endColumn":39,"endLine":99,"startColumn":9,"startLine":99}}}],"message":{"text":"Use expression body for method"},"properties":{},"relatedLocations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/Lobby/UI/ProfileEditorControls/ProfilePreviewSpriteView.cs"},"region":{"endColumn":6,"endLine":100,"startColumn":5,"startLine":97}}}],"ruleId":"IDE0022","ruleIndex":645}
}

private string ConstructFullDescription()
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Overlays/EquipmentHudSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public abstract partial class EquipmentHudSystem<T> : EntitySystem where T : ICo
[Dependency] private IPlayerManager _player = default!;

[ViewVariables]
protected bool IsActive;
public bool IsActive { get; private set; }
protected virtual SlotFlags TargetSlots => ~SlotFlags.POCKET;

public override void Initialize()
Expand Down
34 changes: 34 additions & 0 deletions Content.Client/Overlays/ShowCrewIconsSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using Content.Shared.Inventory.Events;
using Content.Shared.Overlays;

namespace Content.Client.Overlays;

// The GetStatusIconsEvent subscription is handled in JobStatusSystem
public sealed class ShowCrewIconsSystem : EquipmentHudSystem<ShowCrewIconsComponent>
{
public bool UncertainCrewBorder = false;

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<ShowCrewIconsComponent, AfterAutoHandleStateEvent>(OnHandleState);
}

protected override void UpdateInternal(RefreshEquipmentHudEvent<ShowCrewIconsComponent> component)
{
base.UpdateInternal(component);

UncertainCrewBorder = false;
foreach (var comp in component.Components)
{
if (comp.UncertainCrewBorder)
UncertainCrewBorder = true;
}
}

private void OnHandleState(Entity<ShowCrewIconsComponent> ent, ref AfterAutoHandleStateEvent args)
{
RefreshOverlay();

Check warning on line 32 in Content.Client/Overlays/ShowCrewIconsSystem.cs

View workflow job for this annotation

GitHub Actions / build

[C# diagnostics] reported by reviewdog 🐶 Use expression body for method Raw Output: {"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/Overlays/ShowCrewIconsSystem.cs"},"region":{"endColumn":26,"endLine":32,"startColumn":9,"startLine":32}}}],"message":{"text":"Use expression body for method"},"properties":{},"relatedLocations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/Overlays/ShowCrewIconsSystem.cs"},"region":{"endColumn":6,"endLine":33,"startColumn":5,"startLine":30}}}],"ruleId":"IDE0022","ruleIndex":645}
}
}
96 changes: 2 additions & 94 deletions Content.Client/Overlays/ShowJobIconsSystem.cs
Original file line number Diff line number Diff line change
@@ -1,98 +1,6 @@
using Content.Shared._Starlight.StatusIcon;
using Content.Shared.Access.Components;
using Content.Shared.Access.Systems;
using Content.Shared.Overlays;
using Content.Shared.PDA;
using Content.Shared.StatusIcon;
using Content.Shared.StatusIcon.Components;
using Robust.Shared.Prototypes;
using Robust.Client.Player;
using Content.Shared.Silicons.StationAi;
using Content.Shared.Medical.SuitSensors;
using Content.Shared.Medical.SuitSensor;

namespace Content.Client.Overlays;

public sealed partial class ShowJobIconsSystem : EquipmentHudSystem<ShowJobIconsComponent>
{
[Dependency] private IPrototypeManager _prototype = default!;
[Dependency] private AccessReaderSystem _accessReader = default!;

#region Starlight
[Dependency] private StationAiVisionSystem _vision = default!;
[Dependency] private IPlayerManager _player = default!;
#endregion

private static readonly ProtoId<JobIconPrototype> JobIconForNoId = "JobIconNoId";

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<StatusIconComponent, GetStatusIconsEvent>(OnGetStatusIconsEvent);
}

private void OnGetStatusIconsEvent(EntityUid uid, StatusIconComponent _, ref GetStatusIconsEvent ev)
{
if (!IsActive)
return;

var iconId = JobIconForNoId;

// Starlight Start
if (TryComp<FixedJobIconComponent>(uid, out var fixedIcon) && _prototype.Resolve(fixedIcon.Job, out var job))
{
iconId = job.Icon;
}
else if (_accessReader.FindAccessItemsInventory(uid, out var items))
// Starlight End
{
foreach (var item in items)
{
// ID Card
if (TryComp<IdCardComponent>(item, out var id))
{
iconId = id.JobIcon;
break;
}

// PDA
if (TryComp<PdaComponent>(item, out var pda)
&& pda.ContainedId != null
&& TryComp(pda.ContainedId, out id))
{
iconId = id.JobIcon;
break;
}
}
}

// Starlight - start
// Show job icons if entity is in camera view (only relevant for AI viewers) OR they have active suit sensors.

// First, determine if the local viewer is an AI-style viewer. Only then consult the AI vision system.
if (_player.LocalEntity is EntityUid localEnt
&& TryComp(localEnt, out StationAiOverlayComponent? _)
&& _vision.IsOutsideCameraViewCached(uid))
{
var suitSensorsActive = false;
// Iterate all suit sensors and check if any are assigned to this user and active.
foreach (var sensor in EntityQuery<SuitSensorComponent>(true))
{
if (sensor.User == uid && sensor.Mode == SuitSensorMode.SensorCords)
{
suitSensorsActive = true;
break;
}
}

if(!suitSensorsActive) return;
}
// Starlight - end

if (_prototype.Resolve(iconId, out var iconPrototype))
ev.StatusIcons.Add(iconPrototype);
else
Log.Error($"Invalid job icon prototype: {iconPrototype}");
}
}
// The GetStatusIconsEvent subscription is handled in JobStatusSystem
public sealed class ShowJobIconsSystem : EquipmentHudSystem<ShowJobIconsComponent>;
4 changes: 2 additions & 2 deletions Content.Client/StatusIcon/StatusIconOverlay.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
countL++;
}
yOffset = (bounds.Height + sprite.Offset.Y) / 2f - (float)(accOffsetL - proto.Offset) / EyeManager.PixelsPerMeter;
xOffset = -(bounds.Width + sprite.Offset.X) / 2f;
xOffset = -(bounds.Width + sprite.Offset.X) / 2f + (float)proto.OffsetHorizontal / EyeManager.PixelsPerMeter;

Check warning on line 104 in Content.Client/StatusIcon/StatusIconOverlay.cs

View workflow job for this annotation

GitHub Actions / build

[C# diagnostics] reported by reviewdog 🐶 Parentheses should be added for clarity Raw Output: {"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":103,"endLine":104,"startColumn":102,"startLine":104}}}],"message":{"text":"Parentheses should be added for clarity"},"properties":{},"relatedLocations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":129,"endLine":104,"startColumn":72,"startLine":104}}}],"ruleId":"IDE0048","ruleIndex":659}

Check warning on line 104 in Content.Client/StatusIcon/StatusIconOverlay.cs

View workflow job for this annotation

GitHub Actions / build

[C# diagnostics] reported by reviewdog 🐶 Parentheses should be added for clarity Raw Output: {"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":66,"endLine":104,"startColumn":65,"startLine":104}}}],"message":{"text":"Parentheses should be added for clarity"},"properties":{},"relatedLocations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":69,"endLine":104,"startColumn":31,"startLine":104}}}],"ruleId":"IDE0048","ruleIndex":659}

}
else
Expand All @@ -114,7 +114,7 @@
countR++;
}
yOffset = (bounds.Height + sprite.Offset.Y) / 2f - (float)(accOffsetR - proto.Offset) / EyeManager.PixelsPerMeter;
xOffset = (bounds.Width + sprite.Offset.X) / 2f - (float)texture.Width / EyeManager.PixelsPerMeter;
xOffset = (bounds.Width + sprite.Offset.X) / 2f - (float)(texture.Width - proto.OffsetHorizontal) / EyeManager.PixelsPerMeter;

Check warning on line 117 in Content.Client/StatusIcon/StatusIconOverlay.cs

View workflow job for this annotation

GitHub Actions / build

[C# diagnostics] reported by reviewdog 🐶 Parentheses should be added for clarity Raw Output: {"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":120,"endLine":117,"startColumn":119,"startLine":117}}}],"message":{"text":"Parentheses should be added for clarity"},"properties":{},"relatedLocations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":146,"endLine":117,"startColumn":71,"startLine":117}}}],"ruleId":"IDE0048","ruleIndex":659}

Check warning on line 117 in Content.Client/StatusIcon/StatusIconOverlay.cs

View workflow job for this annotation

GitHub Actions / build

[C# diagnostics] reported by reviewdog 🐶 Parentheses should be added for clarity Raw Output: {"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":65,"endLine":117,"startColumn":64,"startLine":117}}}],"message":{"text":"Parentheses should be added for clarity"},"properties":{},"relatedLocations":[{"physicalLocation":{"artifactLocation":{"uri":"file:///home/runner/work/space-station-14/space-station-14/Content.Client/StatusIcon/StatusIconOverlay.cs"},"region":{"endColumn":68,"endLine":117,"startColumn":31,"startLine":117}}}],"ruleId":"IDE0048","ruleIndex":659}

}

Expand Down
Loading
Loading