Răsfoiți Sursa

- change bullet PhysicsControls to keep their CollisionShape when detaching

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9665 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
nor..67 13 ani în urmă
părinte
comite
b4a55256de

+ 1 - 6
engine/src/bullet-common/com/jme3/bullet/control/CharacterControl.java

@@ -79,14 +79,9 @@ public class CharacterControl extends PhysicsCharacter implements PhysicsControl
     }
 
     public void setSpatial(Spatial spatial) {
-        if (getUserObject() == null || getUserObject() == this.spatial) {
-            setUserObject(spatial);
-        }
         this.spatial = spatial;
+        setUserObject(spatial);
         if (spatial == null) {
-            if (getUserObject() == spatial) {
-                setUserObject(null);
-            }
             return;
         }
         setPhysicsLocation(getSpatialTranslation());

+ 1 - 6
engine/src/bullet-common/com/jme3/bullet/control/GhostControl.java

@@ -81,14 +81,9 @@ public class GhostControl extends PhysicsGhostObject implements PhysicsControl {
     }
 
     public void setSpatial(Spatial spatial) {
-        if (getUserObject() == null || getUserObject() == this.spatial) {
-            setUserObject(spatial);
-        }
         this.spatial = spatial;
+        setUserObject(spatial);
         if (spatial == null) {
-            if (getUserObject() == spatial) {
-                setUserObject(null);
-            }
             return;
         }
         setPhysicsLocation(getSpatialTranslation());

+ 4 - 0
engine/src/bullet-common/com/jme3/bullet/control/PhysicsControl.java

@@ -13,6 +13,10 @@ import com.jme3.scene.control.Control;
  */
 public interface PhysicsControl extends Control {
 
+    /**
+     * Only used internally, do not call.
+     * @param space 
+     */
     public void setPhysicsSpace(PhysicsSpace space);
 
     public PhysicsSpace getPhysicsSpace();

+ 1 - 8
engine/src/bullet-common/com/jme3/bullet/control/RigidBodyControl.java

@@ -91,16 +91,9 @@ public class RigidBodyControl extends PhysicsRigidBody implements PhysicsControl
     }
 
     public void setSpatial(Spatial spatial) {
-        if (getUserObject() == null || getUserObject() == this.spatial) {
-            setUserObject(spatial);
-        }
         this.spatial = spatial;
+        setUserObject(spatial);
         if (spatial == null) {
-            if (getUserObject() == spatial) {
-                setUserObject(null);
-            }
-            spatial = null;
-            collisionShape = null;
             return;
         }
         if (collisionShape == null) {

+ 1 - 8
engine/src/bullet-common/com/jme3/bullet/control/VehicleControl.java

@@ -133,16 +133,9 @@ public class VehicleControl extends PhysicsVehicle implements PhysicsControl {
     }
 
     public void setSpatial(Spatial spatial) {
-        if (getUserObject() == null || getUserObject() == this.spatial) {
-            setUserObject(spatial);
-        }
         this.spatial = spatial;
+        setUserObject(spatial);
         if (spatial == null) {
-            if (getUserObject() == spatial) {
-                setUserObject(null);
-            }
-            this.spatial = null;
-            this.collisionShape = null;
             return;
         }
         setPhysicsLocation(getSpatialTranslation());