UseEntity with an EventArg object for a parameter
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using Content.Server.GameObjects.Components.Stack;
|
using Content.Server.GameObjects.Components.Stack;
|
||||||
using SS14.Shared.GameObjects;
|
using SS14.Shared.GameObjects;
|
||||||
using Content.Server.GameObjects.EntitySystems;
|
using Content.Server.GameObjects.EntitySystems;
|
||||||
@@ -54,9 +54,9 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee
|
|||||||
Owner.Delete();
|
Owner.Delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IUse.UseEntity(IEntity user)
|
bool IUse.UseEntity(UseEntityEventArgs eventArgs)
|
||||||
{
|
{
|
||||||
if (!user.TryGetComponent(out DamageableComponent damagecomponent)) return false;
|
if (!eventArgs.User.TryGetComponent(out DamageableComponent damagecomponent)) return false;
|
||||||
if (Owner.TryGetComponent(out StackComponent stackComponent))
|
if (Owner.TryGetComponent(out StackComponent stackComponent))
|
||||||
{
|
{
|
||||||
if (!stackComponent.Use(1))
|
if (!stackComponent.Use(1))
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ namespace Content.Server.GameObjects.Components.Interactable
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IUse.UseEntity(IEntity user)
|
bool IUse.UseEntity(UseEntityEventArgs eventArgs)
|
||||||
{
|
{
|
||||||
return ToggleStatus();
|
return ToggleStatus();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ namespace Content.Server.GameObjects.Components.Interactable.Tools
|
|||||||
return Fuel > 0;
|
return Fuel > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool UseEntity(IEntity user)
|
public bool UseEntity(UseEntityEventArgs eventArgs)
|
||||||
{
|
{
|
||||||
return ToggleStatus();
|
return ToggleStatus();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,10 +159,10 @@ namespace Content.Server.GameObjects
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="user"></param>
|
/// <param name="user"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
bool IUse.UseEntity(IEntity user)
|
bool IUse.UseEntity(UseEntityEventArgs eventArgs)
|
||||||
{
|
{
|
||||||
_ensureInitialCalculated();
|
_ensureInitialCalculated();
|
||||||
var user_session = user.GetComponent<BasicActorComponent>().playerSession;
|
var user_session = eventArgs.User.GetComponent<BasicActorComponent>().playerSession;
|
||||||
Logger.DebugS("Storage", "Storage (UID {0}) \"used\" by player session (UID {1}).", Owner.Uid, user_session.AttachedEntityUid);
|
Logger.DebugS("Storage", "Storage (UID {0}) \"used\" by player session (UID {1}).", Owner.Uid, user_session.AttachedEntityUid);
|
||||||
SubscribeSession(user_session);
|
SubscribeSession(user_session);
|
||||||
SendNetworkMessage(new OpenStorageUIMessage(), user_session.ConnectedClient);
|
SendNetworkMessage(new OpenStorageUIMessage(), user_session.ConnectedClient);
|
||||||
@@ -304,7 +304,7 @@ namespace Content.Server.GameObjects
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
void IActivate.Activate(IEntity user)
|
void IActivate.Activate(IEntity user)
|
||||||
{
|
{
|
||||||
((IUse) this).UseEntity(user);
|
((IUse) this).UseEntity(new UseEntityEventArgs { User = user });
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _ensureInitialCalculated()
|
private void _ensureInitialCalculated()
|
||||||
|
|||||||
@@ -185,16 +185,16 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Projectile
|
|||||||
_updateAppearance();
|
_updateAppearance();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool UseEntity(IEntity user)
|
public bool UseEntity(UseEntityEventArgs eventArgs)
|
||||||
{
|
{
|
||||||
var ret = EjectMagazine();
|
var ret = EjectMagazine();
|
||||||
if (ret)
|
if (ret)
|
||||||
{
|
{
|
||||||
Owner.PopupMessage(user, "Magazine ejected");
|
Owner.PopupMessage(eventArgs.User, "Magazine ejected");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Owner.PopupMessage(user, "No magazine");
|
Owner.PopupMessage(eventArgs.User, "No magazine");
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -108,7 +108,12 @@ namespace Content.Server.GameObjects.EntitySystems
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="user"></param>
|
/// <param name="user"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
bool UseEntity(IEntity user);
|
bool UseEntity(UseEntityEventArgs eventArgs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UseEntityEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public IEntity User { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -356,7 +361,7 @@ namespace Content.Server.GameObjects.EntitySystems
|
|||||||
//Try to use item on any components which have the interface
|
//Try to use item on any components which have the interface
|
||||||
for (var i = 0; i < usables.Count; i++)
|
for (var i = 0; i < usables.Count; i++)
|
||||||
{
|
{
|
||||||
if (usables[i].UseEntity(user)) //If an attackby returns a status completion we finish our attack
|
if (usables[i].UseEntity(new UseEntityEventArgs { User = user })) //If an attackby returns a status completion we finish our attack
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user