Merge remote-tracking branch 'upstream/master' into ed-19-07-2024-upstream-walls
# Conflicts: # Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs
This commit is contained in:
@@ -14,7 +14,6 @@ namespace Content.Client.Administration.UI.Tabs.ObjectsTab;
|
||||
public sealed partial class ObjectsTab : Control
|
||||
{
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
|
||||
private readonly Color _altColor = Color.FromHex("#292B38");
|
||||
private readonly Color _defaultColor = Color.FromHex("#2F2F3B");
|
||||
|
||||
@@ -26,7 +26,6 @@ namespace Content.Client.Construction
|
||||
{
|
||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly SharedInteractionSystem _interactionSystem = default!;
|
||||
[Dependency] private readonly ExamineSystemShared _examineSystem = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
||||
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
||||
|
||||
29
Content.Client/IconSmoothing/ClientRandomIconSmoothSystem.cs
Normal file
29
Content.Client/IconSmoothing/ClientRandomIconSmoothSystem.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Content.Shared.IconSmoothing;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.IconSmoothing;
|
||||
|
||||
public sealed class ClientRandomIconSmoothSystem : SharedRandomIconSmoothSystem
|
||||
{
|
||||
[Dependency] private readonly IconSmoothSystem _iconSmooth = default!;
|
||||
[Dependency] private readonly AppearanceSystem _appearance = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<RandomIconSmoothComponent, AppearanceChangeEvent>(OnAppearanceChange);
|
||||
}
|
||||
|
||||
private void OnAppearanceChange(Entity<RandomIconSmoothComponent> ent, ref AppearanceChangeEvent args)
|
||||
{
|
||||
if (!TryComp<IconSmoothComponent>(ent, out var smooth))
|
||||
return;
|
||||
|
||||
if (!_appearance.TryGetData<string>(ent, RandomIconSmoothState.State, out var state, args.Component))
|
||||
return;
|
||||
|
||||
smooth.StateBase = state;
|
||||
_iconSmooth.SetStateBase(ent, smooth, state);
|
||||
}
|
||||
}
|
||||
@@ -30,7 +30,7 @@ namespace Content.Client.IconSmoothing
|
||||
/// Prepended to the RSI state.
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite), DataField("base")]
|
||||
public string StateBase { get; private set; } = string.Empty;
|
||||
public string StateBase { get; set; } = string.Empty;
|
||||
|
||||
[DataField("shader", customTypeSerializer:typeof(PrototypeIdSerializer<ShaderPrototype>))]
|
||||
public string? Shader;
|
||||
|
||||
@@ -55,6 +55,33 @@ namespace Content.Client.IconSmoothing
|
||||
if (component.Mode != IconSmoothingMode.Corners || !TryComp(uid, out SpriteComponent? sprite))
|
||||
return;
|
||||
|
||||
SetCornerLayers(sprite, component);
|
||||
|
||||
if (component.Shader != null)
|
||||
{
|
||||
sprite.LayerSetShader(CornerLayers.SE, component.Shader);
|
||||
sprite.LayerSetShader(CornerLayers.NE, component.Shader);
|
||||
sprite.LayerSetShader(CornerLayers.NW, component.Shader);
|
||||
sprite.LayerSetShader(CornerLayers.SW, component.Shader);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetStateBase(EntityUid uid, IconSmoothComponent component, string newState)
|
||||
{
|
||||
if (!TryComp<SpriteComponent>(uid, out var sprite))
|
||||
return;
|
||||
|
||||
component.StateBase = newState;
|
||||
SetCornerLayers(sprite, component);
|
||||
}
|
||||
|
||||
private void SetCornerLayers(SpriteComponent sprite, IconSmoothComponent component)
|
||||
{
|
||||
sprite.LayerMapRemove(CornerLayers.SE);
|
||||
sprite.LayerMapRemove(CornerLayers.NE);
|
||||
sprite.LayerMapRemove(CornerLayers.NW);
|
||||
sprite.LayerMapRemove(CornerLayers.SW);
|
||||
|
||||
var state0 = $"{component.StateBase}0";
|
||||
sprite.LayerMapSet(CornerLayers.SE, sprite.AddLayerState(state0));
|
||||
sprite.LayerSetDirOffset(CornerLayers.SE, DirectionOffset.None);
|
||||
@@ -64,14 +91,6 @@ namespace Content.Client.IconSmoothing
|
||||
sprite.LayerSetDirOffset(CornerLayers.NW, DirectionOffset.Flip);
|
||||
sprite.LayerMapSet(CornerLayers.SW, sprite.AddLayerState(state0));
|
||||
sprite.LayerSetDirOffset(CornerLayers.SW, DirectionOffset.Clockwise);
|
||||
|
||||
if (component.Shader != null)
|
||||
{
|
||||
sprite.LayerSetShader(CornerLayers.SE, component.Shader);
|
||||
sprite.LayerSetShader(CornerLayers.NE, component.Shader);
|
||||
sprite.LayerSetShader(CornerLayers.NW, component.Shader);
|
||||
sprite.LayerSetShader(CornerLayers.SW, component.Shader);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnShutdown(EntityUid uid, IconSmoothComponent component, ComponentShutdown args)
|
||||
|
||||
@@ -21,7 +21,6 @@ public sealed partial class LatheMenu : DefaultWindow
|
||||
{
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly IResourceCache _resources = default!;
|
||||
|
||||
private EntityUid _owner;
|
||||
private readonly SpriteSystem _spriteSystem;
|
||||
|
||||
@@ -17,7 +17,6 @@ namespace Content.Client.VendingMachines.UI
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
|
||||
private readonly Dictionary<EntProtoId, EntityUid> _dummies = [];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user