public static void GetCustomUseText(ref string __result, Seaglide __instance)
        {
            if (__instance == null || __instance.gameObject == null || __instance.gameObject.GetComponent <PowerglideBehaviour>() == null)
            {
                return;
            }

            string sprintText = LanguageCache.GetButtonFormat(Language.main.Get("HoverbikeBoostDisplay") + "({0})", GameInput.Button.Sprint);;

            if (string.IsNullOrEmpty(customUseText) || cachedUseText != sprintText)
            {
                if (Language.main != null)
                {
                    customUseText = __result + ", " + sprintText;
                    cachedUseText = sprintText;
                    typeof(Seaglide).GetField("customUseCachedString", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(__instance, customUseText);
                }
                else
                {
                    //Log.LogDebug("Language.main is not available");
                }
            }
            //__result = customUseText;
            //__instance.customUseCachedString = customUseText;
        }
示例#2
0
        private static ILanguageCache SetUp(Mock <ILanguageRepository> repository)
        {
            var memoryCache = new MemoryCache(new MemoryCacheOptions());
            var cache       = new LanguageCache(repository.Object, memoryCache);

            return(cache);
        }
示例#3
0
        private void UpdateActiveTarget(bool canPickup, bool canDrill)
        {
            GameObject targetObject = null;

            ObjectType objectType = ObjectType.None;

            if (canPickup || canDrill)
            {
                Targeting.GetTarget(gameObject, 4.8f, out targetObject, out float num);
            }

            if (targetObject)
            {
                GameObject rootObject = UWE.Utils.GetEntityRoot(targetObject);

                rootObject = (!(rootObject != null)) ? targetObject : rootObject;

                if (rootObject.GetComponentProfiled <Pickupable>())
                {
                    if (rootObject.GetComponent <Pickupable>().isPickupable)
                    {
                        targetObject = rootObject;
                        objectType   = ObjectType.Pickupable;
                    }
                    else
                    {
                        targetObject = null;
                    }
                }
                else if (rootObject.GetComponentProfiled <Drillable>())
                {
                    targetObject = rootObject;
                    objectType   = ObjectType.Drillable;
                }
                else
                {
                    targetObject = null;
                }
            }

            activeTarget = targetObject;

            if (activeTarget && currentSelectedArm != SeaTruckArm.None)
            {
                if (canDrill && objectType == ObjectType.Drillable && GetSelectedArmTechType() == SeaTruckDrillArm_Prefab.TechTypeID)
                {
                    GUIHand component = Player.main.GetComponent <GUIHand>();
                    GUIHand.Send(activeTarget, HandTargetEventType.Hover, component);
                }
                else if (canPickup && objectType == ObjectType.Pickupable && GetSelectedArmTechType() == SeaTruckClawArm_Prefab.TechTypeID)
                {
                    Pickupable pickupable = activeTarget.GetComponent <Pickupable>();
                    TechType   techType   = pickupable.GetTechType();

                    HandReticle.main.SetText(HandReticle.TextType.Hand, LanguageCache.GetPickupText(techType), false, GameInput.Button.LeftHand);
                    HandReticle.main.SetIcon(HandReticle.IconType.Hand, 1f);
                }
            }
        }
示例#4
0
        //=====================================================================
        // UpdateText
        //
        // Sets tooltip text
        //=====================================================================
        private void UpdateText()
        {
            string buttonFormat  = LanguageCache.GetButtonFormat("ConstructFormat", GameInput.Button.LeftHand);
            string buttonFormat2 = LanguageCache.GetButtonFormat("DeconstructFormat", GameInput.Button.Deconstruct);

            this.constructText   = Language.main.GetFormat <string, string>("ConstructDeconstructFormat", buttonFormat, buttonFormat2);
            this.deconstructText = buttonFormat2;
        }
示例#5
0
 public static string GetInputForSlot(int slotID)
 {
     if (slotID < Player.quickSlotButtonsCount)
     {
         string inputName = GameInput.GetBindingName(GameInput.Button.Slot1 + slotID, GameInput.BindingSet.Primary);
         string input     = LanguageCache.GetButtonFormat("{0}", GameInput.Button.Slot1 + slotID);
         return(string.IsNullOrEmpty(inputName) ? "" : input);
     }
     return(slotID < 0 || slotID >= MaxSlots ? "???" : keys[slotID]);
 }
        private void UpdateActiveTarget(bool canPickup, bool canDrill)
        {
            GameObject targetObject = null;

            TargetObjectType objectType = TargetObjectType.None;

            if (canPickup || canDrill)
            {
                Targeting.GetTarget(seamoth.gameObject, 4.8f, out targetObject, out float num, null);
            }

            if (targetObject)
            {
                GameObject rootObject = UWE.Utils.GetEntityRoot(targetObject);

                rootObject = (!(rootObject != null)) ? targetObject : rootObject;

                if (rootObject.GetComponentProfiled <Pickupable>())
                {
                    targetObject = rootObject;
                    objectType   = TargetObjectType.Pickupable;
                }
                else if (rootObject.GetComponentProfiled <Drillable>())
                {
                    targetObject = rootObject;
                    objectType   = TargetObjectType.Drillable;
                }
                else
                {
                    targetObject = null;
                }
            }

            activeTarget = targetObject;

            if (activeTarget && currentSelectedArm != SeamothArm.None)
            {
                if (canDrill && objectType == TargetObjectType.Drillable && GetSelectedArm().HasDrill())
                {
                    GUIHand component = Player.main.GetComponent <GUIHand>();
                    GUIHand.Send(activeTarget, HandTargetEventType.Hover, component);
                }
                else if (canPickup && objectType == TargetObjectType.Pickupable && GetSelectedArm().HasClaw())
                {
                    Pickupable pickupable = activeTarget.GetComponent <Pickupable>();
                    TechType   techType   = pickupable.GetTechType();

                    HandReticle.main.SetInteractText(LanguageCache.GetPickupText(techType), false, HandReticle.Hand.Left);
                    HandReticle.main.SetIcon(HandReticle.IconType.Hand, 1f);
                }
            }
        }
        public static List <Language> GetLanguageList()
        {
            var cachedResult = LanguageCache.CheckInCacheLanguageList();

            if (cachedResult != null)
            {
                return(cachedResult);
            }
            var languageList = LoadLanguageList();

            LanguageCache.AddToCacheLanguageList(languageList);
            return(languageList);
        }
        public static Language GetDefaultLanguage()
        {
            var cachedResult = LanguageCache.CheckInCacheDefaultLanguage();

            if (cachedResult != null)
            {
                return(cachedResult);
            }
            var languageList = GetLanguageList();
            var language     = languageList.FirstOrDefault(item => item.IsDefault);

            LanguageCache.AddToCacheDefaultLanguage(language);
            return(language);
        }
示例#9
0
        void onPlayerModeChanged(Player.Mode playerMode)
        {
            if (playerMode == Player.Mode.LockedPiloting)
            {
                checkEnabled();

                if (enabled && Main.config.showHotkeyMessage)
                {
                    LanguageCache.GetButtonFormat(L10n.str("ids_enterVehicleMessage"), Main.config.hotkey).onScreen();
                }
            }
            else if (playerMode == Player.Mode.Normal)
            {
                enabled = false;
            }
        }
示例#10
0
        public static string GetInputForSlot(int slotID, GameInput.BindingSet binding = GameInput.BindingSet.Primary)
        {
            if (slotID < Player.quickSlotButtonsCount)
            {
                string inputName = GameInput.GetBindingName(GameInput.Button.Slot1 + slotID, binding);
                string input     = LanguageCache.GetButtonFormat("{0}", GameInput.Button.Slot1 + slotID);
                return(string.IsNullOrEmpty(inputName) ? string.Empty : input);
            }
            if (slotID < 0 || slotID >= Mod.config.SlotCount)
            {
                return(string.Empty);
            }
            var key = Mod.config.Slots[slotID.ToString()][(int)binding];

            return(key);
        }
示例#11
0
        protected virtual async Task <LanguageConfig> GetLanguageListAsync(IDocumentStore store, Project project, string version)
        {
            async Task <LanguageConfig> GetLanguagesAsync()
            {
                return(await store.GetLanguageListAsync(project, version));
            }

            return(await LanguageCache.GetOrAddAsync(
                       project.ShortName,
                       GetLanguagesAsync,
                       () => new DistributedCacheEntryOptions
            {
                AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(24)
            }
                       ));
        }
        static bool Prefix(uGUI_CameraCyclops __instance)
        {
            string rightHand = uGUI.FormatButton(GameInput.Button.RightHand, false, " / ", false);
            string leftHand  = uGUI.FormatButton(GameInput.Button.LeftHand, false, " / ", false);
            string slot1     = uGUI.FormatButton(GameInput.Button.Slot1, false, " / ", false);
            string slot2     = uGUI.FormatButton(GameInput.Button.Slot2, false, " / ", false);
            string slot3     = uGUI.FormatButton(GameInput.Button.Slot3, false, " / ", false);

            var exitText     = LanguageCache.GetButtonFormat("PressToExit", GameInput.Button.Exit);
            var onLightText  = "Lights On (" + rightHand + ")";
            var offLightText = "Lights Off (" + leftHand + ")";
            var selectCamera = "Select Camera (" + slot1 + "/" + slot2 + "/" + slot3 + ")";

            __instance.stringControls = "\n" + exitText + "\n" + offLightText + " / " + onLightText + "\n" + selectCamera;
            return(false);
        }
        private LanguageCache GetLanguageCache()
        {
            var cache = cacheWrapper.Get <LanguageCache>("CachingLanguageGatewayDecorator_" + masterKey);

            if (cache == null)
            {
                cache = new LanguageCache
                {
                    LanguageCodes = new Dictionary <string, ILanguage>(),
                    LanguageItems = new Dictionary <int, ILanguage>()
                };
                cacheWrapper.Add("CachingLanguageGatewayDecorator_" + masterKey, cache, new CacheOptions {
                    SlidingExpiration = slidingExpiration
                });
            }
            return(cache);
        }
 private static bool Prefix(PlayerTool __instance, ref string __result)
 {
     if (__instance is Seaglide)
     {
         var    seaglide   = __instance as Seaglide;
         string altKey     = GameInput.GetBindingName(GameInput.Button.AltTool, GameInput.BindingSet.Primary);
         bool   mapShowing = seaglide.toggleLights.lightState != 2;
         __result = string.Format("{0} Map (<color=#ADF8FFFF>{1}</color>)", mapShowing ? "Hide" : "Show", altKey);
         return(false);
     }
     else if (Mod.config.FixScannerToolTextBug && __instance is ScannerTool)
     {
         __result = LanguageCache.GetButtonFormat("ScannerSelfScanFormat", GameInput.Button.AltTool);
         return(false);
     }
     return(true);
 }
        public static Language GetLanguage(int id)
        {
            var cachedResult = LanguageCache.CheckInCacheLanguageId(id);

            if (cachedResult != null)
            {
                return(cachedResult);
            }
            var languageList = GetLanguageList();
            var language     = languageList.FirstOrDefault(item => item.Id == id);

            if (language == null)
            {
                language = GetDefaultLanguage();
            }
            LanguageCache.AddToCacheLanguageId(id, language);
            return(language);
        }
示例#16
0
 private static bool Prefix(PlayerTool __instance, ref string __result)
 {
     if (__instance is Seaglide)
     {
         var    seaglide   = __instance as Seaglide;
         bool   mapShowing = seaglide.toggleLights.lightState != 2;
         string command    = mapShowing
                                 ? "Hide Map (<color=#ADF8FFFF>{0}</color>)"
                                 : "Show Map (<color=#ADF8FFFF>{0}</color>)";
         __result = LanguageCache.GetButtonFormat(command, GameInput.Button.AltTool);
         return(false);
     }
     else if (Mod.config.FixScannerToolTextBug && __instance is ScannerTool)
     {
         __result = LanguageCache.GetButtonFormat("ScannerSelfScanFormat", GameInput.Button.AltTool);
         return(false);
     }
     return(true);
 }
示例#17
0
        private static void Postfix(Exosuit __instance)
        {
            bool   hasPropCannon   = Exosuit_rightArm.GetValue(__instance) is ExosuitPropulsionArm || Exosuit_leftArm.GetValue(__instance) is ExosuitPropulsionArm;
            var    toggleLights    = __instance.GetComponent <ToggleLights>();
            string lightsString    = LanguageCache.GetButtonFormat((!toggleLights.lightsActive) ? "Lights On (<color=#ADF8FFFF>{0}</color>)" : "Lights Off (<color=#ADF8FFFF>{0}</color>)", lightsBinding);
            string exitString      = string.Join("\n", ((string)Exosuit_uiStringPrimary.GetValue(__instance)).Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries).Take(1).ToArray());
            var    primaryString   = string.Join("\n", ((string)Exosuit_uiStringPrimary.GetValue(__instance)).Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries).Skip(1).ToArray()) + System.Environment.NewLine + lightsString;
            var    secondaryString = string.Empty;

            if (hasPropCannon)
            {
                lightsBinding   = GameInput.Button.Deconstruct;
                secondaryString = exitString;
            }
            else
            {
                lightsBinding = GameInput.Button.AltTool;
                primaryString = primaryString + System.Environment.NewLine + exitString;
            }
            HandReticle.main.SetUseTextRaw(primaryString, secondaryString);
        }
            private static void Postfix(SeaMoth __instance)
            {
                if (__instance.GetPilotingMode() && !Player.main.GetPDA().isInUse)
                {
                    string button2 = LanguageCache.GetButtonFormat("Change Torpedo (<color=#ADF8FFFF>{0}</color>)", GameInput.Button.Deconstruct);

                    string button3      = "";
                    var    toggledSlots = (bool[])Vehicle_quickSlotToggled.GetValue(__instance);
                    for (var i = 0; i < toggledSlots.Length; ++i)
                    {
                        if (toggledSlots[i] && __instance.GetSlotItem(i) != null && __instance.GetSlotItem(i).item.GetTechType() == TechType.SeamothTorpedoModule)
                        {
                            button3 = LanguageCache.GetButtonFormat("\nAccess Torpedo Storage (<color=#ADF8FFFF>{0}</color>)", GameInput.Button.AltTool);
                            break;
                        }
                    }

                    string buttonFormat = LanguageCache.GetButtonFormat("PressToExit", GameInput.Button.Exit);
                    HandReticle.main.SetUseTextRaw(buttonFormat, button2 + button3);
                }
            }
