diff --git a/Content.Client/Mech/MechComponent.cs b/Content.Client/Mech/MechComponent.cs deleted file mode 100644 index 7f67f9b5a3..0000000000 --- a/Content.Client/Mech/MechComponent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Content.Shared.Mech.Components; -using Robust.Shared.GameStates; - -namespace Content.Client.Mech; - -/// -[RegisterComponent, NetworkedComponent] -[ComponentReference(typeof(SharedMechComponent))] -public sealed class MechComponent : SharedMechComponent -{ - -} diff --git a/Content.Client/Mech/MechSystem.cs b/Content.Client/Mech/MechSystem.cs index 57bdbf87f1..ba4e29951d 100644 --- a/Content.Client/Mech/MechSystem.cs +++ b/Content.Client/Mech/MechSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Mech; +using Content.Shared.Mech.Components; using Content.Shared.Mech.EntitySystems; using Robust.Client.GameObjects; using DrawDepth = Content.Shared.DrawDepth.DrawDepth; diff --git a/Content.Client/Mech/Ui/MechBoundUserInterface.cs b/Content.Client/Mech/Ui/MechBoundUserInterface.cs index a6331554a5..0fae4e993c 100644 --- a/Content.Client/Mech/Ui/MechBoundUserInterface.cs +++ b/Content.Client/Mech/Ui/MechBoundUserInterface.cs @@ -1,5 +1,6 @@ using Content.Client.UserInterface.Fragments; using Content.Shared.Mech; +using Content.Shared.Mech.Components; using JetBrains.Annotations; using Robust.Client.GameObjects; diff --git a/Content.Client/Mech/Ui/MechMenu.xaml.cs b/Content.Client/Mech/Ui/MechMenu.xaml.cs index 7c757c57f3..1bb59e07e9 100644 --- a/Content.Client/Mech/Ui/MechMenu.xaml.cs +++ b/Content.Client/Mech/Ui/MechMenu.xaml.cs @@ -31,7 +31,7 @@ public sealed partial class MechMenu : FancyWindow public void UpdateMechStats() { - if (!_ent.TryGetComponent(_mech, out var mechComp)) + if (!_ent.TryGetComponent(_mech, out var mechComp)) return; var integrityPercent = mechComp.Integrity / mechComp.MaxIntegrity; diff --git a/Content.Server/Construction/Completions/BuildMech.cs b/Content.Server/Construction/Completions/BuildMech.cs index ff100538aa..0a7c4a68f6 100644 --- a/Content.Server/Construction/Completions/BuildMech.cs +++ b/Content.Server/Construction/Completions/BuildMech.cs @@ -1,7 +1,7 @@ -using Content.Server.Mech.Components; using Content.Server.Mech.Systems; using Content.Server.Power.Components; using Content.Shared.Construction; +using Content.Shared.Mech.Components; using JetBrains.Annotations; using Robust.Server.Containers; using Robust.Shared.Containers; diff --git a/Content.Server/Mech/Components/MechAirComponent.cs b/Content.Server/Mech/Components/MechAirComponent.cs new file mode 100644 index 0000000000..e30a5af80e --- /dev/null +++ b/Content.Server/Mech/Components/MechAirComponent.cs @@ -0,0 +1,12 @@ +using Content.Server.Atmos; + +namespace Content.Server.Mech.Components; + +[RegisterComponent] +public sealed class MechAirComponent : Component +{ + //TODO: this doesn't support a tank implant for mechs or anything like that + [ViewVariables(VVAccess.ReadWrite)] + public GasMixture Air = new (GasMixVolume); + public const float GasMixVolume = 70f; +} diff --git a/Content.Server/Mech/Components/MechComponent.cs b/Content.Server/Mech/Components/MechComponent.cs deleted file mode 100644 index b233d0309e..0000000000 --- a/Content.Server/Mech/Components/MechComponent.cs +++ /dev/null @@ -1,115 +0,0 @@ -using Content.Server.Atmos; -using Content.Shared.Mech.Components; -using Robust.Shared.GameStates; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; - -namespace Content.Server.Mech.Components; - -/// -[RegisterComponent, NetworkedComponent] -[ComponentReference(typeof(SharedMechComponent))] -public sealed class MechComponent : SharedMechComponent -{ - /// - /// How long it takes to enter the mech. - /// - [DataField("entryDelay")] - public float EntryDelay = 3; - - /// - /// How long it takes to pull *another person* - /// outside of the mech. You can exit instantly yourself. - /// - [DataField("exitDelay")] - public float ExitDelay = 3; - - /// - /// How long it takes to pull out the battery. - /// - [DataField("batteryRemovalDelay")] - public float BatteryRemovalDelay = 2; - - /// - /// Whether or not the mech is airtight. - /// - /// - /// This needs to be redone - /// when mech internals are added - /// - [DataField("airtight"), ViewVariables(VVAccess.ReadWrite)] - public bool Airtight; - - /// - /// The equipment that the mech initially has when it spawns. - /// Good for things like nukie mechs that start with guns. - /// - [DataField("startingEquipment", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List StartingEquipment = new(); - - /// - /// The battery the mech initially has when it spawns - /// Good for admemes and nukie mechs. - /// - [DataField("startingBattery", customTypeSerializer: typeof(PrototypeIdSerializer))] - public string? StartingBattery; - - //TODO: this doesn't support a tank implant for mechs or anything like that - [ViewVariables(VVAccess.ReadWrite)] - public GasMixture Air = new (GasMixVolume); - public const float GasMixVolume = 70f; -} - -/// -/// Event raised when a person successfully enters a mech -/// -public sealed class MechEntryFinishedEvent : EntityEventArgs -{ - public EntityUid User; - - public MechEntryFinishedEvent(EntityUid user) - { - User = user; - } -} - -/// -/// Event raised when a person fails to enter a mech -/// -public sealed class MechEntryCanclledEvent : EntityEventArgs -{ - -} - -/// -/// Event raised when a person successfully removes someone from a mech -/// -public sealed class MechExitFinishedEvent : EntityEventArgs -{ - -} - -/// -/// Event raised when a person fails to remove someone from a mech -/// -public sealed class MechExitCanclledEvent : EntityEventArgs -{ - -} - -/// -/// Event raised when the battery is successfully removed from the mech -/// -public sealed class MechRemoveBatteryFinishedEvent : EntityEventArgs -{ - -} - -/// -/// Event raised when the battery fails to be removed from the mech -/// -public sealed class MechRemoveBatteryCancelledEvent : EntityEventArgs -{ - -} diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs index 310c5a50c8..84f60573b1 100644 --- a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs @@ -1,11 +1,11 @@ using System.Linq; using Content.Server.Interaction; -using Content.Server.Mech.Components; using Content.Server.Mech.Equipment.Components; using Content.Server.Mech.Systems; using Content.Shared.DoAfter; using Content.Shared.Interaction; using Content.Shared.Mech; +using Content.Shared.Mech.Components; using Content.Shared.Mech.Equipment.Components; using Content.Shared.Mobs.Components; using Content.Shared.Wall; diff --git a/Content.Server/Mech/Systems/MechEquipmentSystem.cs b/Content.Server/Mech/Systems/MechEquipmentSystem.cs index 9ffa1030e1..d81c57dfc1 100644 --- a/Content.Server/Mech/Systems/MechEquipmentSystem.cs +++ b/Content.Server/Mech/Systems/MechEquipmentSystem.cs @@ -1,7 +1,7 @@ -using Content.Server.Mech.Components; -using Content.Server.Popups; +using Content.Server.Popups; using Content.Shared.DoAfter; using Content.Shared.Interaction; +using Content.Shared.Mech.Components; using Content.Shared.Mech.Equipment.Components; namespace Content.Server.Mech.Systems; diff --git a/Content.Server/Mech/Systems/MechSystem.cs b/Content.Server/Mech/Systems/MechSystem.cs index d264eb59b4..7e1422ba10 100644 --- a/Content.Server/Mech/Systems/MechSystem.cs +++ b/Content.Server/Mech/Systems/MechSystem.cs @@ -125,7 +125,7 @@ public sealed class MechSystem : SharedMechSystem Dirty(component); } - private void OnRemoveEquipmentMessage(EntityUid uid, SharedMechComponent component, MechEquipmentRemoveMessage args) + private void OnRemoveEquipmentMessage(EntityUid uid, MechComponent component, MechEquipmentRemoveMessage args) { if (!Exists(args.Equipment) || Deleted(args.Equipment)) return; @@ -224,7 +224,7 @@ public sealed class MechSystem : SharedMechSystem args.Handled = true; } - private void OnDamageChanged(EntityUid uid, SharedMechComponent component, DamageChangedEvent args) + private void OnDamageChanged(EntityUid uid, MechComponent component, DamageChangedEvent args) { var integrity = component.MaxIntegrity - args.Damageable.TotalDamage; SetIntegrity(uid, integrity, component); @@ -264,7 +264,7 @@ public sealed class MechSystem : SharedMechSystem } } - public override void UpdateUserInterface(EntityUid uid, SharedMechComponent? component = null) + public override void UpdateUserInterface(EntityUid uid, MechComponent? component = null) { if (!Resolve(uid, ref component)) return; @@ -285,7 +285,7 @@ public sealed class MechSystem : SharedMechSystem _ui.SetUiState(ui, state); } - public override bool TryInsert(EntityUid uid, EntityUid? toInsert, SharedMechComponent? component = null) + public override bool TryInsert(EntityUid uid, EntityUid? toInsert, MechComponent? component = null) { if (!Resolve(uid, ref component)) return false; @@ -293,9 +293,7 @@ public sealed class MechSystem : SharedMechSystem if (!base.TryInsert(uid, toInsert, component)) return false; - var mech = (MechComponent) component; - - if (mech.Airtight) + if (component.Airtight && TryComp(uid, out MechAirComponent? mechAir)) { var coordinates = Transform(uid).MapPosition; if (_map.TryFindGridAt(coordinates, out var grid)) @@ -304,14 +302,14 @@ public sealed class MechSystem : SharedMechSystem if (_atmosphere.GetTileMixture(tile.GridUid, null, tile.GridIndices, true) is {} environment) { - _atmosphere.Merge(mech.Air, environment.RemoveVolume(MechComponent.GasMixVolume)); + _atmosphere.Merge(mechAir.Air, environment.RemoveVolume(MechAirComponent.GasMixVolume)); } } } return true; } - public override bool TryEject(EntityUid uid, SharedMechComponent? component = null) + public override bool TryEject(EntityUid uid, MechComponent? component = null) { if (!Resolve(uid, ref component)) return false; @@ -319,9 +317,7 @@ public sealed class MechSystem : SharedMechSystem if (!base.TryEject(uid, component)) return false; - var mech = (MechComponent) component; - - if (mech.Airtight) + if (component.Airtight && TryComp(uid, out MechAirComponent? mechAir)) { var coordinates = Transform(uid).MapPosition; if (_map.TryFindGridAt(coordinates, out var grid)) @@ -330,8 +326,8 @@ public sealed class MechSystem : SharedMechSystem if (_atmosphere.GetTileMixture(tile.GridUid, null, tile.GridIndices, true) is {} environment) { - _atmosphere.Merge(environment, mech.Air); - mech.Air.Clear(); + _atmosphere.Merge(environment, mechAir.Air); + mechAir.Air.Clear(); } } } @@ -339,7 +335,7 @@ public sealed class MechSystem : SharedMechSystem return true; } - public override void BreakMech(EntityUid uid, SharedMechComponent? component = null) + public override void BreakMech(EntityUid uid, MechComponent? component = null) { base.BreakMech(uid, component); @@ -347,7 +343,7 @@ public sealed class MechSystem : SharedMechSystem _actionBlocker.UpdateCanMove(uid); } - public override bool TryChangeEnergy(EntityUid uid, FixedPoint2 delta, SharedMechComponent? component = null) + public override bool TryChangeEnergy(EntityUid uid, FixedPoint2 delta, MechComponent? component = null) { if (!Resolve(uid, ref component)) return false; @@ -409,20 +405,26 @@ public sealed class MechSystem : SharedMechSystem #region Atmos Handling private void OnInhale(EntityUid uid, MechPilotComponent component, InhaleLocationEvent args) { - if (!TryComp(component.Mech, out var mech)) + if (!TryComp(component.Mech, out var mech) || + !TryComp(component.Mech, out var mechAir)) + { return; + } if (mech.Airtight) - args.Gas = mech.Air; + args.Gas = mechAir.Air; } private void OnExhale(EntityUid uid, MechPilotComponent component, ExhaleLocationEvent args) { - if (!TryComp(component.Mech, out var mech)) + if (!TryComp(component.Mech, out var mech) || + !TryComp(component.Mech, out var mechAir)) + { return; + } if (mech.Airtight) - args.Gas = mech.Air; + args.Gas = mechAir.Air; } private void OnExpose(EntityUid uid, MechPilotComponent component, ref AtmosExposedGetAirEvent args) @@ -430,10 +432,13 @@ public sealed class MechSystem : SharedMechSystem if (args.Handled) return; - if (!TryComp(component.Mech, out var mech)) + if (!TryComp(component.Mech, out var mech) || + !TryComp(component.Mech, out var mechAir)) + { return; + } - args.Gas = mech.Airtight ? mech.Air : _atmosphere.GetContainingMixture(component.Mech); + args.Gas = mech.Airtight ? mechAir.Air : _atmosphere.GetContainingMixture(component.Mech); args.Handled = true; } diff --git a/Content.Shared/Mech/Components/SharedMechComponent.cs b/Content.Shared/Mech/Components/MechComponent.cs similarity index 70% rename from Content.Shared/Mech/Components/SharedMechComponent.cs rename to Content.Shared/Mech/Components/MechComponent.cs index 09196a1ff3..b128e65019 100644 --- a/Content.Shared/Mech/Components/SharedMechComponent.cs +++ b/Content.Shared/Mech/Components/MechComponent.cs @@ -2,8 +2,11 @@ using Content.Shared.FixedPoint; using Content.Shared.Whitelist; using Robust.Shared.Containers; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Mech.Components; @@ -11,7 +14,8 @@ namespace Content.Shared.Mech.Components; /// A large, pilotable machine that has equipment that is /// powered via an internal battery. /// -public abstract class SharedMechComponent : Component +[RegisterComponent, NetworkedComponent] +public sealed class MechComponent : Component { /// /// How much "health" the mech has left. @@ -98,6 +102,49 @@ public abstract class SharedMechComponent : Component [ViewVariables] public readonly string EquipmentContainerId = "mech-equipment-container"; + /// + /// How long it takes to enter the mech. + /// + [DataField("entryDelay")] + public float EntryDelay = 3; + + /// + /// How long it takes to pull *another person* + /// outside of the mech. You can exit instantly yourself. + /// + [DataField("exitDelay")] + public float ExitDelay = 3; + + /// + /// How long it takes to pull out the battery. + /// + [DataField("batteryRemovalDelay")] + public float BatteryRemovalDelay = 2; + + /// + /// Whether or not the mech is airtight. + /// + /// + /// This needs to be redone + /// when mech internals are added + /// + [DataField("airtight"), ViewVariables(VVAccess.ReadWrite)] + public bool Airtight; + + /// + /// The equipment that the mech initially has when it spawns. + /// Good for things like nukie mechs that start with guns. + /// + [DataField("startingEquipment", customTypeSerializer: typeof(PrototypeIdListSerializer))] + public List StartingEquipment = new(); + + /// + /// The battery the mech initially has when it spawns + /// Good for admemes and nukie mechs. + /// + [DataField("startingBattery", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string? StartingBattery; + #region Action Prototypes [DataField("mechCycleAction", customTypeSerializer: typeof(PrototypeIdSerializer))] public string MechCycleAction = "MechCycleEquipment"; @@ -118,7 +165,7 @@ public abstract class SharedMechComponent : Component } /// -/// Contains network state for . +/// Contains network state for . /// [Serializable, NetSerializable] public sealed class MechComponentState : ComponentState diff --git a/Content.Shared/Mech/Components/MechPilotComponent.cs b/Content.Shared/Mech/Components/MechPilotComponent.cs index 6095b53f5f..11e443820e 100644 --- a/Content.Shared/Mech/Components/MechPilotComponent.cs +++ b/Content.Shared/Mech/Components/MechPilotComponent.cs @@ -4,7 +4,7 @@ using Robust.Shared.Serialization; namespace Content.Shared.Mech.Components; /// -/// Attached to entities piloting a +/// Attached to entities piloting a /// /// /// Get in the robot, Shinji diff --git a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs index 6f506b77c5..afed3e4fd8 100644 --- a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs +++ b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs @@ -26,7 +26,7 @@ using Robust.Shared.Timing; namespace Content.Shared.Mech.EntitySystems; /// -/// Handles all of the interactions, UI handling, and items shennanigans for +/// Handles all of the interactions, UI handling, and items shennanigans for /// public abstract class SharedMechSystem : EntitySystem { @@ -44,17 +44,17 @@ public abstract class SharedMechSystem : EntitySystem /// public override void Initialize() { - SubscribeLocalEvent(OnGetState); - SubscribeLocalEvent(OnHandleState); + SubscribeLocalEvent(OnGetState); + SubscribeLocalEvent(OnHandleState); SubscribeLocalEvent(OnPilotGetState); SubscribeLocalEvent(OnPilotHandleState); - SubscribeLocalEvent(OnToggleEquipmentAction); - SubscribeLocalEvent(OnEjectPilotEvent); - SubscribeLocalEvent(RelayInteractionEvent); - SubscribeLocalEvent(OnStartup); - SubscribeLocalEvent(OnDestruction); - SubscribeLocalEvent(OnGetAdditionalAccess); + SubscribeLocalEvent(OnToggleEquipmentAction); + SubscribeLocalEvent(OnEjectPilotEvent); + SubscribeLocalEvent(RelayInteractionEvent); + SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnDestruction); + SubscribeLocalEvent(OnGetAdditionalAccess); SubscribeLocalEvent(OnGetMeleeWeapon); SubscribeLocalEvent(OnCanAttackFromContainer); @@ -63,7 +63,7 @@ public abstract class SharedMechSystem : EntitySystem #region State Handling - private void OnGetState(EntityUid uid, SharedMechComponent component, ref ComponentGetState args) + private void OnGetState(EntityUid uid, MechComponent component, ref ComponentGetState args) { args.State = new MechComponentState { @@ -76,7 +76,7 @@ public abstract class SharedMechSystem : EntitySystem }; } - private void OnHandleState(EntityUid uid, SharedMechComponent component, ref ComponentHandleState args) + private void OnHandleState(EntityUid uid, MechComponent component, ref ComponentHandleState args) { if (args.Current is not MechComponentState state) return; @@ -107,7 +107,7 @@ public abstract class SharedMechSystem : EntitySystem #endregion - private void OnToggleEquipmentAction(EntityUid uid, SharedMechComponent component, MechToggleEquipmentEvent args) + private void OnToggleEquipmentAction(EntityUid uid, MechComponent component, MechToggleEquipmentEvent args) { if (args.Handled) return; @@ -115,7 +115,7 @@ public abstract class SharedMechSystem : EntitySystem CycleEquipment(uid); } - private void OnEjectPilotEvent(EntityUid uid, SharedMechComponent component, MechEjectPilotEvent args) + private void OnEjectPilotEvent(EntityUid uid, MechComponent component, MechEjectPilotEvent args) { if (args.Handled) return; @@ -123,7 +123,7 @@ public abstract class SharedMechSystem : EntitySystem TryEject(uid, component); } - private void RelayInteractionEvent(EntityUid uid, SharedMechComponent component, InteractNoHandEvent args) + private void RelayInteractionEvent(EntityUid uid, MechComponent component, InteractNoHandEvent args) { var pilot = component.PilotSlot.ContainedEntity; if (pilot == null) @@ -139,7 +139,7 @@ public abstract class SharedMechSystem : EntitySystem } } - private void OnStartup(EntityUid uid, SharedMechComponent component, ComponentStartup args) + private void OnStartup(EntityUid uid, MechComponent component, ComponentStartup args) { component.PilotSlot = _container.EnsureContainer(uid, component.PilotSlotId); component.EquipmentContainer = _container.EnsureContainer(uid, component.EquipmentContainerId); @@ -147,12 +147,12 @@ public abstract class SharedMechSystem : EntitySystem UpdateAppearance(uid, component); } - private void OnDestruction(EntityUid uid, SharedMechComponent component, DestructionEventArgs args) + private void OnDestruction(EntityUid uid, MechComponent component, DestructionEventArgs args) { BreakMech(uid, component); } - private void OnGetAdditionalAccess(EntityUid uid, SharedMechComponent component, ref GetAdditionalAccessEvent args) + private void OnGetAdditionalAccess(EntityUid uid, MechComponent component, ref GetAdditionalAccessEvent args) { var pilot = component.PilotSlot.ContainedEntity; if (pilot == null) @@ -163,7 +163,7 @@ public abstract class SharedMechSystem : EntitySystem args.Entities.UnionWith(items); } - private void SetupUser(EntityUid mech, EntityUid pilot, SharedMechComponent? component = null) + private void SetupUser(EntityUid mech, EntityUid pilot, MechComponent? component = null) { if (!Resolve(mech, ref component)) return; @@ -202,7 +202,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// - public virtual void BreakMech(EntityUid uid, SharedMechComponent? component = null) + public virtual void BreakMech(EntityUid uid, MechComponent? component = null) { if (!Resolve(uid, ref component)) return; @@ -223,7 +223,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// - public void CycleEquipment(EntityUid uid, SharedMechComponent? component = null) + public void CycleEquipment(EntityUid uid, MechComponent? component = null) { if (!Resolve(uid, ref component)) return; @@ -259,7 +259,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// - public void InsertEquipment(EntityUid uid, EntityUid toInsert, SharedMechComponent? component = null, + public void InsertEquipment(EntityUid uid, EntityUid toInsert, MechComponent? component = null, MechEquipmentComponent? equipmentComponent = null) { if (!Resolve(uid, ref component)) @@ -289,7 +289,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// Whether or not the removal can be cancelled - public void RemoveEquipment(EntityUid uid, EntityUid toRemove, SharedMechComponent? component = null, + public void RemoveEquipment(EntityUid uid, EntityUid toRemove, MechComponent? component = null, MechEquipmentComponent? equipmentComponent = null, bool forced = false) { if (!Resolve(uid, ref component)) @@ -324,7 +324,7 @@ public abstract class SharedMechSystem : EntitySystem /// The change in energy /// /// If the energy was successfully changed. - public virtual bool TryChangeEnergy(EntityUid uid, FixedPoint2 delta, SharedMechComponent? component = null) + public virtual bool TryChangeEnergy(EntityUid uid, FixedPoint2 delta, MechComponent? component = null) { if (!Resolve(uid, ref component)) return false; @@ -344,7 +344,7 @@ public abstract class SharedMechSystem : EntitySystem /// The mech itself /// The value the integrity will be set at /// - public void SetIntegrity(EntityUid uid, FixedPoint2 value, SharedMechComponent? component = null) + public void SetIntegrity(EntityUid uid, FixedPoint2 value, MechComponent? component = null) { if (!Resolve(uid, ref component)) return; @@ -370,7 +370,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// Whether or not the pilot is present - public bool IsEmpty(SharedMechComponent component) + public bool IsEmpty(MechComponent component) { return component.PilotSlot.ContainedEntity == null; } @@ -382,7 +382,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// - public bool CanInsert(EntityUid uid, EntityUid toInsert, SharedMechComponent? component = null) + public bool CanInsert(EntityUid uid, EntityUid toInsert, MechComponent? component = null) { if (!Resolve(uid, ref component)) return false; @@ -396,7 +396,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// This is defined here so that UI updates can be accessed from shared. /// - public virtual void UpdateUserInterface(EntityUid uid, SharedMechComponent? component = null) + public virtual void UpdateUserInterface(EntityUid uid, MechComponent? component = null) { } @@ -407,7 +407,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// Whether or not the entity was inserted - public virtual bool TryInsert(EntityUid uid, EntityUid? toInsert, SharedMechComponent? component = null) + public virtual bool TryInsert(EntityUid uid, EntityUid? toInsert, MechComponent? component = null) { if (!Resolve(uid, ref component)) return false; @@ -430,7 +430,7 @@ public abstract class SharedMechSystem : EntitySystem /// /// /// Whether or not the pilot was ejected. - public virtual bool TryEject(EntityUid uid, SharedMechComponent? component = null) + public virtual bool TryEject(EntityUid uid, MechComponent? component = null) { if (!Resolve(uid, ref component)) return false; @@ -451,7 +451,7 @@ public abstract class SharedMechSystem : EntitySystem if (args.Handled) return; - if (!TryComp(component.Mech, out var mech)) + if (!TryComp(component.Mech, out var mech)) return; var weapon = mech.CurrentSelectedEquipment ?? component.Mech; @@ -470,7 +470,7 @@ public abstract class SharedMechSystem : EntitySystem args.Cancel(); } - private void UpdateAppearance(EntityUid uid, SharedMechComponent? component = null, + private void UpdateAppearance(EntityUid uid, MechComponent? component = null, AppearanceComponent? appearance = null) { if (!Resolve(uid, ref component, ref appearance, false)) diff --git a/Content.Shared/Mech/Equipment/Components/MechEquipmentComponent.cs b/Content.Shared/Mech/Equipment/Components/MechEquipmentComponent.cs index c35e8bd31c..42c3543d56 100644 --- a/Content.Shared/Mech/Equipment/Components/MechEquipmentComponent.cs +++ b/Content.Shared/Mech/Equipment/Components/MechEquipmentComponent.cs @@ -1,12 +1,11 @@ -using System.Threading; -using Content.Shared.DoAfter; +using Content.Shared.DoAfter; using Content.Shared.Mech.Components; using Robust.Shared.Serialization; namespace Content.Shared.Mech.Equipment.Components; /// -/// A piece of equipment that can be installed into +/// A piece of equipment that can be installed into /// [RegisterComponent] public sealed class MechEquipmentComponent : Component diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 370216e66d..22ab9594ad 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -16,6 +16,7 @@ baseState: ripley openState: ripley-open brokenState: ripley-broken + - type: MechAir - type: DoAfter - type: Repairable fuelCost: 25