Skip to content

Commit 2b6ac23

Browse files
committed
refactoring
1 parent 10a18f8 commit 2b6ac23

File tree

5 files changed

+26
-33
lines changed

5 files changed

+26
-33
lines changed

src/com/ss/editor/state/editor/impl/model/ModelEditorUtils.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static com.ss.editor.control.transform.SceneEditorControl.LOADED_MODEL_KEY;
44
import static com.ss.editor.util.NodeUtils.findParent;
55

6+
import com.jme3.scene.AssetLinkNode;
67
import com.jme3.scene.Geometry;
78
import com.jme3.scene.Spatial;
89
import com.ss.editor.model.undo.editor.ModelChangeConsumer;
@@ -21,7 +22,7 @@
2122
/**
2223
* The class with utilities methods for {@link ModelEditorAppState}.
2324
*
24-
* @author JavaSaBr.
25+
* @author JavaSaBr
2526
*/
2627
public class ModelEditorUtils {
2728

@@ -46,6 +47,9 @@ public static <T extends AbstractSceneFileEditor & ModelChangeConsumer, M extend
4647
final EditorAudioNode audioNode = parent == null ? null : state.getAudioNode(parent);
4748
if (audioNode != null) return audioNode;
4849

50+
parent = NodeUtils.findParent(spatial, p -> p instanceof AssetLinkNode);
51+
if (parent != null) return parent;
52+
4953
parent = NodeUtils.findParent(spatial, p -> p.getUserData(LOADED_MODEL_KEY) == Boolean.TRUE);
5054
if (parent != null) return parent;
5155
}

src/com/ss/editor/ui/component/editor/impl/scene/AbstractSceneFileEditor.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
package com.ss.editor.ui.component.editor.impl.scene;
22

3+
import static com.ss.editor.control.transform.SceneEditorControl.LOADED_MODEL_KEY;
4+
import static com.ss.editor.util.EditorUtil.*;
5+
import static com.ss.editor.util.MaterialUtils.saveIfNeedTextures;
6+
import static com.ss.editor.util.MaterialUtils.updateMaterialIdNeed;
7+
import static java.util.Objects.requireNonNull;
8+
import static rlib.util.ClassUtils.unsafeCast;
39
import com.jme3.asset.AssetManager;
410
import com.jme3.asset.MaterialKey;
511
import com.jme3.asset.ModelKey;
@@ -80,13 +86,6 @@
8086
import java.util.function.Consumer;
8187
import java.util.function.Supplier;
8288

