protected StringBuilder GetEntityName(MyEntity entity) { if (!string.IsNullOrEmpty(entity.DisplayName)) { return new StringBuilder(entity.GetCorrectDisplayName()); } else { if(entity is MyPrefabLargeWeapon && (entity as MyPrefabLargeWeapon).GetGun() != null){ MyLargeShipGunBase gun = (entity as MyPrefabLargeWeapon).GetGun(); if (gun is MyLargeShipAutocannon) { return MyTextsWrapper.Get(MyTextsWrapperEnum.Autocannon); } else if (gun is MyLargeShipCIWS) { return MyTextsWrapper.Get(MyTextsWrapperEnum.CIWS); } else if (gun is MyLargeShipMachineGun) { return MyTextsWrapper.Get(MyTextsWrapperEnum.MachineGun); } else if(gun is MyLargeShipMissileLauncherGun) { return MyTextsWrapper.Get(MyTextsWrapperEnum.MissileLauncher); } } else if(entity is MyPrefabCamera){ return MyTextsWrapper.Get(MyTextsWrapperEnum.Camera); } else if(entity is MyPrefabAlarm){ return MyTextsWrapper.Get(MyTextsWrapperEnum.Alarm); } else if(entity is MyPrefabBankNode){ return MyTextsWrapper.Get(MyTextsWrapperEnum.BankNode); } else if(entity is MyPrefabGenerator){ return MyTextsWrapper.Get(MyTextsWrapperEnum.Generator); } else if (entity is MyPrefabScanner) { return MyTextsWrapper.Get(MyTextsWrapperEnum.Scanner); } else if (entity is MyPrefabContainer) { return MyTextsWrapper.Get(MyTextsWrapperEnum.Alarm); } else if (entity is MyPrefabKinematic) { MyPrefabKinematic pk = (MyPrefabKinematic)entity; return MyTextsWrapper.Get(MyTextsWrapperEnum.Door); } return new StringBuilder(); } }
/// <summary> /// Displays notification /// </summary> /// <param name="entity">Entity</param> /// <param name="action">Action</param> private MyHudNotification.MyNotification DisplayDetectedEntityActionNotification(MyEntity entity, MySmallShipInteractionActionEnum action) { string entityName = entity.DisplayName; //// if we trade throught hangar, we want display prefab container's name, not hangar's name //if (entity is MyPrefabHangar) //{ // entityName = (entity as MyPrefabHangar).GetOwner().DisplayName; //} //else //{ // entityName = entity.DisplayName; //} //get localized entity name entityName = entity.GetCorrectDisplayName(); if (String.IsNullOrWhiteSpace(entityName)) { entityName = MyTextsWrapper.Get(MyTextsWrapperEnum.ThisObject).ToString(); } bool isMissionNotification = MyMissions.IsMissionEntityNotification(entity, action); object[] args = new object[3]; MyTextsWrapperEnum notificationText; MyGuiFont notificationFont; switch (action) { case MySmallShipInteractionActionEnum.TradeForFree: notificationFont = MyHudConstants.FRIEND_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanTradeWith; args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.INVENTORY); args[1] = entityName; break; case MySmallShipInteractionActionEnum.TradeForMoney: notificationFont = MyHudConstants.NEUTRAL_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanTradeWith; args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.INVENTORY); args[1] = entityName; break; case MySmallShipInteractionActionEnum.Loot: notificationFont = MyHudConstants.ENEMY_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanLoot; args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.INVENTORY); args[1] = entityName; break; case MySmallShipInteractionActionEnum.Examine: notificationFont = MyHudConstants.NEUTRAL_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanExamine; args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.INVENTORY); args[1] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.USE); args[2] = entityName; break; case MySmallShipInteractionActionEnum.ExamineEmpty: notificationFont = MyHudConstants.NEUTRAL_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanExamineEmpty; args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.INVENTORY); args[1] = entityName; break; case MySmallShipInteractionActionEnum.Blocked: notificationFont = MyHudConstants.ENEMY_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCantExamine; args[0] = entityName; break; case MySmallShipInteractionActionEnum.Build: notificationFont = MyHudConstants.NEUTRAL_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanBuild; break; case MySmallShipInteractionActionEnum.Travel: notificationFont = MyHudConstants.FRIEND_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanTravel; args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.TRAVEL); args[1] = entityName; break; case MySmallShipInteractionActionEnum.Use: IMyUseableEntity useableEntity = entity as IMyUseableEntity; Debug.Assert(useableEntity != null); notificationFont = MyHudConstants.FRIEND_FONT; if (useableEntity.UseProperties.UseText != null) { notificationText = useableEntity.UseProperties.UseText.Value; } else { notificationText = MyTextsWrapperEnum.NotificationYouCanUse; } args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.USE); args[1] = entityName; break; case MySmallShipInteractionActionEnum.Hack: notificationFont = MyHudConstants.NEUTRAL_FONT; notificationText = MyTextsWrapperEnum.NotificationYouCanHack; args[0] = MyGuiManager.GetInput().GetGameControlTextEnum(MyGameControlEnums.USE); args[1] = entityName; break; default: throw new Exception(); } MyHudNotification.MyNotification notification = new MyHudNotification.MyNotification( notificationText, MyHudNotification.GetCurrentScreen(), 1f, isMissionNotification ? MyHudConstants.MISSION_FONT : notificationFont, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, MyHudNotification.DONT_DISAPEAR, null, false, args); MyHudNotification.AddNotification(notification); return notification; }