Browse Source

SceneToolController AppState is now always after the CameraController in the AppState list in the SceneApplication

Nehon 10 years ago
parent
commit
33d0350ff2

+ 8 - 1
jme3-core/src/com/jme3/gde/core/scene/controller/AbstractCameraController.java

@@ -97,7 +97,14 @@ public abstract class AbstractCameraController extends AbstractAppState implemen
     }
     }
 
 
     public void enable() {
     public void enable() {
-        SceneApplication.getApplication().getStateManager().attach(this);
+        SceneToolController c = SceneApplication.getApplication().getStateManager().getState(SceneToolController.class);
+        if(c != null){
+            SceneApplication.getApplication().getStateManager().detach(c);
+            SceneApplication.getApplication().getStateManager().attach(this);
+            SceneApplication.getApplication().getStateManager().attach(c);
+        }else{
+            SceneApplication.getApplication().getStateManager().attach(this);
+        }
         final AbstractCameraController cc = SceneApplication.getApplication().getActiveCameraController();
         final AbstractCameraController cc = SceneApplication.getApplication().getActiveCameraController();
 
 
         SceneApplication.getApplication().setActiveCameraController(this);
         SceneApplication.getApplication().setActiveCameraController(this);

+ 4 - 5
jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java

@@ -53,7 +53,7 @@ public class SceneToolController implements AppState {
 
 
     public SceneToolController(AssetManager manager) {
     public SceneToolController(AssetManager manager) {
         this.toolsNode = new Node("ToolsNode");
         this.toolsNode = new Node("ToolsNode");
-        initTools();
+        initTools();        
         SceneApplication.getApplication().getStateManager().attach(this);
         SceneApplication.getApplication().getStateManager().attach(this);
     }
     }
 
 
@@ -416,17 +416,16 @@ public class SceneToolController implements AppState {
 //        throw new UnsupportedOperationException("Not supported yet.");
 //        throw new UnsupportedOperationException("Not supported yet.");
     }
     }
 
 
-    public void update(float f) {
+    public void update(float f) {     
         if (selected == null || selectionShape == null) {
         if (selected == null || selectionShape == null) {
             return;
             return;
         }
         }
 
 
         selectionShape.setLocalTranslation(selected.getWorldTranslation());
         selectionShape.setLocalTranslation(selected.getWorldTranslation());
         selectionShape.setLocalRotation(selected.getWorldRotation());
         selectionShape.setLocalRotation(selected.getWorldRotation());
-        //selectionShape.setLocalScale(selected.getWorldScale());
-
+        selectionShape.setLocalScale(selected.getWorldScale());
+        
     }
     }
-
     public void render(RenderManager rm) {
     public void render(RenderManager rm) {
 //        throw new UnsupportedOperationException("Not supported yet.");
 //        throw new UnsupportedOperationException("Not supported yet.");
     }
     }