public static string GetDescriptionText(MyEntityListInfoItem item, bool isGrid) { StringBuilder output = new StringBuilder(); if (!isGrid) { output.Append(MyEntitySortOrder.Mass + ": "); if (item.Mass > 0f) { MyValueFormatter.AppendWeightInBestUnit(item.Mass, output); } else { output.Append("-"); } output.AppendLine(); output.Append(MyTexts.Get(MyStringId.GetOrCompute(4.ToString())) + ": "); MyValueFormatter.AppendDistanceInBestUnit((float)item.Position.Length(), output); output.AppendLine(); object[] objArray1 = new object[] { MyTexts.Get(MyStringId.GetOrCompute(5.ToString())), ": ", item.Speed, " m/s" }; output.Append(string.Concat(objArray1)); } else { output.AppendLine(MyTexts.Get(MyStringId.GetOrCompute(1.ToString())) + ": " + item.BlockCount); output.AppendLine(MyTexts.Get(MyStringId.GetOrCompute(8.ToString())) + ": " + item.PCU); output.Append(MyTexts.Get(MyStringId.GetOrCompute(2.ToString())) + ": "); if (item.Mass > 0f) { MyValueFormatter.AppendWeightInBestUnit(item.Mass, output); } else { output.Append("-"); } output.AppendLine(); output.AppendLine(MyTexts.Get(MyStringId.GetOrCompute(3.ToString())) + ": " + item.OwnerName); object[] objArray2 = new object[] { MyTexts.Get(MyStringId.GetOrCompute(5.ToString())), ": ", item.Speed, " m/s" }; output.AppendLine(string.Concat(objArray2)); output.Append(MyTexts.Get(MyStringId.GetOrCompute(4.ToString())) + ": "); MyValueFormatter.AppendDistanceInBestUnit((float)item.Position.Length(), output); output.AppendLine(); output.Append(MyTexts.Get(MyStringId.GetOrCompute(6.ToString())) + ": "); MyValueFormatter.AppendDistanceInBestUnit(item.DistanceFromPlayers, output); output.AppendLine(); output.Append(MyTexts.Get(MyStringId.GetOrCompute(7.ToString())) + ": "); MyValueFormatter.AppendTimeInBestUnit(item.OwnerLogoutTime, output); } return(output.ToString()); }
private static void CreateListInfoForGrid(MyCubeGrid grid, out MyEntityListInfoItem item) { long owner = 0L; string ownerName = string.Empty; if (grid.BigOwners.Count > 0) { MyIdentity identity = MySession.Static.Players.TryGetIdentity(grid.BigOwners[0]); if (identity != null) { ownerName = identity.DisplayName; owner = grid.BigOwners[0]; } } item = new MyEntityListInfoItem(grid.DisplayName, grid.EntityId, grid.BlocksCount, grid.BlocksPCU, grid.Physics.Mass, grid.PositionComp.GetPosition(), grid.Physics.LinearVelocity.Length(), MySession.GetPlayerDistance(grid, MySession.Static.Players.GetOnlinePlayers()), ownerName, owner, MySession.GetOwnerLoginTimeSeconds(grid), MySession.GetOwnerLogoutTimeSeconds(grid)); }
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); }