public static TWeapon PlayerPickUpWeaponUpdate(Vector2 pos, WeaponItem id) { if (WeaponTrackingList.Count == 0) { return(null); } float dist = 16; TWeapon weapon = null; int index = 0; for (int i = 0; i < WeaponTrackingList.Count; i++) { if (!WeaponTrackingList[i].Object.RemovalInitiated) { continue; } float currentDist = (pos - WeaponTrackingList[i].Position).Length(); if (WeaponTrackingList[i].Weapon == id && currentDist <= dist) { weapon = WeaponTrackingList[i]; dist = currentDist; index = i; } } if (weapon == null) { return(null); } WeaponTrackingList.RemoveAt(index); return(weapon); }
public static void PostWeaponTrackingUpdate() { for (int i = 0; i < WeaponTrackingList.Count; i++) { if (WeaponTrackingList[i].Object == null || WeaponTrackingList[i].Object.RemovalInitiated) { WeaponTrackingList.RemoveAt(i); i--; } else { WeaponTrackingList[i].Position = WeaponTrackingList[i].Object.GetWorldPosition(); WeaponTrackingList[i].Update(); } } }