Esempio n. 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;
     }
 }