Skip to content

Commit 4b975ab

Browse files
committed
refactoring and implemented editable sky dialog.
1 parent a9381e7 commit 4b975ab

53 files changed

Lines changed: 482 additions & 346 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ dependencies {
125125
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3'
126126

127127
// extensions
128-
compile ('com.github.JavaSaBr:jme3-spaceshift-extension:1.5.1') {
128+
compile ('com.github.JavaSaBr:jme3-spaceshift-extension:1.5.2') {
129129
exclude group: 'org.jmonkeyengine'
130130
}
131131
compile ('com.github.JavaSaBr:tonegodemitter:2.3.4') {

src/main/java/com/ss/editor/Messages.java

Lines changed: 48 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,10 @@ public class Messages {
690690
* The constant MODEL_NODE_TREE_ACTION_CREATE_SKY.
691691
*/
692692
public static final String MODEL_NODE_TREE_ACTION_CREATE_SKY;
693+
/**
694+
* The constant MODEL_NODE_TREE_ACTION_CREATE_EDITABLE_SKY.
695+
*/
696+
public static final String MODEL_NODE_TREE_ACTION_CREATE_EDITABLE_SKY;
693697
/**
694698
* The constant MODEL_NODE_TREE_ACTION_CREATE_PRIMITIVE.
695699
*/
@@ -1778,49 +1782,57 @@ public class Messages {
17781782
*/
17791783
public static final String CREATE_SKY_DIALOG_SKY_TYPE_MULTIPLE;
17801784
/**
1781-
* The constant CREATE_SKY_DIALOG_SKY_TYPE_LABEL.
1785+
* The constant CREATE_SKY_DIALOG_SKY_TYPE.
1786+
*/
1787+
public static final String CREATE_SKY_DIALOG_SKY_TYPE;
1788+
/**
1789+
* The constant CREATE_SKY_DIALOG_NORMAL_SCALE.
1790+
*/
1791+
public static final String CREATE_SKY_DIALOG_NORMAL_SCALE;
1792+
/**
1793+
* The constant CREATE_SKY_DIALOG_MATERIAL_FOLDER.
17821794
*/
1783-
public static final String CREATE_SKY_DIALOG_SKY_TYPE_LABEL;
1795+
public static final String CREATE_SKY_DIALOG_MATERIAL_FOLDER;
17841796
/**
1785-
* The constant CREATE_SKY_DIALOG_NORMAL_SCALE_LABEL.
1797+
* The constant CREATE_SKY_DIALOG_MATERIAL_NAME.
17861798
*/
1787-
public static final String CREATE_SKY_DIALOG_NORMAL_SCALE_LABEL;
1799+
public static final String CREATE_SKY_DIALOG_MATERIAL_NAME;
17881800
/**
1789-
* The constant CREATE_SKY_DIALOG_TEXTURE_LABEL.
1801+
* The constant CREATE_SKY_DIALOG_TEXTURE.
17901802
*/
1791-
public static final String CREATE_SKY_DIALOG_TEXTURE_LABEL;
1803+
public static final String CREATE_SKY_DIALOG_TEXTURE;
17921804
/**
1793-
* The constant CREATE_SKY_DIALOG_TEXTURE_TYPE_LABEL.
1805+
* The constant CREATE_SKY_DIALOG_TEXTURE_TYPE.
17941806
*/
1795-
public static final String CREATE_SKY_DIALOG_TEXTURE_TYPE_LABEL;
1807+
public static final String CREATE_SKY_DIALOG_TEXTURE_TYPE;
17961808
/**
1797-
* The constant CREATE_SKY_DIALOG_FLIP_Y_LABEL.
1809+
* The constant CREATE_SKY_DIALOG_FLIP_Y.
17981810
*/
1799-
public static final String CREATE_SKY_DIALOG_FLIP_Y_LABEL;
1811+
public static final String CREATE_SKY_DIALOG_FLIP_Y;
18001812
/**
1801-
* The constant CREATE_SKY_DIALOG_NORTH_LABEL.
1813+
* The constant CREATE_SKY_DIALOG_NORTH.
18021814
*/
1803-
public static final String CREATE_SKY_DIALOG_NORTH_LABEL;
1815+
public static final String CREATE_SKY_DIALOG_NORTH;
18041816
/**
1805-
* The constant CREATE_SKY_DIALOG_SOUTH_LABEL.
1817+
* The constant CREATE_SKY_DIALOG_SOUTH.
18061818
*/
1807-
public static final String CREATE_SKY_DIALOG_SOUTH_LABEL;
1819+
public static final String CREATE_SKY_DIALOG_SOUTH;
18081820
/**
1809-
* The constant CREATE_SKY_DIALOG_EAST_LABEL.
1821+
* The constant CREATE_SKY_DIALOG_EAST.
18101822
*/
1811-
public static final String CREATE_SKY_DIALOG_EAST_LABEL;
1823+
public static final String CREATE_SKY_DIALOG_EAST;
18121824
/**
1813-
* The constant CREATE_SKY_DIALOG_WEST_LABEL.
1825+
* The constant CREATE_SKY_DIALOG_WEST.
18141826
*/
1815-
public static final String CREATE_SKY_DIALOG_WEST_LABEL;
1827+
public static final String CREATE_SKY_DIALOG_WEST;
18161828
/**
1817-
* The constant CREATE_SKY_DIALOG_TOP_LABEL.
1829+
* The constant CREATE_SKY_DIALOG_TOP.
18181830
*/
1819-
public static final String CREATE_SKY_DIALOG_TOP_LABEL;
1831+
public static final String CREATE_SKY_DIALOG_TOP;
18201832
/**
1821-
* The constant CREATE_SKY_DIALOG_BOTTOM_LABEL.
1833+
* The constant CREATE_SKY_DIALOG_BOTTOM.
18221834
*/
1823-
public static final String CREATE_SKY_DIALOG_BOTTOM_LABEL;
1835+
public static final String CREATE_SKY_DIALOG_BOTTOM;
18241836

18251837
/**
18261838
* The constant SIMPLE_DIALOG_BUTTON_OK.
@@ -2498,6 +2510,7 @@ public class Messages {
24982510
MODEL_NODE_TREE_ACTION_CREATE = bundle.getString("ModelNodeTreeActionCreate");
24992511
MODEL_NODE_TREE_ACTION_CREATE_NODE = bundle.getString("ModelNodeTreeActionCreateNode");
25002512
MODEL_NODE_TREE_ACTION_CREATE_SKY = bundle.getString("ModelNodeTreeActionCreateSky");
2513+
MODEL_NODE_TREE_ACTION_CREATE_EDITABLE_SKY = bundle.getString("ModelNodeTreeActionCreateEditableSky");
25012514
MODEL_NODE_TREE_ACTION_CREATE_PRIMITIVE = bundle.getString("ModelNodeTreeActionCreatePrimitive");
25022515
MODEL_NODE_TREE_ACTION_CREATE_PRIMITIVE_BOX = bundle.getString("ModelNodeTreeActionCreatePrimitiveBox");
25032516
MODEL_NODE_TREE_ACTION_CREATE_PRIMITIVE_SPHERE = bundle.getString("ModelNodeTreeActionCreatePrimitiveSphere");
@@ -2778,17 +2791,19 @@ public class Messages {
27782791
CREATE_SKY_DIALOG_TITLE = bundle.getString("CreateSkyDialogTitle");
27792792
CREATE_SKY_DIALOG_SKY_TYPE_SINGLE = bundle.getString("CreateSkyDialogSkyTypeSingle");
27802793
CREATE_SKY_DIALOG_SKY_TYPE_MULTIPLE = bundle.getString("CreateSkyDialogSkyTypeMultiple");
2781-
CREATE_SKY_DIALOG_SKY_TYPE_LABEL = bundle.getString("CreateSkyDialogSkyTypeLabel");
2782-
CREATE_SKY_DIALOG_NORMAL_SCALE_LABEL = bundle.getString("CreateSkyDialogNormalScaleLabel");
2783-
CREATE_SKY_DIALOG_TEXTURE_LABEL = bundle.getString("CreateSkyDialogTextureLabel");
2784-
CREATE_SKY_DIALOG_TEXTURE_TYPE_LABEL = bundle.getString("CreateSkyDialogTextureTypeLabel");
2785-
CREATE_SKY_DIALOG_FLIP_Y_LABEL = bundle.getString("CreateSkyDialogFlipYLabel");
2786-
CREATE_SKY_DIALOG_NORTH_LABEL = bundle.getString("CreateSkyDialogNorthLabel");
2787-
CREATE_SKY_DIALOG_SOUTH_LABEL = bundle.getString("CreateSkyDialogSouthLabel");
2788-
CREATE_SKY_DIALOG_EAST_LABEL = bundle.getString("CreateSkyDialogEastLabel");
2789-
CREATE_SKY_DIALOG_WEST_LABEL = bundle.getString("CreateSkyDialogWestLabel");
2790-
CREATE_SKY_DIALOG_TOP_LABEL = bundle.getString("CreateSkyDialogTopLabel");
2791-
CREATE_SKY_DIALOG_BOTTOM_LABEL = bundle.getString("CreateSkyDialogBottomLabel");
2794+
CREATE_SKY_DIALOG_SKY_TYPE = bundle.getString("CreateSkyDialogSkyType");
2795+
CREATE_SKY_DIALOG_NORMAL_SCALE = bundle.getString("CreateSkyDialogNormalScale");
2796+
CREATE_SKY_DIALOG_MATERIAL_FOLDER = bundle.getString("CreateSkyDialogMaterialFolder");
2797+
CREATE_SKY_DIALOG_MATERIAL_NAME = bundle.getString("CreateSkyDialogMaterialName");
2798+
CREATE_SKY_DIALOG_TEXTURE = bundle.getString("CreateSkyDialogTexture");
2799+
CREATE_SKY_DIALOG_TEXTURE_TYPE = bundle.getString("CreateSkyDialogTextureType");
2800+
CREATE_SKY_DIALOG_FLIP_Y = bundle.getString("CreateSkyDialogFlipY");
2801+
CREATE_SKY_DIALOG_NORTH = bundle.getString("CreateSkyDialogNorth");
2802+
CREATE_SKY_DIALOG_SOUTH = bundle.getString("CreateSkyDialogSouth");
2803+
CREATE_SKY_DIALOG_EAST = bundle.getString("CreateSkyDialogEast");
2804+
CREATE_SKY_DIALOG_WEST = bundle.getString("CreateSkyDialogWest");
2805+
CREATE_SKY_DIALOG_TOP = bundle.getString("CreateSkyDialogTop");
2806+
CREATE_SKY_DIALOG_BOTTOM = bundle.getString("CreateSkyDialogBottom");
27922807

27932808
SIMPLE_DIALOG_BUTTON_OK = bundle.getString("SimpleDialogButtonOk");
27942809
SIMPLE_DIALOG_BUTTON_SELECT = bundle.getString("SimpleDialogButtonSelect");

src/main/java/com/ss/editor/file/converter/impl/AbstractFileConverter.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,14 @@
99
import com.ss.editor.file.converter.FileConverter;
1010
import com.ss.editor.manager.ExecutorManager;
1111
import com.ss.editor.ui.event.FXEventManager;
12-
import com.ss.editor.ui.scene.EditorFXScene;
1312
import com.ss.editor.util.EditorUtil;
14-
import org.jetbrains.annotations.NotNull;
15-
import org.jetbrains.annotations.Nullable;
1613
import com.ss.rlib.logging.Logger;
1714
import com.ss.rlib.logging.LoggerManager;
1815
import com.ss.rlib.util.FileUtils;
1916
import com.ss.rlib.util.array.Array;
2017
import com.ss.rlib.util.array.ArrayFactory;
18+
import org.jetbrains.annotations.NotNull;
19+
import org.jetbrains.annotations.Nullable;
2120

2221
import java.nio.file.Files;
2322
import java.nio.file.Path;
@@ -91,8 +90,7 @@ public void convert(@NotNull final Path source, @NotNull final Path destination)
9190
throw new IllegalArgumentException("incorrect extension of file " + source);
9291
}
9392

94-
final EditorFXScene scene = JFX_APPLICATION.getScene();
95-
scene.incrementLoading();
93+
EditorUtil.incrementLoading();
9694

9795
EXECUTOR_MANAGER.addBackgroundTask(() -> {
9896
try {
@@ -150,8 +148,7 @@ protected void notifyFileChanged(@NotNull final Path file) {
150148

151149
@FXThread
152150
private void notifyFileChangedImpl(@NotNull final Path file) {
153-
final EditorFXScene scene = JFX_APPLICATION.getScene();
154-
scene.decrementLoading();
151+
EditorUtil.decrementLoading();
155152
}
156153

157154
/**
@@ -166,7 +163,6 @@ protected void notifyFileCreated(@Nullable final Path file) {
166163

167164
@FXThread
168165
private void notifyFileCreatedImpl(@Nullable final Path file) {
169-
final EditorFXScene scene = JFX_APPLICATION.getScene();
170-
scene.decrementLoading();
166+
EditorUtil.decrementLoading();
171167
}
172168
}

src/main/java/com/ss/editor/file/converter/impl/AbstractModelFileConverter.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static com.ss.editor.util.EditorUtil.toAssetPath;
55
import static com.ss.rlib.util.FileUtils.containsExtensions;
66
import static com.ss.rlib.util.ObjectUtils.notNull;
7+
import static java.nio.file.StandardOpenOption.*;
78
import com.jme3.asset.AssetKey;
89
import com.jme3.asset.AssetManager;
910
import com.jme3.asset.ModelKey;
@@ -17,7 +18,6 @@
1718
import com.ss.editor.model.tool.TangentGenerator;
1819
import com.ss.editor.serializer.MaterialSerializer;
1920
import com.ss.editor.ui.dialog.converter.ModelConverterDialog;
20-
import com.ss.editor.ui.scene.EditorFXScene;
2121
import com.ss.editor.util.EditorUtil;
2222
import com.ss.editor.util.NodeUtils;
2323
import com.ss.rlib.util.StringUtils;
@@ -52,26 +52,22 @@ public void convert(@NotNull final Path source, @NotNull final Path destination)
5252
throw new IllegalArgumentException("incorrect extension of file " + source);
5353
}
5454

55-
final EditorFXScene scene = JFX_APPLICATION.getScene();
5655
final ModelConverterDialog dialog = new ModelConverterDialog(source, destination, settings -> convert(source, settings));
57-
dialog.show(scene.getWindow());
56+
dialog.show();
5857
}
5958

6059
/**
6160
* Convert a file using settings from the dialog.
6261
*/
6362
@FXThread
6463
private void convert(@NotNull final Path source, @NotNull final ModelConverterDialog dialog) {
65-
66-
final EditorFXScene scene = JFX_APPLICATION.getScene();
67-
scene.incrementLoading();
68-
64+
EditorUtil.incrementLoading();
6965
EXECUTOR_MANAGER.addBackgroundTask(() -> {
7066
try {
7167
convertImpl(source, dialog);
7268
} catch (final Exception e) {
7369
EditorUtil.handleException(LOGGER, this, e);
74-
EXECUTOR_MANAGER.addFXTask(scene::decrementLoading);
70+
EXECUTOR_MANAGER.addFXTask(EditorUtil::decrementLoading);
7571
}
7672
});
7773
}
@@ -112,7 +108,7 @@ private void convertImpl(@NotNull final Path source, @NotNull final ModelConvert
112108

113109
final BinaryExporter exporter = BinaryExporter.getInstance();
114110

115-
try (final OutputStream out = Files.newOutputStream(destination)) {
111+
try (final OutputStream out = Files.newOutputStream(destination, WRITE, TRUNCATE_EXISTING, CREATE)) {
116112
exporter.save(model, out);
117113
} catch (final IOException e) {
118114
LOGGER.warning(this, e);
@@ -140,7 +136,7 @@ private void storeMaterials(@NotNull final Path materialsFolder, final boolean c
140136
final Material currentMaterial = geometry.getMaterial();
141137

142138
if (!Files.exists(resultFile) || canOverwrite) {
143-
try (PrintWriter pout = new PrintWriter(Files.newOutputStream(resultFile))) {
139+
try (PrintWriter pout = new PrintWriter(Files.newOutputStream(resultFile, WRITE, TRUNCATE_EXISTING, CREATE))) {
144140
pout.println(MaterialSerializer.serializeToString(currentMaterial));
145141
} catch (final IOException e) {
146142
EditorUtil.handleException(LOGGER, this, e);

src/main/java/com/ss/editor/file/delete/handler/impl/DeleteMaterialsModelFileDeleteHandler.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.jme3.scene.Spatial;
1010
import com.ss.editor.Messages;
1111
import com.ss.editor.ui.dialog.ConfirmDialog;
12-
import com.ss.editor.ui.scene.EditorFXScene;
1312
import com.ss.editor.util.EditorUtil;
1413
import com.ss.editor.util.NodeUtils;
1514
import com.ss.rlib.util.FileUtils;
@@ -73,9 +72,8 @@ public void postDelete(@NotNull final Path file) {
7372
String question = Messages.FILE_DELETE_HANDLER_DELETE_MATERIALS;
7473
question = question.replace("%file_name%", file.getFileName().toString());
7574

76-
final EditorFXScene scene = JFX_APPLICATION.getScene();
7775
final ConfirmDialog confirmDialog = new ConfirmDialog(this::handle, question);
78-
confirmDialog.show(scene.getWindow());
76+
confirmDialog.show();
7977
}
8078

8179
private void handle(@NotNull final Boolean result) {

src/main/java/com/ss/editor/manager/JavaFXImageManager.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import static com.ss.rlib.util.array.ArrayFactory.asArray;
44
import static java.awt.Image.SCALE_DEFAULT;
5+
import static java.nio.file.StandardOpenOption.CREATE;
6+
import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING;
7+
import static java.nio.file.StandardOpenOption.WRITE;
58
import com.jme3.asset.AssetManager;
69
import com.jme3.texture.Texture;
710
import com.ss.editor.Editor;
@@ -251,7 +254,7 @@ private Image getImagePreview(@NotNull URL url, @Nullable final FileTime lastMod
251254

252255
private void writeDefaultToCache(@NotNull final Path cacheFile) {
253256
final BufferedImage bufferedImage = SwingFXUtils.fromFXImage(Icons.IMAGE_512, null);
254-
try (final OutputStream out = Files.newOutputStream(cacheFile)) {
257+
try (final OutputStream out = Files.newOutputStream(cacheFile, WRITE, TRUNCATE_EXISTING, CREATE)) {
255258
ImageIO.write(bufferedImage, "png", out);
256259
} catch (final IOException ex) {
257260
LOGGER.warning(ex);
@@ -317,7 +320,7 @@ private Image readFXImage(final int width, final int height, @NotNull final Stri
317320

318321
final BufferedImage bufferedImage = SwingFXUtils.fromFXImage(image, null);
319322

320-
try (final OutputStream out = Files.newOutputStream(cacheFile)) {
323+
try (final OutputStream out = Files.newOutputStream(cacheFile, WRITE, TRUNCATE_EXISTING, CREATE)) {
321324
ImageIO.write(bufferedImage, "png", out);
322325
} catch (final IOException e) {
323326
LOGGER.warning(e);
@@ -333,7 +336,7 @@ private Image scaleAndWrite(final int targetWidth, final int targetHeight, @NotN
333336

334337
final BufferedImage newImage = scaleImage(targetWidth, targetHeight, textureImage, currentWidth, currentHeight);
335338

336-
try (final OutputStream out = Files.newOutputStream(cacheFile)) {
339+
try (final OutputStream out = Files.newOutputStream(cacheFile, WRITE, TRUNCATE_EXISTING, CREATE)) {
337340
ImageIO.write(newImage, "png", out);
338341
return new Image(cacheFile.toUri().toString());
339342
} catch (final IOException e) {

src/main/java/com/ss/editor/serializer/MaterialSerializer.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.jme3.shader.VarType;
1212
import com.jme3.texture.Texture;
1313
import com.jme3.texture.Texture2D;
14+
import com.jme3.texture.TextureCubeMap;
1415
import org.jetbrains.annotations.NotNull;
1516

1617
import java.util.Collection;
@@ -106,10 +107,27 @@ private static String toString(@NotNull final VarType varType, @NotNull final Ob
106107
final StringBuilder builder = new StringBuilder();
107108
if (textureKey.isFlipY()) builder.append("Flip ");
108109

109-
if (texture2D.getWrap(Texture.WrapAxis.T) == Texture.WrapMode.Repeat) {
110-
builder.append("Repeat ");
111-
}
110+
builder.append("Wrap").append(texture2D.getWrap(Texture.WrapAxis.T)).append("_T").append(' ');
111+
builder.append("Wrap").append(texture2D.getWrap(Texture.WrapAxis.S)).append("_S").append(' ');
112+
builder.append("Mag").append(texture2D.getMagFilter()).append(' ');
113+
builder.append("Min").append(texture2D.getMinFilter()).append(' ');
114+
builder.append(textureKey.getName());
115+
116+
return builder.toString();
117+
}
118+
case TextureCubeMap: {
119+
120+
final TextureCubeMap textureCubeMap = (TextureCubeMap) value;
121+
final TextureKey textureKey = (TextureKey) textureCubeMap.getKey();
122+
123+
final StringBuilder builder = new StringBuilder();
124+
if (textureKey.isFlipY()) builder.append("Flip ");
112125

126+
builder.append("Wrap").append(textureCubeMap.getWrap(Texture.WrapAxis.T)).append("_T").append(' ');
127+
builder.append("Wrap").append(textureCubeMap.getWrap(Texture.WrapAxis.S)).append("_S").append(' ');
128+
builder.append("Wrap").append(textureCubeMap.getWrap(Texture.WrapAxis.R)).append("_R").append(' ');
129+
builder.append("Mag").append(textureCubeMap.getMagFilter()).append(' ');
130+
builder.append("Min").append(textureCubeMap.getMinFilter()).append(' ');
113131
builder.append(textureKey.getName());
114132

115133
return builder.toString();

src/main/java/com/ss/editor/state/editor/impl/material/MaterialEditor3DState.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import com.jme3.renderer.queue.RenderQueue.Bucket;
2121
import com.jme3.scene.Geometry;
2222
import com.jme3.scene.Node;
23-
import com.jme3.scene.Spatial;
2423
import com.jme3.scene.shape.Box;
2524
import com.jme3.scene.shape.Quad;
2625
import com.jme3.scene.shape.Sphere;
@@ -142,7 +141,7 @@ public MaterialEditor3DState(@NotNull final MaterialFileEditor fileEditor) {
142141

143142
final AssetManager assetManager = EDITOR.getAssetManager();
144143

145-
final Spatial sky = SkyFactory.createSky(assetManager, "graphics/textures/sky/studio.hdr",
144+
final Geometry sky = (Geometry) SkyFactory.createSky(assetManager, "graphics/textures/sky/studio.hdr",
146145
SkyFactory.EnvMapType.EquirectMap);
147146

148147
final Node stateNode = getStateNode();

src/main/java/com/ss/editor/state/editor/impl/scene/AbstractSceneEditor3DState.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,6 @@ public abstract class AbstractSceneEditor3DState<T extends AbstractSceneFileEdit
7575
@NotNull
7676
public static String LOADED_MODEL_KEY = EditorTransformSupport.class.getName() + ".loadedModel";
7777

78-
/**
79-
* The constant SKY_NODE_KEY.
80-
*/
81-
@NotNull
82-
public static String SKY_NODE_KEY = EditorTransformSupport.class.getName() + ".isSkyNode";
83-
84-
8578
private static final String KEY_S = "SSEditor.sceneEditorState.S";
8679
private static final String KEY_G = "SSEditor.sceneEditorState.G";
8780
private static final String KEY_R = "SSEditor.sceneEditorState.R";

0 commit comments

Comments
 (0)