public static void SortEntityList(MyEntitySortOrder selectedOrder, ref List <MyEntityListInfoItem> items, bool invertOrder) { switch (selectedOrder) { case MyEntitySortOrder.DisplayName: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = string.Compare(a.DisplayName, b.DisplayName, StringComparison.CurrentCultureIgnoreCase); return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.BlockCount: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = b.BlockCount.CompareTo(a.BlockCount); return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.Mass: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { if (a.Mass == b.Mass) { return(0); } int num = (a.Mass != 0f) ? ((b.Mass != 0f) ? b.Mass.CompareTo(a.Mass) : 1) : -1; return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.OwnerName: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = string.Compare(a.OwnerName, b.OwnerName, StringComparison.CurrentCultureIgnoreCase); return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.DistanceFromCenter: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = a.Position.LengthSquared().CompareTo(b.Position.LengthSquared()); return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.Speed: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = b.Speed.CompareTo(a.Speed); return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.DistanceFromPlayers: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = b.DistanceFromPlayers.CompareTo(a.DistanceFromPlayers); return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.OwnerLastLogout: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = b.OwnerLogoutTime.CompareTo(a.OwnerLogoutTime); return(!invertOrder ? num : -num); }); return; case MyEntitySortOrder.PCU: items.Sort(delegate(MyEntityListInfoItem a, MyEntityListInfoItem b) { int num = b.PCU.CompareTo(a.PCU); return(!invertOrder ? num : -num); }); return; } throw new ArgumentOutOfRangeException(); }
public static StringBuilder GetFormattedDisplayName(MyEntitySortOrder selectedOrder, MyEntityListInfoItem item, bool isGrid) { StringBuilder output = new StringBuilder(item.DisplayName); switch (selectedOrder) { case MyEntitySortOrder.DisplayName: break; case MyEntitySortOrder.BlockCount: if (isGrid) { output.Append(" | " + item.BlockCount); } break; case MyEntitySortOrder.Mass: output.Append(" | "); if (item.Mass == 0f) { output.Append("-"); } else { MyValueFormatter.AppendWeightInBestUnit(item.Mass, output); } break; case MyEntitySortOrder.OwnerName: if (isGrid) { output.Append(" | " + (string.IsNullOrEmpty(item.OwnerName) ? MyTexts.GetString(MySpaceTexts.BlockOwner_Nobody) : item.OwnerName)); } break; case MyEntitySortOrder.DistanceFromCenter: output.Append(" | "); MyValueFormatter.AppendDistanceInBestUnit((float)item.Position.Length(), output); break; case MyEntitySortOrder.Speed: output.Append(" | " + item.Speed.ToString("0.### m/s")); break; case MyEntitySortOrder.DistanceFromPlayers: output.Append(" | "); MyValueFormatter.AppendDistanceInBestUnit(item.DistanceFromPlayers, output); break; case MyEntitySortOrder.OwnerLastLogout: if (isGrid) { output.Append(" | " + (string.IsNullOrEmpty(item.OwnerName) ? MyTexts.GetString(MySpaceTexts.BlockOwner_Nobody) : item.OwnerName)); output.Append(": "); MyValueFormatter.AppendTimeInBestUnit(item.OwnerLogoutTime, output); } break; case MyEntitySortOrder.PCU: if (isGrid) { output.Append(" | " + item.PCU); } break; default: throw new ArgumentOutOfRangeException(); } return(output); }