private void InitializePostprocessors()
        {
            /*
             * Combine Dynamic and Static Postprocessors into one ordered list - the user is unlikely to be interested in *how* we're registering the Assets Postprocessors under the hood.
             */
            SortedSet <AssetPostprocessor.PostprocessorInfo> allAssetImportProcessors = new SortedSet <AssetPostprocessor.PostprocessorInfo>(new AssetPostprocessingInternal.CompareAssetImportPriority());

            allAssetImportProcessors.UnionWith(((AssetImporter)target).GetDynamicPostprocessors());
            allAssetImportProcessors.UnionWith(AssetImporter.GetStaticPostprocessors(target.GetType()).Where(t => t.Type.Assembly != typeof(AssetImporter).Assembly));

            m_Postprocessors = new List <PostprocessorInfo>();
            foreach (var processor in allAssetImportProcessors)
            {
                m_Postprocessors.Add(new PostprocessorInfo()
                {
                    Expanded = false,
                    Methods  = processor.Methods,
                    Name     = processor.Type.FullName
                });
            }

            m_ProcessorsAreExpanded = new SavedBool("AssetImporterEditor_DisplayProcessors", true);
            m_PostprocessorUI       = new ReorderableList(m_Postprocessors, typeof(string), false, true, false, false)
            {
                elementHeightCallback = index => m_Postprocessors[index].Expanded ? EditorGUIUtility.singleLineHeight * (m_Postprocessors[index].Methods.Length + 1) + 3f : EditorGUIUtility.singleLineHeight + 3f,
                drawElementCallback   = DrawPostprocessorElement,
                headerHeight          = ReorderableList.Defaults.minHeaderHeight,
                m_IsEditable          = false,
                multiSelect           = false,
                footerHeight          = ReorderableList.Defaults.minHeaderHeight,
            };
        }
Esempio n. 2
0
 private void OnEnable()
 {
     _target = (LevelObject)target;
     _drawNetworkBehaviour = new SavedBool($"{_target.GetType()}.DrawNetworkBehaviour", false);
     _drawReferences       = new SavedBool($"{_target.GetType()}.DrawReferences", false);
     EditorUtility.SetDirty(target);
 }
Esempio n. 3
0
        public static void setStatActive(string catname, string statname, bool active)
        {
            string    savedstatname = m_settingsprefix + "Stat_" + catname + "_" + statname + "_Active";
            SavedBool isactive      = new SavedBool(savedstatname, Settings.gameSettingsFile, true, true);

            isactive.value = active;
        }
