Use automatic component registration.

This commit is contained in:
Pieter-Jan Briers
2019-07-31 15:02:36 +02:00
parent a90d7a645c
commit ceb8cc8421
94 changed files with 353 additions and 540 deletions

View File

@@ -1,29 +1,15 @@
using System; using System;
using Content.Client.Chat; using Content.Client.Chat;
using Content.Client.GameObjects;
using Content.Client.GameObjects.Components;
using Content.Client.GameObjects.Components.Actor; using Content.Client.GameObjects.Components.Actor;
using Content.Client.GameObjects.Components.Clothing;
using Content.Client.GameObjects.Components.Construction;
using Content.Client.GameObjects.Components.IconSmoothing;
using Content.Client.GameObjects.Components.Mobs;
using Content.Client.GameObjects.Components.Power;
using Content.Client.GameObjects.Components.Research;
using Content.Client.GameObjects.Components.Sound;
using Content.Client.GameObjects.Components.Storage;
using Content.Client.GameObjects.Components.Weapons.Ranged;
using Content.Client.GameTicking; using Content.Client.GameTicking;
using Content.Client.Input; using Content.Client.Input;
using Content.Client.Interfaces; using Content.Client.Interfaces;
using Content.Client.Interfaces.Chat; using Content.Client.Interfaces.Chat;
using Content.Client.Interfaces.GameObjects;
using Content.Client.Interfaces.Parallax; using Content.Client.Interfaces.Parallax;
using Content.Client.Parallax; using Content.Client.Parallax;
using Content.Client.UserInterface; using Content.Client.UserInterface;
using Content.Shared.GameObjects.Components.Chemistry; using Content.Shared.GameObjects.Components.Chemistry;
using Content.Shared.GameObjects.Components.Markers; using Content.Shared.GameObjects.Components.Markers;
using Content.Shared.GameObjects.Components.Materials;
using Content.Shared.GameObjects.Components.Mobs;
using Content.Shared.GameObjects.Components.Research; using Content.Shared.GameObjects.Components.Research;
using Content.Shared.Interfaces; using Content.Shared.Interfaces;
using Robust.Client; using Robust.Client;
@@ -51,115 +37,74 @@ namespace Content.Client
var factory = IoCManager.Resolve<IComponentFactory>(); var factory = IoCManager.Resolve<IComponentFactory>();
var prototypes = IoCManager.Resolve<IPrototypeManager>(); var prototypes = IoCManager.Resolve<IPrototypeManager>();
factory.RegisterIgnore("Interactable"); factory.DoAutoRegistrations();
factory.RegisterIgnore("Destructible");
factory.RegisterIgnore("Temperature");
factory.RegisterIgnore("PowerTransfer");
factory.RegisterIgnore("PowerNode");
factory.RegisterIgnore("PowerProvider");
factory.RegisterIgnore("PowerDevice");
factory.RegisterIgnore("PowerStorage");
factory.RegisterIgnore("PowerGenerator");
factory.RegisterIgnore("Explosive"); var registerIgnore = new[]
factory.RegisterIgnore("OnUseTimerTrigger"); {
"Interactable",
"Destructible",
"Temperature",
"PowerTransfer",
"PowerNode",
"PowerProvider",
"PowerDevice",
"PowerStorage",
"PowerGenerator",
"Explosive",
"OnUseTimerTrigger",
"ToolboxElectricalFill",
"ToolLockerFill",
"EmitSoundOnUse",
"FootstepModifier",
"HeatResistance",
"CombatMode",
"Teleportable",
"ItemTeleporter",
"Portal",
"EntityStorage",
"PlaceableSurface",
"Wirecutter",
"Screwdriver",
"Multitool",
"Welder",
"Wrench",
"Crowbar",
"HitscanWeapon",
"ProjectileWeapon",
"Projectile",
"MeleeWeapon",
"Storeable",
"Stack",
"Dice",
"Construction",
"Apc",
"Door",
"PoweredLight",
"Smes",
"Powercell",
"HandheldLight",
"LightBulb",
"Healing",
"Catwalk",
"BallisticMagazine",
"BallisticMagazineWeapon",
"BallisticBullet",
"HitscanWeaponCapacitor",
"PowerCell",
"AiController",
"PlayerInputMover",
};
factory.RegisterIgnore("ToolboxElectricalFill"); foreach (var ignoreName in registerIgnore)
factory.RegisterIgnore("ToolLockerFill"); {
factory.RegisterIgnore(ignoreName);
factory.RegisterIgnore("EmitSoundOnUse"); }
factory.RegisterIgnore("FootstepModifier");
factory.RegisterIgnore("HeatResistance");
factory.RegisterIgnore("CombatMode");
factory.RegisterIgnore("Teleportable");
factory.RegisterIgnore("ItemTeleporter");
factory.RegisterIgnore("Portal");
factory.RegisterIgnore("EntityStorage");
factory.RegisterIgnore("PlaceableSurface");
factory.RegisterIgnore("Wirecutter");
factory.RegisterIgnore("Screwdriver");
factory.RegisterIgnore("Multitool");
factory.RegisterIgnore("Welder");
factory.RegisterIgnore("Wrench");
factory.RegisterIgnore("Crowbar");
factory.Register<ClientRangedWeaponComponent>();
factory.RegisterIgnore("HitscanWeapon");
factory.RegisterIgnore("ProjectileWeapon");
factory.RegisterIgnore("Projectile");
factory.RegisterIgnore("MeleeWeapon");
factory.RegisterIgnore("Storeable");
factory.RegisterIgnore("Stack");
factory.RegisterIgnore("Dice");
factory.Register<HandsComponent>();
factory.RegisterReference<HandsComponent, IHandsComponent>();
factory.Register<ClientStorageComponent>();
factory.Register<ClientInventoryComponent>();
factory.Register<PowerDebugTool>();
factory.Register<ConstructorComponent>();
factory.Register<ConstructionGhostComponent>();
factory.Register<IconSmoothComponent>();
factory.Register<LowWallComponent>();
factory.RegisterReference<LowWallComponent, IconSmoothComponent>();
factory.Register<DamageableComponent>();
factory.Register<ClothingComponent>();
factory.Register<ItemComponent>();
factory.Register<MaterialComponent>();
factory.Register<SolutionComponent>();
factory.Register<SoundComponent>();
factory.Register<MaterialStorageComponent>();
factory.RegisterReference<MaterialStorageComponent, SharedMaterialStorageComponent>();
factory.RegisterReference<ClothingComponent, ItemComponent>();
factory.Register<SpeciesUI>();
factory.Register<CharacterInterface>();
factory.RegisterIgnore("Construction");
factory.RegisterIgnore("Apc");
factory.RegisterIgnore("Door");
factory.RegisterIgnore("PoweredLight");
factory.RegisterIgnore("Smes");
factory.RegisterIgnore("Powercell");
factory.RegisterIgnore("HandheldLight");
factory.RegisterIgnore("LightBulb");
factory.RegisterIgnore("Healing");
factory.RegisterIgnore("Catwalk");
factory.RegisterIgnore("BallisticMagazine");
factory.RegisterIgnore("BallisticMagazineWeapon");
factory.RegisterIgnore("BallisticBullet");
factory.RegisterIgnore("HitscanWeaponCapacitor");
prototypes.RegisterIgnore("material");
factory.RegisterIgnore("PowerCell");
factory.Register<SharedSpawnPointComponent>();
factory.Register<SharedLatheComponent>(); factory.Register<SharedLatheComponent>();
factory.Register<LatheDatabaseComponent>(); factory.Register<SharedSpawnPointComponent>();
factory.Register<SolutionComponent>();
factory.RegisterReference<LatheDatabaseComponent, SharedLatheDatabaseComponent>(); prototypes.RegisterIgnore("material");
factory.Register<CameraRecoilComponent>();
factory.RegisterReference<CameraRecoilComponent, SharedCameraRecoilComponent>();
factory.Register<SubFloorHideComponent>();
factory.RegisterIgnore("AiController");
factory.RegisterIgnore("PlayerInputMover");
factory.Register<ExaminerComponent>();
factory.Register<CharacterInfoComponent>();
factory.Register<WindowComponent>();
IoCManager.Register<IGameHud, GameHud>(); IoCManager.Register<IGameHud, GameHud>();
IoCManager.Register<IClientNotifyManager, ClientNotifyManager>(); IoCManager.Register<IClientNotifyManager, ClientNotifyManager>();
@@ -188,6 +133,7 @@ namespace Content.Client
_escapeMenuOwner.Initialize(); _escapeMenuOwner.Initialize();
} }
/// <summary> /// <summary>
/// Subscribe events to the player manager after the player manager is set up /// Subscribe events to the player manager after the player manager is set up
/// </summary> /// </summary>

View File

