Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tweak] Upstream sync #1051

Merged
merged 159 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
001d61c
Add air alarm admin logs (#33426)
Palladinium Feb 6, 2025
43da2cc
Automatic changelog update
PJBot Feb 6, 2025
a0fe21a
Added Genderqueer pin! (Properly this time.) (#34561)
centcomofficer24 Feb 6, 2025
6d2e0f5
Automatic changelog update
PJBot Feb 6, 2025
4cc5b5b
bagel fix hos locker (#34919)
Emisse Feb 6, 2025
16aad5a
Swapped butter w/ olive oil for making spaghetti (#34904)
SG6732 Feb 6, 2025
5020cfa
Automatic changelog update
PJBot Feb 6, 2025
e675ea4
hide icons for invisible entities (#34825)
deltanedas Feb 6, 2025
6c7170e
Automatic changelog update
PJBot Feb 6, 2025
cd91eff
HOTFIX: Fix lineedit focus (#34621)
ShadowCommander Feb 6, 2025
11e5d59
HOTFIX: fix minibomb implant and syndicats not exploding (#34923)
slarticodefast Feb 6, 2025
3940d22
Merge stable into master (#34924)
slarticodefast Feb 6, 2025
64ebcb5
cleanup not needed locale string (#34922)
lzk228 Feb 6, 2025
b6ccbef
DNA scrambler examine fixes (#34920)
12rabbits Feb 6, 2025
d204480
Automatic changelog update
PJBot Feb 6, 2025
8ff90a6
Guide Control Button Now Redirects Properly (#34914)
GrownSamoyedDog Feb 6, 2025
727935c
Automatic changelog update
PJBot Feb 6, 2025
ed01ad7
Buff the Combat Bakery Kit uplink item (#34927)
themias Feb 6, 2025
c5d1aba
Automatic changelog update
PJBot Feb 6, 2025
14d96e0
Convex fixes (#34934)
Spessmann Feb 7, 2025
f37d5c9
Purge uses of TransformComponent.AttachToGridOrMap (#34940)
TemporalOroboros Feb 7, 2025
1f5fab5
move lathe recipes into packs (easier for forks and maintaining) (#33…
deltanedas Feb 7, 2025
d7d77ff
Plasma fixes 2 (#34962)
Compilatron144 Feb 8, 2025
524a218
Round up playtime minutes (#34961)
sowelipililimute Feb 8, 2025
80bd01b
Automatic changelog update
PJBot Feb 8, 2025
e971d6e
Revert engine reverties (#34968)
metalgearsloth Feb 8, 2025
1caea8a
Paper door (#34857)
Chaboricks Feb 8, 2025
6465413
Automatic changelog update
PJBot Feb 8, 2025
87a8684
Drozd Colors for Kammerer (#34930)
GaussiArson Feb 8, 2025
d7e9782
Make Ignite tryget flammablecomp (#34970)
metalgearsloth Feb 8, 2025
f6c0e6d
Wizard shuttle preperation (#34932)
ScarKy0 Feb 8, 2025
bc3de0f
Fix: The SyndicateVisitor now has Free Agent mind role. (#34827) (#34…
YoungThugSS14 Feb 8, 2025
1ef6e0b
Automatic changelog update
PJBot Feb 8, 2025
bf6fd4d
Wizard Item Recall Spell (#34411)
ScarKy0 Feb 8, 2025
3d34b8e
Meta tweaks (#34957)
Nox38 Feb 8, 2025
9ed7fab
Bagel Armory Restock (V2) (#34917)
Nox38 Feb 8, 2025
50ba607
add straight ally pin (#34977)
lzk228 Feb 8, 2025
5e3d744
Automatic changelog update
PJBot Feb 8, 2025
36b59c6
allow paper labels on seeds (#34450)
Ian321 Feb 8, 2025
1077d2d
Automatic changelog update
PJBot Feb 8, 2025
e650bbc
Lecter + Magazine Resprite (#34974)
august-sun Feb 9, 2025
ab6a340
Automatic changelog update
PJBot Feb 9, 2025
01cbe31
Update Credits (#34985)
github-actions[bot] Feb 9, 2025
ba1fd6c
Make ReactionResults an array (#34967)
metalgearsloth Feb 9, 2025
4a479d7
Misc Bagel station fixes (#34989)
ArtisticRoomba Feb 9, 2025
a5c7632
Misc Marathon fixes (#34990)
ArtisticRoomba Feb 9, 2025
a769084
Add screens to oasis evac shuttle (#34995)
ArtisticRoomba Feb 9, 2025
a8c32ab
Misc Cog Station fixes (#34993)
ArtisticRoomba Feb 9, 2025
b4b4db7
Loop station i added a paper tray and brb sign to hop and tinyfans to…
TytosB Feb 9, 2025
9963416
improve GetInStation filter (#33405)
MilonPL Feb 9, 2025
f37b851
Fixed rotating anchored shuttle consoles (#35000)
rokudara-sen Feb 9, 2025
7be6659
Automatic changelog update
PJBot Feb 9, 2025
3b621a0
long bacon scarf (#34950)
Boaz1111 Feb 9, 2025
082b1f8
Automatic changelog update
PJBot Feb 9, 2025
360794e
Publishing workflow for Vulture Test server (#35009)
PJB3005 Feb 9, 2025
afede7d
Removes Cog station (#34996)
Spessmann Feb 9, 2025
c1f64c5
Automatic changelog update
PJBot Feb 9, 2025
0024f3f
Add loungewear to uniform printer (#35008)
notquitehadouken Feb 9, 2025
cb723b0
Automatic changelog update
PJBot Feb 9, 2025
6cb30b3
Make UnrevivableComponent shared, give the component reason messages …
poklj Feb 9, 2025
3ab1db9
Relic station (#34988)
Vortebo Feb 9, 2025
d8db4a6
Automatic changelog update
PJBot Feb 9, 2025
27e5483
Misc Loop improvements (#34997)
ArtisticRoomba Feb 9, 2025
21b3f23
Plasma fixes 3 (#35021)
Compilatron144 Feb 10, 2025
e1aff4d
Rebalance Relic station power + misc fixes (#35022)
ArtisticRoomba Feb 10, 2025
eeb6892
Convex update (#35023)
Spessmann Feb 10, 2025
2e2a3a9
Elkridge Tweaks 2 (#34757)
Deerstop Feb 10, 2025
fe064ad
Allows pacifists to throw Items with DamageOnLand (#31060)
IProduceWidgets Feb 10, 2025
2f30bc3
Automatic changelog update
PJBot Feb 10, 2025
03bab30
Wooden Grip for Antique Laser Pistol (#34886)
GaussiArson Feb 10, 2025
8b46538
Move CloneAppearance to Shared (#35017)
poklj Feb 10, 2025
1c8e744
Move DnaComponent to shared (#35012)
poklj Feb 10, 2025
0bb1dfc
Put robust toolbox back to a versioned commit (#35011)
VasilisThePikachu Feb 10, 2025
a269850
Gravity well improvements (#35027)
metalgearsloth Feb 10, 2025
a280009
Cleanup and fix disposal pipes (#34986)
lzk228 Feb 10, 2025
b18c5ff
Automatic changelog update
PJBot Feb 10, 2025
3b3c286
Purges the one remaining use of TransformComponent.WorldPosition in c…
TemporalOroboros Feb 10, 2025
b6ec430
remove redundant `rainbowcarpplush` yaml lines (#35033)
ArtisticRoomba Feb 10, 2025
e4fe9c4
Purge the one remaining use of TransformComponent.AttachParent (#34941)
TemporalOroboros Feb 10, 2025
96cb951
Tweak viewport nullspace check (#35037)
metalgearsloth Feb 10, 2025
9d48f66
Create a Armor CoeffientQuery (#35024)
poklj Feb 10, 2025
54aeceb
Vulture test server config (#35005)
Errant-4 Feb 10, 2025
dc1edbe
Amber Armory Restock (#35045)
ToxicSonicFan04 Feb 10, 2025
4b58d7a
Fland Armory Restock (#35044)
Nox38 Feb 10, 2025
2219487
Wizard Fix - Rod Polymorph - Prevent gibbing & slows speed (#34992)
keronshb Feb 10, 2025
36bf554
Fix pacified players attacking with mechs (#34954)
themias Feb 10, 2025
724f87e
Automatic changelog update
PJBot Feb 10, 2025
d849a04
Fix character menu button not untoggling when window closes (#33712)
SpaceManiac Feb 11, 2025
0560834
Don't force-show storage windows when their contents change (#35048)
sowelipililimute Feb 11, 2025
371a513
Automatic changelog update
PJBot Feb 11, 2025
4abadf9
Display radio frequencies with a decimal place (#35046)
Tayrtahn Feb 11, 2025
a8715dc
Automatic changelog update
PJBot Feb 11, 2025
d351f32
Fix multiple research consoles exploit (#34334)
themias Feb 11, 2025
0cfcbde
Automatic changelog update
PJBot Feb 11, 2025
976172b
Replace DoorVisuals.Powered with PowerDeviceVisuals.Powered (#34646)
ShadowCommander Feb 11, 2025
08e5362
Purges uses of TransformComponent.WorldRotation (#34946)
TemporalOroboros Feb 11, 2025
a30fe60
Purge uses of TransformComponent.GetWorldPositionRotation... variants…
TemporalOroboros Feb 11, 2025
1f0d68c
Grenade resprites part 1, stinger sound change, projectile grenade an…
K-Dynamic Feb 11, 2025
a393c15
Automatic changelog update
PJBot Feb 11, 2025
eb1f846
Pulled item interaction fix (#34587)
themias Feb 11, 2025
224a95b
Automatic changelog update
PJBot Feb 11, 2025
66ff1aa
Fix references to obsolete TryGetContainingContainer override (#34912)
TemporalOroboros Feb 11, 2025
a2ac503
Sentry turrets - Part 1: Art assets (#35025)
chromiumboy Feb 11, 2025
16149f1
Put screwdrivers in the vendomat (#35059)
Nox38 Feb 11, 2025
e023c78
Automatic changelog update
PJBot Feb 11, 2025
8d51a1f
buff python (#33306)
pheenty Feb 11, 2025
dbcd86a
Automatic changelog update
PJBot Feb 11, 2025
4122310
Fix 38 non-obsolete warnings (#33794)
SpaceManiac Feb 11, 2025
5eceaf3
Remove batong etc from emagged autolathe (#35014)
deltanedas Feb 11, 2025
dc67a5a
Purges uses of TransformComponent.WorldMatrix and TransformComponent.…
TemporalOroboros Feb 11, 2025
b0cacc7
fix conveyor belt default linking (#32688)
qwerltaz Feb 11, 2025
9db50c9
Add additional holiday gear to jobs (#34207)
minus1over12 Feb 11, 2025
0feeaba
Increase the price of bulletproof armor. (#34541)
centcomofficer24 Feb 11, 2025
c699bd9
Automatic changelog update
PJBot Feb 11, 2025
a62ffdc
Move contraband text to a separate examine tab (#32250)
Killerqu00 Feb 11, 2025
527f4ae
make interrogator lamp security contraband (#35064)
pheenty Feb 11, 2025
c197d3d
Automatic changelog update
PJBot Feb 11, 2025
15b2893
Add loadout names (#31303)
metalgearsloth Feb 11, 2025
0b2d700
Update BuildChecker.csproj (#35072)
Winkarst-cpu Feb 11, 2025
7b38a99
give CE atmos gas mask (#35063)
pheenty Feb 11, 2025
5c598ae
Automatic changelog update
PJBot Feb 11, 2025
78c951c
Fixed trooper uniform sprite (#35065)
justdie12 Feb 11, 2025
2c728dc
Make Advanced Spray more tolerable to use (#34209)
Terraspark4941 Feb 11, 2025
fa020ce
Automatic changelog update
PJBot Feb 11, 2025
46b1929
Fix followers getting sent to nullspace when target is polymorphed (#…
Tayrtahn Feb 11, 2025
072d2f4
Automatic changelog update
PJBot Feb 11, 2025
bf20b6b
Convex update (#35086)
Spessmann Feb 11, 2025
a849d2c
ancient jumpsuit copyright info (#35061)
robinthedragon Feb 11, 2025
4603b47
Limit maximum capacity of fillable cluster grenades (#34281)
Tayrtahn Feb 11, 2025
4e39481
Automatic changelog update
PJBot Feb 11, 2025
daad17c
Add fultons as a T2 research (#34567)
beck-thompson Feb 12, 2025
4dfe1c1
Automatic changelog update
PJBot Feb 12, 2025
5b394c2
Fix energy katana resolve error (#35082)
Winkarst-cpu Feb 12, 2025
129bcdf
Deathsquad revolver ammo fix (#34910)
Nox38 Feb 12, 2025
c588498
Automatic changelog update
PJBot Feb 12, 2025
5c98da4
Update submodule to 244.0.0 (#35094)
metalgearsloth Feb 12, 2025
75727db
Add new freezer atmos devices and fix freezer fixgridatmos marker (#3…
ArtisticRoomba Feb 12, 2025
0d7ff79
update the announce command (#34889)
MilonPL Feb 12, 2025
107f472
Automatic changelog update
PJBot Feb 12, 2025
773159d
Add datafield comments to PlantHolderComponent (#35099)
Partmedia Feb 12, 2025
0d33e61
Split ``ReplacementAccentPrototype`` and ``ReplacementAccentComponen…
Winkarst-cpu Feb 12, 2025
47cb8a0
RoomSpawner mask (#33110)
TheShuEd Feb 12, 2025
859918f
light brown fibers (#35111)
Ghagliiarghii Feb 12, 2025
0bb6f19
Automatic changelog update
PJBot Feb 12, 2025
9fad863
Wizard Staff of Animation (#34649)
ActiveMammmoth Feb 13, 2025
382cd71
Use screen local north for buckling/unbuckling layering, plus #31625 …
SaphireLattice Feb 13, 2025
25de99e
Automatic changelog update
PJBot Feb 13, 2025
f6a1fd5
add missing base calls to several BUIs (#35124)
MilonPL Feb 13, 2025
8f96c77
Slime plushie now squishes (#33554)
Minemoder5000 Feb 13, 2025
d44d48e
Automatic changelog update
PJBot Feb 13, 2025
3c8fb2e
Grilled Cheese Sandwich Entity and Recipe (#33807)
AgentSmithRadio Feb 13, 2025
6fe531d
Automatic changelog update
PJBot Feb 13, 2025
2515371
Fix "Manage Laws" button appearing with insufficient permissions (#35…
Simyon264 Feb 13, 2025
c430bfc
Merge remote-tracking branch 'wizard/master' into upstream-sync
Roudenn Feb 13, 2025
7151643
Fix upstream
Roudenn Feb 13, 2025
582fae7
Update Relic.yml
Roudenn Feb 13, 2025
76d57ff
FUCK
Roudenn Feb 13, 2025
5ebf278
FINAL FIX!!!!
Roudenn Feb 13, 2025
1d7bf97
Update security.yml
Roudenn Feb 13, 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
  •  
  •  
  •  
45 changes: 45 additions & 0 deletions .github/workflows/publish-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Publish Testing

concurrency:
group: publish-testing

on:
workflow_dispatch:
schedule:
- cron: '0 10 * * *'

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
with:
submodules: 'recursive'
- name: Setup .NET Core
uses: actions/[email protected]
with:
dotnet-version: 9.0.x

- name: Get Engine Tag
run: |
cd RobustToolbox
git fetch --depth=1

- name: Install dependencies
run: dotnet restore

- name: Build Packaging
run: dotnet build Content.Packaging --configuration Release --no-restore /m

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

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

- name: Publish version
run: Tools/publish_multi_request.py --fork-id wizards-testing
env:
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
GITHUB_REPOSITORY: ${{ vars.GITHUB_REPOSITORY }}
4 changes: 2 additions & 2 deletions BuildChecker/BuildChecker.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ You want to handle the Build, Clean and Rebuild tasks to prevent missing task er
If you want to learn more about these kinds of things, check out Microsoft's official documentation about MSBuild:
https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild
-->
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Python>python3</Python>
<Python Condition="'$(OS)'=='Windows_NT' Or '$(OS)'=='Windows'">py -3</Python>
<ProjectGuid>{C899FCA4-7037-4E49-ABC2-44DE72487110}</ProjectGuid>
<TargetFrameworkMoniker>.NETFramework, Version=v4.7.2</TargetFrameworkMoniker>
<TargetFramework>net4.7.2</TargetFramework>
<RestorePackages>false</RestorePackages>
</PropertyGroup>
<PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion Content.Benchmarks/MapLoadBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public async Task Cleanup()
PoolManager.Shutdown();
}

public static readonly string[] MapsSource = { "Empty", "Satlern", "Box", "Bagel", "Dev", "CentComm", "Core", "TestTeg", "Packed", "Omega", "Reach", "Meta", "Marathon", "MeteorArena", "Fland", "Oasis", "Cog", "Convex"};
public static readonly string[] MapsSource = { "Empty", "Satlern", "Box", "Bagel", "Dev", "CentComm", "Core", "TestTeg", "Packed", "Omega", "Reach", "Meta", "Marathon", "MeteorArena", "Fland", "Oasis", "Convex"};

[ParamsSource(nameof(MapsSource))]
public string Map;
Expand Down
2 changes: 2 additions & 0 deletions Content.Client/Actions/ActionsSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ private void OnEntityTargetHandleState(EntityUid uid, EntityTargetActionComponen
return;

component.Whitelist = state.Whitelist;
component.Blacklist = state.Blacklist;
component.CanTargetSelf = state.CanTargetSelf;
BaseHandleState<EntityTargetActionComponent>(uid, component, state);
}
Expand Down Expand Up @@ -137,6 +138,7 @@ private void BaseHandleState<T>(EntityUid uid, BaseActionComponent component, Ba
component.Priority = state.Priority;
component.AttachedEntity = EnsureEntity<T>(state.AttachedEntity, uid);
component.RaiseOnUser = state.RaiseOnUser;
component.RaiseOnAction = state.RaiseOnAction;
component.AutoPopulate = state.AutoPopulate;
component.Temporary = state.Temporary;
component.ItemIconStyle = state.ItemIconStyle;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ public AtmosAlertsComputerBoundUserInterface(EntityUid owner, Enum uiKey) : base

protected override void Open()
{
base.Open();

_menu = new AtmosAlertsComputerWindow(this, Owner);
_menu.OpenCentered();
_menu.OnClose += Close;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public sealed class GasTileOverlaySystem : SharedGasTileOverlaySystem
[Dependency] private readonly IResourceCache _resourceCache = default!;
[Dependency] private readonly IOverlayManager _overlayMan = default!;
[Dependency] private readonly SpriteSystem _spriteSys = default!;
[Dependency] private readonly SharedTransformSystem _xformSys = default!;

private GasTileOverlay _overlay = default!;

Expand All @@ -25,7 +26,7 @@ public override void Initialize()
SubscribeNetworkEvent<GasOverlayUpdateEvent>(HandleGasOverlayUpdate);
SubscribeLocalEvent<GasTileOverlayComponent, ComponentHandleState>(OnHandleState);

_overlay = new GasTileOverlay(this, EntityManager, _resourceCache, ProtoMan, _spriteSys);
_overlay = new GasTileOverlay(this, EntityManager, _resourceCache, ProtoMan, _spriteSys, _xformSys);
_overlayMan.AddOverlay(_overlay);
}

Expand Down
12 changes: 8 additions & 4 deletions Content.Client/Atmos/Overlays/GasTileOverlay.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public sealed class GasTileOverlay : Overlay
{
private readonly IEntityManager _entManager;
private readonly IMapManager _mapManager;
private readonly SharedTransformSystem _xformSys;

public override OverlaySpace Space => OverlaySpace.WorldSpaceEntities | OverlaySpace.WorldSpaceBelowWorld;
private readonly ShaderInstance _shader;
Expand All @@ -46,10 +47,11 @@ public sealed class GasTileOverlay : Overlay

public const int GasOverlayZIndex = (int) Shared.DrawDepth.DrawDepth.Effects; // Under ghosts, above mostly everything else

public GasTileOverlay(GasTileOverlaySystem system, IEntityManager entManager, IResourceCache resourceCache, IPrototypeManager protoMan, SpriteSystem spriteSys)
public GasTileOverlay(GasTileOverlaySystem system, IEntityManager entManager, IResourceCache resourceCache, IPrototypeManager protoMan, SpriteSystem spriteSys, SharedTransformSystem xformSys)
{
_entManager = entManager;
_mapManager = IoCManager.Resolve<IMapManager>();
_xformSys = xformSys;
_shader = protoMan.Index<ShaderPrototype>("unshaded").Instance();
ZIndex = GasOverlayZIndex;

Expand Down Expand Up @@ -158,7 +160,8 @@ protected override void Draw(in OverlayDrawArgs args)
_fireFrameCounter,
_shader,
overlayQuery,
xformQuery);
xformQuery,
_xformSys);

var mapUid = _mapManager.GetMapEntityId(args.MapId);

Expand All @@ -180,15 +183,16 @@ protected override void Draw(in OverlayDrawArgs args)
int[] fireFrameCounter,
ShaderInstance shader,
EntityQuery<GasTileOverlayComponent> overlayQuery,
EntityQuery<TransformComponent> xformQuery) state) =>
EntityQuery<TransformComponent> xformQuery,
SharedTransformSystem xformSys) state) =>
{
if (!state.overlayQuery.TryGetComponent(uid, out var comp) ||
!state.xformQuery.TryGetComponent(uid, out var gridXform))
{
return true;
}

var (_, _, worldMatrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv();
var (_, _, worldMatrix, invMatrix) = state.xformSys.GetWorldPositionRotationMatrixWithInv(gridXform);
state.drawHandle.SetTransform(worldMatrix);
var floatBounds = invMatrix.TransformBox(state.WorldBounds).Enlarged(grid.TileSize);
var localBounds = new Box2i(
Expand Down
53 changes: 51 additions & 2 deletions Content.Client/Buckle/BuckleSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,24 @@
using Content.Shared.Buckle.Components;
using Content.Shared.Rotation;
using Robust.Client.GameObjects;
using Robust.Shared.GameStates;
using Robust.Client.Graphics;

namespace Content.Client.Buckle;

internal sealed class BuckleSystem : SharedBuckleSystem
{
[Dependency] private readonly RotationVisualizerSystem _rotationVisualizerSystem = default!;
[Dependency] private readonly IEyeManager _eye = default!;
[Dependency] private readonly SharedTransformSystem _xformSystem = default!;

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

SubscribeLocalEvent<BuckleComponent, AppearanceChangeEvent>(OnAppearanceChange);
SubscribeLocalEvent<StrapComponent, MoveEvent>(OnStrapMoveEvent);
SubscribeLocalEvent<BuckleComponent, BuckledEvent>(OnBuckledEvent);
SubscribeLocalEvent<BuckleComponent, UnbuckledEvent>(OnUnbuckledEvent);
}

private void OnStrapMoveEvent(EntityUid uid, StrapComponent component, ref MoveEvent args)
Expand All @@ -28,13 +32,21 @@ private void OnStrapMoveEvent(EntityUid uid, StrapComponent component, ref MoveE
// This code is garbage, it doesn't work with rotated viewports. I need to finally get around to reworking
// sprite rendering for entity layers & direction dependent sorting.

// Future notes:
// Right now this doesn't handle: other grids, other grids rotating, the camera rotation changing, and many other fun rotation specific things
// The entire thing should be a concern of the engine, or something engine helps to implement properly.
// Give some of the sprite rotations their own drawdepth, maybe as an offset within the rsi, or something like this
// And we won't ever need to set the draw depth manually

if (args.NewRotation == args.OldRotation)
return;

if (!TryComp<SpriteComponent>(uid, out var strapSprite))
return;

var isNorth = Transform(uid).LocalRotation.GetCardinalDir() == Direction.North;
var angle = _xformSystem.GetWorldRotation(uid) + _eye.CurrentEye.Rotation; // Get true screen position, or close enough

var isNorth = angle.GetCardinalDir() == Direction.North;
foreach (var buckledEntity in component.BuckledEntities)
{
if (!TryComp<BuckleComponent>(buckledEntity, out var buckle))
Expand All @@ -45,6 +57,7 @@ private void OnStrapMoveEvent(EntityUid uid, StrapComponent component, ref MoveE

if (isNorth)
{
// This will only assign if empty, it won't get overwritten by new depth on multiple calls, which do happen easily
buckle.OriginalDrawDepth ??= buckledSprite.DrawDepth;
buckledSprite.DrawDepth = strapSprite.DrawDepth - 1;
}
Expand All @@ -56,6 +69,42 @@ private void OnStrapMoveEvent(EntityUid uid, StrapComponent component, ref MoveE
}
}

/// <summary>
/// Lower the draw depth of the buckled entity without needing for the strap entity to rotate/move.
/// Only do so when the entity is facing screen-local north
/// </summary>
private void OnBuckledEvent(Entity<BuckleComponent> ent, ref BuckledEvent args)
{
if (!TryComp<SpriteComponent>(args.Strap, out var strapSprite))
return;

if (!TryComp<SpriteComponent>(ent.Owner, out var buckledSprite))
return;

var angle = _xformSystem.GetWorldRotation(args.Strap) + _eye.CurrentEye.Rotation; // Get true screen position, or close enough

if (angle.GetCardinalDir() != Direction.North)
return;

ent.Comp.OriginalDrawDepth ??= buckledSprite.DrawDepth;
buckledSprite.DrawDepth = strapSprite.DrawDepth - 1;
}

/// <summary>
/// Was the draw depth of the buckled entity lowered? Reset it upon unbuckling.
/// </summary>
private void OnUnbuckledEvent(Entity<BuckleComponent> ent, ref UnbuckledEvent args)
{
if (!TryComp<SpriteComponent>(ent.Owner, out var buckledSprite))
return;

if (!ent.Comp.OriginalDrawDepth.HasValue)
return;

buckledSprite.DrawDepth = ent.Comp.OriginalDrawDepth.Value;
ent.Comp.OriginalDrawDepth = null;
}

private void OnAppearanceChange(EntityUid uid, BuckleComponent component, ref AppearanceChangeEvent args)
{
if (!TryComp<RotationVisualsComponent>(uid, out var rotVisuals))
Expand Down
2 changes: 2 additions & 0 deletions Content.Client/DoAfter/DoAfterSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ public override void Shutdown()
_overlay.RemoveOverlay<DoAfterOverlay>();
}

#pragma warning disable RA0028 // No base call in overriden function
public override void Update(float frameTime)
#pragma warning restore RA0028 // No base call in overriden function
{
// Currently this only predicts do afters initiated by the player.

Expand Down
4 changes: 3 additions & 1 deletion Content.Client/Doors/AirlockSystem.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Content.Client.Wires.Visualizers;
using Content.Shared.Doors.Components;
using Content.Shared.Doors.Systems;
using Content.Shared.Power;
using Robust.Client.Animations;
using Robust.Client.GameObjects;

Expand Down Expand Up @@ -84,7 +85,8 @@ private void OnAppearanceChange(EntityUid uid, AirlockComponent comp, ref Appear
if (!_appearanceSystem.TryGetData<DoorState>(uid, DoorVisuals.State, out var state, args.Component))
state = DoorState.Closed;

if (_appearanceSystem.TryGetData<bool>(uid, DoorVisuals.Powered, out var powered, args.Component) && powered)
if (_appearanceSystem.TryGetData<bool>(uid, PowerDeviceVisuals.Powered, out var powered, args.Component)
&& powered)
{
boltedVisible = _appearanceSystem.TryGetData<bool>(uid, DoorVisuals.BoltLights, out var lights, args.Component)
&& lights && (state == DoorState.Closed || state == DoorState.Welded);
Expand Down
2 changes: 2 additions & 0 deletions Content.Client/GameTicking/Managers/ClientGameTicker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ public sealed class ClientGameTicker : SharedGameTicker

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

SubscribeNetworkEvent<TickerJoinLobbyEvent>(JoinLobby);
SubscribeNetworkEvent<TickerJoinGameEvent>(JoinGame);
SubscribeNetworkEvent<TickerConnectionStatusEvent>(ConnectionStatus);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Content.Shared.Instruments.UI;
using Content.Shared.Interaction;
using Robust.Client.Audio.Midi;
using Robust.Client.GameObjects;
using Robust.Client.Player;
using Robust.Client.UserInterface;

Expand All @@ -13,7 +12,6 @@ public sealed class InstrumentBoundUserInterface : BoundUserInterface
public IEntityManager Entities => EntMan;
[Dependency] public readonly IMidiManager MidiManager = default!;
[Dependency] public readonly IFileDialogManager FileDialogManager = default!;
[Dependency] public readonly IPlayerManager PlayerManager = default!;
[Dependency] public readonly ILocalizationManager Loc = default!;

public readonly InstrumentSystem Instruments;
Expand Down Expand Up @@ -41,6 +39,8 @@ protected override void ReceiveMessage(BoundUserInterfaceMessage message)

protected override void Open()
{
base.Open();

_instrumentMenu = this.CreateWindow<InstrumentMenu>();
_instrumentMenu.Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName;

Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Interaction/DragDropSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ private void StartDrag()
dragSprite.DrawDepth = (int) DrawDepth.Overlays;
if (!dragSprite.NoRotation)
{
Transform(_dragShadow.Value).WorldRotation = Transform(_draggedEntity.Value).WorldRotation;
_transformSystem.SetWorldRotationNoLerp(_dragShadow.Value, _transformSystem.GetWorldRotation(_draggedEntity.Value));
}

// drag initiated
Expand Down
11 changes: 11 additions & 0 deletions Content.Client/ItemRecall/ItemRecallSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using Content.Shared.ItemRecall;

namespace Content.Client.ItemRecall;

/// <summary>
/// System for handling the ItemRecall ability for wizards.
/// </summary>
public sealed partial class ItemRecallSystem : SharedItemRecallSystem
{

}
7 changes: 6 additions & 1 deletion Content.Client/Labels/UI/HandLabelerWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,13 @@ public HandLabelerWindow()
_focused = false;
LabelLineEdit.Text = _label;
};
}

// Give the editor keybard focus, since that's the only
protected override void Opened()
{
base.Opened();

// Give the editor keyboard focus, since that's the only
// thing the user will want to be doing with this UI
LabelLineEdit.GrabKeyboardFocus();
}
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Lathe/UI/LatheMenu.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public void SetEntity(EntityUid uid)

if (_entityManager.TryGetComponent<LatheComponent>(Entity, out var latheComponent))
{
if (!latheComponent.DynamicRecipes.Any())
if (!latheComponent.DynamicPacks.Any())
{
ServerListButton.Visible = false;
}
Expand Down
1 change: 0 additions & 1 deletion Content.Client/Lobby/LobbyUIController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ public sealed partial class LobbyUIController : UIController, IOnStateEntered<Lo
[UISystemDependency] private readonly ClientInventorySystem _inventory = default!;
[UISystemDependency] private readonly StationSpawningSystem _spawn = default!;
[UISystemDependency] private readonly GuidebookSystem _guide = default!;
[UISystemDependency] private readonly LoadoutSystem _loadouts = default!;

private CharacterSetupGui? _characterSetup;
private HumanoidProfileEditor? _profileEditor;
Expand Down
7 changes: 7 additions & 0 deletions Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1068,6 +1068,13 @@ private void OpenLoadout(JobPrototype? jobProto, RoleLoadout roleLoadout, RoleLo
_loadoutWindow.RefreshLoadouts(roleLoadout, session, collection);
_loadoutWindow.OpenCenteredLeft();

_loadoutWindow.OnNameChanged += name =>
{
roleLoadout.EntityName = name;
Profile = Profile.WithLoadout(roleLoadout);
SetDirty();
};

_loadoutWindow.OnLoadoutPressed += (loadoutGroup, loadoutProto) =>
{
roleLoadout.AddLoadout(loadoutGroup, loadoutProto, _prototypeManager);
Expand Down
Loading
Loading