Async Interface IAfterInteract() (#2735)

* Async Interface

* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Changed the glassbeaker

* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Interaction system fix

* Removed I from the interface

* Changed all implementations of the interface I could find

* all public void implementation fixed

* All built, no errors should remain

* Update Resources/Prototypes/Entities/Objects/Specific/chemistry.yml

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/Portal/TeleporterComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Commit based off Sloth's commentary

* Removed the Rag file from the PR

* Reverted sloth's commentary changes on the publcity of the function

* Injector component properly implemented interface

* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/GameObjects/Components/Fluids/SprayComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

Co-authored-by: BlueberryShortcake <rubetskoy234@mail.ru>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
DmitriyRubetskoy
2020-12-17 10:45:04 +03:00
committed by GitHub
parent d870a13445
commit 9c26e0c5ba
23 changed files with 46 additions and 25 deletions

View File

@@ -1,4 +1,5 @@
using System;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.GUI;
using Content.Server.GameObjects.Components.Mobs;
using Content.Server.GameObjects.EntitySystems.DoAfter;
@@ -146,7 +147,7 @@ namespace Content.Server.GameObjects.Components.ActionBlocking
return new HandcuffedComponentState(Broken ? BrokenState : string.Empty);
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null || !ActionBlockerSystem.CanUse(eventArgs.User) || !eventArgs.Target.TryGetComponent<CuffableComponent>(out var cuffed))
{

View File

@@ -20,6 +20,7 @@ using Robust.Shared.Localization;
using Robust.Shared.Map;
using Robust.Shared.ViewVariables;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Content.Server.GameObjects.Components.Atmos
{
@@ -252,7 +253,7 @@ namespace Content.Server.GameObjects.Components.Atmos
}
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (!eventArgs.CanReach)
{

View File

@@ -1,5 +1,6 @@
#nullable enable
using System.Collections.Generic;
using System.Threading.Tasks;
using Content.Server.Utility;
using Content.Shared.GameObjects.Components.Body;
using Content.Shared.GameObjects.Components.Body.Mechanism;
@@ -35,7 +36,7 @@ namespace Content.Server.GameObjects.Components.Body
}
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null)
{

View File

@@ -1,6 +1,7 @@
#nullable enable
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Content.Server.Commands;
using Content.Server.Utility;
using Content.Shared.GameObjects.Components.Body;
@@ -96,7 +97,7 @@ namespace Content.Server.GameObjects.Components.Body.Part
}
}
public void AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
// TODO BODY
if (eventArgs.Target == null)

View File

@@ -1,6 +1,7 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Content.Server.Utility;
using Content.Shared.GameObjects;
using Content.Shared.GameObjects.Components.Body;
@@ -48,7 +49,7 @@ namespace Content.Server.GameObjects.Components.Body
[ViewVariables] private BoundUserInterface? UserInterface => Owner.GetUIOrNull(SurgeryUIKey.Key);
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null)
{

View File

@@ -1,5 +1,6 @@
#nullable enable
using System;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Body.Circulatory;
using Content.Shared.Chemistry;
using Content.Shared.GameObjects.Components.Chemistry;
@@ -106,7 +107,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
/// Called when clicking on entities while holding in active hand
/// </summary>
/// <param name="eventArgs"></param>
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return;

View File

@@ -1,4 +1,5 @@
using System.Linq;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Body.Behavior;
using Content.Server.GameObjects.Components.Nutrition;
using Content.Server.GameObjects.Components.Utensil;
@@ -59,7 +60,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
}
// Feeding someone else
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null)
{

View File

@@ -18,6 +18,7 @@ using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables;
using System.Linq;
using System.Threading.Tasks;
namespace Content.Server.GameObjects.Components
{
@@ -108,7 +109,7 @@ namespace Content.Server.GameObjects.Components
return false;
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: false, popup: true,
collisionMask: Shared.Physics.CollisionGroup.MobImpassable)) return;

View File