@@ -10,6 +10,7 @@ using Robust.Shared.Localization;
namespace Content.Client.GameObjects.Components.Actor namespace Content.Client.GameObjects.Components.Actor
{ {
[RegisterComponent]
public sealed class CharacterInfoComponent : Component, ICharacterUI public sealed class CharacterInfoComponent : Component, ICharacterUI
{ {
private CharacterInfoControl _control; private CharacterInfoControl _control;

View File

@@ -18,6 +18,7 @@ namespace Content.Client.GameObjects.Components.Actor
/// A semi-abstract component which gets added to entities upon attachment and collects all character /// A semi-abstract component which gets added to entities upon attachment and collects all character
/// user interfaces into a single window and keybind for the user /// user interfaces into a single window and keybind for the user
/// </summary> /// </summary>
[RegisterComponent]
public class CharacterInterface : Component public class CharacterInterface : Component
{ {
public override string Name => "Character Interface Component"; public override string Name => "Character Interface Component";

View File

@@ -1,13 +1,15 @@
using Content.Shared.GameObjects; using System;
using Content.Shared.GameObjects;
using Content.Shared.GameObjects.Components.Inventory; using Content.Shared.GameObjects.Components.Inventory;
using Content.Shared.GameObjects.Components.Items; using Content.Shared.GameObjects.Components.Items;
using Robust.Client.Graphics; using Robust.Client.Graphics;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using System;
namespace Content.Client.GameObjects.Components.Clothing namespace Content.Client.GameObjects.Components.Clothing
{ {
[RegisterComponent]
[ComponentReference(typeof(ItemComponent))]
public class ClothingComponent : ItemComponent public class ClothingComponent : ItemComponent
{ {
public override string Name => "Clothing"; public override string Name => "Clothing";

View File

@@ -6,6 +6,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Client.GameObjects.Components.Construction namespace Content.Client.GameObjects.Components.Construction
{ {
[RegisterComponent]
public class ConstructionGhostComponent : Component public class ConstructionGhostComponent : Component
{ {
public override string Name => "ConstructionGhost"; public override string Name => "ConstructionGhost";

View File

@@ -15,6 +15,7 @@ using Robust.Shared.Maths;
namespace Content.Client.GameObjects.Components.Construction namespace Content.Client.GameObjects.Components.Construction
{ {
[RegisterComponent]
public class ConstructorComponent : SharedConstructorComponent public class ConstructorComponent : SharedConstructorComponent
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,6 +1,6 @@
using Content.Shared.GameObjects; using System.Collections.Generic;
using Content.Shared.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using System.Collections.Generic;
namespace Content.Client.GameObjects namespace Content.Client.GameObjects
{ {
@@ -8,6 +8,7 @@ namespace Content.Client.GameObjects
/// Fuck I really hate doing this /// Fuck I really hate doing this
/// TODO: make sure the client only gets damageable component on the clientside entity for its player mob /// TODO: make sure the client only gets damageable component on the clientside entity for its player mob
/// </summary> /// </summary>
[RegisterComponent]
public class DamageableComponent : SharedDamageableComponent public class DamageableComponent : SharedDamageableComponent
{ {
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -18,6 +18,7 @@ namespace Content.Client.GameObjects
/// <summary> /// <summary>
/// A character UI which shows items the user has equipped within his inventory /// A character UI which shows items the user has equipped within his inventory
/// </summary> /// </summary>
[RegisterComponent]
public class ClientInventoryComponent : SharedInventoryComponent public class ClientInventoryComponent : SharedInventoryComponent
{ {
private readonly Dictionary<Slots, IEntity> _slots = new Dictionary<Slots, IEntity>(); private readonly Dictionary<Slots, IEntity> _slots = new Dictionary<Slots, IEntity>();

View File

@@ -25,6 +25,7 @@ namespace Content.Client.GameObjects.Components.IconSmoothing
/// To use, set <c>base</c> equal to the prefix of the corner states in the sprite base RSI. /// To use, set <c>base</c> equal to the prefix of the corner states in the sprite base RSI.
/// Any objects with the same <c>key</c> will connect. /// Any objects with the same <c>key</c> will connect.
/// </remarks> /// </remarks>
[RegisterComponent]
public class IconSmoothComponent : Component public class IconSmoothComponent : Component
{ {
private string _smoothKey; private string _smoothKey;

View File

@@ -15,6 +15,8 @@ using Robust.Shared.ViewVariables;
namespace Content.Client.GameObjects namespace Content.Client.GameObjects
{ {
[RegisterComponent]
[ComponentReference(typeof(IHandsComponent))]
public class HandsComponent : SharedHandsComponent, IHandsComponent public class HandsComponent : SharedHandsComponent, IHandsComponent
{ {
private HandsGui _gui; private HandsGui _gui;

View File

@@ -1,4 +1,5 @@
using Content.Shared.GameObjects; using System;
using Content.Shared.GameObjects;
using Content.Shared.GameObjects.Components.Items; using Content.Shared.GameObjects.Components.Items;
using Robust.Client.Graphics; using Robust.Client.Graphics;
using Robust.Client.Interfaces.ResourceManagement; using Robust.Client.Interfaces.ResourceManagement;
@@ -9,10 +10,10 @@ using Robust.Shared.IoC;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.Utility; using Robust.Shared.Utility;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using System;
namespace Content.Client.GameObjects namespace Content.Client.GameObjects
{ {
[RegisterComponent]
public class ItemComponent : Component public class ItemComponent : Component
{ {
public override string Name => "Item"; public override string Name => "Item";

View File

@@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using Content.Client.GameObjects.Components.IconSmoothing; using Content.Client.GameObjects.Components.IconSmoothing;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using static Robust.Client.GameObjects.SpriteComponent; using static Robust.Client.GameObjects.SpriteComponent;
@@ -14,6 +15,8 @@ namespace Content.Client.GameObjects.Components
/// <summary> /// <summary>
/// Override of icon smoothing to handle the specific complexities of low walls. /// Override of icon smoothing to handle the specific complexities of low walls.
/// </summary> /// </summary>
[RegisterComponent]
[ComponentReference(typeof(IconSmoothComponent))]
public class LowWallComponent : IconSmoothComponent public class LowWallComponent : IconSmoothComponent
{ {
public override string Name => "LowWall"; public override string Name => "LowWall";

View File

@@ -8,6 +8,8 @@ using Robust.Shared.Maths;
namespace Content.Client.GameObjects.Components.Mobs namespace Content.Client.GameObjects.Components.Mobs
{ {
[RegisterComponent]
[ComponentReference(typeof(SharedCameraRecoilComponent))]
public sealed class CameraRecoilComponent : SharedCameraRecoilComponent public sealed class CameraRecoilComponent : SharedCameraRecoilComponent
{ {
// Maximum rate of magnitude restore towards 0 kick. // Maximum rate of magnitude restore towards 0 kick.

View File

@@ -1,31 +1,31 @@
using Content.Client.GameObjects.Components.Actor; using System.Collections.Generic;
using Content.Client.GameObjects.Components.Mobs; using Content.Client.GameObjects.Components.Actor;
using Content.Client.Graphics.Overlays; using Content.Client.Graphics.Overlays;
using Content.Client.UserInterface;
using Content.Client.Utility;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Content.Shared.GameObjects.Components.Mobs;
using Robust.Client.GameObjects; using Robust.Client.GameObjects;
using Robust.Client.Graphics;
using Robust.Client.Graphics.Overlays;
using Robust.Client.Interfaces.Graphics.Overlays; using Robust.Client.Interfaces.Graphics.Overlays;
using Robust.Client.Interfaces.ResourceManagement; using Robust.Client.Interfaces.ResourceManagement;
using Robust.Client.Interfaces.UserInterface;
using Robust.Client.Player; using Robust.Client.Player;
using Robust.Client.UserInterface; using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Components.Renderable;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using System.Collections.Generic;
using Content.Client.UserInterface;
using Content.Client.Utility;
using Content.Shared.GameObjects.Components.Mobs;
using Robust.Client.Graphics;
using Robust.Client.Graphics.Overlays;
using Robust.Client.Interfaces.UserInterface;
using Robust.Shared.GameObjects.Components.Renderable;
namespace Content.Client.GameObjects namespace Content.Client.GameObjects
{ {
/// <summary> /// <summary>
/// A character UI component which shows the current damage state of the mob (living/dead) /// A character UI component which shows the current damage state of the mob (living/dead)
/// </summary> /// </summary>
[RegisterComponent]
public class SpeciesUI : SharedSpeciesComponent//, ICharacterUI public class SpeciesUI : SharedSpeciesComponent//, ICharacterUI
{ {
private StatusEffectsUI _ui; private StatusEffectsUI _ui;

View File

@@ -1,14 +1,13 @@
using Content.Shared.GameObjects.Components.Power; using Content.Shared.GameObjects.Components.Power;
using Robust.Client.Interfaces.Graphics;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.CustomControls;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC;
namespace Content.Client.GameObjects.Components.Power namespace Content.Client.GameObjects.Components.Power
{ {
[RegisterComponent]
public class PowerDebugTool : SharedPowerDebugTool public class PowerDebugTool : SharedPowerDebugTool
{ {
SS14Window LastWindow; SS14Window LastWindow;

View File

@@ -1,13 +1,13 @@
using Content.Shared.GameObjects.Components.Research; using Content.Shared.GameObjects.Components.Research;
using Content.Shared.Research; using Content.Shared.Research;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
namespace Content.Client.GameObjects.Components.Research namespace Content.Client.GameObjects.Components.Research
{ {
[RegisterComponent]
[ComponentReference(typeof(SharedLatheDatabaseComponent))]
public class LatheDatabaseComponent : SharedLatheDatabaseComponent public class LatheDatabaseComponent : SharedLatheDatabaseComponent
{ {
#pragma warning disable CS0649 #pragma warning disable CS0649

View File

@@ -2,11 +2,11 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Content.Shared.GameObjects.Components.Research; using Content.Shared.GameObjects.Components.Research;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network;
namespace Content.Client.GameObjects.Components.Research namespace Content.Client.GameObjects.Components.Research
{ {
[RegisterComponent]
[ComponentReference(typeof(SharedMaterialStorageComponent))]
public class MaterialStorageComponent : SharedMaterialStorageComponent public class MaterialStorageComponent : SharedMaterialStorageComponent
{ {
protected override Dictionary<string, int> Storage { get; set; } = new Dictionary<string, int>(); protected override Dictionary<string, int> Storage { get; set; } = new Dictionary<string, int>();

View File

@@ -5,14 +5,13 @@ using Robust.Client.GameObjects.EntitySystems;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.Interfaces.Timers;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.Timers; using Robust.Shared.Timers;
namespace Content.Client.GameObjects.Components.Sound namespace Content.Client.GameObjects.Components.Sound
{ {
[RegisterComponent]
public class SoundComponent : SharedSoundComponent public class SoundComponent : SharedSoundComponent
{ {
private readonly List<ScheduledSound> _schedules = new List<ScheduledSound>(); private readonly List<ScheduledSound> _schedules = new List<ScheduledSound>();

View File

@@ -17,6 +17,7 @@ namespace Content.Client.GameObjects.Components.Storage
/// <summary> /// <summary>
/// Client version of item storage containers, contains a UI which displays stored entities and their size /// Client version of item storage containers, contains a UI which displays stored entities and their size
/// </summary> /// </summary>
[RegisterComponent]
public class ClientStorageComponent : SharedStorageComponent public class ClientStorageComponent : SharedStorageComponent
{ {
private Dictionary<EntityUid, int> StoredEntities { get; set; } = new Dictionary<EntityUid, int>(); private Dictionary<EntityUid, int> StoredEntities { get; set; } = new Dictionary<EntityUid, int>();

View File

@@ -10,6 +10,7 @@ namespace Content.Client.GameObjects.Components
/// is not a sub floor (plating). /// is not a sub floor (plating).
/// </summary> /// </summary>
/// <seealso cref="ContentTileDefinition.IsSubFloor"/> /// <seealso cref="ContentTileDefinition.IsSubFloor"/>
[RegisterComponent]
public sealed class SubFloorHideComponent : Component public sealed class SubFloorHideComponent : Component
{ {
private SnapGridComponent _snapGridComponent; private SnapGridComponent _snapGridComponent;

View File

@@ -1,12 +1,13 @@
using System; using System;
using Content.Shared.GameObjects.Components.Weapons.Ranged; using Content.Shared.GameObjects.Components.Weapons.Ranged;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.Timing; using Robust.Shared.Interfaces.Timing;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Map; using Robust.Shared.Map;
namespace Content.Client.GameObjects.Components.Weapons.Ranged namespace Content.Client.GameObjects.Components.Weapons.Ranged
{ {
[RegisterComponent]
public sealed class ClientRangedWeaponComponent : SharedRangedWeaponComponent public sealed class ClientRangedWeaponComponent : SharedRangedWeaponComponent
{ {
private TimeSpan _lastFireTime; private TimeSpan _lastFireTime;

View File

@@ -8,6 +8,7 @@ using static Content.Client.GameObjects.Components.IconSmoothing.IconSmoothCompo
namespace Content.Client.GameObjects.Components namespace Content.Client.GameObjects.Components
{ {
[RegisterComponent]
public sealed class WindowComponent : Component public sealed class WindowComponent : Component
{ {
public override string Name => "Window"; public override string Name => "Window";

View File

@@ -1,73 +1,22 @@
using Content.Server.Chat; using Content.Server.Chat;
using Content.Server.GameObjects;
using Content.Server.GameObjects.Components;
using Content.Server.GameObjects.Components.Power;
using Content.Server.GameObjects.Components.Interactable.Tools;
using Content.Server.Interfaces.GameObjects;
using Content.Server.Placement;
using Robust.Server;
using Robust.Server.Interfaces;
using Robust.Server.Interfaces.Maps;
using Robust.Server.Interfaces.Player;
using Robust.Server.Player;
using Robust.Shared.Console;
using Robust.Shared.ContentPack;
using Robust.Shared.Enums;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.Timers;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Map;
using Robust.Shared.Timers;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.Maths;
using Content.Server.GameObjects.Components.Weapon.Ranged.Hitscan;
using Content.Server.GameObjects.Components.Weapon.Ranged.Projectile;
using Content.Server.GameObjects.Components.Projectiles;
using Content.Server.GameObjects.Components.Weapon.Melee;
using Content.Server.GameObjects.Components.Stack;
using Content.Server.GameObjects.Components.Construction;
using Content.Server.GameObjects.Components.Mobs;
using Content.Server.GameObjects.EntitySystems;
using Content.Server.Mobs;
using Content.Server.Players;
using Content.Server.GameObjects.Components.Interactable;
using Content.Server.GameObjects.Components.Markers;
using Content.Server.GameObjects.Components.Sound;
using Content.Server.GameObjects.Components.Weapon.Ranged;
using Content.Server.GameTicking; using Content.Server.GameTicking;
using Content.Server.Interfaces; using Content.Server.Interfaces;
using Content.Server.Interfaces.GameTicking;
using Content.Shared.GameObjects.Components.Chemistry;
using Content.Shared.GameObjects.Components.Materials;
using Content.Shared.GameObjects.Components.Inventory;
using Content.Shared.GameObjects.Components.Markers;
using Content.Shared.GameObjects.Components.Mobs;
using Content.Shared.Interfaces;
using Robust.Server.Interfaces.ServerStatus;
using Robust.Shared.Timing;
using Content.Server.GameObjects.Components.Destructible;
using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.GameObjects.Components.Items.Storage.Fill;
using Content.Server.GameObjects.Components.Movement;
using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.Chat;
using Content.Server.Interfaces.GameObjects.Components.Movement; using Content.Server.Interfaces.GameTicking;
using Content.Server.GameObjects.Components.Research; using Content.Shared.Interfaces;
using Content.Shared.GameObjects.Components.Research; using Robust.Server.Interfaces.Player;
using Robust.Shared.ContentPack;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Log; using Robust.Shared.Interfaces.Log;
using Content.Server.GameObjects.Components.Explosive; using Robust.Shared.IoC;
using Content.Server.GameObjects.Components.Items; using Robust.Shared.Log;
using Content.Server.GameObjects.Components.Triggers; using Robust.Shared.Timing;
using Content.Shared.GameObjects.Components.Movement;
using SolutionComponent = Content.Server.GameObjects.Components.Chemistry.SolutionComponent;
namespace Content.Server namespace Content.Server
{ {
public class EntryPoint : GameServer public class EntryPoint : GameServer
{ {
private IGameTicker _gameTicker; private IGameTicker _gameTicker;
private IMoMMILink _mommiLink;
private StatusShell _statusShell; private StatusShell _statusShell;
/// <inheritdoc /> /// <inheritdoc />
@@ -77,129 +26,19 @@ namespace Content.Server
var factory = IoCManager.Resolve<IComponentFactory>(); var factory = IoCManager.Resolve<IComponentFactory>();
factory.Register<HandsComponent>(); factory.DoAutoRegistrations();
factory.RegisterReference<HandsComponent, IHandsComponent>();
factory.Register<InventoryComponent>(); var registerIgnore = new[]
{
"ConstructionGhost",
"IconSmooth",
"SubFloorHide"
};
factory.Register<StoreableComponent>(); foreach (var ignoreName in registerIgnore)
factory.Register<ItemComponent>(); {
factory.RegisterReference<ItemComponent, StoreableComponent>(); factory.RegisterIgnore(ignoreName);
factory.Register<ClothingComponent>(); }
factory.RegisterReference<ClothingComponent, ItemComponent>();
factory.RegisterReference<ClothingComponent, StoreableComponent>();
factory.Register<PlaceableSurfaceComponent>();
factory.Register<DamageableComponent>();
factory.Register<DestructibleComponent>();
factory.Register<TemperatureComponent>();
factory.Register<ServerDoorComponent>();
factory.RegisterReference<ServerDoorComponent, IActivate>();
factory.Register<Content.Server.GameObjects.Components.Chemistry.SolutionComponent>();
//Power Components
factory.Register<PowerTransferComponent>();
factory.Register<PowerProviderComponent>();
factory.RegisterReference<PowerProviderComponent, PowerDeviceComponent>();
factory.Register<PowerNodeComponent>();
factory.Register<PowerStorageNetComponent>();
factory.RegisterReference<PowerStorageNetComponent, PowerStorageComponent>();
factory.Register<PowerCellComponent>();
factory.RegisterReference<PowerCellComponent, PowerStorageComponent>();
factory.Register<PowerDeviceComponent>();
factory.Register<PowerGeneratorComponent>();
factory.Register<LightBulbComponent>();
//Tools
factory.Register<MultitoolComponent>();
factory.Register<WirecutterComponent>();
factory.Register<WrenchComponent>();
factory.Register<WelderComponent>();
factory.Register<ScrewdriverComponent>();
factory.Register<CrowbarComponent>();
factory.Register<HitscanWeaponComponent>();
factory.Register<RangedWeaponComponent>();
factory.Register<BallisticMagazineWeaponComponent>();
factory.Register<ProjectileComponent>();
factory.Register<ThrownItemComponent>();
factory.Register<MeleeWeaponComponent>();
factory.Register<HealingComponent>();
factory.Register<SoundComponent>();
factory.Register<HandheldLightComponent>();
factory.Register<ServerStorageComponent>();
factory.RegisterReference<ServerStorageComponent, IStorageComponent>();
factory.RegisterReference<ServerStorageComponent, IActivate>();
factory.Register<EntityStorageComponent>();
factory.RegisterReference<EntityStorageComponent, IStorageComponent>();
factory.RegisterReference<EntityStorageComponent, IActivate>();
factory.Register<ToolLockerFillComponent>();
factory.Register<ToolboxElectricalFillComponent>();
factory.Register<PowerDebugTool>();
factory.Register<PoweredLightComponent>();
factory.Register<SmesComponent>();
factory.Register<ApcComponent>();
factory.RegisterReference<ApcComponent, IActivate>();
factory.Register<MaterialComponent>();
factory.Register<StackComponent>();
factory.Register<MaterialStorageComponent>();
factory.RegisterReference<MaterialStorageComponent, SharedMaterialStorageComponent>();
factory.Register<ConstructionComponent>();
factory.Register<ConstructorComponent>();
factory.RegisterIgnore("ConstructionGhost");
factory.Register<MindComponent>();
factory.Register<SpeciesComponent>();
factory.Register<HeatResistanceComponent>();
factory.Register<SpawnPointComponent>();
factory.RegisterReference<SpawnPointComponent, SharedSpawnPointComponent>();
factory.Register<LatheComponent>();
factory.RegisterReference<LatheComponent, IActivate>();
factory.Register<LatheDatabaseComponent>();
factory.RegisterReference<LatheDatabaseComponent, SharedLatheDatabaseComponent>();
factory.Register<BallisticBulletComponent>();
factory.Register<BallisticMagazineComponent>();
factory.Register<HitscanWeaponCapacitorComponent>();
factory.Register<CameraRecoilComponent>();
factory.RegisterReference<CameraRecoilComponent, SharedCameraRecoilComponent>();
factory.RegisterIgnore("IconSmooth");
factory.RegisterIgnore("SubFloorHide");
factory.Register<PlayerInputMoverComponent>();
factory.RegisterReference<PlayerInputMoverComponent, IMoverComponent>();
factory.Register<AiControllerComponent>();
factory.Register<ServerPortalComponent>();
factory.Register<ServerTeleporterComponent>();
factory.Register<TeleportableComponent>();
factory.Register<CatwalkComponent>();
factory.Register<DiceComponent>();
factory.Register<ExplosiveComponent>();
factory.Register<OnUseTimerTriggerComponent>();
factory.Register<FootstepModifierComponent>();
factory.Register<EmitSoundOnUseComponent>();
factory.Register<CombatModeComponent>();
factory.Register<ExaminerComponent>();
IoCManager.Register<ISharedNotifyManager, ServerNotifyManager>(); IoCManager.Register<ISharedNotifyManager, ServerNotifyManager>();
IoCManager.Register<IServerNotifyManager, ServerNotifyManager>(); IoCManager.Register<IServerNotifyManager, ServerNotifyManager>();
@@ -218,8 +57,6 @@ namespace Content.Server
IoCManager.Resolve<IServerNotifyManager>().Initialize(); IoCManager.Resolve<IServerNotifyManager>().Initialize();
IoCManager.Resolve<IChatManager>().Initialize(); IoCManager.Resolve<IChatManager>().Initialize();
_mommiLink = IoCManager.Resolve<IMoMMILink>();
var playerManager = IoCManager.Resolve<IPlayerManager>(); var playerManager = IoCManager.Resolve<IPlayerManager>();
_statusShell = new StatusShell(); _statusShell = new StatusShell();

View File

@@ -5,6 +5,7 @@ namespace Content.Server.GameObjects.Components
/// <summary> /// <summary>
/// Literally just a marker component for footsteps for now. /// Literally just a marker component for footsteps for now.
/// </summary> /// </summary>
[RegisterComponent]
public sealed class CatwalkComponent : Component public sealed class CatwalkComponent : Component
{ {
public override string Name => "Catwalk"; public override string Name => "Catwalk";

View File

@@ -1,6 +1,7 @@
using System; using System;
using Content.Shared.Chemistry; using Content.Shared.Chemistry;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
namespace Content.Server.GameObjects.Components.Chemistry namespace Content.Server.GameObjects.Components.Chemistry
@@ -8,6 +9,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
/// <summary> /// <summary>
/// Shared ECS component that manages a liquid solution of reagents. /// Shared ECS component that manages a liquid solution of reagents.
/// </summary> /// </summary>
[RegisterComponent]
internal class SolutionComponent : Shared.GameObjects.Components.Chemistry.SolutionComponent internal class SolutionComponent : Shared.GameObjects.Components.Chemistry.SolutionComponent
{ {
/// <summary> /// <summary>

View File

@@ -17,6 +17,7 @@ using static Content.Shared.Construction.ConstructionStepTool;
namespace Content.Server.GameObjects.Components.Construction namespace Content.Server.GameObjects.Components.Construction
{ {
[RegisterComponent]
public class ConstructionComponent : Component, IAttackBy public class ConstructionComponent : Component, IAttackBy
{ {
public override string Name => "Construction"; public override string Name => "Construction";

View File

@@ -3,13 +3,11 @@ using Content.Server.GameObjects.Components.Stack;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Content.Shared.Construction; using Content.Shared.Construction;
using Content.Shared.GameObjects.Components.Construction; using Content.Shared.GameObjects.Components.Construction;
using Robust.Server.GameObjects;
using Robust.Server.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Map; using Robust.Shared.Map;
@@ -18,6 +16,7 @@ using Robust.Shared.Prototypes;
namespace Content.Server.GameObjects.Components.Construction namespace Content.Server.GameObjects.Components.Construction
{ {
[RegisterComponent]
public class ConstructorComponent : SharedConstructorComponent public class ConstructorComponent : SharedConstructorComponent
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,12 +1,9 @@
using Content.Server.Interfaces.GameObjects; using System;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using Robust.Shared.Maths;
using Robust.Shared.GameObjects;
using Robust.Shared.Utility;
using YamlDotNet.RepresentationModel;
using Content.Server.Interfaces; using Content.Server.Interfaces;
using Content.Server.Interfaces.GameObjects;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
@@ -18,6 +15,7 @@ namespace Content.Server.GameObjects
/// A component that handles receiving damage and healing, /// A component that handles receiving damage and healing,
/// as well as informing other components of it. /// as well as informing other components of it.
/// </summary> /// </summary>
[RegisterComponent]
public class DamageableComponent : SharedDamageableComponent, IDamageableComponent public class DamageableComponent : SharedDamageableComponent, IDamageableComponent
{ {
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -1,21 +1,21 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Content.Server.GameObjects.EntitySystems;
using Content.Server.Interfaces;
using Content.Shared.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Content.Server.Interfaces; using Robust.Shared.Serialization;
using Content.Server.GameObjects.EntitySystems; using Robust.Shared.ViewVariables;
using Content.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Destructible namespace Content.Server.GameObjects.Components.Destructible
{ {
/// <summary> /// <summary>
/// Deletes the entity once a certain damage threshold has been reached. /// Deletes the entity once a certain damage threshold has been reached.
/// </summary> /// </summary>
[RegisterComponent]
public class DestructibleComponent : Component, IOnDamageBehavior, IDestroyAct, IExAct public class DestructibleComponent : Component, IOnDamageBehavior, IDestroyAct, IExAct
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -10,6 +10,8 @@ using Robust.Shared.Timers;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
[ComponentReference(typeof(IActivate))]
public class ServerDoorComponent : Component, IActivate public class ServerDoorComponent : Component, IActivate
{ {
public override string Name => "Door"; public override string Name => "Door";

View File

@@ -1,25 +1,24 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Collections.Generic;
using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Mobs;
using Robust.Server.Interfaces.GameObjects; using Content.Server.GameObjects.EntitySystems;
using Content.Shared.Maps;
using Robust.Server.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems;
using Robust.Shared.GameObjects.EntitySystemMessages; using Robust.Server.Interfaces.GameObjects;
using Robust.Server.Interfaces.Player;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.Timing; using Robust.Shared.GameObjects.EntitySystemMessages;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects;
using Content.Shared.Maps;
using Robust.Server.Interfaces.Player;
namespace Content.Server.GameObjects.Components.Explosive namespace Content.Server.GameObjects.Components.Explosive
{ {
[RegisterComponent]
public class ExplosiveComponent : Component, ITimerTrigger, IDestroyAct public class ExplosiveComponent : Component, ITimerTrigger, IDestroyAct
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -5,8 +5,8 @@ using Content.Shared.GameObjects;
using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.Container;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Utility; using Robust.Shared.Utility;
@@ -16,6 +16,7 @@ using static Content.Shared.GameObjects.SharedInventoryComponent.ClientInventory
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
public class InventoryComponent : SharedInventoryComponent public class InventoryComponent : SharedInventoryComponent
{ {
[ViewVariables] [ViewVariables]

View File

@@ -3,16 +3,12 @@ using System.Collections.Generic;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Content.Server.Interfaces.GameObjects; using Content.Server.Interfaces.GameObjects;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Content.Shared.Input;
using JetBrains.Annotations;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.Container;
using Robust.Server.GameObjects.EntitySystemMessages; using Robust.Server.GameObjects.EntitySystemMessages;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Input;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log; using Robust.Shared.Log;
@@ -24,6 +20,8 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
[ComponentReference(typeof(IHandsComponent))]
public class HandsComponent : SharedHandsComponent, IHandsComponent public class HandsComponent : SharedHandsComponent, IHandsComponent
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,21 +1,12 @@
using System; using Content.Server.GameObjects.Components.Stack;
using Content.Server.GameObjects.Components.Stack;
using Robust.Shared.GameObjects;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.IoC;
using Robust.Server.GameObjects;
using Robust.Shared.Maths;
using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.GameObjects.EntitySystemMessages;
using Robust.Shared.Serialization;
using Robust.Shared.Interfaces.GameObjects.Components;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Weapon.Melee namespace Content.Server.GameObjects.Components.Weapon.Melee
{ {
[RegisterComponent]
public class HealingComponent : Component, IAfterAttack, IUse public class HealingComponent : Component, IAfterAttack, IUse
{ {
public override string Name => "Healing"; public override string Name => "Healing";

View File

@@ -16,6 +16,7 @@ namespace Content.Server.GameObjects.Components.Interactable
/// <summary> /// <summary>
/// Component that represents a handheld lightsource which can be toggled on and off. /// Component that represents a handheld lightsource which can be toggled on and off.
/// </summary> /// </summary>
[RegisterComponent]
internal class HandheldLightComponent : Component, IUse, IExamine, IAttackBy, IMapInit internal class HandheldLightComponent : Component, IUse, IExamine, IAttackBy, IMapInit
{ {
public const float Wattage = 10; public const float Wattage = 10;

View File

@@ -1,6 +1,7 @@
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Content.Shared.Maps; using Content.Shared.Maps;
using Robust.Server.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC; using Robust.Shared.IoC;
@@ -8,6 +9,7 @@ using Robust.Shared.Map;
namespace Content.Server.GameObjects.Components.Interactable.Tools namespace Content.Server.GameObjects.Components.Interactable.Tools
{ {
[RegisterComponent]
public class CrowbarComponent : ToolComponent, IAfterAttack public class CrowbarComponent : ToolComponent, IAfterAttack
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,8 +1,11 @@
namespace Content.Server.GameObjects.Components.Interactable.Tools using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Interactable.Tools
{ {
/// <summary> /// <summary>
/// Tool used for interfacing/hacking into configurable computers /// Tool used for interfacing/hacking into configurable computers
/// </summary> /// </summary>
[RegisterComponent]
public class MultitoolComponent : ToolComponent public class MultitoolComponent : ToolComponent
{ {
public override string Name => "Multitool"; public override string Name => "Multitool";

View File

@@ -1,5 +1,8 @@
namespace Content.Server.GameObjects.Components.Interactable.Tools using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Interactable.Tools
{ {
[RegisterComponent]
public class ScrewdriverComponent : ToolComponent public class ScrewdriverComponent : ToolComponent
{ {
/// <summary> /// <summary>

View File

@@ -1,12 +1,10 @@
using System; using System;
using System.Text;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Utility;
using YamlDotNet.RepresentationModel;
using Robust.Server.GameObjects;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.Utility;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Interactable.Tools namespace Content.Server.GameObjects.Components.Interactable.Tools
@@ -14,6 +12,7 @@ namespace Content.Server.GameObjects.Components.Interactable.Tools
/// <summary> /// <summary>
/// Tool used to weld metal together, light things on fire, or melt into constituent parts /// Tool used to weld metal together, light things on fire, or melt into constituent parts
/// </summary> /// </summary>
[RegisterComponent]
class WelderComponent : ToolComponent, EntitySystems.IUse, EntitySystems.IExamine class WelderComponent : ToolComponent, EntitySystems.IUse, EntitySystems.IExamine
{ {
SpriteComponent spriteComponent; SpriteComponent spriteComponent;

View File

@@ -1,8 +1,11 @@
namespace Content.Server.GameObjects.Components.Interactable.Tools using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Interactable.Tools
{ {
/// <summary> /// <summary>
/// Tool that can be used for some cutting interactions such as wires or hacking /// Tool that can be used for some cutting interactions such as wires or hacking
/// </summary> /// </summary>
[RegisterComponent]
public class WirecutterComponent : ToolComponent public class WirecutterComponent : ToolComponent
{ {
public override string Name => "Wirecutter"; public override string Name => "Wirecutter";

View File

@@ -1,8 +1,11 @@
namespace Content.Server.GameObjects.Components.Interactable.Tools using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Interactable.Tools
{ {
/// <summary> /// <summary>
/// Wrenches bolts, and interacts with things that have been bolted /// Wrenches bolts, and interacts with things that have been bolted
/// </summary> /// </summary>
[RegisterComponent]
public class WrenchComponent : ToolComponent public class WrenchComponent : ToolComponent
{ {
public override string Name => "Wrench"; public override string Name => "Wrench";

View File

@@ -1,15 +1,18 @@
using System;
using System.Collections.Generic;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Content.Shared.GameObjects.Components.Items; using Content.Shared.GameObjects.Components.Items;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using System;
using System.Collections.Generic;
using Content.Server.GameObjects.EntitySystems;
using Robust.Shared.Utility; using Robust.Shared.Utility;
using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefines; using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefines;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
[ComponentReference(typeof(ItemComponent))]
[ComponentReference(typeof(StoreableComponent))]
public class ClothingComponent : ItemComponent, IUse public class ClothingComponent : ItemComponent, IUse
{ {
public override string Name => "Clothing"; public override string Name => "Clothing";

View File

@@ -6,7 +6,6 @@ using Robust.Server.GameObjects;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
@@ -15,6 +14,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Items namespace Content.Server.GameObjects.Components.Items
{ {
[RegisterComponent]
public class DiceComponent : Component, IActivate, IUse, ILand, IExamine public class DiceComponent : Component, IActivate, IUse, ILand, IExamine
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,4 +1,9 @@
using Content.Server.GameObjects.EntitySystems; using System.Linq;
using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.GameObjects.Components.Sound;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Storage;
using Robust.Server.GameObjects;
using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.Container;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
@@ -7,14 +12,12 @@ using Robust.Shared.Interfaces.Network;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using System.Linq;
using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.GameObjects.Components.Sound;
using Content.Shared.GameObjects.Components.Storage;
using Robust.Server.GameObjects;
namespace Content.Server.GameObjects.Components namespace Content.Server.GameObjects.Components
{ {
[RegisterComponent]
[ComponentReference(typeof(IActivate))]
[ComponentReference(typeof(IStorageComponent))]
public class EntityStorageComponent : Component, IActivate, IStorageComponent public class EntityStorageComponent : Component, IActivate, IStorageComponent
{ {
public override string Name => "EntityStorage"; public override string Name => "EntityStorage";

View File

@@ -7,6 +7,7 @@ using Robust.Shared.Maths;
namespace Content.Server.GameObjects.Components.Items.Storage.Fill namespace Content.Server.GameObjects.Components.Items.Storage.Fill
{ {
[RegisterComponent]
internal sealed class ToolLockerFillComponent : Component, IMapInit internal sealed class ToolLockerFillComponent : Component, IMapInit
{ {
public override string Name => "ToolLockerFill"; public override string Name => "ToolLockerFill";

View File

@@ -7,6 +7,7 @@ using Robust.Shared.Maths;
namespace Content.Server.GameObjects.Components.Items.Storage.Fill namespace Content.Server.GameObjects.Components.Items.Storage.Fill
{ {
[RegisterComponent]
internal sealed class ToolboxElectricalFillComponent : Component, IMapInit internal sealed class ToolboxElectricalFillComponent : Component, IMapInit
{ {
public override string Name => "ToolboxElectricalFill"; public override string Name => "ToolboxElectricalFill";

View File

@@ -1,17 +1,18 @@
using Content.Server.Interfaces.GameObjects; using System;
using Robust.Server.Interfaces.GameObjects;
using Content.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Robust.Shared.GameObjects; using Content.Server.Interfaces.GameObjects;
using System; using Content.Shared.GameObjects;
using Content.Shared.GameObjects.Components.Items; using Content.Shared.GameObjects.Components.Items;
using Content.Server.GameObjects.Components;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Maths; using Robust.Shared.Maths;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
[ComponentReference(typeof(StoreableComponent))]
public class ItemComponent : StoreableComponent, IAttackHand public class ItemComponent : StoreableComponent, IAttackHand
{ {
public override string Name => "Item"; public override string Name => "Item";

View File

@@ -1,32 +1,33 @@
using System.Linq; using System.Collections.Generic;
using System.Linq;
using Content.Server.GameObjects.Components;
using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Storage; using Content.Shared.GameObjects.Components.Storage;
using Content.Shared.Interfaces;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.Container;
using Robust.Server.GameObjects.EntitySystemMessages;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Server.Player; using Robust.Server.Player;
using Robust.Shared.Enums; using Robust.Shared.Enums;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log; using Robust.Shared.Log;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using System.Collections.Generic;
using Content.Shared.Interfaces;
using Robust.Shared.GameObjects.EntitySystemMessages;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.ViewVariables;
using Content.Server.GameObjects.Components;
using Content.Server.GameObjects.Components.Items.Storage;
using Robust.Server.GameObjects.EntitySystemMessages;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
/// <summary> /// <summary>
/// Storage component for containing entities within this one, matches a UI on the client which shows stored entities /// Storage component for containing entities within this one, matches a UI on the client which shows stored entities
/// </summary> /// </summary>
[RegisterComponent]
[ComponentReference(typeof(IActivate))]
[ComponentReference(typeof(IStorageComponent))]
public class ServerStorageComponent : SharedStorageComponent, IAttackBy, IUse, IActivate, IStorageComponent, IDestroyAct public class ServerStorageComponent : SharedStorageComponent, IAttackBy, IUse, IActivate, IStorageComponent, IDestroyAct
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -3,6 +3,7 @@ using Robust.Shared.Serialization;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
public class StoreableComponent : Component public class StoreableComponent : Component
{ {
public override string Name => "Storeable"; public override string Name => "Storeable";

View File

@@ -1,4 +1,3 @@
using System;
using Content.Shared.GameObjects.Components.Markers; using Content.Shared.GameObjects.Components.Markers;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
@@ -6,6 +5,8 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Markers namespace Content.Server.GameObjects.Components.Markers
{ {
[RegisterComponent]
[ComponentReference(typeof(SharedSpawnPointComponent))]
public sealed class SpawnPointComponent : SharedSpawnPointComponent public sealed class SpawnPointComponent : SharedSpawnPointComponent
{ {
private SpawnPointType _spawnType; private SpawnPointType _spawnType;

View File

@@ -1,8 +1,11 @@
using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Mobs;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths; using Robust.Shared.Maths;
namespace Content.Server.GameObjects.Components.Mobs namespace Content.Server.GameObjects.Components.Mobs
{ {
[RegisterComponent]
[ComponentReference(typeof(SharedCameraRecoilComponent))]
public sealed class CameraRecoilComponent : SharedCameraRecoilComponent public sealed class CameraRecoilComponent : SharedCameraRecoilComponent
{ {
public override void Kick(Vector2 recoil) public override void Kick(Vector2 recoil)

View File

@@ -8,6 +8,7 @@ namespace Content.Server.GameObjects.Components.Mobs
/// This is used to differentiate between regular item interactions or /// This is used to differentiate between regular item interactions or
/// using *everything* as a weapon. /// using *everything* as a weapon.
/// </summary> /// </summary>
[RegisterComponent]
public sealed class CombatModeComponent : Component public sealed class CombatModeComponent : Component
{ {
public override string Name => "CombatMode"; public override string Name => "CombatMode";

View File

@@ -1,9 +1,10 @@
using System; using System;
using Robust.Shared.GameObjects;
using Content.Shared.GameObjects.Components.Inventory; using Content.Shared.GameObjects.Components.Inventory;
using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
public class HeatResistanceComponent : Component public class HeatResistanceComponent : Component
{ {
public override string Name => "HeatResistance"; public override string Name => "HeatResistance";

View File

@@ -1,14 +1,6 @@
using System; using Content.Server.Mobs;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Content.Server.Mobs;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.Log;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Mobs namespace Content.Server.GameObjects.Components.Mobs
@@ -16,6 +8,7 @@ namespace Content.Server.GameObjects.Components.Mobs
/// <summary> /// <summary>
/// Stores a <see cref="Server.Mobs.Mind"/> on a mob. /// Stores a <see cref="Server.Mobs.Mind"/> on a mob.
/// </summary> /// </summary>
[RegisterComponent]
public class MindComponent : Component public class MindComponent : Component
{ {
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -12,6 +12,7 @@ using Robust.Shared.Serialization;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
[RegisterComponent]
public class SpeciesComponent : SharedSpeciesComponent, IActionBlocker, IOnDamageBehavior, IExAct public class SpeciesComponent : SharedSpeciesComponent, IActionBlocker, IOnDamageBehavior, IExAct
{ {
/// <summary> /// <summary>

View File

@@ -5,6 +5,7 @@ using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Movement namespace Content.Server.GameObjects.Components.Movement
{ {
[RegisterComponent]
public class AiControllerComponent : Component, IMoverComponent public class AiControllerComponent : Component, IMoverComponent
{ {
private string _logicName; private string _logicName;

View File

@@ -12,6 +12,8 @@ namespace Content.Server.GameObjects.Components.Movement
/// <summary> /// <summary>
/// Moves the entity based on input from a KeyBindingInputComponent. /// Moves the entity based on input from a KeyBindingInputComponent.
/// </summary> /// </summary>
[RegisterComponent]
[ComponentReference(typeof(IMoverComponent))]
public class PlayerInputMoverComponent : Component, IMoverComponent public class PlayerInputMoverComponent : Component, IMoverComponent
{ {
private bool _movingUp; private bool _movingUp;

View File

@@ -4,6 +4,7 @@ using Content.Shared.GameObjects.Components.Movement;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Server.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
@@ -12,6 +13,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Movement namespace Content.Server.GameObjects.Components.Movement
{ {
[RegisterComponent]
public class ServerPortalComponent : SharedPortalComponent public class ServerPortalComponent : SharedPortalComponent
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -9,7 +9,6 @@ using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
@@ -19,6 +18,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Movement namespace Content.Server.GameObjects.Components.Movement
{ {
[RegisterComponent]
public class ServerTeleporterComponent : Component, IAfterAttack public class ServerTeleporterComponent : Component, IAfterAttack
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,8 +1,8 @@
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Log;
namespace Content.Server.GameObjects.Components.Movement namespace Content.Server.GameObjects.Components.Movement
{ {
[RegisterComponent]
public class TeleportableComponent : Component public class TeleportableComponent : Component
{ {
public override string Name => "Teleportable"; public override string Name => "Teleportable";

View File

@@ -4,6 +4,7 @@ using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components namespace Content.Server.GameObjects.Components
{ {
[RegisterComponent]
public class PlaceableSurfaceComponent : Component, IAttackBy public class PlaceableSurfaceComponent : Component, IAttackBy
{ {
public override string Name => "PlaceableSurface"; public override string Name => "PlaceableSurface";

View File

@@ -3,15 +3,15 @@ using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Power; using Content.Shared.GameObjects.Components.Power;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.GameObjects.Components.UserInterface;
using Robust.Server.GameObjects.EntitySystems;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Components.UserInterface; using Robust.Shared.GameObjects.Components.UserInterface;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
[RegisterComponent]
[ComponentReference(typeof(IActivate))]
public sealed class ApcComponent : SharedApcComponent, IActivate public sealed class ApcComponent : SharedApcComponent, IActivate
{ {
PowerStorageComponent Storage; PowerStorageComponent Storage;

View File

@@ -1,9 +1,9 @@
using System; using System;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using SpriteComponent = Robust.Server.GameObjects.SpriteComponent;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
@@ -23,6 +23,7 @@ namespace Content.Server.GameObjects.Components.Power
/// <summary> /// <summary>
/// Component that represents a light bulb. Can be broken, or burned, which turns them mostly useless. /// Component that represents a light bulb. Can be broken, or burned, which turns them mostly useless.
/// </summary> /// </summary>
[RegisterComponent]
public class LightBulbComponent : Component public class LightBulbComponent : Component
{ {

View File

@@ -1,8 +1,11 @@
using Content.Shared.GameObjects.Components.Power; using Content.Shared.GameObjects.Components.Power;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
[RegisterComponent]
[ComponentReference(typeof(PowerStorageComponent))]
public class PowerCellComponent : PowerStorageComponent public class PowerCellComponent : PowerStorageComponent
{ {
public override string Name => "PowerCell"; public override string Name => "PowerCell";

View File

@@ -3,12 +3,13 @@ using System.Text;
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Power; using Content.Shared.GameObjects.Components.Power;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Map;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
[RegisterComponent]
public class PowerDebugTool : SharedPowerDebugTool, IAfterAttack public class PowerDebugTool : SharedPowerDebugTool, IAfterAttack
{ {
void IAfterAttack.AfterAttack(AfterAttackEventArgs eventArgs) void IAfterAttack.AfterAttack(AfterAttackEventArgs eventArgs)

View File

@@ -1,22 +1,19 @@
using Content.Server.GameObjects.EntitySystems; using System;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.IoC;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Content.Server.GameObjects.EntitySystems;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using YamlDotNet.RepresentationModel;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
/// <summary> /// <summary>
/// Component that requires power to function /// Component that requires power to function
/// </summary> /// </summary>
[RegisterComponent]
public class PowerDeviceComponent : Component, EntitySystems.IExamine public class PowerDeviceComponent : Component, EntitySystems.IExamine
{ {
public override string Name => "PowerDevice"; public override string Name => "PowerDevice";

View File

@@ -1,18 +1,13 @@
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.Utility;
using System;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using YamlDotNet.RepresentationModel;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
/// <summary> /// <summary>
/// Component that creates power and supplies it to the powernet /// Component that creates power and supplies it to the powernet
/// </summary> /// </summary>
[RegisterComponent]
public class PowerGeneratorComponent : Component public class PowerGeneratorComponent : Component
{ {
public override string Name => "PowerGenerator"; public override string Name => "PowerGenerator";

View File

@@ -1,10 +1,9 @@
using Robust.Server.GameObjects; using System;
using System.Linq;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using System;
using System.Linq;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
@@ -12,6 +11,7 @@ namespace Content.Server.GameObjects.Components.Power
/// <summary> /// <summary>
/// Component that connects to the powernet /// Component that connects to the powernet
/// </summary> /// </summary>
[RegisterComponent]
public class PowerNodeComponent : Component public class PowerNodeComponent : Component
{ {
public override string Name => "PowerNode"; public override string Name => "PowerNode";

View File

@@ -1,22 +1,20 @@
using Robust.Server.GameObjects; using System.Collections.Generic;
using System.Linq;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log; using Robust.Shared.Log;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.Utility;
using System;
using System.Collections.Generic;
using System.Linq;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using YamlDotNet.RepresentationModel;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
/// <summary> /// <summary>
/// Component that wirelessly connects and powers devices, connects to powernet via node and can be combined with internal storage component /// Component that wirelessly connects and powers devices, connects to powernet via node and can be combined with internal storage component
/// </summary> /// </summary>
[RegisterComponent]
[ComponentReference(typeof(PowerDeviceComponent))]
public class PowerProviderComponent : PowerDeviceComponent public class PowerProviderComponent : PowerDeviceComponent
{ {
public override string Name => "PowerProvider"; public override string Name => "PowerProvider";

View File

@@ -1,3 +1,4 @@
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
@@ -6,6 +7,8 @@ namespace Content.Server.GameObjects.Components.Power
/// <summary> /// <summary>
/// Feeds energy from the powernet and may have the ability to supply back into it /// Feeds energy from the powernet and may have the ability to supply back into it
/// </summary> /// </summary>
[RegisterComponent]
[ComponentReference(typeof(PowerStorageComponent))]
public class PowerStorageNetComponent : PowerStorageComponent public class PowerStorageNetComponent : PowerStorageComponent
{ {
public override string Name => "PowerStorage"; public override string Name => "PowerStorage";

View File

@@ -1,20 +1,18 @@
using Content.Server.GameObjects.EntitySystems; using System.Linq;
using Robust.Server.GameObjects; using Content.Server.GameObjects.Components.Interactable.Tools;
using Content.Server.GameObjects.EntitySystems;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using System.Linq;
using Robust.Shared.Interfaces.GameObjects;
using Content.Server.GameObjects.Components.Interactable.Tools;
using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.IoC;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
using System;
namespace Content.Server.GameObjects.Components.Power namespace Content.Server.GameObjects.Components.Power
{ {
/// <summary> /// <summary>
/// Component to transfer power to nearby components, can create powernets and connect to nodes /// Component to transfer power to nearby components, can create powernets and connect to nodes
/// </summary> /// </summary>
[RegisterComponent]
public class PowerTransferComponent : Component, IAttackBy public class PowerTransferComponent : Component, IAttackBy
{ {
public override string Name => "PowerTransfer"; public override string Name => "PowerTransfer";

View File

@@ -17,6 +17,7 @@ namespace Content.Server.GameObjects.Components.Power
/// <summary> /// <summary>
/// Component that represents a wall light. It has a light bulb that can be replaced when broken. /// Component that represents a wall light. It has a light bulb that can be replaced when broken.
/// </summary> /// </summary>
[RegisterComponent]
public class PoweredLightComponent : Component, IAttackHand, IAttackBy public class PoweredLightComponent : Component, IAttackHand, IAttackBy
{ {
public override string Name => "PoweredLight"; public override string Name => "PoweredLight";

View File

@@ -1,5 +1,4 @@
using System; using Content.Shared.GameObjects.Components.Power;
using Content.Shared.GameObjects.Components.Power;
using Content.Shared.Utility; using Content.Shared.Utility;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
@@ -11,6 +10,7 @@ namespace Content.Server.GameObjects.Components.Power
/// This is operations that are specific to the SMES, like UI and visuals. /// This is operations that are specific to the SMES, like UI and visuals.
/// Code interfacing with the powernet is handled in <see cref="PowerStorageComponent" />. /// Code interfacing with the powernet is handled in <see cref="PowerStorageComponent" />.
/// </summary> /// </summary>
[RegisterComponent]
public class SmesComponent : Component public class SmesComponent : Component
{ {
public override string Name => "Smes"; public override string Name => "Smes";

View File

@@ -1,14 +1,15 @@
using System.Collections.Generic; using System.Collections.Generic;
using Content.Server.GameObjects.Components.Mobs;
using Content.Shared.GameObjects;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Physics;
using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects.Components;
using Content.Server.GameObjects.Components.Mobs; using Robust.Shared.Interfaces.Physics;
using Content.Shared.GameObjects;
namespace Content.Server.GameObjects.Components.Projectiles namespace Content.Server.GameObjects.Components.Projectiles
{ {
[RegisterComponent]
public class ProjectileComponent : Component, ICollideSpecial, ICollideBehavior public class ProjectileComponent : Component, ICollideSpecial, ICollideBehavior
{ {
public override string Name => "Projectile"; public override string Name => "Projectile";

View File

@@ -11,6 +11,7 @@ using Robust.Shared.IoC;
namespace Content.Server.GameObjects.Components namespace Content.Server.GameObjects.Components
{ {
[RegisterComponent]
class ThrownItemComponent : ProjectileComponent, ICollideBehavior class ThrownItemComponent : ProjectileComponent, ICollideBehavior
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -6,15 +6,16 @@ using Content.Shared.GameObjects.Components.Research;
using Content.Shared.Research; using Content.Shared.Research;
using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.GameObjects.Components.UserInterface;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Components.UserInterface; using Robust.Shared.GameObjects.Components.UserInterface;
using Robust.Shared.IoC;
using Robust.Shared.Prototypes;
using Robust.Shared.Timers; using Robust.Shared.Timers;
using Robust.Shared.Utility; using Robust.Shared.Utility;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Research namespace Content.Server.GameObjects.Components.Research
{ {
[RegisterComponent]
[ComponentReference(typeof(IActivate))]
public class LatheComponent : SharedLatheComponent, IAttackBy, IActivate public class LatheComponent : SharedLatheComponent, IAttackBy, IActivate
{ {
public const int VolumePerSheet = 3750; public const int VolumePerSheet = 3750;

View File

@@ -1,4 +1,3 @@
using System.Collections.Generic;
using Content.Shared.GameObjects.Components.Research; using Content.Shared.GameObjects.Components.Research;
using Content.Shared.Research; using Content.Shared.Research;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
@@ -6,6 +5,8 @@ using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Research namespace Content.Server.GameObjects.Components.Research
{ {
[RegisterComponent]
[ComponentReference(typeof(SharedLatheDatabaseComponent))]
public class LatheDatabaseComponent : SharedLatheDatabaseComponent public class LatheDatabaseComponent : SharedLatheDatabaseComponent
{ {
/// <summary> /// <summary>

View File

@@ -1,11 +1,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using Content.Shared.GameObjects.Components.Research; using Content.Shared.GameObjects.Components.Research;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Research namespace Content.Server.GameObjects.Components.Research
{ {
[RegisterComponent]
[ComponentReference(typeof(SharedMaterialStorageComponent))]
public class MaterialStorageComponent : SharedMaterialStorageComponent public class MaterialStorageComponent : SharedMaterialStorageComponent
{ {
protected override Dictionary<string, int> Storage { get; set; } = new Dictionary<string, int>(); protected override Dictionary<string, int> Storage { get; set; } = new Dictionary<string, int>();

View File

@@ -1,25 +1,14 @@
using System; using Content.Server.GameObjects.EntitySystems;
using System.Collections.Generic;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
using Robust.Shared.Utility;
using YamlDotNet.RepresentationModel;
using Content.Server.Interfaces;
using Content.Shared.GameObjects;
using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables;
using Content.Server.GameObjects.EntitySystems;
using Robust.Server.GameObjects.EntitySystems;
using Content.Shared.Audio;
using Robust.Shared.Prototypes;
using Robust.Shared.IoC;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Sound namespace Content.Server.GameObjects.Components.Sound
{ {
/// <summary> /// <summary>
/// Simple sound emitter that emits sound on use in hand /// Simple sound emitter that emits sound on use in hand
/// </summary> /// </summary>
[RegisterComponent]
public class EmitSoundOnUseComponent : Component, IUse public class EmitSoundOnUseComponent : Component, IUse
{ {
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -1,26 +1,18 @@
using System; using System;
using System.Collections.Generic;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
using Robust.Shared.Utility;
using YamlDotNet.RepresentationModel;
using Content.Server.Interfaces;
using Content.Shared.GameObjects;
using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables;
using Content.Server.GameObjects.EntitySystems;
using Robust.Server.GameObjects.EntitySystems;
using Content.Shared.Audio; using Content.Shared.Audio;
using Robust.Shared.Prototypes; using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Audio; using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Sound namespace Content.Server.GameObjects.Components.Sound
{ {
/// <summary> /// <summary>
/// Changes footstep sound /// Changes footstep sound
/// </summary> /// </summary>
[RegisterComponent]
public class FootstepModifierComponent : Component public class FootstepModifierComponent : Component
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,16 +1,11 @@
using System.Collections.Generic;
using Content.Shared.GameObjects.Components.Sound; using Content.Shared.GameObjects.Components.Sound;
using Robust.Server.GameObjects.EntitySystems;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.Log;
using Robust.Shared.Map;
using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Sound namespace Content.Server.GameObjects.Components.Sound
{ {
[RegisterComponent]
public class SoundComponent : SharedSoundComponent public class SoundComponent : SharedSoundComponent
{ {
/// <summary> /// <summary>

View File

@@ -10,6 +10,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Stack namespace Content.Server.GameObjects.Components.Stack
{ {
// TODO: Naming and presentation and such could use some improvement. // TODO: Naming and presentation and such could use some improvement.
[RegisterComponent]
public class StackComponent : Component, IAttackBy, IExamine public class StackComponent : Component, IAttackBy, IExamine
{ {
private const string SerializationCache = "stack"; private const string SerializationCache = "stack";

View File

@@ -1,10 +1,8 @@
using Content.Server.Interfaces.GameObjects; using System;
using Content.Shared.Maths; using Content.Server.Interfaces.GameObjects;
using System;
using Robust.Shared.GameObjects;
using Robust.Shared.Utility;
using YamlDotNet.RepresentationModel;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using Content.Shared.Maths;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
@@ -15,6 +13,7 @@ namespace Content.Server.GameObjects
/// informing others of the current temperature, /// informing others of the current temperature,
/// and taking fire damage from high temperature. /// and taking fire damage from high temperature.
/// </summary> /// </summary>
[RegisterComponent]
public class TemperatureComponent : Component, ITemperatureComponent public class TemperatureComponent : Component, ITemperatureComponent
{ {
/// <inheritdoc /> /// <inheritdoc />

View File

@@ -1,14 +1,15 @@
using System; using System;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Triggers;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.GameObjects;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Triggers;
namespace Content.Server.GameObjects.Components.Triggers namespace Content.Server.GameObjects.Components.Triggers
{ {
[RegisterComponent]
public class OnUseTimerTriggerComponent : Component, IUse public class OnUseTimerTriggerComponent : Component, IUse
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,14 +1,15 @@
using Robust.Shared.GameObjects; using Content.Server.GameObjects.EntitySystems;
using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects;
using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Content.Shared.GameObjects;
using Robust.Shared.Interfaces.Map;
namespace Content.Server.GameObjects.Components.Weapon.Melee namespace Content.Server.GameObjects.Components.Weapon.Melee
{ {
[RegisterComponent]
public class MeleeWeaponComponent : Component, IAttack public class MeleeWeaponComponent : Component, IAttack
{ {
#pragma warning disable 649 #pragma warning disable 649

View File

@@ -1,11 +1,13 @@
using System; using System;
using Content.Shared.GameObjects.Components.Power;
using Content.Server.GameObjects.Components.Power; using Content.Server.GameObjects.Components.Power;
using Robust.Shared.Serialization; using Content.Shared.GameObjects.Components.Power;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Weapon.Ranged.Hitscan namespace Content.Server.GameObjects.Components.Weapon.Ranged.Hitscan
{ {
[RegisterComponent]
public class HitscanWeaponCapacitorComponent : PowerCellComponent public class HitscanWeaponCapacitorComponent : PowerCellComponent
{ {
private AppearanceComponent _appearance; private AppearanceComponent _appearance;

View File

@@ -1,6 +1,13 @@
using Content.Shared.GameObjects; using System;
using Content.Server.GameObjects.Components.Power;
using Content.Server.GameObjects.Components.Sound;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects;
using Content.Shared.Interfaces;
using Content.Shared.Physics;
using Robust.Server.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.EntitySystemMessages; using Robust.Shared.GameObjects.EntitySystemMessages;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Physics; using Robust.Shared.Interfaces.Physics;
@@ -10,16 +17,10 @@ using Robust.Shared.Map;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Physics; using Robust.Shared.Physics;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using System;
using Content.Server.GameObjects.Components.Sound;
using Robust.Shared.GameObjects;
using Content.Server.GameObjects.EntitySystems;
using Content.Server.GameObjects.Components.Power;
using Content.Shared.Interfaces;
using Content.Shared.Physics;
namespace Content.Server.GameObjects.Components.Weapon.Ranged.Hitscan namespace Content.Server.GameObjects.Components.Weapon.Ranged.Hitscan
{ {
[RegisterComponent]
public class HitscanWeaponComponent : Component, IAttackBy public class HitscanWeaponComponent : Component, IAttackBy
{ {
private const float MaxLength = 20; private const float MaxLength = 20;

View File

@@ -3,6 +3,7 @@ using Robust.Shared.Serialization;
namespace Content.Server.GameObjects.Components.Weapon.Ranged.Projectile namespace Content.Server.GameObjects.Components.Weapon.Ranged.Projectile
{ {
[RegisterComponent]
public class BallisticBulletComponent : Component public class BallisticBulletComponent : Component
{ {
public override string Name => "BallisticBullet"; public override string Name => "BallisticBullet";

View File

@@ -11,6 +11,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Weapon.Ranged.Projectile namespace Content.Server.GameObjects.Components.Weapon.Ranged.Projectile
{ {
[RegisterComponent]
public class BallisticMagazineComponent : Component, IMapInit public class BallisticMagazineComponent : Component, IMapInit
{ {
public override string Name => "BallisticMagazine"; public override string Name => "BallisticMagazine";

View File

@@ -8,6 +8,7 @@ using Robust.Server.GameObjects;
using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.Container;
using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.GameObjects;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
@@ -16,6 +17,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Weapon.Ranged.Projectile namespace Content.Server.GameObjects.Components.Weapon.Ranged.Projectile
{ {
[RegisterComponent]
public class BallisticMagazineWeaponComponent : BallisticWeaponComponent, IUse, IAttackBy, IMapInit public class BallisticMagazineWeaponComponent : BallisticWeaponComponent, IUse, IAttackBy, IMapInit
{ {
public override string Name => "BallisticMagazineWeapon"; public override string Name => "BallisticMagazineWeapon";

View File

@@ -1,18 +1,17 @@
using System; using System;
using Robust.Shared.GameObjects;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Weapons.Ranged; using Content.Shared.GameObjects.Components.Weapons.Ranged;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Network;
using Robust.Shared.Interfaces.Timing; using Robust.Shared.Interfaces.Timing;
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Timers; using Robust.Shared.Timers;
namespace Content.Server.GameObjects.Components.Weapon.Ranged namespace Content.Server.GameObjects.Components.Weapon.Ranged
{ {
[RegisterComponent]
public sealed class RangedWeaponComponent : SharedRangedWeaponComponent public sealed class RangedWeaponComponent : SharedRangedWeaponComponent
{ {
private TimeSpan _lastFireTime; private TimeSpan _lastFireTime;

View File

@@ -14,6 +14,7 @@ namespace Content.Shared.GameObjects.Components.Materials
/// Component to store data such as "this object is made out of steel". /// Component to store data such as "this object is made out of steel".
/// This is not a storage system for say smelteries. /// This is not a storage system for say smelteries.
/// </summary> /// </summary>
[RegisterComponent]
public class MaterialComponent : Component public class MaterialComponent : Component
{ {
public const string SerializationCache = "mat"; public const string SerializationCache = "mat";

View File

@@ -7,6 +7,7 @@ namespace Content.Shared.GameObjects.Components.Mobs
/// <summary> /// <summary>
/// Component required for a player to be able to examine things. /// Component required for a player to be able to examine things.
/// </summary> /// </summary>
[RegisterComponent]
public sealed class ExaminerComponent : Component public sealed class ExaminerComponent : Component
{ {
public override string Name => "Examiner"; public override string Name => "Examiner";