Example #1
0
 internal static void SpawnItemToSpawn(Locker.ItemToSpawn toSpawn, Locker locker, bool locked)
 {
     for (int i = 0; i <= toSpawn._amount; i++)
     {
         var item = new Synapse.Api.Items.SynapseItem(toSpawn._id, 0f, 0, 0, 0);
         item.Drop(toSpawn._pos);
         item.pickup.SetupPickup(item.ItemType, item.Durabillity, item.pickup.ownerPlayer, item.pickup.weaponMods, item.pickup.position, toSpawn._rot);
         item.pickup.RefreshDurability(true, true);
         item.pickup.Locked  = locked;
         item.pickup.Chamber = toSpawn.chamberId;
         locker.AssignPickup(item.pickup);
         var rb = item.pickup.GetComponent <Rigidbody>();
         rb.velocity = Vector3.zero;
         if (locker.enableSorting && locker.sortingTarget != null)
         {
             rb.useGravity = false;
             var normalized = (item.Position - locker.sortingTarget.transform.position).normalized;
             rb.velocity        = normalized * locker.sortingForce;
             rb.angularVelocity = locker.sortingTorque;
             Timing.CallDelayed(0.5f, () => rb.useGravity = true);
             return;
         }
         rb.useGravity = true;
     }
 }
Example #2
0
        private static bool Prefix(Locker __instance, Locker.ItemToSpawn item)
        {
            try
            {
                if (!__instance.Spawned)
                {
                    return(false);
                }

                if (__instance.SpawnOnOpen || __instance.TriggeredByDoor)
                {
                    if (__instance._itemsToSpawn == null)
                    {
                        __instance._itemsToSpawn = new System.Collections.Generic.List <Locker.ItemToSpawn>();
                    }
                    __instance._itemsToSpawn.Add(item);
                    return(false);
                }
                SpawnItemPatch.SpawnItemToSpawn(item, __instance, true);
            }
            catch (Exception e)
            {
                Logger.Get.Error($"Synapse-Item: SpawnItem failed!!\n{e}\nStackTrace:\n{e.StackTrace}");
            }

            return(false);
        }