Esempio n. 4
0
        /// <summary>
        ///     Draw a Extras GUI section that has additional options for any object targeted GUI Editor.
        /// </summary>
        public static void DrawTargetExtras(Object target)
        {
            // Load last extras state
            var drawExtras = new SavedBool($"{target.GetType().Name}.Extras", false);

            drawExtras.value = EditorGUILayout.BeginFoldoutHeaderGroup(drawExtras.value, "Extras");
            if (drawExtras.value)
            {
                EditorGUILayout.Space();
                EditorGUILayout.Space();

                GUILayout.Label("Asset Database", EditorStyles.boldLabel);
                EditorGUI.indentLevel++;
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Write on Disc (Force)");
                if (GUILayout.Button("Apply"))
                {
                    // Should we set this element as dirty?
                    EditorUtility.SetDirty(target);

                    // Refresh the AssetDattabase and save...
                    AssetDatabase.Refresh();
                    AssetDatabase.SaveAssets();
                }
                EditorGUILayout.EndHorizontal();

                EditorGUI.indentLevel--;
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFoldoutHeaderGroup();
        }
Esempio n. 5
0
        private void DrawFoldoutGroup(IGrouping <string, SerializedProperty> foldoutGroup)
        {
            var key = foldoutGroup.Key;

            if (!_foldoutStates.ContainsKey(key))
            {
                var savedBool = new SavedBool($"{target.GetInstanceID()}.{key}", false);
                _foldoutStates.Add(key, savedBool);
            }

            _foldoutStates[key].Value = EditorGUILayout.Foldout(_foldoutStates[key].Value, key, EditorUtil.FoldoutStyle());

            if (!_foldoutStates[key].Value)
            {
                return;
            }

            foreach (var field in foldoutGroup)
            {
                if (field.IsVisible())
                {
                    using (new EditorGUI.IndentLevelScope(EditorUtil.FoldoutIndent))
                    {
                        DrawSerializedProperty(field, true);
                    }
                }
            }
        }
Esempio n. 6
0
        void OnEnable()
        {
            m_Analytics            = Analytics.Renderer2DAnalytics.instance;
            m_ModifiedLights       = new HashSet <Light2D>();
            m_SortingLayerDropDown = new SortingLayerDropDown();

            m_BlendingSettingsFoldout   = new SavedBool($"{target.GetType()}.2DURPBlendingSettingsFoldout", false);
            m_ShadowsSettingsFoldout    = new SavedBool($"{target.GetType()}.2DURPShadowsSettingsFoldout", false);
            m_VolumetricSettingsFoldout = new SavedBool($"{target.GetType()}.2DURPVolumetricSettingsFoldout", false);
            m_NormalMapsSettingsFoldout = new SavedBool($"{target.GetType()}.2DURPNormalMapsSettingsFoldout", false);

            m_LightType                    = serializedObject.FindProperty("m_LightType");
            m_LightColor                   = serializedObject.FindProperty("m_Color");
            m_LightIntensity               = serializedObject.FindProperty("m_Intensity");
            m_UseNormalMap                 = serializedObject.FindProperty("m_UseNormalMap");
            m_ShadowIntensity              = serializedObject.FindProperty("m_ShadowIntensity");
            m_ShadowIntensityEnabled       = serializedObject.FindProperty("m_ShadowIntensityEnabled");
            m_ShadowVolumeIntensity        = serializedObject.FindProperty("m_ShadowVolumeIntensity");
            m_ShadowVolumeIntensityEnabled = serializedObject.FindProperty("m_ShadowVolumeIntensityEnabled");
            m_ApplyToSortingLayers         = serializedObject.FindProperty("m_ApplyToSortingLayers");
            m_VolumetricIntensity          = serializedObject.FindProperty("m_LightVolumeIntensity");
            m_VolumetricIntensityEnabled   = serializedObject.FindProperty("m_LightVolumeIntensityEnabled");
            m_BlendStyleIndex              = serializedObject.FindProperty("m_BlendStyleIndex");
            m_FalloffIntensity             = serializedObject.FindProperty("m_FalloffIntensity");
            m_NormalMapZDistance           = serializedObject.FindProperty("m_NormalMapDistance");
            m_NormalMapQuality             = serializedObject.FindProperty("m_NormalMapQuality");
            m_LightOrder                   = serializedObject.FindProperty("m_LightOrder");
            m_OverlapOperation             = serializedObject.FindProperty("m_OverlapOperation");

            // Point Light
            m_PointInnerAngle            = serializedObject.FindProperty("m_PointLightInnerAngle");
            m_PointOuterAngle            = serializedObject.FindProperty("m_PointLightOuterAngle");
            m_PointInnerRadius           = serializedObject.FindProperty("m_PointLightInnerRadius");
            m_PointOuterRadius           = serializedObject.FindProperty("m_PointLightOuterRadius");
            m_DeprecatedPointLightSprite = serializedObject.FindProperty("m_DeprecatedPointLightCookieSprite");

            // Shape Light
            m_ShapeLightParametricRadius = serializedObject.FindProperty("m_ShapeLightParametricRadius");
            m_ShapeLightFalloffSize      = serializedObject.FindProperty("m_ShapeLightFalloffSize");
            m_ShapeLightParametricSides  = serializedObject.FindProperty("m_ShapeLightParametricSides");
            m_ShapeLightSprite           = serializedObject.FindProperty("m_LightCookieSprite");

            m_AnyBlendStyleEnabled = false;
            var blendStyleIndices = new List <int>();
            var blendStyleNames   = new List <string>();

            var rendererData = Light2DEditorUtility.GetRenderer2DData();

            if (rendererData != null)
            {
                for (int i = 0; i < rendererData.lightBlendStyles.Length; ++i)
                {
                    blendStyleIndices.Add(i);

                    ref var blendStyle = ref rendererData.lightBlendStyles[i];
                    blendStyleNames.Add(blendStyle.name);
                    m_AnyBlendStyleEnabled = true;
                }
            }
Esempio n. 7
0
 private SavedBool GetSavedBool(T i)
 {
     if (!cachedBoolSaved.ContainsKey(i))
     {
         cachedBoolSaved[i] = new SavedBool(i.ToString(), thisFileName, getDefaultBoolValueForProperty(i), true);
     }
     return(cachedBoolSaved[i]);
 }
Esempio n. 8
0
 public mySavedBool(string name, bool defaultvalue)
 {
     f = new SavedBool(name, Settings.gameSettingsFile, defaultvalue, true);
     if (!CSLStatsPanelConfigSettings.configurationsettings.Contains(f))
     {
         CSLStatsPanelConfigSettings.configurationsettings.Add(f);
     }
 }
        // on open event
        public override void OnOpenGUI(Material material, MaterialEditor materialEditor)
        {
            var m_HeaderStateKey = k_KeyPrefix + material.shader.name; // Create key string for editor prefs

            m_GeometryFoldout = new SavedBool($"{m_HeaderStateKey}.GeometryOptionsFoldout", true);

            base.OnOpenGUI(material, materialEditor);
        }
Esempio n. 10
0
        /// <summary> Draws a foldout header </summary>
        /// <param name="title"> The title of the header </param>
        /// <param name="state"> The state of the header </param>
        /// <param name="isBoxed"> Specifies whether to contain the header in a box style [optional]. </param>
        /// <returns>return the state of the foldout header</returns>
        static bool DrawHeaderFoldout(GUIContent title, SavedBool state, bool isBoxed = false)
        {
            const float height         = 17f;
            var         backgroundRect = GUILayoutUtility.GetRect(1f, height);

            var labelRect = backgroundRect;

            labelRect.xMin += 16f;
            labelRect.xMax -= 20f;

            var foldoutRect = backgroundRect;

            foldoutRect.y     += 1f;
            foldoutRect.width  = 13f;
            foldoutRect.height = 13f;
            foldoutRect.x      = labelRect.xMin + 15 * (EditorGUI.indentLevel - 1); //fix for preset

            // Background rect should be full-width
            backgroundRect.xMin   = 0f;
            backgroundRect.width += 4f;

            if (isBoxed)
            {
                labelRect.xMin       += 5;
                foldoutRect.xMin     += 5;
                backgroundRect.xMin   = EditorGUIUtility.singleLineHeight;
                backgroundRect.width -= 1;
            }

            var lineRect = new Rect(backgroundRect);

            lineRect.height = EditorGUIUtility.standardVerticalSpacing;
            float lineTint = EditorGUIUtility.isProSkin ? 0.01f : 1f;

            // Background
            float backgroundTint = EditorGUIUtility.isProSkin ? 0.1f : 1f;

            EditorGUI.DrawRect(backgroundRect, new Color(backgroundTint, backgroundTint, backgroundTint, 0.2f));

            //line
            EditorGUI.DrawRect(lineRect, new Color(lineTint, lineTint, lineTint, 0.2f));

            // Title
            EditorGUI.LabelField(labelRect, title, EditorStyles.boldLabel);

            // Active checkbox
            state.value = GUI.Toggle(foldoutRect, state.value, GUIContent.none, EditorStyles.foldout);

            var e = Event.current;

            if (e.type == EventType.MouseDown && backgroundRect.Contains(e.mousePosition) && e.button == 0)
            {
                state.value = !state;
                e.Use();
            }

            return(state);
        }
Esempio n. 11
0
 private void CreateFoldoutBools()
 {
     m_Foldouts = new SavedBool[m_RenderPasses.arraySize];
     for (var i = 0; i < m_RenderPasses.arraySize; i++)
     {
         var name = m_RenderPasses.serializedObject.targetObject.name;
         m_Foldouts[i] =
             new SavedBool($"{name}.ELEMENT{i.ToString()}.PassFoldout", false);
     }
 }
Esempio n. 12
0
        public static bool isStatActive(string catname, string statname)
        {
            string    savedstatname = m_settingsprefix + "Stat_" + catname + "_" + statname + "_Active";
            SavedBool isactive      = new SavedBool(savedstatname, Settings.gameSettingsFile, true, true);

            if (!configurationsettings.Contains(isactive))
            {
                configurationsettings.Add(isactive);
            }
            return(isactive.value);
        }
        private void OnEnable()
        {
            _target = (SharedEditorData)target;

            _drawIdentitySettings = new SavedBool($"{nameof(SharedEditorDataEditor)}.DrawIdentitySettings", false);
            _drawContent          = new SavedBool($"{nameof(SharedEditorDataEditor)}.DrawContent", false);

            UniqueGUID      = serializedObject.FindProperty(nameof(UniqueGUID));
            LevelSpawnNames = serializedObject.FindProperty(nameof(LevelSpawnNames));
            UniqueDatabases = serializedObject.FindProperty(nameof(UniqueDatabases));
        }
Esempio n. 14
0
        public void Awake()
        {
            Debug.LogWarningFormat("TLMRv" + TLMSingleton.majorVersion + " LOADING TLM ");
            SettingsFile tlmSettings = new SettingsFile
            {
                fileName = TLMConfigWarehouse.CONFIG_FILENAME
            };

            Debug.LogWarningFormat("TLMRv" + TLMSingleton.majorVersion + " SETTING FILES");
            try
            {
                GameSettings.AddSettingsFile(tlmSettings);
            }
            catch (Exception e)
            {
                SettingsFile tryLoad = GameSettings.FindSettingsFileByName(TLMConfigWarehouse.CONFIG_FILENAME);
                if (tryLoad == null)
                {
                    Debug.LogErrorFormat("TLMRv" + majorVersion + " SETTING FILES FAIL!!! ");
                    Debug.LogError(e.Message);
                    Debug.LogError(e.StackTrace);
                }
                else
                {
                    tlmSettings = tryLoad;
                }
            }
            Debug.LogWarningFormat("TLMRv" + TLMSingleton.majorVersion + " LOADING VARS ");

            m_savedPalettes = new SavedString("savedPalettesTLM", Settings.gameSettingsFile, "", true);
            m_savedShowNearLinesInCityServicesWorldInfoPanel  = new SavedBool("showNearLinesInCityServicesWorldInfoPanel", Settings.gameSettingsFile, true, true);
            m_savedShowNearLinesInZonedBuildingWorldInfoPanel = new SavedBool("showNearLinesInZonedBuildingWorldInfoPanel", Settings.gameSettingsFile, false, true);
            m_savedOverrideDefaultLineInfoPanel = new SavedBool("TLMOverrideDefaultLineInfoPanel", Settings.gameSettingsFile, true, true);
            m_debugMode  = new SavedBool("TLMdebugMode", Settings.gameSettingsFile, false, true);
            m_betaMapGen = new SavedBool("TLMbetaMapGen", Settings.gameSettingsFile, false, true);
            m_showDistanceInLinearMap = new SavedBool("TLMshowDistanceInLinearMap", Settings.gameSettingsFile, true, true);

            if (m_debugMode.value)
            {
                TLMUtils.doLog("currentSaveVersion.value = {0}, fullVersion = {1}", currentSaveVersion.value, fullVersion);
            }
            if (currentSaveVersion.value != fullVersion)
            {
                needShowPopup = true;
            }
            toggleOverrideDefaultLineInfoPanel(m_savedOverrideDefaultLineInfoPanel.value);
            LocaleManager.eventLocaleChanged += new LocaleManager.LocaleChangedHandler(this.autoLoadTLMLocale);
            if (instance != null)
            {
                GameObject.Destroy(instance);
            }
            loadTLMLocale(false);
            onAwake?.Invoke();
        }
Esempio n. 15
0
        bool IAmAware.IsFullyAware()
        {
#if DEVELOPER
            var oneShotAutoInstallHelper = new SavedBool(name: $"{Versioning.PACKAGE_NAME}.helper-install",
                                                         fileName: Settings.userGameState,
                                                         def: false,
                                                         autoUpdate: true);
            return(oneShotAutoInstallHelper && !firstRun);
#else
            return(!firstRun);
#endif
        }
Esempio n. 16
0
        private void DrawDatabaseRecord <TDatabase, TItem>(SharedEditorData data) where TDatabase : DatabaseManager <TItem> where TItem : DatabaseItem
        {
            string perfName = $"{nameof(SharedContentEditorWindow)}.{data.UniqueGUID}.{typeof(TDatabase).Name}";

            EditorGUIUtility.labelWidth += 150;
            var records = data.GetRecords <TDatabase, TItem>();

            if (records != null)
            {
                foreach (var c in records)
                {
                    var drawDatabase = new SavedBool($"{perfName}.{c.Name}", false);
                    drawDatabase.value = EditorGUILayout.BeginFoldoutHeaderGroup(drawDatabase.value, c.Name);
                    if (drawDatabase.value)
                    {
                        EditorGUILayout.Space();
                        EditorGUILayout.Space();
                        EditorGUI.indentLevel++;
                        foreach (var r in c.Records)
                        {
                            var drawRecord = new SavedBool($"{perfName}.{c.Name}.{r.Identity}", false);
                            drawRecord.value = EditorGUILayout.Foldout(drawRecord.value, r.Name);
                            if (drawRecord.value)
                            {
                                EditorGUI.indentLevel++;
                                EditorGUILayout.LabelField("Name", r.Name);
                                EditorGUILayout.LabelField("Identity", r.Identity.ToString());
                                var drawProperties = new SavedBool($"{perfName}.{c.Name}.{r.Identity}.Properties", false);
                                drawProperties.value = EditorGUILayout.Foldout(drawProperties.value, "Properties");
                                if (drawProperties.value)
                                {
                                    EditorGUI.indentLevel++;
                                    foreach (var p in r.Properties)
                                    {
                                        EditorGUILayout.LabelField(p.Key, p.Value);
                                    }
                                    EditorGUI.indentLevel--;
                                    EditorGUILayout.Space();
                                }
                                EditorGUI.indentLevel--;
                                EditorGUILayout.Space();
                            }
                        }

                        EditorGUI.indentLevel--;
                        EditorGUILayout.Space();
                    }
                    EditorGUILayout.EndFoldoutHeaderGroup();
                }
            }
            EditorGUIUtility.labelWidth -= 150;
        }
Esempio n. 17
0
        public virtual void OnOpenGUI(Material material, MaterialEditor materialEditor)
        {
            // Foldout states
            m_HeaderStateKey        = k_KeyPrefix + material.shader.name; // Create key string for editor prefs
            m_SurfaceOptionsFoldout = new SavedBool($"{m_HeaderStateKey}.SurfaceOptionsFoldout", true);
            m_SurfaceInputsFoldout  = new SavedBool($"{m_HeaderStateKey}.SurfaceInputsFoldout", true);
            m_AdvancedFoldout       = new SavedBool($"{m_HeaderStateKey}.AdvancedFoldout", false);

            foreach (var obj in materialEditor.targets)
            {
                MaterialChanged((Material)obj);
            }
        }
Esempio n. 18
0
        static void AutoEnableOnce(bool deferred)
        {
            if (deferred)
            {
                Singleton <PluginManager> .instance.eventPluginsChanged -= ActiveAutoEnableOnce;
            }

#if DEBUG
            UnityEngine.Debug.LogError($"[{Versioning.FULL_PACKAGE_NAME}] In Mod.AutoEnableOnce({deferred}) plugins={mainMod != null}\n{(new System.Diagnostics.StackTrace(0, true)).ToString()}");
#endif

            if (mainMod != null)
            {
                bool enabled = false;
                if (!Versioning.IsObsolete(Versioning.Obsolescence.AUTO_MOD_ENABLE, "Auto-Mod Enabling for compatibility with old CitiesHarmony.API"))
                {
                    /* FIXME: When auto-subscribing, the API should also enable the mod.
                     * Older API versions do not enable it, so Enabling self here, for compatibility with old APIs.
                     * After a few updates with this warning, this behaviour should be removed.
                     */

                    {
#if DEBUG
                        UnityEngine.Debug.Log($"[{Versioning.FULL_PACKAGE_NAME}] Found - {mainMod.name} - enabled={mainMod.isEnabled} - {mainMod.assembliesString}");
#endif
                        if (mainMod.ContainsAssembly(Assembly.GetExecutingAssembly()))
                        {
                            var oneShotAutoEnable = new SavedBool(name: mainMod.name + mainMod.modPath.GetHashCode().ToString() + ".enabled",
                                                                  fileName: Settings.userGameState,
                                                                  def: false,
                                                                  autoUpdate: true);

                            if (!oneShotAutoEnable && !oneShotAutoEnable.exists)
                            {
                                UnityEngine.Debug.Log($"[{Versioning.FULL_PACKAGE_NAME}] INFO - Mod is disabled in the Content Manager! Self-enabling now.");

                                enabled           = true;
                                firstRun          = true;
                                mainMod.isEnabled = true;

                                /* FIXME: isEnabled vs oneShotAutoEnable.Value = true */
                            }
                            else
                            {
                                UnityEngine.Debug.LogWarning($"[{Versioning.FULL_PACKAGE_NAME}] WARNING - Mod is disabled in the Content Manager! Self-enabling has already been used.");
                            }
                        }
                    }
                }
            }
        }
Esempio n. 19
0
        protected virtual void OnEnable()
        {
            if (target != null)
            {
                var pf = new PropertyFinder <RecorderSettings>(serializedObject);
                m_CaptureEveryNthFrame = pf.Find(w => w.captureEveryNthFrame);
                m_FileNameGenerator    = pf.Find(w => w.fileNameGenerator);
                m_Take = pf.Find(w => w.take);

                showFormat     = new SavedBool($"{target.GetType()}.showFormat", true);
                showOutputFile = new SavedBool($"{target.GetType()}.showOutputFile", true);;
                showCapture    = new SavedBool($"{target.GetType()}.showCapture", true);;
            }
        }
Esempio n. 20
0
 // From ModTools by BloodyPenguin
 // https://github.com/bloodypenguin/Skylines-ModTools
 private static void SetMouseScrolling(bool isEnabled)
 {
     try
     {
         if (mouseWheelZoom == null)
         {
             mouseWheelZoom = GetPrivate <SavedBool>(ToolsModifierControl.cameraController, "m_mouseWheelZoom");
         }
         if (mouseWheelZoom.value != isEnabled)
         {
             mouseWheelZoom.value = isEnabled;
         }
     }
     catch (Exception) { }
 }
Esempio n. 21
0
        protected void setToFile(T i, bool?value)
        {
            SavedBool data = GetSavedBool(i);

            if (value == null)
            {
                data.Delete();
            }
            else
            {
                data.value = value.Value;
            }

            eventOnPropertyChanged?.Invoke(i, value, null, null);
        }
Esempio n. 22
0
        void OnEnable()
        {
            m_GeneralSettingsFoldout  = new SavedBool($"{target.GetType()}.GeneralSettingsFoldout", false);
            m_QualitySettingsFoldout  = new SavedBool($"{target.GetType()}.QualitySettingsFoldout", false);
            m_LightingSettingsFoldout = new SavedBool($"{target.GetType()}.LightingSettingsFoldout", false);
            m_ShadowSettingsFoldout   = new SavedBool($"{target.GetType()}.ShadowSettingsFoldout", false);
            m_AdvancedSettingsFoldout = new SavedBool($"{target.GetType()}.AdvancedSettingsFoldout", false);

            m_RendererTypeProp = serializedObject.FindProperty("m_RendererType");
            m_RendererDataProp = serializedObject.FindProperty("m_RendererData");

            m_RequireDepthTextureProp  = serializedObject.FindProperty("m_RequireDepthTexture");
            m_RequireOpaqueTextureProp = serializedObject.FindProperty("m_RequireOpaqueTexture");
            m_OpaqueDownsamplingProp   = serializedObject.FindProperty("m_OpaqueDownsampling");

            m_HDR         = serializedObject.FindProperty("m_SupportsHDR");
            m_HDR_format  = serializedObject.FindProperty("m_HDRformat");
            m_MSAA        = serializedObject.FindProperty("m_MSAA");
            m_RenderScale = serializedObject.FindProperty("m_RenderScale");

            m_MainLightRenderingModeProp       = serializedObject.FindProperty("m_MainLightRenderingMode");
            m_MainLightShadowsSupportedProp    = serializedObject.FindProperty("m_MainLightShadowsSupported");
            m_MainLightShadowmapResolutionProp = serializedObject.FindProperty("m_MainLightShadowmapResolution");

            m_AdditionalLightsRenderingModeProp      = serializedObject.FindProperty("m_AdditionalLightsRenderingMode");
            m_AdditionalLightsPerObjectLimitProp     = serializedObject.FindProperty("m_AdditionalLightsPerObjectLimit");
            m_AdditionalLightShadowsSupportedProp    = serializedObject.FindProperty("m_AdditionalLightShadowsSupported");
            m_AdditionalLightShadowmapResolutionProp = serializedObject.FindProperty("m_AdditionalLightsShadowmapResolution");

            m_ShadowCascadesProp               = serializedObject.FindProperty("m_ShadowCascades");
            m_ShadowCascade2SplitProp          = serializedObject.FindProperty("m_Cascade2Split");
            m_ShadowCascade4SplitProp          = serializedObject.FindProperty("m_Cascade4Split");
            m_ShadowDepthBiasProp              = serializedObject.FindProperty("m_ShadowDepthBias");
            m_ShadowNormalBiasProp             = serializedObject.FindProperty("m_ShadowNormalBias");
            m_SoftShadowsSupportedProp         = serializedObject.FindProperty("m_SoftShadowsSupported");
            m_SemiTransShadowsSupportedProp    = serializedObject.FindProperty("m_SemiTransShadowsSupported");
            m_SSShadowsDownsampleSupportedProp = serializedObject.FindProperty("m_SSSM");
            m_SSShadowsDownsampleSizeProp      = serializedObject.FindProperty("m_SSSMDownsampleSize");
            m_ShadowHWDepthOffsetProp          = serializedObject.FindProperty("m_ShadowHWDepthOffset");
            m_ShadowHWDepthSlopeProp           = serializedObject.FindProperty("m_ShadowHWDepthSlope");

            m_SRPBatcher = serializedObject.FindProperty("m_UseSRPBatcher");
            m_SupportsDynamicBatching    = serializedObject.FindProperty("m_SupportsDynamicBatching");
            m_MixedLightingSupportedProp = serializedObject.FindProperty("m_MixedLightingSupported");

            m_ShaderVariantLogLevel    = serializedObject.FindProperty("m_ShaderVariantLogLevel");
            selectedLightRenderingMode = (LightRenderingMode)m_AdditionalLightsRenderingModeProp.intValue;
        }
Esempio n. 23
0
 public static SavedBool GetOption(string key)
 {
     foreach (var field in typeof(ModSettings).GetFields())
     {
         if (field.FieldType != typeof(SavedBool))
         {
             continue;
         }
         SavedBool ret = field.GetValue(null) as SavedBool;
         if (ret.name == key)
         {
             return(ret);
         }
     }
     throw new ArgumentException($"option key:`{key}` does not exist.");
 }
Esempio n. 24
0
        private static void AddCheckboxPanel(UIHelper group, string mainLabel, SavedBool mainSaved, SavedInt optionsSaved, string[] labels)
        {
            var inProcess    = false;
            var checkBoxes   = new UICheckBox[labels.Length];
            var optionsPanel = default(UIPanel);

            var mainCheckBox = group.AddCheckbox(mainLabel, mainSaved, OnMainChanged) as UICheckBox;

            optionsPanel                             = (group.self as UIComponent).AddUIComponent <UIPanel>();
            optionsPanel.autoLayout                  = true;
            optionsPanel.autoLayoutDirection         = LayoutDirection.Vertical;
            optionsPanel.autoFitChildrenHorizontally = true;
            optionsPanel.autoFitChildrenVertically   = true;
            optionsPanel.autoLayoutPadding           = new RectOffset(25, 0, 0, 5);
            var panelHelper = new UIHelper(optionsPanel);

            for (var i = 0; i < checkBoxes.Length; i += 1)
            {
                var index = i;
                checkBoxes[i] = panelHelper.AddCheckbox(labels[i], optionsSaved == i, (value) => Set(index, value)) as UICheckBox;
            }

            SetVisible();

            void OnMainChanged(bool value)
            {
                mainSaved.value = value;
                SetVisible();
            }

            void SetVisible() => optionsPanel.isVisible = mainSaved;

            void Set(int index, bool value)
            {
                if (!inProcess)
                {
                    inProcess          = true;
                    optionsSaved.value = index;
                    for (var i = 0; i < checkBoxes.Length; i += 1)
                    {
                        checkBoxes[i].isChecked = optionsSaved == i;
                    }
                    inProcess = false;
                }
            }
        }
        /// <inheritdoc />
        protected override void OnEnable()
        {
            // invoke base method
            base.OnEnable();

            _drawMainSettings      = new SavedBool($"{nameof(CharacterSettings)}.DrawMainSettings", false);
            _drawResourcesSettings = new SavedBool($"{nameof(CharacterSettings)}.DrawResourcesSettings", false);
            _drawAnimationSettings = new SavedBool($"{nameof(CharacterSettings)}.DrawAnimationSettings", false);

            Icon             = serializedObject.FindProperty(nameof(Icon));
            LocaleName       = serializedObject.FindProperty(nameof(LocaleName));
            StatisticsPrefab = serializedObject.FindProperty(nameof(StatisticsPrefab));

            ModelPrefab = serializedObject.FindProperty(nameof(ModelPrefab));
            HandsPrefab = serializedObject.FindProperty(nameof(HandsPrefab));

            DefaultAnimatorController = serializedObject.FindProperty(nameof(DefaultAnimatorController));
        }
        public ServiceVehiclesManagerMod()
        {
            Debug.LogWarningFormat("SVMv" + majorVersion + " LOADING SVM ");
            SettingsFile svmSettings = new SettingsFile
            {
                fileName = SVMConfigWarehouse.CONFIG_FILENAME
            };

            Debug.LogWarningFormat("SVMv" + majorVersion + " SETTING FILES");
            try
            {
                GameSettings.AddSettingsFile(svmSettings);
            }
            catch (Exception e)
            {
                SettingsFile tryLoad = GameSettings.FindSettingsFileByName(SVMConfigWarehouse.CONFIG_FILENAME);
                if (tryLoad == null)
                {
                    Debug.LogErrorFormat("SVMv" + majorVersion + " SETTING FILES FAIL!!! ");
                    Debug.LogError(e.Message);
                    Debug.LogError(e.StackTrace);
                }
                else
                {
                    svmSettings = tryLoad;
                }
            }
            m_debugMode = new SavedBool("SVMdebugMode", Settings.gameSettingsFile, typeof(ServiceVehiclesManagerMod).Assembly.GetName().Version.Major == 0, true);
            if (m_debugMode.value)
            {
                Debug.LogWarningFormat("currentSaveVersion.value = {0}, fullVersion = {1}", currentSaveVersion.value, fullVersion);
            }
            if (currentSaveVersion.value != fullVersion)
            {
                needShowPopup = true;
            }
            LocaleManager.eventLocaleChanged += new LocaleManager.LocaleChangedHandler(autoLoadSVMLocale);
            if (instance != null)
            {
                Destroy(instance);
            }
            instance = this;
        }
Esempio n. 27
0
        public UXModRoot(string owner_name, Action <string> log_fun)
        {
            owner_name_ = owner_name;
            log_        = log_fun;

            keybinds_conf_ = new ConfigFile(this, $"{owner_name_}_Keybinds");

            uxmod_conf_     = new ConfigFile(this, "UXMod_Settings");
            OSDPanelVisible = new SavedBool("OSDPanelVisible", uxmod_conf_.conf_name_);
            OSDPanelX       = new SavedInt("OSDPanelX", uxmod_conf_.conf_name_);
            OSDPanelY       = new SavedInt("OSDPanelY", uxmod_conf_.conf_name_);

            // Look for the panel by name
            var o = GameObject.Find(UXMOD_PANEL_NAME);

            panel_ = o != null
                         ? new Either <GameObject, OnScreenDisplayPanel>(o)
                         : new Either <GameObject, OnScreenDisplayPanel>(
                new OnScreenDisplayPanel(this));
        }
Esempio n. 28
0
        /// <summary>
        /// Construct a <see cref="UXLibrary"/> with name of the owner mod and with function to log messages.
        /// </summary>
        /// <param name="ownerName">Name of the mod that is using the library</param>
        /// <param name="logFun"></param>
        public UxLibrary(string ownerName, Action <string> logFun)
        {
            OwnerName = ownerName;
            Log       = logFun;

            KeybindsConf = new ConfigFile(this, $"{OwnerName}_Keybinds");

            UxmodConf       = new ConfigFile(this, SETTINGS_FILE);
            OsdPanelVisible = new SavedBool("OsdPanelVisible", UxmodConf.ConfName);
            OsdPanelX       = new SavedInt("OsdPanelX", UxmodConf.ConfName);
            OsdPanelY       = new SavedInt("OsdPanelY", UxmodConf.ConfName);

            // Look for the panel by name
            var o = GameObject.Find(UXMOD_PANEL_NAME);

            panel_ = o != null
                         ? new Either <GameObject, OnScreenDisplayPanel>(o)
                         : new Either <GameObject, OnScreenDisplayPanel>(
                new OnScreenDisplayPanel(this));
        }
Esempio n. 29
0
        public TransportLinesManagerMod()
        {
            Debug.LogWarningFormat("TLMv" + TransportLinesManagerMod.majorVersion + " LOADING TLM ");
            SettingsFile tlmSettings = new SettingsFile();

            tlmSettings.fileName = TLMConfigWarehouse.CONFIG_FILENAME;
            Debug.LogWarningFormat("TLMv" + TransportLinesManagerMod.majorVersion + " SETTING FILES");
            try
            {
                GameSettings.AddSettingsFile(tlmSettings);
            }
            catch (Exception e)
            {
                Debug.LogErrorFormat("TLMv" + TransportLinesManagerMod.majorVersion + " SETTING FILES FAIL!!! ");
                Debug.LogError(e.Message);
                Debug.LogError(e.StackTrace);
            }
            Debug.LogWarningFormat("TLMv" + TransportLinesManagerMod.majorVersion + " LOADING VARS ");

            m_savedPalettes        = new SavedString("savedPalettesTLM", Settings.gameSettingsFile, "", true);
            m_IPTCompatibilityMode = new SavedBool("TLM_IPTCompabilityMode", Settings.gameSettingsFile, false, true);
            m_savedShowNearLinesInCityServicesWorldInfoPanel  = new SavedBool("showNearLinesInCityServicesWorldInfoPanel", Settings.gameSettingsFile, true, true);
            m_savedShowNearLinesInZonedBuildingWorldInfoPanel = new SavedBool("showNearLinesInZonedBuildingWorldInfoPanel", Settings.gameSettingsFile, false, true);
            m_savedOverrideDefaultLineInfoPanel = new SavedBool("TLMOverrideDefaultLineInfoPanel", Settings.gameSettingsFile, true, true);
            m_debugMode  = new SavedBool("TLMdebugMode", Settings.gameSettingsFile, false, true);
            m_betaMapGen = new SavedBool("TLMbetaMapGen", Settings.gameSettingsFile, false, true);

            if (m_debugMode.value)
            {
                TLMUtils.doLog("currentSaveVersion.value = {0}, fullVersion = {1}", currentSaveVersion.value, fullVersion);
            }
            if (currentSaveVersion.value != fullVersion)
            {
                needShowPopup = true;
            }
            toggleOverrideDefaultLineInfoPanel(m_savedOverrideDefaultLineInfoPanel.value);
            loadTLMLocale(false);
            LocaleManager.eventLocaleChanged += new LocaleManager.LocaleChangedHandler(this.autoLoadTLMLocale);
            instance = this;
        }
Esempio n. 30
0
        public VehicleEffectsMod()
        {
            if (GameSettings.FindSettingsFileByName("VehicleEffectsMod") == null)
            {
                GameSettings.AddSettingsFile(new SettingsFile[]
                {
                    new SettingsFile
                    {
                        fileName = "VehicleEffectsMod"
                    }
                });
            }

            showParseErrors             = new SavedBool("ShowParseErrors", "VehicleEffectsMod", true, true);
            enableEditor                = new SavedBool("EnableEditor", "VehicleEffectsMod", true, true);
            showEditorWarning           = new SavedBool("ShowEditorWarning", "VehicleEffectsMod", true, true);
            ignoreModVehicleParseErrors = new SavedBool("ShowModMissingVehicleErrors", "VehicleEffectsMod", true, true);

            configLoaders.Add(new VehicleEffectsLoader(loadedDefinitions, definitionPackages, vehicleEffectsDefParseErrors));
            configLoaders.Add(new SoundEffectsLoader(vehicleEffectsDefParseErrors, customSounds));
            //configLoaders.Add(new ParticleEffectsLoader(vehicleEffectsDefParseErrors, customParticles));
        }
        private static void Awake()
        {
            if (Mod.DEBUG_LOG_ON) { Helper.dbgLog("I never ever fire. " + DateTime.Now.ToString()); }
            UIView.eventExceptionForwarded += new UIView.ForwardExceptionHandler(OnExceptionForwarded);
            try
            {
                string sc="colossal";
                string ft="firstTime";
                sc = (string)typeof(Settings).GetField("colossal", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).GetValue(sc);
                ft = (string)typeof(Settings).GetField("firstTime", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).GetValue(ft);
                GameSettings.AddSettingsFile(new SettingsFile[]
                {

                    new SettingsFile
                    {
                        systemFileName = sc
                    }
                });
                SavedBool savedBool = new SavedBool(ft, sc, true);
                CODebugBase<LogChannel>.Log(LogChannel.Core, "Telemetry enabled");
                TelemetryKH telemetry = new TelemetryKH();
                if (savedBool)
                {
                    telemetry.AddEvent(Telemetry.Event.FirstLaunch, new Telemetry.Pair[0]);
                    savedBool.value = false;
                }

                if (Helper.HasTelemFlag(Mod.config.TelemetryLevel, Helper.TelemOption.DisableAll) ==false |
                    Helper.HasTelemFlag(Mod.config.TelemetryLevel, Helper.TelemOption.DisableOnAppStart) == false)
                {
                    telemetry.AddEvent(Telemetry.Event.StartGame, new Telemetry.Pair[0]);
                }

                if (Helper.HasTelemFlag(Mod.config.TelemetryLevel, Helper.TelemOption.DisableAll) == false |
                    Helper.HasTelemFlag(Mod.config.TelemetryLevel, Helper.TelemOption.DisableMachineInfo) == false)
                {
                    telemetry.AddEvent(Telemetry.Event.Meta, new Telemetry.Pair[]
                    {
                        new Telemetry.Pair("machineid", SystemInfo.deviceUniqueIdentifier),
                        new Telemetry.Pair("machinemodel", SystemInfo.deviceModel),
                        new Telemetry.Pair("gfxdevice", SystemInfo.graphicsDeviceName),
                        new Telemetry.Pair("gfxversion", SystemInfo.graphicsDeviceVersion),
                        new Telemetry.Pair("gfxmemory", SystemInfo.graphicsMemorySize),
                        new Telemetry.Pair("gfxshadermodel", SystemInfo.graphicsShaderLevel),
                        new Telemetry.Pair("os", SystemInfo.operatingSystem),
                        new Telemetry.Pair("oslanguage", Application.systemLanguage),
                        new Telemetry.Pair("cpu", SystemInfo.processorType),
                        new Telemetry.Pair("cpucount", SystemInfo.processorCount),
                        new Telemetry.Pair("sysmemory", SystemInfo.systemMemorySize)
                    });
                }
                if (Mod.DEBUG_LOG_ON ) { Helper.dbgLog("TMKH Awake doing startup push"); }
                telemetry.Push();
            }
            catch (GameSettingsException ex)
            {
                CODebugBase<LogChannel>.Warn(LogChannel.HTTP, ex.GetType() + ": Game Settings error " + ex.Message);
            }
            catch (Exception ex2)
            {
                CODebugBase<LogChannel>.Warn(LogChannel.HTTP, ex2.GetType() + ": Telemetry event failed " + ex2.Message);
            }
        }