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