示例#19
0
        private void UpdateUIText(bool hasPropCannon)
        {
            if (!hasInitStrings || lastHasPropCannon != hasPropCannon)
            {
                sb.Length = 0;
                sb.AppendLine(LanguageCache.GetButtonFormat("PressToExit", GameInput.Button.Exit));

                if (hasPropCannon)
                {
                    string[] splittedHint = LanguageCache.GetButtonFormat("PropulsionCannonToRelease", GameInput.Button.AltTool).Split(' ');

                    sb.AppendLine($"{splittedHint[0]} {splittedHint.GetLast()}");
                }

                lastHasPropCannon = hasPropCannon;
                uiStringPrimary   = sb.ToString();
            }

            HandReticle.main.SetTextRaw(HandReticle.TextType.Use, uiStringPrimary);
            hasInitStrings = true;
        }
示例#20
0
        public static void Set(string language, string key, string text)
        {
            if (string.IsNullOrEmpty(language))
            {
                throw new ArgumentException("language is null or empty");
            }
            if (string.IsNullOrEmpty(key))
            {
                throw new ArgumentException("key is null or empty");
            }
            if (string.IsNullOrEmpty(text))
            {
                throw new ArgumentException("text is null or empty");
            }
            if (!majorVocabulary.ContainsKey(language))
            {
                throw new ArgumentException("language is invalid");
            }

            majorVocabulary[language][key] = text;
            LanguageCache.OnLanguageChanged();
        }
        public static Language GetLanguage(string code)
        {
            if (string.IsNullOrWhiteSpace(code))
            {
                return(GetDefaultLanguage());
            }
            var cachedResult = LanguageCache.CheckInCacheLanguageCode(code);

            if (cachedResult != null)
            {
                return(cachedResult);
            }
            var languageList = GetLanguageList();
            var language     = languageList.FirstOrDefault(item => item.Code.ToLowerInvariant() == code.ToLowerInvariant());

            if (language == null)
            {
                language = GetDefaultLanguage();
            }
            LanguageCache.AddToCacheLanguageCode(code, language);
            return(language);
        }
 public AddLanguageFilter(ILogger <AddLanguageFilter> logger, LanguageCache languageCache)//, IConfigurationRoot configuration)
 {
     _cache           = languageCache;
     _defaultLanguage = "en-GB"; //TODO: Load from appsettings.json
 }
		private LanguageCache GetLanguageCache()
		{
			var cache =  cacheWrapper.Get<LanguageCache>("CachingLanguageGatewayDecorator_" + masterKey);
			if (cache == null)
			{
				cache = new LanguageCache 
				{ 
					LanguageCodes = new Dictionary<string, ILanguage>(), 
					LanguageItems = new Dictionary<int, ILanguage>() 
				};
				cacheWrapper.Add("CachingLanguageGatewayDecorator_" + masterKey, cache, new CacheOptions { SlidingExpiration = slidingExpiration });
			}
			return cache;
		}
