Fancy Verb Menu & Verb API Refactor (#928)

This commit is contained in:
Pieter-Jan Briers
2020-05-23 03:09:44 +02:00
committed by GitHub
parent 4527fc9e84
commit cad59d2cb4
33 changed files with 1099 additions and 399 deletions

View File

@@ -48,28 +48,27 @@ namespace Content.Server.GameObjects.Components.Power.Chargers
[Verb]
private sealed class InsertVerb : Verb<WeaponCapacitorChargerComponent>
{
protected override string GetText(IEntity user, WeaponCapacitorChargerComponent component)
{
if (!user.TryGetComponent(out HandsComponent handsComponent) || handsComponent.GetActiveHand == null)
{
return "Insert";
}
return $"Insert {handsComponent.GetActiveHand.Owner.Name}";
}
protected override VerbVisibility GetVisibility(IEntity user, WeaponCapacitorChargerComponent component)
protected override void GetData(IEntity user, WeaponCapacitorChargerComponent component, VerbData data)
{
if (!user.TryGetComponent(out HandsComponent handsComponent))
{
return VerbVisibility.Invisible;
data.Visibility = VerbVisibility.Invisible;
return;
}
if (component._container.ContainedEntity != null || handsComponent.GetActiveHand == null)
if (handsComponent.GetActiveHand == null)
{
return VerbVisibility.Disabled;
data.Visibility = VerbVisibility.Disabled;
data.Text = "Insert";
return;
}
return VerbVisibility.Visible;
if (component._container.ContainedEntity != null)
{
data.Visibility = VerbVisibility.Disabled;
}
data.Text = $"Insert {handsComponent.GetActiveHand.Owner.Name}";
}
protected override void Activate(IEntity user, WeaponCapacitorChargerComponent component)
@@ -92,22 +91,16 @@ namespace Content.Server.GameObjects.Components.Power.Chargers
[Verb]
private sealed class EjectVerb : Verb<WeaponCapacitorChargerComponent>
{
protected override string GetText(IEntity user, WeaponCapacitorChargerComponent component)
protected override void GetData(IEntity user, WeaponCapacitorChargerComponent component, VerbData data)
{
if (component._container.ContainedEntity == null)
{
return "Eject";
data.Visibility = VerbVisibility.Disabled;
data.Text = "Eject";
return;
}
return $"Eject {component._container.ContainedEntity.Name}";
}
protected override VerbVisibility GetVisibility(IEntity user, WeaponCapacitorChargerComponent component)
{
if (component._container.ContainedEntity == null)
{
return VerbVisibility.Disabled;
}
return VerbVisibility.Visible;
data.Text = $"Eject {component._container.ContainedEntity.Name}";
}
protected override void Activate(IEntity user, WeaponCapacitorChargerComponent component)