HandsSystem Refactor (#38438)
* checkpoint * pt 2 * pt... i forgot * pt 4 * patch * More test fixes * optimization!!! * the REAL hand system * fix RetractableItemActionSystem.cs oversight * the review * test * remove test usage of body prototype * Update Content.IntegrationTests/Tests/Interaction/InteractionTest.cs Co-authored-by: Tayrtahn <tayrtahn@gmail.com> * hellcode * hellcode 2 * Minor cleanup * test * Chasing the last of the bugs * changes --------- Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
This commit is contained in:
@@ -689,7 +689,7 @@ public abstract class SharedStorageSystem : EntitySystem
|
||||
return;
|
||||
|
||||
// If the user's active hand is empty, try pick up the item.
|
||||
if (player.Comp.ActiveHandEntity == null)
|
||||
if (!_sharedHandsSystem.TryGetActiveItem(player.AsNullable(), out var activeItem))
|
||||
{
|
||||
_adminLog.Add(
|
||||
LogType.Storage,
|
||||
@@ -709,11 +709,11 @@ public abstract class SharedStorageSystem : EntitySystem
|
||||
_adminLog.Add(
|
||||
LogType.Storage,
|
||||
LogImpact.Low,
|
||||
$"{ToPrettyString(player):player} is interacting with {ToPrettyString(item):item} while it is stored in {ToPrettyString(storage):storage} using {ToPrettyString(player.Comp.ActiveHandEntity):used}");
|
||||
$"{ToPrettyString(player):player} is interacting with {ToPrettyString(item):item} while it is stored in {ToPrettyString(storage):storage} using {ToPrettyString(activeItem):used}");
|
||||
|
||||
// Else, interact using the held item
|
||||
if (_interactionSystem.InteractUsing(player,
|
||||
player.Comp.ActiveHandEntity.Value,
|
||||
activeItem.Value,
|
||||
item,
|
||||
Transform(item).Coordinates,
|
||||
checkCanInteract: false))
|
||||
@@ -1208,10 +1208,10 @@ public abstract class SharedStorageSystem : EntitySystem
|
||||
{
|
||||
if (!Resolve(ent.Owner, ref ent.Comp)
|
||||
|| !Resolve(player.Owner, ref player.Comp)
|
||||
|| player.Comp.ActiveHandEntity == null)
|
||||
|| !_sharedHandsSystem.TryGetActiveItem(player, out var activeItem))
|
||||
return false;
|
||||
|
||||
var toInsert = player.Comp.ActiveHandEntity;
|
||||
var toInsert = activeItem;
|
||||
|
||||
if (!CanInsert(ent, toInsert.Value, out var reason, ent.Comp))
|
||||
{
|
||||
@@ -1219,7 +1219,7 @@ public abstract class SharedStorageSystem : EntitySystem
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!_sharedHandsSystem.CanDrop(player, toInsert.Value, player.Comp))
|
||||
if (!_sharedHandsSystem.CanDrop(player, toInsert.Value))
|
||||
{
|
||||
_popupSystem.PopupClient(Loc.GetString("comp-storage-cant-drop", ("entity", toInsert.Value)), ent, player);
|
||||
return false;
|
||||
@@ -1933,7 +1933,7 @@ public abstract class SharedStorageSystem : EntitySystem
|
||||
|
||||
if (held)
|
||||
{
|
||||
if (!_sharedHandsSystem.IsHolding(player, itemUid, out _))
|
||||
if (!_sharedHandsSystem.IsHolding(player.AsNullable(), itemUid, out _))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user