Exemplo n.º 1
0
        private static bool GetNameBasedInAngle(OutsideConnectionAI __instance, out string __result, ref InstanceID caller, float angle, out bool canTrust)
        {
            Randomizer?randomizer = AdrNeighborhoodExtension.GetRandomizerAt(angle);

            if (randomizer == null)
            {
                __result = OriginalGenerateName(__instance, caller);
                canTrust = false;
                return(false);
            }
            var fileName = AdrController.CurrentConfig.GlobalConfig.NeighborhoodConfig.NamesFile ?? "";

            if (fileName == null || !AdrController.LoadedLocalesNeighborName.ContainsKey(fileName))
            {
                caller.Index = (uint)randomizer.GetValueOrDefault().seed;
                __result     = OriginalGenerateName(__instance, caller);
                canTrust     = true;
                return(false);
            }
            var file = AdrController.LoadedLocalesNeighborName[fileName];

            __result = file[randomizer.GetValueOrDefault().Int32((uint)file.Length)];
            canTrust = true;
            return(false);
        }
Exemplo n.º 2
0
#pragma warning disable IDE0051 // Remover membros privados não utilizados
        private static bool GenerateNameOverride(OutsideConnectionAI __instance, ushort buildingID, ref string __result, ref InstanceID caller)
        {
            var angle = Vector2.zero.GetAngleToPoint(VectorUtils.XZ(BuildingManager.instance.m_buildings.m_buffer[buildingID].m_position));

            LogUtils.DoLog($"[buildingID {buildingID}] angle => {angle}, pos => {BuildingManager.instance.m_buildings.m_buffer[buildingID].m_position} ");

            return(GetNameBasedInAngle(__instance, out __result, ref caller, angle, out _));
        }
Exemplo n.º 3
0
        private static string OriginalGenerateName(OutsideConnectionAI __instance, InstanceID caller)
        {
            CityNameGroups.Environment cityNameGroups = Singleton <BuildingManager> .instance.m_cityNameGroups;
            if (cityNameGroups == null)
            {
                return(null);
            }
            var num = 0;

            if (__instance.m_useCloseNames)
            {
                num += cityNameGroups.m_closeDistance.Length;
            }
            if (__instance.m_useMediumNames)
            {
                num += cityNameGroups.m_mediumDistance.Length;
            }
            if (__instance.m_useFarNames)
            {
                num += cityNameGroups.m_farDistance.Length;
            }
            if (num != 0)
            {
                var randomizer = new Randomizer(caller.Index);
                num = randomizer.Int32((uint)num);
                string text = null;
                if (text == null && __instance.m_useCloseNames)
                {
                    if (num < cityNameGroups.m_closeDistance.Length)
                    {
                        text = cityNameGroups.m_closeDistance[num];
                    }
                    else
                    {
                        num -= cityNameGroups.m_closeDistance.Length;
                    }
                }
                if (text == null && __instance.m_useMediumNames)
                {
                    if (num < cityNameGroups.m_mediumDistance.Length)
                    {
                        text = cityNameGroups.m_mediumDistance[num];
                    }
                    else
                    {
                        num -= cityNameGroups.m_mediumDistance.Length;
                    }
                }
                if (text == null && __instance.m_useFarNames)
                {
                    if (num < cityNameGroups.m_farDistance.Length)
                    {
                        text = cityNameGroups.m_farDistance[num];
                    }
                }
                var range  = Locale.Count("CONNECTIONS_PATTERN", text);
                var format = Locale.Get("CONNECTIONS_PATTERN", text, randomizer.Int32(range));
                var range2 = Locale.Count("CONNECTIONS_NAME", text);
                var arg    = Locale.Get("CONNECTIONS_NAME", text, randomizer.Int32(range2));
                return(StringUtils.SafeFormat(format, arg));
            }
            return(null);
        }