예제 #1
0
        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());
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }