Fix being able to use invalid verbs as a ghost (#1157)
* Add CanInteract check to 18 verbs * Add more caninteract checks to verbs without it Storage toggle open, ammo box dump, bolt open and close, revolver spin and magazine open and close
This commit is contained in:
@@ -219,23 +219,23 @@ namespace Content.Server.GameObjects.Components.Chemistry
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, SolutionComponent component, VerbData data)
|
protected override void GetData(IEntity user, SolutionComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
if (user.TryGetComponent<HandsComponent>(out var hands))
|
if (!ActionBlockerSystem.CanInteract(user) ||
|
||||||
|
!user.TryGetComponent<HandsComponent>(out var hands) ||
|
||||||
|
hands.GetActiveHand == null ||
|
||||||
|
!hands.GetActiveHand.Owner.TryGetComponent<SolutionComponent>(out var solution))
|
||||||
{
|
{
|
||||||
if (hands.GetActiveHand != null)
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
{
|
return;
|
||||||
if (hands.GetActiveHand.Owner.TryGetComponent<SolutionComponent>(out var solution))
|
}
|
||||||
{
|
|
||||||
if ((solution.Capabilities & SolutionCaps.PourOut) != 0 &&
|
|
||||||
(component.Capabilities & SolutionCaps.PourIn) != 0)
|
|
||||||
{
|
|
||||||
var heldEntityName = hands.GetActiveHand.Owner?.Prototype?.Name ?? "<Item>";
|
|
||||||
var myName = component.Owner.Prototype?.Name ?? "<Item>";
|
|
||||||
|
|
||||||
data.Text= $"Transfer liquid from [{heldEntityName}] to [{myName}].";
|
if ((solution.Capabilities & SolutionCaps.PourOut) != 0 &&
|
||||||
return;
|
(component.Capabilities & SolutionCaps.PourIn) != 0)
|
||||||
}
|
{
|
||||||
}
|
var heldEntityName = hands.GetActiveHand.Owner?.Prototype?.Name ?? "<Item>";
|
||||||
}
|
var myName = component.Owner.Prototype?.Name ?? "<Item>";
|
||||||
|
|
||||||
|
data.Text= $"Transfer liquid from [{heldEntityName}] to [{myName}].";
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
data.Visibility = VerbVisibility.Invisible;
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
@@ -318,23 +318,23 @@ namespace Content.Server.GameObjects.Components.Chemistry
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, SolutionComponent component, VerbData data)
|
protected override void GetData(IEntity user, SolutionComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
if (user.TryGetComponent<HandsComponent>(out var hands))
|
if (!ActionBlockerSystem.CanInteract(user) ||
|
||||||
|
!user.TryGetComponent<HandsComponent>(out var hands) ||
|
||||||
|
hands.GetActiveHand == null ||
|
||||||
|
!hands.GetActiveHand.Owner.TryGetComponent<SolutionComponent>(out var solution))
|
||||||
{
|
{
|
||||||
if (hands.GetActiveHand != null)
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
{
|
return;
|
||||||
if (hands.GetActiveHand.Owner.TryGetComponent<SolutionComponent>(out var solution))
|
}
|
||||||
{
|
|
||||||
if ((solution.Capabilities & SolutionCaps.PourIn) != 0 &&
|
|
||||||
(component.Capabilities & SolutionCaps.PourOut) != 0)
|
|
||||||
{
|
|
||||||
var heldEntityName = hands.GetActiveHand.Owner?.Prototype?.Name ?? "<Item>";
|
|
||||||
var myName = component.Owner.Prototype?.Name ?? "<Item>";
|
|
||||||
|
|
||||||
data.Text = $"Transfer liquid from [{myName}] to [{heldEntityName}].";
|
if ((solution.Capabilities & SolutionCaps.PourIn) != 0 &&
|
||||||
return;
|
(component.Capabilities & SolutionCaps.PourOut) != 0)
|
||||||
}
|
{
|
||||||
}
|
var heldEntityName = hands.GetActiveHand.Owner?.Prototype?.Name ?? "<Item>";
|
||||||
}
|
var myName = component.Owner.Prototype?.Name ?? "<Item>";
|
||||||
|
|
||||||
|
data.Text = $"Transfer liquid from [{myName}] to [{heldEntityName}].";
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
data.Visibility = VerbVisibility.Invisible;
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using Content.Server.GameObjects.Components.Chemistry;
|
using Content.Server.GameObjects.Components.Chemistry;
|
||||||
|
using Content.Server.GameObjects.EntitySystems;
|
||||||
using Content.Shared.Chemistry;
|
using Content.Shared.Chemistry;
|
||||||
using Content.Shared.GameObjects;
|
using Content.Shared.GameObjects;
|
||||||
using Robust.Shared.GameObjects;
|
using Robust.Shared.GameObjects;
|
||||||
@@ -21,7 +22,8 @@ namespace Content.Server.GameObjects.Components.Fluids
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, CanSpillComponent component, VerbData data)
|
protected override void GetData(IEntity user, CanSpillComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
if (!component.Owner.TryGetComponent(out SolutionComponent solutionComponent))
|
if (!ActionBlockerSystem.CanInteract(user) ||
|
||||||
|
!component.Owner.TryGetComponent(out SolutionComponent solutionComponent))
|
||||||
{
|
{
|
||||||
data.Visibility = VerbVisibility.Invisible;
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -240,6 +240,12 @@ namespace Content.Server.GameObjects.Components.Interactable
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, HandheldLightComponent component, VerbData data)
|
protected override void GetData(IEntity user, HandheldLightComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (component.Cell == null)
|
if (component.Cell == null)
|
||||||
{
|
{
|
||||||
data.Text = "Eject cell (cell missing)";
|
data.Text = "Eject cell (cell missing)";
|
||||||
|
|||||||
@@ -338,8 +338,13 @@ namespace Content.Server.GameObjects.Components
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, EntityStorageComponent component, VerbData data)
|
protected override void GetData(IEntity user, EntityStorageComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
component.OpenVerbGetData(user, component, data);
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
component.OpenVerbGetData(user, component, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@@ -351,6 +356,12 @@ namespace Content.Server.GameObjects.Components
|
|||||||
|
|
||||||
protected virtual void OpenVerbGetData(IEntity user, EntityStorageComponent component, VerbData data)
|
protected virtual void OpenVerbGetData(IEntity user, EntityStorageComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (IsWeldedShut)
|
if (IsWeldedShut)
|
||||||
{
|
{
|
||||||
data.Visibility = VerbVisibility.Disabled;
|
data.Visibility = VerbVisibility.Disabled;
|
||||||
|
|||||||
@@ -116,7 +116,9 @@ namespace Content.Server.GameObjects
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, ItemComponent component, VerbData data)
|
protected override void GetData(IEntity user, ItemComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
if (ContainerHelpers.IsInContainer(component.Owner) || !component.CanPickup(user))
|
if (!ActionBlockerSystem.CanInteract(user) ||
|
||||||
|
ContainerHelpers.IsInContainer(component.Owner) ||
|
||||||
|
!component.CanPickup(user))
|
||||||
{
|
{
|
||||||
data.Visibility = VerbVisibility.Invisible;
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, SecureEntityStorageComponent component, VerbData data)
|
protected override void GetData(IEntity user, SecureEntityStorageComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
if (component.Open)
|
if (!ActionBlockerSystem.CanInteract(user) || component.Open)
|
||||||
{
|
{
|
||||||
data.Visibility = VerbVisibility.Invisible;
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -133,6 +133,12 @@ namespace Content.Server.GameObjects.Components.Medical
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, MedicalScannerComponent component, VerbData data)
|
protected override void GetData(IEntity user, MedicalScannerComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = "Enter";
|
data.Text = "Enter";
|
||||||
data.Visibility = component.IsOccupied ? VerbVisibility.Invisible : VerbVisibility.Visible;
|
data.Visibility = component.IsOccupied ? VerbVisibility.Invisible : VerbVisibility.Visible;
|
||||||
}
|
}
|
||||||
@@ -148,6 +154,12 @@ namespace Content.Server.GameObjects.Components.Medical
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, MedicalScannerComponent component, VerbData data)
|
protected override void GetData(IEntity user, MedicalScannerComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = "Eject";
|
data.Text = "Eject";
|
||||||
data.Visibility = component.IsOccupied ? VerbVisibility.Visible : VerbVisibility.Invisible;
|
data.Visibility = component.IsOccupied ? VerbVisibility.Visible : VerbVisibility.Invisible;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,6 +250,12 @@ namespace Content.Server.GameObjects.Components.PDA
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, PDAComponent component, VerbData data)
|
protected override void GetData(IEntity user, PDAComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Eject ID");
|
data.Text = Loc.GetString("Eject ID");
|
||||||
data.Visibility = component.IdSlotEmpty ? VerbVisibility.Invisible : VerbVisibility.Visible;
|
data.Visibility = component.IdSlotEmpty ? VerbVisibility.Invisible : VerbVisibility.Visible;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,12 @@ namespace Content.Server.GameObjects.Components.Power.Chargers
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, PowerCellChargerComponent component, VerbData data)
|
protected override void GetData(IEntity user, PowerCellChargerComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!user.TryGetComponent(out HandsComponent handsComponent))
|
if (!user.TryGetComponent(out HandsComponent handsComponent))
|
||||||
{
|
{
|
||||||
data.Visibility = VerbVisibility.Invisible;
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
@@ -99,6 +105,12 @@ namespace Content.Server.GameObjects.Components.Power.Chargers
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, PowerCellChargerComponent component, VerbData data)
|
protected override void GetData(IEntity user, PowerCellChargerComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (component._container.ContainedEntity == null)
|
if (component._container.ContainedEntity == null)
|
||||||
{
|
{
|
||||||
data.Text = "Eject";
|
data.Text = "Eject";
|
||||||
|
|||||||
@@ -46,6 +46,12 @@ namespace Content.Server.GameObjects.Components.Power.Chargers
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, WeaponCapacitorChargerComponent component, VerbData data)
|
protected override void GetData(IEntity user, WeaponCapacitorChargerComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!user.TryGetComponent(out HandsComponent handsComponent))
|
if (!user.TryGetComponent(out HandsComponent handsComponent))
|
||||||
{
|
{
|
||||||
data.Visibility = VerbVisibility.Invisible;
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
@@ -89,6 +95,12 @@ namespace Content.Server.GameObjects.Components.Power.Chargers
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, WeaponCapacitorChargerComponent component, VerbData data)
|
protected override void GetData(IEntity user, WeaponCapacitorChargerComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (component._container.ContainedEntity == null)
|
if (component._container.ContainedEntity == null)
|
||||||
{
|
{
|
||||||
data.Visibility = VerbVisibility.Disabled;
|
data.Visibility = VerbVisibility.Disabled;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Content.Server.GameObjects.EntitySystems;
|
||||||
using Content.Server.Interfaces;
|
using Content.Server.Interfaces;
|
||||||
using Content.Shared.GameObjects;
|
using Content.Shared.GameObjects;
|
||||||
using Robust.Server.GameObjects;
|
using Robust.Server.GameObjects;
|
||||||
@@ -37,6 +38,12 @@ namespace Content.Server.GameObjects.Components
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, RotatableComponent component, VerbData data)
|
protected override void GetData(IEntity user, RotatableComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.CategoryData = VerbCategories.Rotate;
|
data.CategoryData = VerbCategories.Rotate;
|
||||||
data.Text = "Rotate clockwise";
|
data.Text = "Rotate clockwise";
|
||||||
data.IconTexture = "/Textures/UserInterface/VerbIcons/rotate_cw.svg.96dpi.png";
|
data.IconTexture = "/Textures/UserInterface/VerbIcons/rotate_cw.svg.96dpi.png";
|
||||||
@@ -53,6 +60,12 @@ namespace Content.Server.GameObjects.Components
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, RotatableComponent component, VerbData data)
|
protected override void GetData(IEntity user, RotatableComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.CategoryData = VerbCategories.Rotate;
|
data.CategoryData = VerbCategories.Rotate;
|
||||||
data.Text = "Rotate counter-clockwise";
|
data.Text = "Rotate counter-clockwise";
|
||||||
data.IconTexture = "/Textures/UserInterface/VerbIcons/rotate_ccw.svg.96dpi.png";
|
data.IconTexture = "/Textures/UserInterface/VerbIcons/rotate_ccw.svg.96dpi.png";
|
||||||
|
|||||||
@@ -252,6 +252,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, StunbatonComponent component, VerbData data)
|
protected override void GetData(IEntity user, StunbatonComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (component.Cell == null)
|
if (component.Cell == null)
|
||||||
{
|
{
|
||||||
data.Text = "Eject cell (cell missing)";
|
data.Text = "Eject cell (cell missing)";
|
||||||
|
|||||||
@@ -207,6 +207,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, AmmoBoxComponent component, VerbData data)
|
protected override void GetData(IEntity user, AmmoBoxComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Dump 10");
|
data.Text = Loc.GetString("Dump 10");
|
||||||
data.Visibility = component.AmmoLeft > 0 ? VerbVisibility.Visible : VerbVisibility.Disabled;
|
data.Visibility = component.AmmoLeft > 0 ? VerbVisibility.Visible : VerbVisibility.Disabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -294,6 +294,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, BoltActionBarrelComponent component, VerbData data)
|
protected override void GetData(IEntity user, BoltActionBarrelComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Open bolt");
|
data.Text = Loc.GetString("Open bolt");
|
||||||
data.Visibility = component.BoltOpen ? VerbVisibility.Disabled : VerbVisibility.Visible;
|
data.Visibility = component.BoltOpen ? VerbVisibility.Disabled : VerbVisibility.Visible;
|
||||||
}
|
}
|
||||||
@@ -309,6 +315,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, BoltActionBarrelComponent component, VerbData data)
|
protected override void GetData(IEntity user, BoltActionBarrelComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Close bolt");
|
data.Text = Loc.GetString("Close bolt");
|
||||||
data.Visibility = component.BoltOpen ? VerbVisibility.Visible : VerbVisibility.Disabled;
|
data.Visibility = component.BoltOpen ? VerbVisibility.Visible : VerbVisibility.Disabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -221,6 +221,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, RevolverBarrelComponent component, VerbData data)
|
protected override void GetData(IEntity user, RevolverBarrelComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Spin");
|
data.Text = Loc.GetString("Spin");
|
||||||
if (component.Capacity <= 1)
|
if (component.Capacity <= 1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -391,6 +391,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, ServerMagazineBarrelComponent component, VerbData data)
|
protected override void GetData(IEntity user, ServerMagazineBarrelComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Eject magazine");
|
data.Text = Loc.GetString("Eject magazine");
|
||||||
if (component.MagNeedsOpenBolt)
|
if (component.MagNeedsOpenBolt)
|
||||||
{
|
{
|
||||||
@@ -414,6 +420,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, ServerMagazineBarrelComponent component, VerbData data)
|
protected override void GetData(IEntity user, ServerMagazineBarrelComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Open bolt");
|
data.Text = Loc.GetString("Open bolt");
|
||||||
data.Visibility = component.BoltOpen ? VerbVisibility.Disabled : VerbVisibility.Visible;
|
data.Visibility = component.BoltOpen ? VerbVisibility.Disabled : VerbVisibility.Visible;
|
||||||
}
|
}
|
||||||
@@ -429,6 +441,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
|
|||||||
{
|
{
|
||||||
protected override void GetData(IEntity user, ServerMagazineBarrelComponent component, VerbData data)
|
protected override void GetData(IEntity user, ServerMagazineBarrelComponent component, VerbData data)
|
||||||
{
|
{
|
||||||
|
if (!ActionBlockerSystem.CanInteract(user))
|
||||||
|
{
|
||||||
|
data.Visibility = VerbVisibility.Invisible;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data.Text = Loc.GetString("Close bolt");
|
data.Text = Loc.GetString("Close bolt");
|
||||||
data.Visibility = component.BoltOpen ? VerbVisibility.Visible : VerbVisibility.Disabled;
|
data.Visibility = component.BoltOpen ? VerbVisibility.Visible : VerbVisibility.Disabled;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user