Fix player camera bug
This commit is contained in:
parent
0d3e242188
commit
74a9ea4a5f
@ -553,7 +553,7 @@ public class LoadingThread extends Thread {
|
||||
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));
|
||||
|
||||
|
||||
|
||||
|
||||
@ -53,6 +53,29 @@ public class CameraEntityUtils {
|
||||
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){
|
||||
return (Entity)camera.getData(EntityDataStrings.DATA_STRING_CAMERA_ORBIT_TARGET);
|
||||
}
|
||||
|
||||
@ -202,13 +202,8 @@ public class ServerConnectionHandler implements Runnable {
|
||||
case ENTITY_MESSAGE:
|
||||
switch(((EntityMessage)message).getMessageSubtype()){
|
||||
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 SPAWNCREATURE:
|
||||
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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user