From 683644eec5a2b64e95a85f3c3c186986d3af84f2 Mon Sep 17 00:00:00 2001 From: zumorica Date: Fri, 10 Apr 2020 16:28:14 +0200 Subject: [PATCH 1/8] Ghosts now make use of the new "entity visibility" engine functionality --- .../Components/Observer/GhostComponent.cs | 1 - .../Components/Observer/GhostComponent.cs | 14 ++++++++++++-- Content.Server/GameObjects/VisibilityFlags.cs | 12 ++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 Content.Server/GameObjects/VisibilityFlags.cs diff --git a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs index 67b81a6345..21403b3a76 100644 --- a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs +++ b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs @@ -34,7 +34,6 @@ namespace Content.Client.GameObjects.Components.Observer private void SetGhostVisibility(bool visibility) { - // So, for now this is a client-side hack... Please, PLEASE someone make this work server-side. foreach (var ghost in _componentManager.GetAllComponents(typeof(GhostComponent))) { if (ghost.Owner.TryGetComponent(out SpriteComponent component)) diff --git a/Content.Server/GameObjects/Components/Observer/GhostComponent.cs b/Content.Server/GameObjects/Components/Observer/GhostComponent.cs index 4853900fed..6adc21ed33 100644 --- a/Content.Server/GameObjects/Components/Observer/GhostComponent.cs +++ b/Content.Server/GameObjects/Components/Observer/GhostComponent.cs @@ -2,6 +2,7 @@ using Content.Server.GameObjects.EntitySystems; using Content.Server.Players; using Content.Shared.GameObjects.Components.Observer; using Robust.Server.GameObjects; +using Robust.Server.GameObjects.Components; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -28,6 +29,13 @@ namespace Content.Server.GameObjects.Components.Observer } } + public override void Initialize() + { + base.Initialize(); + + Owner.EnsureComponent().Layer = (int)VisibilityFlags.Ghost; + } + public override ComponentState GetComponentState() => new GhostComponentState(CanReturnToBody); public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, @@ -44,10 +52,12 @@ namespace Content.Server.GameObjects.Components.Observer actor.playerSession.ContentData().Mind.UnVisit(); } break; - case PlayerAttachedMsg _: + case PlayerAttachedMsg msg: + msg.NewPlayer.VisibilityMask |= (int)VisibilityFlags.Ghost; Dirty(); break; - case PlayerDetachedMsg _: + case PlayerDetachedMsg msg: + msg.OldPlayer.VisibilityMask &= ~(int)VisibilityFlags.Ghost; Timer.Spawn(100, Owner.Delete); break; default: diff --git a/Content.Server/GameObjects/VisibilityFlags.cs b/Content.Server/GameObjects/VisibilityFlags.cs new file mode 100644 index 0000000000..d5e3ccb7fa --- /dev/null +++ b/Content.Server/GameObjects/VisibilityFlags.cs @@ -0,0 +1,12 @@ +using System; + +namespace Content.Server.GameObjects +{ + [Flags] + public enum VisibilityFlags + { + None = 0, + Normal = 1, + Ghost = 2, + } +} From c41eb3ba10ca08d7266a2cbf83cc3977c663af28 Mon Sep 17 00:00:00 2001 From: zumorica Date: Fri, 10 Apr 2020 17:13:55 +0200 Subject: [PATCH 2/8] Remove unused visibility flags --- Content.Server/GameObjects/VisibilityFlags.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Content.Server/GameObjects/VisibilityFlags.cs b/Content.Server/GameObjects/VisibilityFlags.cs index d5e3ccb7fa..4acb9c988a 100644 --- a/Content.Server/GameObjects/VisibilityFlags.cs +++ b/Content.Server/GameObjects/VisibilityFlags.cs @@ -5,8 +5,6 @@ namespace Content.Server.GameObjects [Flags] public enum VisibilityFlags { - None = 0, - Normal = 1, Ghost = 2, } } From 5c6d045f3e627be280d5ff6d3de9ef1f257a9ab8 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 12 Apr 2020 00:58:06 +0200 Subject: [PATCH 3/8] Update submodule --- RobustToolbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RobustToolbox b/RobustToolbox index 1cdb279319..3d6a3a6216 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 1cdb279319bdb16efdc9671d0d4e0e5947b0493f +Subproject commit 3d6a3a6216fa752f422a0f1720e02fec8e8e145e From 56d67200263aea4751879693c15f0dcb7200a97e Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 12 Apr 2020 01:15:16 +0200 Subject: [PATCH 4/8] Move part of stack code to shared. Meaning that ExposeData is in shared, fixing #809 --- .../GameObjects/Components/StackComponent.cs | 19 ++-- .../Construction/ConstructionComponent.cs | 4 +- .../Components/Stack/StackComponent.cs | 84 +------------- .../Components/SharedStackComponent.cs | 105 +++++++++++++++++- 4 files changed, 119 insertions(+), 93 deletions(-) diff --git a/Content.Client/GameObjects/Components/StackComponent.cs b/Content.Client/GameObjects/Components/StackComponent.cs index c24b1787a5..af5dfe3e8d 100644 --- a/Content.Client/GameObjects/Components/StackComponent.cs +++ b/Content.Client/GameObjects/Components/StackComponent.cs @@ -1,5 +1,4 @@ -using Content.Client.UserInterface; -using Content.Client.UserInterface.Stylesheets; +using Content.Client.UserInterface.Stylesheets; using Content.Client.Utility; using Content.Shared.GameObjects.Components; using Robust.Client.UserInterface; @@ -14,21 +13,19 @@ namespace Content.Client.GameObjects.Components [RegisterComponent] public class StackComponent : SharedStackComponent, IItemStatus { - [ViewVariables] public int Count { get; private set; } - [ViewVariables] public int MaxCount { get; private set; } - [ViewVariables(VVAccess.ReadWrite)] private bool _uiUpdateNeeded; public Control MakeControl() => new StatusControl(this); - public override void HandleComponentState(ComponentState curState, ComponentState nextState) + public override int Count { - if (!(curState is StackComponentState cast)) - return; + get => base.Count; + set + { + base.Count = value; - Count = cast.Count; - MaxCount = cast.MaxCount; - _uiUpdateNeeded = true; + _uiUpdateNeeded = true; + } } private sealed class StatusControl : Control diff --git a/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs b/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs index f7f3b81bbd..be64cfb14f 100644 --- a/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs +++ b/Content.Server/GameObjects/Components/Construction/ConstructionComponent.cs @@ -5,6 +5,7 @@ using Content.Server.GameObjects.Components.Stack; using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces; using Content.Shared.Construction; +using Content.Shared.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; @@ -14,7 +15,6 @@ using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; using Robust.Shared.Localization; -using Robust.Shared.Map; using Robust.Shared.ViewVariables; using static Content.Shared.Construction.ConstructionStepMaterial; using static Content.Shared.Construction.ConstructionStepTool; @@ -114,7 +114,7 @@ namespace Content.Server.GameObjects.Components.Construction { Sprite.AddLayerWithSprite(prototype.Icon); } - + } diff --git a/Content.Server/GameObjects/Components/Stack/StackComponent.cs b/Content.Server/GameObjects/Components/Stack/StackComponent.cs index 9aaa605f1c..3b4bae15c5 100644 --- a/Content.Server/GameObjects/Components/Stack/StackComponent.cs +++ b/Content.Server/GameObjects/Components/Stack/StackComponent.cs @@ -3,11 +3,9 @@ using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components; using Content.Shared.Interfaces; using Robust.Shared.GameObjects; -using Robust.Shared.Interfaces.Reflection; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Map; -using Robust.Shared.Serialization; using Robust.Shared.Timers; using Robust.Shared.Utility; using Robust.Shared.ViewVariables; @@ -23,34 +21,19 @@ namespace Content.Server.GameObjects.Components.Stack [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager; #pragma warning restore 649 - private const string SerializationCache = "stack"; - private int _count = 50; - private int _maxCount = 50; private bool _throwIndividually = false; - [ViewVariables(VVAccess.ReadWrite)] - public int Count + public override int Count { - get => _count; + get => base.Count; set { - _count = value; - if (_count <= 0) + base.Count = value; + + if (Count <= 0) { Owner.Delete(); } - Dirty(); - } - } - - [ViewVariables] - public int MaxCount - { - get => _maxCount; - private set - { - _maxCount = value; - Dirty(); } } @@ -65,12 +48,6 @@ namespace Content.Server.GameObjects.Components.Stack } } - [ViewVariables] - public int AvailableSpace => MaxCount - Count; - - [ViewVariables] - public object StackType { get; private set; } - public void Add(int amount) { Count += amount; @@ -91,42 +68,6 @@ namespace Content.Server.GameObjects.Components.Stack return false; } - public override void ExposeData(ObjectSerializer serializer) - { - serializer.DataFieldCached(ref _maxCount, "max", 50); - serializer.DataFieldCached(ref _count, "count", MaxCount); - - if (!serializer.Reading) - { - return; - } - - if (serializer.TryGetCacheData(SerializationCache, out object stackType)) - { - StackType = stackType; - return; - } - - if (serializer.TryReadDataFieldCached("stacktype", out string raw)) - { - var refl = IoCManager.Resolve(); - if (refl.TryParseEnumReference(raw, out var @enum)) - { - stackType = @enum; - } - else - { - stackType = raw; - } - } - else - { - stackType = Owner.Prototype.ID; - } - serializer.SetCacheData(SerializationCache, stackType); - StackType = stackType; - } - public bool AttackBy(AttackByEventArgs eventArgs) { if (eventArgs.AttackWith.TryGetComponent(out var stack)) @@ -175,20 +116,5 @@ namespace Content.Server.GameObjects.Components.Stack "There is [color=lightgray]1[/color] thing in the stack", "There are [color=lightgray]{0}[/color] things in the stack.", Count, Count)); } - - public override ComponentState GetComponentState() - { - return new StackComponentState(Count, MaxCount); - } - } - - public enum StackType - { - Metal, - Glass, - Cable, - Ointment, - Brutepack, - FloorTileSteel } } diff --git a/Content.Shared/GameObjects/Components/SharedStackComponent.cs b/Content.Shared/GameObjects/Components/SharedStackComponent.cs index 3a141d4d4d..9ceb2f69b7 100644 --- a/Content.Shared/GameObjects/Components/SharedStackComponent.cs +++ b/Content.Shared/GameObjects/Components/SharedStackComponent.cs @@ -1,16 +1,109 @@ using System; using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.Reflection; +using Robust.Shared.IoC; using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; namespace Content.Shared.GameObjects.Components { public abstract class SharedStackComponent : Component { + private const string SerializationCache = "stack"; + public sealed override string Name => "Stack"; public sealed override uint? NetID => ContentNetIDs.STACK; + private int _count; + private int _maxCount; + + [ViewVariables(VVAccess.ReadWrite)] + public virtual int Count + { + get => _count; + set + { + _count = value; + if (_count <= 0) + { + Owner.Delete(); + } + + Dirty(); + } + } + + [ViewVariables] + public int MaxCount + { + get => _maxCount; + private set + { + _maxCount = value; + Dirty(); + } + } + + [ViewVariables] public int AvailableSpace => MaxCount - Count; + + [ViewVariables] public object StackType { get; private set; } + + public override void ExposeData(ObjectSerializer serializer) + { + serializer.DataFieldCached(ref _maxCount, "max", 50); + serializer.DataFieldCached(ref _count, "count", MaxCount); + + if (!serializer.Reading) + { + return; + } + + if (serializer.TryGetCacheData(SerializationCache, out object stackType)) + { + StackType = stackType; + return; + } + + if (serializer.TryReadDataFieldCached("stacktype", out string raw)) + { + var refl = IoCManager.Resolve(); + if (refl.TryParseEnumReference(raw, out var @enum)) + { + stackType = @enum; + } + else + { + stackType = raw; + } + } + else + { + stackType = Owner.Prototype.ID; + } + + serializer.SetCacheData(SerializationCache, stackType); + StackType = stackType; + } + + public override ComponentState GetComponentState() + { + return new StackComponentState(Count, MaxCount); + } + + public override void HandleComponentState(ComponentState curState, ComponentState nextState) + { + if (!(curState is StackComponentState cast)) + { + return; + } + + Count = cast.Count; + MaxCount = cast.MaxCount; + } + + [Serializable, NetSerializable] - protected sealed class StackComponentState : ComponentState + private sealed class StackComponentState : ComponentState { public int Count { get; } public int MaxCount { get; } @@ -22,4 +115,14 @@ namespace Content.Shared.GameObjects.Components } } } + + public enum StackType + { + Metal, + Glass, + Cable, + Ointment, + Brutepack, + FloorTileSteel + } } From e9100db219b5f7294b44562f883bd86ccfa7be66 Mon Sep 17 00:00:00 2001 From: zumorica Date: Mon, 13 Apr 2020 01:44:05 +0200 Subject: [PATCH 5/8] LightBulbs now break when thrown --- .../Components/Power/LightBulbComponent.cs | 28 +++++++++++++++++- Resources/Audio/effects/glassbreak1.ogg | Bin 0 -> 19725 bytes Resources/Audio/effects/glassbreak2.ogg | Bin 0 -> 15999 bytes Resources/Audio/effects/glassbreak3.ogg | Bin 0 -> 27378 bytes .../SoundCollections/glassbreak.yml | 6 ++++ 5 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 Resources/Audio/effects/glassbreak1.ogg create mode 100644 Resources/Audio/effects/glassbreak2.ogg create mode 100644 Resources/Audio/effects/glassbreak3.ogg create mode 100644 Resources/Prototypes/SoundCollections/glassbreak.yml diff --git a/Content.Server/GameObjects/Components/Power/LightBulbComponent.cs b/Content.Server/GameObjects/Components/Power/LightBulbComponent.cs index 9316dd6be9..f8fde7b236 100644 --- a/Content.Server/GameObjects/Components/Power/LightBulbComponent.cs +++ b/Content.Server/GameObjects/Components/Power/LightBulbComponent.cs @@ -1,7 +1,15 @@ using System; +using Content.Server.GameObjects.EntitySystems; +using Content.Shared.Audio; using Robust.Server.GameObjects; +using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.IoC; using Robust.Shared.Maths; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -24,9 +32,14 @@ namespace Content.Server.GameObjects.Components.Power /// Component that represents a light bulb. Can be broken, or burned, which turns them mostly useless. /// [RegisterComponent] - public class LightBulbComponent : Component + public class LightBulbComponent : Component, ILand { +#pragma warning disable 649 + [Dependency] private readonly IPrototypeManager _prototypeManager; + [Dependency] private readonly IRobustRandom _random; +#pragma warning restore 649 + /// /// Invoked whenever the state of the light bulb changes. /// @@ -104,5 +117,18 @@ namespace Content.Server.GameObjects.Components.Power base.Initialize(); UpdateColor(); } + + public void Land(LandEventArgs eventArgs) + { + if (State == LightBulbState.Broken) + return; + + var soundCollection = _prototypeManager.Index("glassbreak"); + var file = _random.Pick(soundCollection.PickFiles); + + IoCManager.Resolve().GetEntitySystem().Play(file, Owner); + + State = LightBulbState.Broken; + } } } diff --git a/Resources/Audio/effects/glassbreak1.ogg b/Resources/Audio/effects/glassbreak1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fe14cdeda3415a8934a11ae50bba11b14f4f016a GIT binary patch literal 19725 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 S?b6LXU+362tJN%3VgLXfh=v;g literal 0 HcmV?d00001 diff --git a/Resources/Audio/effects/glassbreak2.ogg b/Resources/Audio/effects/glassbreak2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..79163acc19e94abe74eb14b1a9d6d28ecfbd6514 GIT binary patch literal 15999 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 Date: Mon, 13 Apr 2020 22:26:05 +0200 Subject: [PATCH 6/8] Remove seemingly-unecessary DetachEntity() in GameScreenBase. --- Content.Client/State/GameScreenBase.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Content.Client/State/GameScreenBase.cs b/Content.Client/State/GameScreenBase.cs index 4cb8896e26..3e277799dd 100644 --- a/Content.Client/State/GameScreenBase.cs +++ b/Content.Client/State/GameScreenBase.cs @@ -43,8 +43,6 @@ namespace Content.Client.State public override void Shutdown() { - _playerManager.LocalPlayer.DetachEntity(); - _inputManager.KeyBindStateChanged -= OnKeyBindStateChanged; } From a4092acf5b313ace94a6910c9a15252e9c42b2be Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 13 Apr 2020 22:27:47 +0200 Subject: [PATCH 7/8] Fix not returning to main menu on disconnect correctly. --- Content.Client/EntryPoint.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Content.Client/EntryPoint.cs b/Content.Client/EntryPoint.cs index 1cc3c720a0..ff63ab58ad 100644 --- a/Content.Client/EntryPoint.cs +++ b/Content.Client/EntryPoint.cs @@ -15,6 +15,7 @@ using Content.Shared.GameObjects.Components.Chemistry; using Content.Shared.GameObjects.Components.Markers; using Content.Shared.GameObjects.Components.Research; using Content.Shared.GameObjects.Components.VendingMachines; +using Robust.Client; using Robust.Client.Interfaces; using Robust.Client.Interfaces.Graphics.Overlays; using Robust.Client.Interfaces.Input; @@ -227,6 +228,14 @@ namespace Content.Client IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); + _baseClient.RunLevelChanged += (sender, args) => + { + if (args.NewLevel == ClientRunLevel.Initialize) + { + _stateManager.RequestStateChange(); + } + }; + // Fire off into state dependent on launcher or not. if (_gameController.LaunchState.FromLauncher) { From ec314545ef373d5cde5913b392dbc98f5a77576e Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 13 Apr 2020 22:28:05 +0200 Subject: [PATCH 8/8] Fix ClientStatusEffectsComponent not cleaning up GUI on shutdown correctly. --- .../Components/Mobs/ClientStatusEffectsComponent.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs b/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs index 0e915772a4..e3edf3d34b 100644 --- a/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs +++ b/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs @@ -76,10 +76,6 @@ namespace Content.Client.GameObjects.Components.Mobs private void PlayerDetached() { - if (!CurrentlyControlled) - { - return; - } _ui?.Dispose(); _ui = null; }