Renderer/src/main/java/electrosphere/collision/CollisionWorldData.java
austin ee15dd2366
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
client-server physics synchronization
2024-08-11 19:31:43 -04:00

88 lines
2.4 KiB
Java

package electrosphere.collision;
import electrosphere.client.scene.ClientWorldData;
import electrosphere.client.terrain.manager.ClientTerrainManager;
import electrosphere.game.server.world.ServerWorldData;
import electrosphere.server.terrain.manager.ServerTerrainManager;
import org.joml.Vector3f;
public class CollisionWorldData {
ClientWorldData clientWorldData;
ClientTerrainManager clientTerrainManager;
ServerWorldData serverWorldData;
ServerTerrainManager serverTerrainManager;
public CollisionWorldData(ServerWorldData serverWorldData){
this.serverWorldData = serverWorldData;
}
public CollisionWorldData(ClientWorldData clientWorldData){
this.clientWorldData = clientWorldData;
}
public Vector3f getWorldBoundMin(){
if(clientWorldData != null){
return clientWorldData.getWorldBoundMin();
} else {
return serverWorldData.getWorldBoundMin();
}
}
public Vector3f getWorldBoundMax(){
if(clientWorldData != null){
return clientWorldData.getWorldBoundMax();
} else {
return serverWorldData.getWorldBoundMax();
}
}
public int convertRealToWorld(double real){
if(clientWorldData != null){
return clientWorldData.convertRealToChunkSpace(real);
} else {
return serverWorldData.convertRealToChunkSpace(real);
}
}
public double convertWorldToReal(int world){
if(clientWorldData != null){
return clientWorldData.convertChunkToRealSpace(world);
} else {
return serverWorldData.convertChunkToRealSpace(world);
}
}
public int getDynamicInterpolationRatio(){
if(clientWorldData != null){
return clientWorldData.getDynamicInterpolationRatio();
} else {
return serverWorldData.getDynamicInterpolationRatio();
}
}
public int getWorldDiscreteSize(){
if(clientWorldData != null){
return clientWorldData.getWorldDiscreteSize();
} else {
return serverWorldData.getWorldSizeDiscrete();
}
}
public float getRandomDampener(){
if(clientWorldData != null){
return clientWorldData.getRandomDampener();
} else {
return serverWorldData.getRandomDampener();
}
}
}