3333import com .ss .rlib .util .dictionary .DictionaryFactory ;
3434import com .ss .rlib .util .dictionary .ObjectDictionary ;
3535import javafx .collections .ObservableList ;
36- import javafx .event .ActionEvent ;
3736import javafx .geometry .Insets ;
3837import javafx .geometry .Pos ;
3938import javafx .scene .control .CheckBox ;
@@ -538,22 +537,22 @@ protected void createComponents() {
538537 super .createComponents ();
539538
540539 raiseLowerButton = new ToggleButton (StringUtils .EMPTY , new ImageView (Icons .TERRAIN_UP_32 ));
541- raiseLowerButton .setOnAction (this :: switchMode );
540+ raiseLowerButton .setOnAction (event -> switchMode (( ToggleButton ) event . getSource ()) );
542541
543542 smoothButton = new ToggleButton (StringUtils .EMPTY , new ImageView (Icons .TERRAIN_SMOOTH_32 ));
544- smoothButton .setOnAction (this :: switchMode );
543+ smoothButton .setOnAction (event -> switchMode (( ToggleButton ) event . getSource ()) );
545544
546545 roughButton = new ToggleButton (StringUtils .EMPTY , new ImageView (Icons .TERRAIN_ROUGH_32 ));
547- roughButton .setOnAction (this :: switchMode );
546+ roughButton .setOnAction (event -> switchMode (( ToggleButton ) event . getSource ()) );
548547
549548 levelButton = new ToggleButton (StringUtils .EMPTY , new ImageView (Icons .TERRAIN_LEVEL_32 ));
550- levelButton .setOnAction (this :: switchMode );
549+ levelButton .setOnAction (event -> switchMode (( ToggleButton ) event . getSource ()) );
551550
552551 slopeButton = new ToggleButton (StringUtils .EMPTY , new ImageView (Icons .TERRAIN_SLOPE_32 ));
553- slopeButton .setOnAction (this :: switchMode );
552+ slopeButton .setOnAction (event -> switchMode (( ToggleButton ) event . getSource ()) );
554553
555554 paintButton = new ToggleButton (StringUtils .EMPTY , new ImageView (Icons .TERRAIN_PAINT_32 ));
556- paintButton .setOnAction (this :: switchMode );
555+ paintButton .setOnAction (event -> switchMode (( ToggleButton ) event . getSource ()) );
557556
558557 final GridPane buttonsContainer = new GridPane ();
559558 buttonsContainer .setAlignment (Pos .CENTER );
@@ -1133,9 +1132,7 @@ private void changeBrushPower(@NotNull final Float power) {
11331132 * Switch editing mode.
11341133 */
11351134 @ FxThread
1136- private void switchMode (@ NotNull final ActionEvent event ) {
1137-
1138- final ToggleButton source = (ToggleButton ) event .getSource ();
1135+ private void switchMode (@ NotNull final ToggleButton source ) {
11391136
11401137 if (!source .isSelected ()) {
11411138 source .setSelected (true );
@@ -1161,7 +1158,9 @@ private void switchMode(@NotNull final ActionEvent event) {
11611158
11621159 setToolControl (toolControl );
11631160
1164- if (!isShowed ()) return ;
1161+ if (!isShowed ()) {
1162+ return ;
1163+ }
11651164
11661165 EXECUTOR_MANAGER .addJmeTask (() -> {
11671166 final Node cursorNode = getCursorNode ();
@@ -1175,23 +1174,42 @@ private void switchMode(@NotNull final ActionEvent event) {
11751174 public void startPainting (@ NotNull final Object object ) {
11761175 super .startPainting (object );
11771176
1177+ refreshProperties ();
1178+
11781179 final TextureLayerSettings settings = getTextureLayerSettings ();
1180+ final ToggleButton paintButton = getPaintButton ();
11791181
1180- final Terrain terrain = (Terrain ) object ;
1181- final Material material = terrain .getMaterial ();
1182- final MaterialDef materialDef = material .getMaterialDef ();
1182+ if (object instanceof Terrain ) {
11831183
1184- if (materialDef .getAssetName ().equals ("Common/MatDefs/Terrain/TerrainLighting.j3md" )) {
1185- settings .setLayerToScaleName (LAYER_TO_SCALE_NAME );
1186- settings .setLayerToAlphaName (LAYER_TO_ALPHA_NAME );
1187- settings .setLayerToDiffuseName (LAYER_TO_DIFFUSE_NAME );
1188- settings .setLayerToNormalName (LAYER_TO_NORMAL_NAME );
1189- settings .setMaxLevels (12 );
1190- }
1184+ final Terrain terrain = (Terrain ) object ;
1185+ final Material material = terrain .getMaterial ();
1186+ final MaterialDef materialDef = material .getMaterialDef ();
11911187
1192- refreshProperties ();
1188+ if (materialDef .getAssetName ().equals ("Common/MatDefs/Terrain/TerrainLighting.j3md" )) {
1189+ settings .setLayerToScaleName (LAYER_TO_SCALE_NAME );
1190+ settings .setLayerToAlphaName (LAYER_TO_ALPHA_NAME );
1191+ settings .setLayerToDiffuseName (LAYER_TO_DIFFUSE_NAME );
1192+ settings .setLayerToNormalName (LAYER_TO_NORMAL_NAME );
1193+ settings .setMaxLevels (12 );
1194+ }
11931195
1194- settings .refresh ();
1196+ settings .refresh ();
1197+ settings .setVisible (true );
1198+ paintButton .setVisible (true );
1199+
1200+ } else {
1201+
1202+ settings .setVisible (false );
1203+ paintButton .setVisible (false );
1204+
1205+ if (paintButton .isSelected ()) {
1206+
1207+ final ToggleButton raiseLowerButton = getRaiseLowerButton ();
1208+ raiseLowerButton .setSelected (true );
1209+
1210+ switchMode (raiseLowerButton );
1211+ }
1212+ }
11951213 }
11961214
11971215 /**
0 commit comments