private void WalkEachAroundItem(ref IShipDockEntitas target, BehaviourIDs ids) { bool flag; int id, aroundID = ids.gameItemID; float distance; AroundsCheckedInfo info; WorldMovement itemMovement; List <int> list = BehaviourIDsComp.GetAroundList(ref target); int max = (list != default) ? list.Count : 0; if (max > 0) { for (int i = 0; i < max; i++) { id = list[i]; itemMovement = GetAroundTargetMovement(id); if (itemMovement != default && !itemMovement.Invalid) { distance = mMovement.DistanceBetween(itemMovement.Position); info = new AroundsCheckedInfo { ids = ids, checkingAroundID = id, distanceBetween = distance, distanceCrowding = GetCrowdingDistance(), }; flag = CheckingAround(ref target, aroundID, info, ref itemMovement); if (!flag) { break; } } } BehaviourIDsComp.PhysicsCheckReset(aroundID); } AroundsChecked(ref target, aroundID); }
protected abstract bool CheckingAround(ref IShipDockEntitas target, int aroundID, AroundsCheckedInfo aroundInfo, ref WorldMovement movement);