private void SetRenderMode(VegetationRenderMode vegetationRenderMode, BiomeType[] selectedBiomeTypes) { RenderModeProcessor processor = new RenderModeProcessor(vegetationRenderMode); int itemChangeCount = processor.Process(selectedBiomeTypes); // show confirmation messagebox EditorUtility.DisplayDialog("Set Render Mode", "Render mode changed to " + vegetationRenderMode + " for " + itemChangeCount + " items", "Ok"); }
public override void OnInspectorGUI() { serializedObject.Update(); GUILayout.BeginVertical("box"); { EditorGUILayout.HelpBox("Apply settings on selected Biomes", MessageType.Info); EditorGUILayout.LabelField("Batch Filter", GUIStyles.GroupTitleStyle); { EditorGUILayout.PropertyField(modifyAll, new GUIContent("Modify All", "Whether a filter should be used or the changes should be applied to all biomes")); if (!modifyAll.boolValue) { biomeType.intValue = EditorGUILayout.Popup("Biome Type Filter", biomeType.intValue, addedBiomes.GetStrings()); } } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Runtime Spawn", GUIStyles.GroupTitleStyle); { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Enable ALL in Filter")) { SetRuntimeSpawn(true, GetFilteredBiomeTypes()); } if (GUILayout.Button("Disable ALL in Filter")) { SetRuntimeSpawn(false, GetFilteredBiomeTypes()); } } GUILayout.EndHorizontal(); } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Render Mode", GUIStyles.GroupTitleStyle); { vegetationRenderMode = (VegetationRenderMode)EditorGUILayout.EnumPopup("Render Mode", vegetationRenderMode); if (GUILayout.Button("Set Render Mode")) { SetRenderMode(vegetationRenderMode, GetFilteredBiomeTypes()); } } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Refresh", GUIStyles.GroupTitleStyle); { if (GUILayout.Button("Refresh Prefabs")) { RefreshPrefabs(GetFilteredBiomeTypes()); } } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("CleanUp", GUIStyles.GroupTitleStyle); { if (GUILayout.Button("Delete Unused Vegetation Items")) { DeleteUnusedVegetationItems(GetFilteredBiomeTypes()); } } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Quick Access", GUIStyles.GroupTitleStyle); { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Generate Biome SplatMaps")) { GenerateBiomeSplatMaps(); } } GUILayout.EndHorizontal(); } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Touch React Active (NatureManufacture Materials)", GUIStyles.GroupTitleStyle); { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Enable ALL in Filter")) { SetTouchReactActive(true, GetFilteredBiomeTypes()); } if (GUILayout.Button("Disable ALL in Filter")) { SetTouchReactActive(false, GetFilteredBiomeTypes()); } } GUILayout.EndHorizontal(); } } GUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); }
public RenderModeProcessor(VegetationRenderMode vegetationRenderMode) { this.vegetationRenderMode = vegetationRenderMode; }
public override void OnInspectorGUI() { serializedObject.Update(); GUILayout.BeginVertical("box"); { EditorGUILayout.HelpBox("Apply settings on selected Biomes", MessageType.Info); EditorGUILayout.LabelField("Batch Filter", GUIStyles.GroupTitleStyle); { EditorGUILayout.PropertyField(biomeType, new GUIContent("Biome Type", "The Biome type to be used.")); } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Runtime Spawn", GUIStyles.GroupTitleStyle); { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Enable ALL in Filter")) { SetRuntimeSpawn(true, extension.biomeType); } if (GUILayout.Button("Disable ALL in Filter")) { SetRuntimeSpawn(false, extension.biomeType); } } GUILayout.EndHorizontal(); } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Render Mode", GUIStyles.GroupTitleStyle); { vegetationRenderMode = (VegetationRenderMode)EditorGUILayout.EnumPopup("Render Mode", vegetationRenderMode); if (GUILayout.Button("Set Render Mode")) { SetRenderMode(vegetationRenderMode, extension.biomeType); } } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Refresh", GUIStyles.GroupTitleStyle); { if (GUILayout.Button("Refresh Prefabs")) { RefreshPrefabs(extension.biomeType); } } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("CleanUp", GUIStyles.GroupTitleStyle); { if (GUILayout.Button("Delete Unused Vegetation Items")) { DeleteUnusedVegetationItems(extension.biomeType); } } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Quick Access", GUIStyles.GroupTitleStyle); { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Generate Biome SplatMaps")) { GenerateBiomeSplatMaps(); } } GUILayout.EndHorizontal(); } } GUILayout.EndVertical(); GUILayout.BeginVertical("box"); { EditorGUILayout.Space(); EditorGUILayout.LabelField("Touch React Active (NatureManufacture Materials)", GUIStyles.GroupTitleStyle); { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Enable ALL in Filter")) { SetTouchReactActive(true, extension.biomeType); } if (GUILayout.Button("Disable ALL in Filter")) { SetTouchReactActive(false, extension.biomeType); } } GUILayout.EndHorizontal(); } } GUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); }