private bool HandleThrowItem(ICommonSession?session, EntityCoordinates coords, EntityUid uid) { if (session is not IPlayerSession playerSession) { return(false); } var playerEnt = playerSession.AttachedEntity; if (playerEnt == null || !playerEnt.IsValid() || !playerEnt.TryGetComponent(out SharedHandsComponent? hands)) { return(false); } if (!hands.TryGetActiveHeldEntity(out var throwEnt)) { return(false); } if (!_interactionSystem.TryThrowInteraction(hands.Owner, throwEnt)) { return(false); } if (throwEnt.TryGetComponent(out StackComponent? stack) && stack.Count > 1 && stack.ThrowIndividually) { var splitStack = _stackSystem.Split(throwEnt.Uid, stack, 1, playerEnt.Transform.Coordinates); if (splitStack == null) { return(false); } throwEnt = splitStack; }