Cleanup: Make separate event for the equip/unequip target (#37333)
* Cleanup * Update
This commit is contained in:
@@ -1,60 +1,53 @@
|
||||
namespace Content.Shared.Inventory.Events;
|
||||
|
||||
public abstract class EquipAttemptBase : CancellableEntityEventArgs
|
||||
public abstract class EquipAttemptBase(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : CancellableEntityEventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The entity performing the action. NOT necessarily the one actually "receiving" the equipment.
|
||||
/// </summary>
|
||||
public readonly EntityUid Equipee;
|
||||
public readonly EntityUid Equipee = equipee;
|
||||
|
||||
/// <summary>
|
||||
/// The entity being equipped to.
|
||||
/// </summary>
|
||||
public readonly EntityUid EquipTarget;
|
||||
public readonly EntityUid EquipTarget = equipTarget;
|
||||
|
||||
/// <summary>
|
||||
/// The entity to be equipped.
|
||||
/// </summary>
|
||||
public readonly EntityUid Equipment;
|
||||
public readonly EntityUid Equipment = equipment;
|
||||
|
||||
/// <summary>
|
||||
/// The slotFlags of the slot to equip the entity into.
|
||||
/// </summary>
|
||||
public readonly SlotFlags SlotFlags;
|
||||
public readonly SlotFlags SlotFlags = slotDefinition.SlotFlags;
|
||||
|
||||
/// <summary>
|
||||
/// The slot the entity is being equipped to.
|
||||
/// </summary>
|
||||
public readonly string Slot;
|
||||
public readonly string Slot = slotDefinition.Name;
|
||||
|
||||
/// <summary>
|
||||
/// If cancelling and wanting to provide a custom reason, use this field. Not that this expects a loc-id.
|
||||
/// </summary>
|
||||
public string? Reason;
|
||||
|
||||
public EquipAttemptBase(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition)
|
||||
{
|
||||
EquipTarget = equipTarget;
|
||||
Equipment = equipment;
|
||||
Equipee = equipee;
|
||||
SlotFlags = slotDefinition.SlotFlags;
|
||||
Slot = slotDefinition.Name;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class BeingEquippedAttemptEvent : EquipAttemptBase
|
||||
{
|
||||
public BeingEquippedAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : base(equipee, equipTarget, equipment, slotDefinition)
|
||||
{
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Raised on the item that is being equipped.
|
||||
/// </summary>
|
||||
public sealed class BeingEquippedAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : EquipAttemptBase(equipee, equipTarget, equipment, slotDefinition);
|
||||
|
||||
public sealed class IsEquippingAttemptEvent : EquipAttemptBase
|
||||
{
|
||||
public IsEquippingAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : base(equipee, equipTarget, equipment, slotDefinition)
|
||||
{
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Raised on the entity that is equipping an item.
|
||||
/// </summary>
|
||||
public sealed class IsEquippingAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : EquipAttemptBase(equipee, equipTarget, equipment, slotDefinition);
|
||||
|
||||
/// <summary>
|
||||
/// Raised on the entity on who item is being equipped.
|
||||
/// </summary>
|
||||
public sealed class IsEquippingTargetAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : EquipAttemptBase(equipee, equipTarget, equipment, slotDefinition);
|
||||
|
||||
@@ -1,60 +1,53 @@
|
||||
namespace Content.Shared.Inventory.Events;
|
||||
|
||||
public abstract class UnequipAttemptEventBase : CancellableEntityEventArgs
|
||||
public abstract class UnequipAttemptEventBase(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : CancellableEntityEventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The entity performing the action. NOT necessarily the same as the entity whose equipment is being removed..
|
||||
/// </summary>
|
||||
public readonly EntityUid Unequipee;
|
||||
public readonly EntityUid Unequipee = unequipee;
|
||||
|
||||
/// <summary>
|
||||
/// The entity being unequipped from.
|
||||
/// </summary>
|
||||
public readonly EntityUid UnEquipTarget;
|
||||
public readonly EntityUid UnEquipTarget = unEquipTarget;
|
||||
|
||||
/// <summary>
|
||||
/// The entity to be unequipped.
|
||||
/// </summary>
|
||||
public readonly EntityUid Equipment;
|
||||
public readonly EntityUid Equipment = equipment;
|
||||
|
||||
/// <summary>
|
||||
/// The slotFlags of the slot this item is being removed from.
|
||||
/// </summary>
|
||||
public readonly SlotFlags SlotFlags;
|
||||
public readonly SlotFlags SlotFlags = slotDefinition.SlotFlags;
|
||||
|
||||
/// <summary>
|
||||
/// The slot the entity is being unequipped from.
|
||||
/// </summary>
|
||||
public readonly string Slot;
|
||||
public readonly string Slot = slotDefinition.Name;
|
||||
|
||||
/// <summary>
|
||||
/// If cancelling and wanting to provide a custom reason, use this field. Not that this expects a loc-id.
|
||||
/// </summary>
|
||||
public string? Reason;
|
||||
|
||||
public UnequipAttemptEventBase(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition)
|
||||
{
|
||||
UnEquipTarget = unEquipTarget;
|
||||
Equipment = equipment;
|
||||
Unequipee = unequipee;
|
||||
SlotFlags = slotDefinition.SlotFlags;
|
||||
Slot = slotDefinition.Name;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class BeingUnequippedAttemptEvent : UnequipAttemptEventBase
|
||||
{
|
||||
public BeingUnequippedAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : base(unequipee, unEquipTarget, equipment, slotDefinition)
|
||||
{
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Raised on the item that is being unequipped.
|
||||
/// </summary>
|
||||
public sealed class BeingUnequippedAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : UnequipAttemptEventBase(unequipee, unEquipTarget, equipment, slotDefinition);
|
||||
|
||||
public sealed class IsUnequippingAttemptEvent : UnequipAttemptEventBase
|
||||
{
|
||||
public IsUnequippingAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : base(unequipee, unEquipTarget, equipment, slotDefinition)
|
||||
{
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Raised on the entity that is unequipping an item.
|
||||
/// </summary>
|
||||
public sealed class IsUnequippingAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : UnequipAttemptEventBase(unequipee, unEquipTarget, equipment, slotDefinition);
|
||||
|
||||
/// <summary>
|
||||
/// Raised on the entity from who item is being unequipped.
|
||||
/// </summary>
|
||||
public sealed class IsUnequippingTargetAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
|
||||
SlotDefinition slotDefinition) : UnequipAttemptEventBase(unequipee, unEquipTarget, equipment, slotDefinition);
|
||||
|
||||
@@ -286,23 +286,21 @@ public abstract partial class InventorySystem
|
||||
}
|
||||
|
||||
var attemptEvent = new IsEquippingAttemptEvent(actor, target, itemUid, slotDefinition);
|
||||
RaiseLocalEvent(target, attemptEvent, true);
|
||||
RaiseLocalEvent(actor, attemptEvent, true);
|
||||
|
||||
if (attemptEvent.Cancelled)
|
||||
{
|
||||
reason = attemptEvent.Reason ?? reason;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (actor != target)
|
||||
var targetAttemptEvent = new IsEquippingTargetAttemptEvent(actor, target, itemUid, slotDefinition);
|
||||
RaiseLocalEvent(target, targetAttemptEvent, true);
|
||||
|
||||
if (targetAttemptEvent.Cancelled)
|
||||
{
|
||||
//reuse the event. this is gucci, right?
|
||||
attemptEvent.Reason = null;
|
||||
RaiseLocalEvent(actor, attemptEvent, true);
|
||||
if (attemptEvent.Cancelled)
|
||||
{
|
||||
reason = attemptEvent.Reason ?? reason;
|
||||
return false;
|
||||
}
|
||||
reason = targetAttemptEvent.Reason ?? reason;
|
||||
return false;
|
||||
}
|
||||
|
||||
var itemAttemptEvent = new BeingEquippedAttemptEvent(actor, target, itemUid, slotDefinition);
|
||||
@@ -524,23 +522,21 @@ public abstract partial class InventorySystem
|
||||
}
|
||||
|
||||
var attemptEvent = new IsUnequippingAttemptEvent(actor, target, itemUid, slotDefinition);
|
||||
RaiseLocalEvent(target, attemptEvent, true);
|
||||
RaiseLocalEvent(actor, attemptEvent, true);
|
||||
|
||||
if (attemptEvent.Cancelled)
|
||||
{
|
||||
reason = attemptEvent.Reason ?? reason;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (actor != target)
|
||||
var targetAttemptEvent = new IsUnequippingTargetAttemptEvent(actor, target, itemUid, slotDefinition);
|
||||
RaiseLocalEvent(target, targetAttemptEvent, true);
|
||||
|
||||
if (targetAttemptEvent.Cancelled)
|
||||
{
|
||||
//reuse the event. this is gucci, right?
|
||||
attemptEvent.Reason = null;
|
||||
RaiseLocalEvent(actor, attemptEvent, true);
|
||||
if (attemptEvent.Cancelled)
|
||||
{
|
||||
reason = attemptEvent.Reason ?? reason;
|
||||
return false;
|
||||
}
|
||||
reason = targetAttemptEvent.Reason ?? reason;
|
||||
return false;
|
||||
}
|
||||
|
||||
var itemAttemptEvent = new BeingUnequippedAttemptEvent(actor, target, itemUid, slotDefinition);
|
||||
|
||||
Reference in New Issue
Block a user