示例#24
0
 public static void Clear()
 {
     majorVocabulary.ForEach(x => x.Value.Clear());
     LanguageCache.OnLanguageChanged();
 }
        public OpenApiOrganizationTranslatorTests()
        {
            SetupTypesCacheMock <PhoneNumberType>(typeof(PhoneNumberTypeEnum));
            SetupTypesCacheMock <ServiceChargeType>(typeof(ServiceChargeTypeEnum));
            SetupTypesCacheMock <AddressCharacter>(typeof(AddressCharacterEnum));
            SetupTypesCacheMock <AddressType>(typeof(AddressTypeEnum));
            SetupTypesCacheMock <OrganizationType>(typeof(OrganizationTypeEnum));
            SetupTypesCacheMock <NameType>(typeof(NameTypeEnum));
            SetupTypesCacheMock <ProvisionType>(typeof(ProvisionTypeEnum));

            translators = new List <object>()
            {
                new OpenApiOrganizationTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OrganizationTypeStringTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationNameTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiOrganizationDisplayNameTypeTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new NameTypeCodeTranslator(ResolveManager, TranslationPrimitives),
                new PublishingStatusTypeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationDescriptionTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new DescriptionTypeCodeTranslator(ResolveManager, TranslationPrimitives),
                new ServiceChargeTypeCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationWebPageTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new WebPageTypeCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationAddressTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new AddressTypeCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiStreetAddressTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new CountryCodeTranslator(ResolveManager, TranslationPrimitives),
                new DataAccess.Translators.OpenApi.Organizations.OpenApiOrganizationServiceTranslator(ResolveManager, TranslationPrimitives),
                new ProvisionTypeCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationInTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new LanguageCodeTranslator(ResolveManager, TranslationPrimitives),
                new MunicipalityCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiBusinessTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiWebPageTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiAddressInTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiPostalCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiServiceChannelAttachmentTranslator(ResolveManager, TranslationPrimitives),
                new PhoneNumberTypeCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationPhoneTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new EmailTranslator(ResolveManager, TranslationPrimitives),
                new OrganizationEmailDataTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationEmailTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiOrganizationEmailEmailTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiEmailItemTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiAddressDescriptionTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiEmailTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new PhoneTranslator(ResolveManager, TranslationPrimitives, CacheManager.TypesCache),
                new OpenApiPhoneTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiOrganizationAddressWithCoordinatesTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiMunicipalityTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiMunicipalityNameTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiDialCodeTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiWebPageWithOrderNumberTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiPostalCodeNameTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiOrganizationLanguageAvailabilityTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiAddressTranslator(ResolveManager, TranslationPrimitives, CacheManager.TypesCache),
                new OpenApiPostOfficeBoxNameTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiAddressPostOfficeBoxTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiAddressStreetTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiProducerOrganizationServiceTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiServiceItemTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiStreetInTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiPostOfficeBoxTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiAddressForeignTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiAddressForeignTextNameTranslator(ResolveManager, TranslationPrimitives, CacheManager),
                new OpenApiPostOfficeBoxInTranslator(ResolveManager, TranslationPrimitives),
                new OpenApiStreetWithCoordinatesTranslator(ResolveManager, TranslationPrimitives, CacheManager.TypesCache)
            };

            fiId = LanguageCache.Get(LanguageCode.fi.ToString());
            svId = LanguageCache.Get(LanguageCode.sv.ToString());
        }