Fix player camera bug
This commit is contained in:
parent
0d3e242188
commit
74a9ea4a5f
@ -553,7 +553,7 @@ public class LoadingThread extends Thread {
|
|||||||
Player Camera
|
Player Camera
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Globals.playerCamera = CameraEntityUtils.spawnEntityTrackingCameraEntity(new Vector3f(1,0,1), new Vector3f(0,0,0), Globals.playerEntity);
|
Globals.playerCamera = CameraEntityUtils.spawnPlayerEntityTrackingCameraEntity(new Vector3f(1,0,1), new Vector3f(0,0,0));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -52,6 +52,29 @@ public class CameraEntityUtils {
|
|||||||
Globals.entityManager.registerBehaviorTree(entityTrackingTree);
|
Globals.entityManager.registerBehaviorTree(entityTrackingTree);
|
||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Entity spawnPlayerEntityTrackingCameraEntity(Vector3f center, Vector3f eye){
|
||||||
|
Entity rVal = new Entity();
|
||||||
|
Globals.entityManager.registerEntity(rVal);
|
||||||
|
rVal.putData(EntityDataStrings.DATA_STRING_CAMERA_TYPE, EntityDataStrings.DATA_STRING_CAMERA_TYPE_ORBIT);
|
||||||
|
rVal.putData(EntityDataStrings.DATA_STRING_CAMERA_CENTER, center);
|
||||||
|
rVal.putData(EntityDataStrings.DATA_STRING_CAMERA_EYE, eye);
|
||||||
|
rVal.putData(EntityDataStrings.DATA_STRING_CAMERA_ORBIT_DISTANCE, 1.0f);
|
||||||
|
rVal.putData(EntityDataStrings.CAMERA_ORBIT_RADIAL_OFFSET, new Vector3f(0,1,0));
|
||||||
|
rVal.putData(EntityDataStrings.CAMERA_PITCH, 0.0f);
|
||||||
|
rVal.putData(EntityDataStrings.CAMERA_YAW, 0.0f);
|
||||||
|
BehaviorTree entityTrackingTree = new BehaviorTree() {
|
||||||
|
@Override
|
||||||
|
public void simulate() {
|
||||||
|
if(Globals.playerEntity != null){
|
||||||
|
Vector3d entityPos = EntityUtils.getPosition(Globals.playerEntity);
|
||||||
|
CameraEntityUtils.setCameraCenter(rVal, new Vector3f((float)entityPos.x,(float)entityPos.y,(float)entityPos.z).add(getOrbitalCameraRadialOffset(rVal)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Globals.entityManager.registerBehaviorTree(entityTrackingTree);
|
||||||
|
return rVal;
|
||||||
|
}
|
||||||
|
|
||||||
public static Entity getOrbitalCameraTarget(Entity camera){
|
public static Entity getOrbitalCameraTarget(Entity camera){
|
||||||
return (Entity)camera.getData(EntityDataStrings.DATA_STRING_CAMERA_ORBIT_TARGET);
|
return (Entity)camera.getData(EntityDataStrings.DATA_STRING_CAMERA_ORBIT_TARGET);
|
||||||
|
|||||||
@ -202,19 +202,14 @@ public class ServerConnectionHandler implements Runnable {
|
|||||||
case ENTITY_MESSAGE:
|
case ENTITY_MESSAGE:
|
||||||
switch(((EntityMessage)message).getMessageSubtype()){
|
switch(((EntityMessage)message).getMessageSubtype()){
|
||||||
case MOVEUPDATE:
|
case MOVEUPDATE:
|
||||||
if(((EntityMessage)message).getentityID()==playerCharacterID){
|
|
||||||
//basically don't send the message if this is the player's character and it's a move update
|
|
||||||
} else {
|
|
||||||
networkParser.addOutgoingMessage(message);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ATTACKUPDATE:
|
case ATTACKUPDATE:
|
||||||
|
case SPAWNCREATURE:
|
||||||
if(((EntityMessage)message).getentityID()==playerCharacterID){
|
if(((EntityMessage)message).getentityID()==playerCharacterID){
|
||||||
//basically don't send the message if this is the player's character and it's a move update
|
//basically don't send the message if this is the player's character and it's a move update
|
||||||
} else {
|
} else {
|
||||||
networkParser.addOutgoingMessage(message);
|
networkParser.addOutgoingMessage(message);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
networkParser.addOutgoingMessage(message);
|
networkParser.addOutgoingMessage(message);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user