public void Paint(GFoliagePainterArgs args) { IGFoliagePainter p = ActivePainter; if (p == null) { return; } args.Radius = BrushRadius; args.Rotation = BrushRotation; args.Density = BrushDensity; args.EraseRatio = EraseRatio; args.ScaleStrength = ScaleStrength; args.TreeIndices = SelectedTreeIndices; args.GrassIndices = SelectedGrassIndices; args.CustomArgs = CustomPainterArgs; if (SelectedBrushMaskIndex >= 0 && SelectedBrushMaskIndex < BrushMasks.Count) { args.Mask = BrushMasks[SelectedBrushMaskIndex]; } args.Filters = GetComponents <GSpawnFilter>(); ProcessBrushDynamic(ref args); Vector3[] corners = GCommon.GetBrushQuadCorners(args.HitPoint, args.Radius, args.Rotation); args.WorldPointCorners = corners; #if UNITY_EDITOR if (args.MouseEventType == GPainterMouseEventType.Down && args.ShouldCommitNow == false) { Editor_CreateInitialHistoryEntry(args); } #endif IEnumerator <GStylizedTerrain> terrains = GStylizedTerrain.ActiveTerrains.GetEnumerator(); while (terrains.MoveNext()) { if (terrains.Current.GroupId != GroupId && GroupId >= 0) { continue; } GStylizedTerrain t = terrains.Current; p.Paint(t, args); } #if UNITY_EDITOR if (args.MouseEventType == GPainterMouseEventType.Up) { Editor_CreateHistory(args); } #endif }
public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); painter.GroupId = GEditorCommon.ActiveTerrainGroupPopupWithAllOption("Group Id", painter.GroupId); painter.Editor_EnableHistory = EditorGUILayout.Toggle("Enable History", painter.Editor_EnableHistory); painter.EnableTerrainMask = EditorGUILayout.Toggle("Enable Terrain Mask", painter.EnableTerrainMask); DrawPaintMode(); IGFoliagePainter p = painter.ActivePainter; if (p == null) { EditorGUILayout.LabelField("No painter found!", GEditorCommon.WordWrapItalicLabel); } else { DrawInstructionGUI(); DrawBrushMaskGUI(); if (painter.Mode == GFoliagePaintingMode.PaintTree || painter.Mode == GFoliagePaintingMode.ScaleTree) { DrawTreeSelectionGUI(); } else if (painter.Mode == GFoliagePaintingMode.PaintGrass || painter.Mode == GFoliagePaintingMode.ScaleGrass) { DrawGrassSelectionGUI(); } else { DrawTreeSelectionGUI(); DrawGrassSelectionGUI(); } DrawBrushGUI(); DrawFilterGUI(); GEditorCommon.DrawBackupHelpBox(); } if (EditorGUI.EndChangeCheck()) { GUtilities.MarkCurrentSceneDirty(); } }