diff --git a/Robust.Client/GameController/GameController.Redialler.cs b/Robust.Client/GameController/GameController.Redialler.cs index 5fc6a02a0..10bb43ae2 100644 --- a/Robust.Client/GameController/GameController.Redialler.cs +++ b/Robust.Client/GameController/GameController.Redialler.cs @@ -55,10 +55,10 @@ internal partial class GameController { _loaderArgs!.RedialApi!.Redial(new Uri(address), text ?? ""); } - catch (Exception ex) + catch (Exception) { Interlocked.Decrement(ref _hasRedialled); - throw ex; + throw; } Shutdown("Redial"); diff --git a/Robust.Client/GameObjects/ClientEntityManager.cs b/Robust.Client/GameObjects/ClientEntityManager.cs index 2176a6c85..e9d9e82b5 100644 --- a/Robust.Client/GameObjects/ClientEntityManager.cs +++ b/Robust.Client/GameObjects/ClientEntityManager.cs @@ -37,7 +37,7 @@ namespace Robust.Client.GameObjects return base.CreateEntity(prototypeName, uid); } - void IClientEntityManagerInternal.InitializeEntity(EntityUid entity, MetaDataComponent? meta = null) + void IClientEntityManagerInternal.InitializeEntity(EntityUid entity, MetaDataComponent? meta) { base.InitializeEntity(entity, meta); } diff --git a/Robust.Client/UserInterface/FileDialogManager.cs b/Robust.Client/UserInterface/FileDialogManager.cs index 5b7ae9af2..a826dbf33 100644 --- a/Robust.Client/UserInterface/FileDialogManager.cs +++ b/Robust.Client/UserInterface/FileDialogManager.cs @@ -26,7 +26,6 @@ namespace Robust.Client.UserInterface // On Linux, if the kdialog command is found, it will be used instead. // TODO: Should we maybe try to avoid running kdialog if the DE isn't KDE? [Dependency] private readonly IClydeInternal _clyde = default!; - [Dependency] private readonly ITaskManager _taskManager = default!; private bool _kDialogAvailable; private bool _checkedKDialogAvailable; diff --git a/Robust.Server/GameObjects/ServerEntityManager.cs b/Robust.Server/GameObjects/ServerEntityManager.cs index be8d43270..78899b8bb 100644 --- a/Robust.Server/GameObjects/ServerEntityManager.cs +++ b/Robust.Server/GameObjects/ServerEntityManager.cs @@ -52,7 +52,7 @@ namespace Robust.Server.GameObjects LoadEntity(entity, context); } - void IServerEntityManagerInternal.FinishEntityInitialization(EntityUid entity, MetaDataComponent? meta = null) + void IServerEntityManagerInternal.FinishEntityInitialization(EntityUid entity, MetaDataComponent? meta) { InitializeEntity(entity, meta); } @@ -79,7 +79,9 @@ namespace Robust.Server.GameObjects // Make sure to ONLY get components that are defined in the prototype. // Others could be instantiated directly by AddComponent (e.g. ContainerManager). // And those aren't guaranteed to exist on the client, so don't clear them. - if (prototype.Components.ContainsKey(component.Name)) ((Component) component).ClearTicks(); + var compName = ComponentFactory.GetComponentName(component.GetType()); + if (prototype.Components.ContainsKey(compName)) + component.ClearTicks(); } } diff --git a/Robust.Server/GameStates/PVSSystem.cs b/Robust.Server/GameStates/PVSSystem.cs index dd7430477..5f6109ca8 100644 --- a/Robust.Server/GameStates/PVSSystem.cs +++ b/Robust.Server/GameStates/PVSSystem.cs @@ -501,7 +501,8 @@ internal sealed partial class PVSSystem : EntitySystem MapChunkLocation mapChunkLocation => _entityPvsCollection.TryGetChunk(mapChunkLocation.MapId, mapChunkLocation.ChunkIndices, out var mapChunk) ? mapChunk - : null + : null, + _ => null }; if (chunk == null) { diff --git a/Robust.Shared/GameObjects/ComponentFactory.cs b/Robust.Shared/GameObjects/ComponentFactory.cs index b8ec874b5..026b590a5 100644 --- a/Robust.Shared/GameObjects/ComponentFactory.cs +++ b/Robust.Shared/GameObjects/ComponentFactory.cs @@ -165,7 +165,9 @@ namespace Robust.Shared.GameObjects static string CalculateComponentName(Type type) { // Backward compatible fallback +#pragma warning disable CS0618 if (type.GetProperty(nameof(Component.Name))!.DeclaringType != typeof(Component)) +#pragma warning restore CS0618 { var instance = (IComponent) Activator.CreateInstance(type)!; return instance.Name; diff --git a/Robust.Shared/Map/IMapManager.cs b/Robust.Shared/Map/IMapManager.cs index cdb79e5e3..ffb84b5c2 100644 --- a/Robust.Shared/Map/IMapManager.cs +++ b/Robust.Shared/Map/IMapManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; +using JetBrains.Annotations; using Robust.Shared.GameObjects; using Robust.Shared.Maths; using Robust.Shared.Timing; @@ -10,7 +11,7 @@ namespace Robust.Shared.Map /// /// This manages all of the grids in the world. /// - public interface IMapManager : IPauseManager + public interface IMapManager { /// /// A faster version of @@ -183,5 +184,30 @@ namespace Robust.Shared.Map IMapGridComponent GetGridComp(EntityUid euid); bool TryGetGrid(EntityUid euid, [NotNullWhen(true)] out IMapGrid? grid); bool GridExists(EntityUid euid); + + // + // Pausing functions + // + + void SetMapPaused(MapId mapId, bool paused); + + void DoMapInitialize(MapId mapId); + + void AddUninitializedMap(MapId mapId); + + [Pure] + bool IsMapPaused(MapId mapId); + + [Pure] + bool IsGridPaused(IMapGrid grid); + + [Pure] + bool IsGridPaused(GridId gridId); + + [Pure] + bool IsGridPaused(EntityUid gridId); + + [Pure] + bool IsMapInitialized(MapId mapId); } } diff --git a/Robust.Shared/Serialization/Manager/Definition/DataDefinition.Emitters.cs b/Robust.Shared/Serialization/Manager/Definition/DataDefinition.Emitters.cs index 76cd491f6..4138f46ca 100644 --- a/Robust.Shared/Serialization/Manager/Definition/DataDefinition.Emitters.cs +++ b/Robust.Shared/Serialization/Manager/Definition/DataDefinition.Emitters.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Emit; @@ -52,7 +52,8 @@ namespace Robust.Shared.Serialization.Manager.Definition { ValueDataNode => FieldInterfaceInfos[i].Reader.Value, SequenceDataNode => FieldInterfaceInfos[i].Reader.Sequence, - MappingDataNode => FieldInterfaceInfos[i].Reader.Mapping + MappingDataNode => FieldInterfaceInfos[i].Reader.Mapping, + _ => throw new InvalidOperationException() }) { result = serializationManager.ReadWithTypeSerializer(type, diff --git a/Robust.Shared/SharedIoC.cs b/Robust.Shared/SharedIoC.cs index ee7c8ba02..ba1cd300d 100644 --- a/Robust.Shared/SharedIoC.cs +++ b/Robust.Shared/SharedIoC.cs @@ -34,7 +34,6 @@ namespace Robust.Shared IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); - IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); diff --git a/Robust.Shared/Timing/IPauseManager.cs b/Robust.Shared/Timing/IPauseManager.cs deleted file mode 100644 index d4de1d949..000000000 --- a/Robust.Shared/Timing/IPauseManager.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using JetBrains.Annotations; -using Robust.Shared.GameObjects; -using Robust.Shared.Map; - -namespace Robust.Shared.Timing -{ - [Obsolete("Use the same functions on IMapManager.")] - public interface IPauseManager - { - void SetMapPaused(MapId mapId, bool paused); - - void DoMapInitialize(MapId mapId); - - [Obsolete("This function does nothing, per-grid pausing isn't a thing anymore.")] - void DoGridMapInitialize(GridId gridId); - - [Obsolete("This function does nothing, per-grid pausing isn't a thing anymore.")] - void DoGridMapInitialize(IMapGrid grid); - - void AddUninitializedMap(MapId mapId); - - [Pure] - bool IsMapPaused(MapId mapId); - - [Pure] - bool IsGridPaused(IMapGrid grid); - - [Pure] - bool IsGridPaused(GridId gridId); - - [Pure] - bool IsGridPaused(EntityUid gridId); - - [Pure] - bool IsMapInitialized(MapId mapId); - } -} diff --git a/Robust.UnitTesting/Server/GameObjects/Components/Container_Test.cs b/Robust.UnitTesting/Server/GameObjects/Components/Container_Test.cs index c56c5ae16..4fd16f244 100644 --- a/Robust.UnitTesting/Server/GameObjects/Components/Container_Test.cs +++ b/Robust.UnitTesting/Server/GameObjects/Components/Container_Test.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Robust.Server.Containers; using Robust.Shared.Containers; using Robust.Shared.GameObjects; using Robust.Shared.IoC; @@ -36,10 +37,11 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void TestCreation() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var entity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = entity.CreateContainer("dummy"); + var container = containerSys.MakeContainer(entity, "dummy"); Assert.That(container.ID, Is.EqualTo("dummy")); Assert.That(container.Owner, Is.EqualTo(entity)); @@ -47,10 +49,10 @@ namespace Robust.UnitTesting.Server.GameObjects.Components var manager = IoCManager.Resolve().GetComponent(entity); Assert.That(container.Manager, Is.EqualTo(manager)); - Assert.That(() => entity.CreateContainer("dummy"), Throws.ArgumentException); + Assert.That(() => containerSys.MakeContainer(entity, "dummy"), Throws.ArgumentException); Assert.That(manager.HasContainer("dummy2"), Is.False); - var container2 = entity.CreateContainer("dummy2"); + var container2 = containerSys.MakeContainer(entity, "dummy2"); Assert.That(container2.Manager, Is.EqualTo(manager)); Assert.That(container2.Owner, Is.EqualTo(entity)); @@ -75,16 +77,17 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void TestInsertion() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var owner = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var inserted = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var transform = IoCManager.Resolve().GetComponent(inserted); - var container = owner.CreateContainer("dummy"); + var container = containerSys.MakeContainer(owner, "dummy"); Assert.That(container.Insert(inserted), Is.True); Assert.That(transform.Parent!.Owner, Is.EqualTo(owner)); - var container2 = inserted.CreateContainer("dummy"); + var container2 = containerSys.MakeContainer(inserted, "dummy"); Assert.That(container2.Insert(owner), Is.False); var success = container.Remove(inserted); @@ -103,17 +106,18 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void TestNestedRemoval() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var owner = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var inserted = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var transform = IoCManager.Resolve().GetComponent(inserted); var entity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = owner.CreateContainer("dummy"); + var container = containerSys.MakeContainer(owner, "dummy"); Assert.That(container.Insert(inserted), Is.True); Assert.That(transform.Parent!.Owner, Is.EqualTo(owner)); - var container2 = inserted.CreateContainer("dummy"); + var container2 = containerSys.MakeContainer(inserted, "dummy"); Assert.That(container2.Insert(entity), Is.True); Assert.That(IoCManager.Resolve().GetComponent(entity).Parent!.Owner, Is.EqualTo(inserted)); @@ -129,6 +133,7 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void TestNestedRemovalWithDenial() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var coordinates = new EntityCoordinates(new EntityUid(1), (0, 0)); var entityOne = sim.SpawnEntity("dummy", coordinates); @@ -136,9 +141,9 @@ namespace Robust.UnitTesting.Server.GameObjects.Components var entityThree = sim.SpawnEntity("dummy", coordinates); var entityItem = sim.SpawnEntity("dummy", coordinates); - var container = entityOne.CreateContainer("dummy"); - var container2 = entityTwo.CreateContainer("dummy"); - var container3 = entityThree.CreateContainer("dummy"); + var container = containerSys.MakeContainer(entityOne, "dummy"); + var container2 = containerSys.MakeContainer(entityTwo, "dummy"); + var container3 = containerSys.MakeContainer(entityThree, "dummy"); var entMan = IoCManager.Resolve(); @@ -163,9 +168,10 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void BaseContainer_SelfInsert_False() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var entity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = entity.CreateContainer("dummy"); + var container = containerSys.MakeContainer(entity, "dummy"); Assert.That(container.Insert(entity), Is.False); Assert.That(container.CanInsert(entity), Is.False); @@ -175,10 +181,11 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void BaseContainer_InsertMap_False() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var mapEnt = new EntityUid(1); var entity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = entity.CreateContainer("dummy"); + var container = containerSys.MakeContainer(entity, "dummy"); Assert.That(container.Insert(mapEnt), Is.False); Assert.That(container.CanInsert(mapEnt), Is.False); @@ -188,10 +195,11 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void BaseContainer_InsertGrid_False() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var grid = sim.Resolve().CreateGrid(new MapId(1)).GridEntityId; var entity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = entity.CreateContainer("dummy"); + var container = containerSys.MakeContainer(entity, "dummy"); Assert.That(container.Insert(grid), Is.False); Assert.That(container.CanInsert(grid), Is.False); @@ -201,9 +209,10 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void BaseContainer_Insert_True() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var containerEntity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = containerEntity.CreateContainer("dummy"); + var container = containerSys.MakeContainer(containerEntity, "dummy"); var insertEntity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var result = container.Insert(insertEntity); @@ -223,9 +232,10 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void BaseContainer_RemoveNotAdded_False() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var containerEntity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = containerEntity.CreateContainer("dummy"); + var container = containerSys.MakeContainer(containerEntity, "dummy"); var insertEntity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); var result = container.Remove(insertEntity); @@ -237,11 +247,12 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void BaseContainer_Transfer_True() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var entity1 = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container1 = entity1.CreateContainer("dummy"); + var container1 = containerSys.MakeContainer(entity1, "dummy"); var entity2 = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container2 = entity2.CreateContainer("dummy"); + var container2 = containerSys.MakeContainer(entity2, "dummy"); var transferEntity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); container1.Insert(transferEntity); @@ -256,9 +267,10 @@ namespace Robust.UnitTesting.Server.GameObjects.Components public void Container_Serialize() { var sim = SimulationFactory(); + var containerSys = sim.Resolve().GetEntitySystem(); var entity = sim.SpawnEntity("dummy", new EntityCoordinates(new EntityUid(1), (0, 0))); - var container = entity.CreateContainer("dummy"); + var container = containerSys.MakeContainer(entity, "dummy"); var childEnt = sim.SpawnEntity(null, new EntityCoordinates(new EntityUid(1), (0, 0))); container.OccludesLight = true; diff --git a/Robust.UnitTesting/Server/RobustServerSimulation.cs b/Robust.UnitTesting/Server/RobustServerSimulation.cs index 981122aac..378525f4c 100644 --- a/Robust.UnitTesting/Server/RobustServerSimulation.cs +++ b/Robust.UnitTesting/Server/RobustServerSimulation.cs @@ -209,7 +209,6 @@ namespace Robust.UnitTesting.Server container.Register(); container.Register(); container.Register(); - container.Register(); container.Register(); container.Register(); container.Register(); diff --git a/Robust.UnitTesting/Shared/GameObjects/ContainerTests.cs b/Robust.UnitTesting/Shared/GameObjects/ContainerTests.cs index 309159374..7201c8cf7 100644 --- a/Robust.UnitTesting/Shared/GameObjects/ContainerTests.cs +++ b/Robust.UnitTesting/Shared/GameObjects/ContainerTests.cs @@ -47,13 +47,14 @@ namespace Robust.UnitTesting.Shared.GameObjects var mapMan = IoCManager.Resolve(); var entMan = IoCManager.Resolve(); var playerMan = IoCManager.Resolve(); + var containerSys = EntitySystem.Get(); mapId = mapMan.CreateMap(); mapPos = new MapCoordinates((0, 0), mapId); entityUid = entMan.SpawnEntity(null, mapPos); entMan.GetComponent(entityUid).EntityName = "Container"; - entityUid.EnsureContainer("dummy"); + containerSys.EnsureContainer(entityUid, "dummy"); // Setup PVS entMan.AddComponent(entityUid); @@ -71,10 +72,11 @@ namespace Robust.UnitTesting.Shared.GameObjects await server.WaitAssertion(() => { var entMan = IoCManager.Resolve(); + var containerSys = EntitySystem.Get(); itemUid = entMan.SpawnEntity(null, mapPos); entMan.GetComponent(itemUid).EntityName = "Item"; - var container = entityUid.EnsureContainer("dummy"); + var container = containerSys.EnsureContainer(entityUid, "dummy"); Assert.That(container.Insert(itemUid)); // Move item out of PVS so that it doesn't get sent to the client @@ -167,13 +169,14 @@ namespace Robust.UnitTesting.Shared.GameObjects var mapMan = IoCManager.Resolve(); var entMan = IoCManager.Resolve(); var playerMan = IoCManager.Resolve(); + var containerSys = EntitySystem.Get(); mapId = mapMan.CreateMap(); mapPos = new MapCoordinates((0, 0), mapId); entityUid = entMan.SpawnEntity(null, mapPos); entMan.GetComponent(entityUid).EntityName = "Container"; - entityUid.EnsureContainer("dummy"); + containerSys.EnsureContainer(entityUid, "dummy"); // Setup PVS entMan.AddComponent(entityUid); @@ -191,10 +194,11 @@ namespace Robust.UnitTesting.Shared.GameObjects await server.WaitAssertion(() => { var entMan = IoCManager.Resolve(); + var containerSys = EntitySystem.Get(); itemUid = entMan.SpawnEntity(null, mapPos); entMan.GetComponent(itemUid).EntityName = "Item"; - var container = entityUid.EnsureContainer("dummy"); + var container = containerSys.EnsureContainer(entityUid, "dummy"); container.Insert(itemUid); // Move item out of PVS so that it doesn't get sent to the client diff --git a/Robust.UnitTesting/Shared/Physics/GridMovement_Test.cs b/Robust.UnitTesting/Shared/Physics/GridMovement_Test.cs index 9ccd0787a..1de7147cc 100644 --- a/Robust.UnitTesting/Shared/Physics/GridMovement_Test.cs +++ b/Robust.UnitTesting/Shared/Physics/GridMovement_Test.cs @@ -10,7 +10,7 @@ using Robust.Shared.Physics.Dynamics; namespace Robust.UnitTesting.Shared.Physics; [TestFixture, TestOf(typeof(SharedBroadphaseSystem))] -public class GridMovement_Test : RobustIntegrationTest +public sealed class GridMovement_Test : RobustIntegrationTest { [Test] public async Task TestFindGridContacts()