|
@@ -88,8 +88,9 @@ public class UpdateFrameMetaTask {
|
|
//过渡
|
|
//过渡
|
|
if(myState.getIntValue("isMoving") == 1){
|
|
if(myState.getIntValue("isMoving") == 1){
|
|
MoveFrameEntity moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),_actionPO.getFrameIndex()+1);
|
|
MoveFrameEntity moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),_actionPO.getFrameIndex()+1);
|
|
- //过渡下一段
|
|
|
|
|
|
+ //准备过渡下一段
|
|
if(moveFrameEntity==null){
|
|
if(moveFrameEntity==null){
|
|
|
|
+ RotateFrameEntity rotateFrameEntity = rotateFrameService.findByAppIdAndBreakPointIdAndFrameIndex(user.getAppId(),endBreakPointId,_actionPO.getCameraAngle().getYaw());
|
|
path.remove(0);
|
|
path.remove(0);
|
|
if(path.size()>1){
|
|
if(path.size()>1){
|
|
startBreakPointId = endBreakPointId;
|
|
startBreakPointId = endBreakPointId;
|
|
@@ -98,13 +99,25 @@ public class UpdateFrameMetaTask {
|
|
_actionPO.setFrameIndex(0);
|
|
_actionPO.setFrameIndex(0);
|
|
_actionPO.setStartPostion(null);
|
|
_actionPO.setStartPostion(null);
|
|
_actionPO.setEndPosition(null);
|
|
_actionPO.setEndPosition(null);
|
|
- moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),1);
|
|
|
|
- user.setFrameId(moveFrameEntity.getId());
|
|
|
|
|
|
+
|
|
|
|
+ int subFrameIndex = moveFrameService.getCountByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngle( user.getAppId(),startBreakPointId,endBreakPointId, _actionPO.getCameraAngle().getYaw()%45);
|
|
|
|
+ _actionPO.setSubFrameIndex(subFrameIndex);
|
|
|
|
+ _actionPO.setPlayerPosition(endBreakpointsEntity.getPosition());
|
|
|
|
+
|
|
startBreakpointsEntity = breakpointsService.findById(startBreakPointId);
|
|
startBreakpointsEntity = breakpointsService.findById(startBreakPointId);
|
|
endBreakpointsEntity = breakpointsService.findById(endBreakPointId);
|
|
endBreakpointsEntity = breakpointsService.findById(endBreakPointId);
|
|
int _angle = sceneGrpcService.calAngleForBreakPointId(startBreakpointsEntity,endBreakpointsEntity);
|
|
int _angle = sceneGrpcService.calAngleForBreakPointId(startBreakpointsEntity,endBreakpointsEntity);
|
|
AnglePO playerAngle = user.getPlayerAngle();
|
|
AnglePO playerAngle = user.getPlayerAngle();
|
|
playerAngle.setYaw(_angle);
|
|
playerAngle.setYaw(_angle);
|
|
|
|
+ _actionPO.setPlayerAngle(playerAngle);
|
|
|
|
+ //更新redis记录
|
|
|
|
+ redisCache.setCacheListByIndex("setCacheRequest"+user.getUserId(),0,_actionPO);
|
|
|
|
+
|
|
|
|
+ myState.put("isMoving",0);
|
|
|
|
+ redisCache.setCacheObject("UserState"+user.getUserId(),myState);
|
|
|
|
+
|
|
|
|
+ //moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),0);
|
|
|
|
+ user.setFrameId(rotateFrameEntity.getId());
|
|
user.setPlayerAngle(playerAngle);
|
|
user.setPlayerAngle(playerAngle);
|
|
user.setBreakPointId(startBreakPointId);
|
|
user.setBreakPointId(startBreakPointId);
|
|
user.setPlayerPosition(startBreakpointsEntity.getPosition());
|
|
user.setPlayerPosition(startBreakpointsEntity.getPosition());
|
|
@@ -115,9 +128,9 @@ public class UpdateFrameMetaTask {
|
|
//删除redis里的数据
|
|
//删除redis里的数据
|
|
redisCache.lTrim("setCacheRequest"+user.getUserId(),1,-1);
|
|
redisCache.lTrim("setCacheRequest"+user.getUserId(),1,-1);
|
|
//更新user表
|
|
//更新user表
|
|
- moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),_actionPO.getFrameIndex());
|
|
|
|
|
|
+ //moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),_actionPO.getFrameIndex());
|
|
user.setPlayerPosition(endBreakpointsEntity.getPosition());
|
|
user.setPlayerPosition(endBreakpointsEntity.getPosition());
|
|
- user.setFrameId(moveFrameEntity.getId());
|
|
|
|
|
|
+ user.setFrameId(rotateFrameEntity.getId());
|
|
user.setPlayerAngle(_actionPO.getPlayerAngle());
|
|
user.setPlayerAngle(_actionPO.getPlayerAngle());
|
|
user.setBreakPointId(endBreakPointId);
|
|
user.setBreakPointId(endBreakPointId);
|
|
userService.updateById(user);
|
|
userService.updateById(user);
|
|
@@ -126,9 +139,10 @@ public class UpdateFrameMetaTask {
|
|
redisCache.setCacheObject("UserState"+user.getUserId(),myState);
|
|
redisCache.setCacheObject("UserState"+user.getUserId(),myState);
|
|
//执行下一条记录
|
|
//执行下一条记录
|
|
list.remove(0);
|
|
list.remove(0);
|
|
- handle( user,list);
|
|
|
|
- return ;
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ handle( user,list);
|
|
|
|
+ return ;
|
|
}
|
|
}
|
|
//更新
|
|
//更新
|
|
if(_actionPO.getStartPostion() == null){
|
|
if(_actionPO.getStartPostion() == null){
|
|
@@ -146,8 +160,7 @@ public class UpdateFrameMetaTask {
|
|
}
|
|
}
|
|
else if(myState.getIntValue("isMoving") == 0){
|
|
else if(myState.getIntValue("isMoving") == 0){
|
|
if(list.size()>0){
|
|
if(list.size()>0){
|
|
- //中断
|
|
|
|
- //执行下一条记录
|
|
|
|
|
|
+ //中断,执行下一条记录
|
|
list.remove(0);
|
|
list.remove(0);
|
|
redisCache.lTrim("setCacheRequest"+user.getUserId(),1,-1);
|
|
redisCache.lTrim("setCacheRequest"+user.getUserId(),1,-1);
|
|
handle( user,list);
|
|
handle( user,list);
|
|
@@ -157,6 +170,7 @@ public class UpdateFrameMetaTask {
|
|
//过渡
|
|
//过渡
|
|
myState.put("isMoving",1);
|
|
myState.put("isMoving",1);
|
|
redisCache.setCacheObject("UserState"+user.getUserId(),myState);
|
|
redisCache.setCacheObject("UserState"+user.getUserId(),myState);
|
|
|
|
+
|
|
MoveFrameEntity moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),_actionPO.getFrameIndex()+1);
|
|
MoveFrameEntity moveFrameEntity = moveFrameService.findByAppIAndStartBreakPointIdAndEndBreakPointIdAndAngleAndFrameIndex(user.getAppId(), startBreakPointId, endBreakPointId,_actionPO.getCameraAngle().getYaw(),_actionPO.getFrameIndex()+1);
|
|
//更新
|
|
//更新
|
|
int _angle = sceneGrpcService.calAngleForBreakPointId(startBreakpointsEntity,endBreakpointsEntity);
|
|
int _angle = sceneGrpcService.calAngleForBreakPointId(startBreakpointsEntity,endBreakpointsEntity);
|
|
@@ -173,21 +187,28 @@ public class UpdateFrameMetaTask {
|
|
/****************************************************************************************/
|
|
/****************************************************************************************/
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ long lastFrameId = _actionPO.getFrameId();
|
|
for(int i=1;i<list.size();++i){
|
|
for(int i=1;i<list.size();++i){
|
|
ActionPO actionPO = list.get(i);
|
|
ActionPO actionPO = list.get(i);
|
|
- if(firstActionType != actionPO.getAction_type()){
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+// if(firstActionType != actionPO.getAction_type()){
|
|
|
|
+// break;
|
|
|
|
+// }
|
|
//旋转
|
|
//旋转
|
|
if(actionPO.getAction_type() == 1014||actionPO.getAction_type() == 15){
|
|
if(actionPO.getAction_type() == 1014||actionPO.getAction_type() == 15){
|
|
rotateJoystickList.add(actionPO);
|
|
rotateJoystickList.add(actionPO);
|
|
|
|
+ lastFrameId = actionPO.getFrameId();
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
+ else{
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
createRotateFrameMetadata( user, rotateJoystickList, firstActionType);
|
|
createRotateFrameMetadata( user, rotateJoystickList, firstActionType);
|
|
//删除redis里的数据
|
|
//删除redis里的数据
|
|
redisCache.lTrim("setCacheRequest"+user.getUserId(),rotateJoystickList.size(),-1);
|
|
redisCache.lTrim("setCacheRequest"+user.getUserId(),rotateJoystickList.size(),-1);
|
|
|
|
+ //更新user表
|
|
|
|
+ user.setFrameId(lastFrameId);
|
|
|
|
+ userService.updateById(user);
|
|
}
|
|
}
|
|
|
|
|
|
private void createDefaultFrameMetadata(UserEntity user){
|
|
private void createDefaultFrameMetadata(UserEntity user){
|