83-
import static com.ss.editor.control.transform.SceneEditorControl.LOADED_MODEL_KEY;
84-
import static com.ss.editor.util.EditorUtil.*;
85-
import static com.ss.editor.util.MaterialUtils.saveIfNeedTextures;
86-
import static com.ss.editor.util.MaterialUtils.updateMaterialIdNeed;
87-
import static java.util.Objects.requireNonNull;
88-
import static rlib.util.ClassUtils.unsafeCast;
89-
9089
/**
9190
* The base implementation of a model file editor.
9291
*
@@ -1140,8 +1139,8 @@ private void addNewModel(final @NotNull DragEvent dragEvent, @NotNull final Path
11401139
if (defaultLayer != null) {
11411140
SceneLayer.setLayer(defaultLayer, assetLinkNode);
11421141
}
1143-
assetLinkNode.setLocalTranslation(editorAppState.getScenePosByScreenPos(sceneX, sceneY));
11441142

1143+
assetLinkNode.setLocalTranslation(editorAppState.getScenePosByScreenPos(sceneX, sceneY));
11451144

11461145
execute(new AddChildOperation(assetLinkNode, (Node) currentModel));
11471146
});

src/com/ss/editor/ui/control/model/node/spatial/NodeModelNode.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import static java.util.Objects.requireNonNull;
77

88
import com.jme3.asset.AssetManager;
9+
import com.jme3.asset.ModelKey;
10+
import com.jme3.scene.AssetLinkNode;
911
import com.jme3.scene.Node;
1012
import com.jme3.scene.Spatial;
1113
import com.ss.editor.FileExtensions;
@@ -161,16 +163,19 @@ public void acceptExternal(@NotNull final Dragboard dragboard, @NotNull final Ch
161163
final SceneLayer defaultLayer = getDefaultLayer(cons);
162164
final Path assetFile = requireNonNull(getAssetFile(path), "Not found asset file for " + path);
163165
final String assetPath = toAssetPath(assetFile);
166+
final ModelKey modelKey = new ModelKey(assetPath);
164167

165168
final AssetManager assetManager = EDITOR.getAssetManager();
166169
final Spatial loadedModel = assetManager.loadModel(assetPath);
167-
loadedModel.setUserData(LOADED_MODEL_KEY, true);
170+
final AssetLinkNode assetLinkNode = new AssetLinkNode(modelKey);
171+
assetLinkNode.attachLinkedChild(loadedModel, modelKey);
172+
assetLinkNode.setUserData(LOADED_MODEL_KEY, true);
168173

169174
if (defaultLayer != null) {
170175
SceneLayer.setLayer(defaultLayer, loadedModel);
171176
}
172177

173-
cons.execute(new AddChildOperation(loadedModel, node));
178+
cons.execute(new AddChildOperation(assetLinkNode, node));
174179
});
175180
}
176181
}

src/com/ss/editor/ui/control/model/tree/action/LinkModelAction.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package com.ss.editor.ui.control.model.tree.action;
22

3+
import static com.ss.editor.control.transform.SceneEditorControl.LOADED_MODEL_KEY;
4+
import static com.ss.editor.util.EditorUtil.getAssetFile;
5+
import static com.ss.editor.util.EditorUtil.toAssetPath;
6+
import static java.util.Objects.requireNonNull;
37
import com.jme3.asset.AssetManager;
48
import com.jme3.asset.ModelKey;
59
import com.jme3.scene.AssetLinkNode;
@@ -9,7 +13,6 @@
913
import com.ss.editor.Messages;
1014
import com.ss.editor.model.undo.editor.ChangeConsumer;
1115
import com.ss.editor.model.undo.editor.ModelChangeConsumer;
12-
import com.ss.editor.model.undo.editor.SceneChangeConsumer;
1316
import com.ss.editor.ui.Icons;
1417
import com.ss.editor.ui.component.asset.tree.context.menu.action.DeleteFileAction;
1518
import com.ss.editor.ui.component.asset.tree.context.menu.action.NewFileAction;
@@ -18,8 +21,8 @@
1821
import com.ss.editor.ui.control.tree.AbstractNodeTree;
1922
import com.ss.editor.ui.control.tree.node.ModelNode;
2023
import com.ss.editor.ui.util.UIUtils;
24+
import com.ss.editor.util.EditorUtil;
2125
import com.ss.extension.scene.SceneLayer;
22-
import com.ss.extension.scene.SceneNode;
2326
import javafx.scene.image.Image;
2427
import org.jetbrains.annotations.NotNull;
2528
import org.jetbrains.annotations.Nullable;
@@ -29,11 +32,6 @@
2932
import java.nio.file.Path;
3033
import java.util.function.Predicate;
3134

32-
import static com.ss.editor.control.transform.SceneEditorControl.LOADED_MODEL_KEY;
33-
import static com.ss.editor.util.EditorUtil.getAssetFile;
34-
import static com.ss.editor.util.EditorUtil.toAssetPath;
35-
import static java.util.Objects.requireNonNull;
36-
3735
/**
3836
* The implementation of the {@link AbstractNodeAction} for loading the {@link Spatial} to the editor.
3937
*
@@ -79,11 +77,7 @@ protected void processOpen(@NotNull final Path file) {
7977

8078
final AbstractNodeTree<?> nodeTree = getNodeTree();
8179
final ChangeConsumer consumer = requireNonNull(nodeTree.getChangeConsumer());
82-
83-
final SceneNode sceneNode = consumer instanceof SceneChangeConsumer ?
84-
((SceneChangeConsumer) consumer).getCurrentModel() : null;
85-
86-
final SceneLayer defaultLayer = sceneNode == null ? null : sceneNode.getLayers().first();
80+
final SceneLayer defaultLayer = EditorUtil.getDefaultLayer(consumer);
8781

8882
final Path assetFile = requireNonNull(getAssetFile(file), "Not found asset file for " + file);
8983
final String assetPath = toAssetPath(assetFile);

src/com/ss/editor/ui/control/model/tree/action/LoadModelAction.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,16 @@
1212
import com.ss.editor.Messages;
1313
import com.ss.editor.model.undo.editor.ChangeConsumer;
1414
import com.ss.editor.model.undo.editor.ModelChangeConsumer;
15-
import com.ss.editor.model.undo.editor.SceneChangeConsumer;
1615
import com.ss.editor.ui.Icons;
1716
import com.ss.editor.ui.component.asset.tree.context.menu.action.DeleteFileAction;
1817
import com.ss.editor.ui.component.asset.tree.context.menu.action.NewFileAction;
1918
import com.ss.editor.ui.component.asset.tree.context.menu.action.RenameFileAction;
2019
import com.ss.editor.ui.control.model.tree.action.operation.AddChildOperation;
2120
import com.ss.editor.ui.control.tree.AbstractNodeTree;
2221
import com.ss.editor.ui.control.tree.node.ModelNode;
23-
import com.ss.editor.ui.dialog.asset.AssetEditorDialog;
24-
import com.ss.editor.ui.dialog.asset.FileAssetEditorDialog;
25-
import com.ss.editor.ui.scene.EditorFXScene;
2622
import com.ss.editor.ui.util.UIUtils;
2723
import com.ss.editor.util.EditorUtil;
2824
import com.ss.extension.scene.SceneLayer;
29-
import com.ss.extension.scene.SceneNode;
3025
import javafx.scene.image.Image;
3126
import org.jetbrains.annotations.NotNull;
3227
import org.jetbrains.annotations.Nullable;
@@ -81,11 +76,7 @@ protected void processOpen(@NotNull final Path file) {
8176

8277
final AbstractNodeTree<?> nodeTree = getNodeTree();
8378
final ChangeConsumer consumer = requireNonNull(nodeTree.getChangeConsumer());
84-
85-
final SceneNode sceneNode = consumer instanceof SceneChangeConsumer ?
86-
((SceneChangeConsumer) consumer).getCurrentModel() : null;
87-
88-
final SceneLayer defaultLayer = sceneNode == null ? null : sceneNode.getLayers().first();
79+
final SceneLayer defaultLayer = EditorUtil.getDefaultLayer(consumer);
8980

9081
final Path assetFile = requireNonNull(getAssetFile(file), "Not found asset file for " + file);
9182
final String assetPath = toAssetPath(assetFile);

0 commit comments

Comments
 (0)