private List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.RankedPObjectInfo> SelectRankedPObjectInfo(List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.FeaturesOfMember> features, List<int> secondaryFeatures) { var tmpResultList = new List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.RankedPObjectInfo>(); if (mSelfBoxingObject != null) { if (mSelfBoxingObject.Supports(features) && mSelfBoxingObject.SupportsSecondary(secondaryFeatures)) { var tmpItem = new StillOneScriptCore.EntityModel.LngObjectsModel.Support.RankedPObjectInfo(); tmpItem.Rank = 4; tmpItem.BaseObject = mSelfBoxingObject; tmpResultList.Add(tmpItem); } } if (mBoxingObject != null) { if (mBoxingObject.Supports(features) && mSelfBoxingObject.SupportsSecondary(secondaryFeatures)) { var tmpItem = new StillOneScriptCore.EntityModel.LngObjectsModel.Support.RankedPObjectInfo(); tmpItem.Rank = 3; tmpItem.BaseObject = mBoxingObject; tmpResultList.Add(tmpItem); } } if (mP_InstancesCollection != null) { var tmpInstances = mP_InstancesCollection.SelectRankedPObjectInfo(2, features, secondaryFeatures); if (!StillOneScriptCore.Common.TypeHelpers.ListHelper.IsEmpty(tmpInstances)) { tmpResultList.AddRange(tmpInstances); } } var tmpSuperClasses = mSuperClassesCollection.SelectRankedPObjectInfo(1, features, secondaryFeatures); if (!StillOneScriptCore.Common.TypeHelpers.ListHelper.IsEmpty(tmpSuperClasses)) { tmpResultList.AddRange(tmpSuperClasses); } if (StillOneScriptCore.Common.TypeHelpers.ListHelper.IsEmpty(tmpResultList)) { return null; } return tmpResultList.OrderByDescending(p => p.Rank).ToList(); }
public List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.RankedPObjectInfo> SelectRankedPObjectInfo(float multiplierOfRanks, List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.FeaturesOfMember> features, List<int> secondaryFeatures) { lock (LockObj) { if (StillOneScriptCore.Common.TypeHelpers.ListHelper.IsEmpty(mItems)) { return null; } var tmpResultList = new List<StillOneScriptCore.EntityModel.LngObjectsModel.Support.RankedPObjectInfo>(); foreach (var item in mItems) { if (item.Instance == null) { return null; } if (item.Instance.Supports(features) && item.Instance.SupportsSecondary(secondaryFeatures)) { var tmpItem = new StillOneScriptCore.EntityModel.LngObjectsModel.Support.RankedPObjectInfo(); tmpItem.Rank = item.Rank * multiplierOfRanks; tmpItem.BaseObject = item.Instance; tmpResultList.Add(tmpItem); } } return tmpResultList; } }