@@ -9,6 +9,7 @@ using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Systems;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
using System.Threading.Tasks;
namespace Content.Server.GameObjects.Components.Fluids
{
@@ -61,7 +62,7 @@ namespace Content.Server.GameObjects.Components.Fluids
Owner.EnsureComponentWarn(out SolutionContainerComponent _);
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (!Owner.TryGetComponent(out SolutionContainerComponent? contents)) return;
if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return;

View File

@@ -1,4 +1,5 @@
using System;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Chemistry;
using Content.Shared.Audio;
using Content.Shared.Chemistry;
@@ -98,7 +99,7 @@ namespace Content.Server.GameObjects.Components.Fluids
serializer.DataField(ref _safety, "safety", true);
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (!ActionBlockerSystem.CanInteract(eventArgs.User))
return;

View File

@@ -8,6 +8,7 @@ using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC;
using Robust.Shared.Map;
using Robust.Shared.Serialization;
using System.Threading.Tasks;
namespace Content.Server.GameObjects.Components.Interactable
{
@@ -20,7 +21,7 @@ namespace Content.Server.GameObjects.Components.Interactable
public override string Name => "TilePrying";
private bool _toolComponentNeeded = true;
public void AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
TryPryTile(eventArgs.User, eventArgs.ClickLocation);
}

View File

@@ -12,6 +12,7 @@ using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.Shared.Serialization;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Content.Server.GameObjects.Components.Items
{
@@ -55,7 +56,7 @@ namespace Content.Server.GameObjects.Components.Items
EntitySystem.Get<AudioSystem>().PlayAtCoords("/Audio/Items/genhit.ogg", location, AudioHelpers.WithVariation(0.125f));
}
public void AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return;
if (!Owner.TryGetComponent(out StackComponent stack)) return;

View File

@@ -1,4 +1,5 @@
using System;
using System.Threading.Tasks;
using Content.Server.Interfaces.GameObjects.Components.Items;
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces;
@@ -31,7 +32,7 @@ namespace Content.Server.GameObjects.Components.Items.RCD
message.AddMarkup(Loc.GetString("It holds {0} charges.", refillAmmo));
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null || !eventArgs.Target.TryGetComponent(out RCDComponent rcdComponent) || !eventArgs.User.TryGetComponent(out IHandsComponent hands))
{

View File

@@ -1,5 +1,6 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using Content.Server.GameObjects.EntitySystems.DoAfter;
using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Interfaces;
@@ -93,7 +94,7 @@ namespace Content.Server.GameObjects.Components.Items.RCD
message.AddMarkup(Loc.GetString("It's currently on {0} mode, and holds {1} charges.",_mode.ToString(), _ammo));
}
public async void AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
//No changing mode mid-RCD
var startingMode = _mode;

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Stack;
using Content.Shared.Damage;
using Content.Shared.GameObjects.Components.Damage;
@@ -24,7 +25,7 @@ namespace Content.Server.GameObjects.Components.Medical
serializer.DataField(this, h => h.Heal, "heal", new Dictionary<DamageType, int>());
}
public void AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null)
{

View File

@@ -1,4 +1,5 @@
using System.Linq;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Body.Behavior;
using Content.Server.GameObjects.Components.Chemistry;
using Content.Server.GameObjects.Components.Fluids;
@@ -113,7 +114,7 @@ namespace Content.Server.GameObjects.Components.Nutrition
}
//Force feeding a drink to someone.
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
TryUseDrink(eventArgs.Target, forced: true);
}

View File

@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Body.Behavior;
using Content.Server.GameObjects.Components.Chemistry;
using Content.Server.GameObjects.Components.GUI;
@@ -103,7 +104,7 @@ namespace Content.Server.GameObjects.Components.Nutrition
}
// Feeding someone else
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null)
{

View File

@@ -1,6 +1,7 @@
#nullable enable
using System;
using System.Linq;
using System.Threading.Tasks;
using Content.Shared.GameObjects.Components.Portal;
using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Server.GameObjects;
@@ -22,7 +23,7 @@ using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Portal
{
[RegisterComponent]
public class TeleporterComponent : Component, IAfterInteract
public class TeleporterComponent : Component, IAfterInteract
{
[Dependency] private readonly IServerEntityManager _serverEntityManager = default!;
[Dependency] private readonly IRobustRandom _spreadRandom = default!;
@@ -77,7 +78,7 @@ namespace Content.Server.GameObjects.Components.Portal
_state = newState;
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (_teleporterType == TeleporterType.Directed)
{

View File

@@ -8,6 +8,7 @@ using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC;
using Robust.Shared.Serialization;
using Robust.Shared.ViewVariables;
using System.Threading.Tasks;
namespace Content.Server.GameObjects.Components.Power
{
@@ -33,7 +34,7 @@ namespace Content.Server.GameObjects.Components.Power
}
/// <inheritdoc />
public void AfterInteract(AfterInteractEventArgs eventArgs)
public async Task AfterInteract(AfterInteractEventArgs eventArgs)
{
if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return;
if(!_mapManager.TryGetGrid(eventArgs.ClickLocation.GetGridId(Owner.EntityManager), out var grid))

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.Nutrition;
using Content.Shared.GameObjects.Components.Utensil;
using Content.Shared.Interfaces.GameObjects.Components;
@@ -104,7 +105,7 @@ namespace Content.Server.GameObjects.Components.Utensil
serializer.DataField(ref _breakSound, "breakSound", "/Audio/Items/snap.ogg");
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
TryUseUtensil(eventArgs.User, eventArgs.Target);
}

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Threading.Tasks;
using Content.Server.GameObjects.Components.GUI;
using Content.Server.GameObjects.Components.Items.Storage;
@@ -146,7 +146,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition
return entity;
}
void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
async Task IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs)
{
if (eventArgs.Target == null)
{