worldbounds fix
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				studiorailgun/Renderer/pipeline/head There was a failure building this commit
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	studiorailgun/Renderer/pipeline/head There was a failure building this commit
				
			This commit is contained in:
		
							parent
							
								
									2e4b8e2819
								
							
						
					
					
						commit
						87d1da4df1
					
				| @ -9,7 +9,6 @@ | |||||||
|   audio fx for everything |   audio fx for everything | ||||||
| 
 | 
 | ||||||
| + bug fixes | + bug fixes | ||||||
|   fix items falling through floor |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Things that feel bad: | Things that feel bad: | ||||||
|  | |||||||
| @ -492,6 +492,10 @@ Server synchronization manager | |||||||
| Jump tree synchronization | Jump tree synchronization | ||||||
| Fix jump bugginess | Fix jump bugginess | ||||||
| 
 | 
 | ||||||
|  | (08/01/2024) | ||||||
|  | Fix server entity camera rotation | ||||||
|  | Fix world bounds application | ||||||
|  | 
 | ||||||
| # TODO | # TODO | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -399,32 +399,31 @@ public class CollisionEngine { | |||||||
|      |      | ||||||
|     /** |     /** | ||||||
|      *  |      *  | ||||||
|      * @param e the entity that's trying to move |      * @param w The collision world data | ||||||
|      * @param positionToCheck the position the entity wants to be at |      * @param positionToCheck the position the entity wants to be at | ||||||
|      * @return the position the engine recommends it move to instead (this is |      * @return the position the engine recommends it move to instead (this is | ||||||
|      * guaranteed to be a valid position) |      * guaranteed to be a valid position) | ||||||
|      */ |      */ | ||||||
|     public Vector3d suggestMovementPosition(CollisionWorldData w, Entity e, Vector3d positionToCheck){ |     public Vector3d suggestMovementPosition(CollisionWorldData w, Vector3d positionToCheck){ | ||||||
|         Vector3d suggestedPosition = new Vector3d(positionToCheck); |         Vector3d suggestedPosition = new Vector3d(positionToCheck); | ||||||
|         // |  | ||||||
|         // adjust for minimum height (Terrain) |  | ||||||
|         // |  | ||||||
| //        float heightMapBias = 0.00001f; |  | ||||||
| //        if(w.getElevationAtPoint(positionToCheck) > positionToCheck.y){ |  | ||||||
| //            suggestedPosition.y = w.getElevationAtPoint(positionToCheck) + heightMapBias; |  | ||||||
| //        } |  | ||||||
|         // |         // | ||||||
|         // adjust for world bounds |         // adjust for world bounds | ||||||
|         // |         // | ||||||
|         if(suggestedPosition.x < collisionWorldData.getWorldBoundMin().x){ |         if(suggestedPosition.x < collisionWorldData.getWorldBoundMin().x){ | ||||||
|             suggestedPosition.x = collisionWorldData.getWorldBoundMin().x; |             suggestedPosition.x = collisionWorldData.getWorldBoundMin().x; | ||||||
|         } |         } | ||||||
|  |         if(suggestedPosition.y < collisionWorldData.getWorldBoundMin().y){ | ||||||
|  |             suggestedPosition.y = collisionWorldData.getWorldBoundMin().y; | ||||||
|  |         } | ||||||
|         if(suggestedPosition.z < collisionWorldData.getWorldBoundMin().z){ |         if(suggestedPosition.z < collisionWorldData.getWorldBoundMin().z){ | ||||||
|             suggestedPosition.z = collisionWorldData.getWorldBoundMin().z; |             suggestedPosition.z = collisionWorldData.getWorldBoundMin().z; | ||||||
|         } |         } | ||||||
|         if(suggestedPosition.x > collisionWorldData.getWorldBoundMax().x){ |         if(suggestedPosition.x > collisionWorldData.getWorldBoundMax().x){ | ||||||
|             suggestedPosition.x = collisionWorldData.getWorldBoundMax().x; |             suggestedPosition.x = collisionWorldData.getWorldBoundMax().x; | ||||||
|         } |         } | ||||||
|  |         if(suggestedPosition.y > collisionWorldData.getWorldBoundMax().y){ | ||||||
|  |             suggestedPosition.y = collisionWorldData.getWorldBoundMax().y; | ||||||
|  |         } | ||||||
|         if(suggestedPosition.z > collisionWorldData.getWorldBoundMax().z){ |         if(suggestedPosition.z > collisionWorldData.getWorldBoundMax().z){ | ||||||
|             suggestedPosition.z = collisionWorldData.getWorldBoundMax().z; |             suggestedPosition.z = collisionWorldData.getWorldBoundMax().z; | ||||||
|         } |         } | ||||||
| @ -467,6 +466,7 @@ public class CollisionEngine { | |||||||
|                 Matrix4d inverseTransform = new Matrix4d(); |                 Matrix4d inverseTransform = new Matrix4d(); | ||||||
|                 Vector4d rawPos = inverseTransform.transform(new Vector4d(PhysicsUtils.getRigidBodyPosition(rigidBody),1)); |                 Vector4d rawPos = inverseTransform.transform(new Vector4d(PhysicsUtils.getRigidBodyPosition(rigidBody),1)); | ||||||
|                 Vector3d newPosition = new Vector3d(rawPos.x,rawPos.y,rawPos.z); |                 Vector3d newPosition = new Vector3d(rawPos.x,rawPos.y,rawPos.z); | ||||||
|  |                 newPosition = this.suggestMovementPosition(collisionWorldData, newPosition); | ||||||
|                 Quaterniond newRotation = PhysicsUtils.getRigidBodyRotation(rigidBody); |                 Quaterniond newRotation = PhysicsUtils.getRigidBodyRotation(rigidBody); | ||||||
|                 EntityUtils.getPosition(physicsEntity).set(newPosition); |                 EntityUtils.getPosition(physicsEntity).set(newPosition); | ||||||
|                 EntityUtils.getRotation(physicsEntity).set(newRotation); |                 EntityUtils.getRotation(physicsEntity).set(newRotation); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user