private static void ItemInLevel__Setup__Postfix(ItemInLevel __instance)
 {
     __instance.GetSyncComponent().add_OnSyncStateChange(
         (Il2CppSystem.Action <ePickupItemStatus, pPickupPlacement, PlayerAgent, bool>)(
             (status, placement, _, _) => ItemInLevel__OnSyncStateChange(__instance, status, placement)
             )
         );
 }
        private static void ItemInLevel__OnSyncStateChange(ItemInLevel __instance, ePickupItemStatus status, pPickupPlacement placement)
        {
            if (status != ePickupItemStatus.PlacedInLevel)
            {
                return;
            }

            var resourceContainer = GTFOUtils.GetParentResourceContainer(placement.position);

            if (resourceContainer == null)
            {
                return;
            }

            // Abort if the item was already reparented
            if (__instance.GetComponentInParent <LG_WeakResourceContainer>() != null)
            {
                return;
            }

            Instance.LogDebug($"Reparenting {__instance.name} {__instance.PublicName}");
            __instance.gameObject.transform.SetParent(resourceContainer.gameObject.transform);
            __instance.gameObject.transform.SetPositionAndRotation(placement.position, placement.rotation);
        }