xushiting 3 år sedan
förälder
incheckning
d8f107a0b5
1 ändrade filer med 109 tillägg och 3 borttagningar
  1. 109 3
      src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

+ 109 - 3
src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

@@ -30,6 +30,7 @@ import java.io.IOException;
 public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBase {
     @Autowired
     MetaConfig metaConfig;
+    /*
     @Override
     public void testMethod(SceneRequest request, StreamObserver<SceneReply> responseObserver) {
         // grpc服务端获取调用端请求参数
@@ -42,6 +43,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
         log.info("回复{}",res);
 
     }
+    */
     @Override
     public void getRoute(RouteRequest request, StreamObserver<RouteReply> responseObserver)   {
         // grpc服务端获取调用端请求参数
@@ -77,7 +79,19 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     @Override
     public void init(InitRequest request, StreamObserver<NormalReply> responseObserver)   {
     	try {
-    	
+    		String user_id = request.getUserId();
+    		String nick_name = request.getNickName();
+    		String skin_id = request.getSkinId();
+    		String avatar_id = request.getAvatarId();
+    		String room_id = request.getRoomId();
+    		String app_id = request.getAppId();
+    		
+    		//初始化的时候可以写死
+    		//frame_id
+    		//break_point_id
+    		//player_angle
+    		
+    		//再写入user表
     	}
     	catch(Exception e) {
     		e.printStackTrace();
@@ -87,7 +101,35 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     @Override
     public void rotate(RotateRequest request, StreamObserver<NormalReply> responseObserver)   {
     	try {
-    	
+    		/*
+    		{
+    			"action_type":1014,
+    			"rotation_action":
+    			{
+    				"vertical_move":0,
+    				"horizontal_move":-0.020630372492836675
+    			},
+    			"trace_id":"b40a894e-cd59-4db5-8d75-a8466a0c9f15",
+    			"user_id":"0a3987974feb4"
+    		}
+    		*/
+    		int action_type = request.getActionType();
+    		
+    		//request.getRotationAction()
+    		
+    		String trace_id = request.getTraceId();
+    		String user_id = request.getUserId();
+    		
+    		
+    		
+    		NormalReply res = NormalReply.newBuilder()
+    				.setTraceIds(0, trace_id).setVehicle(null)
+    				.setNewUserStates(0, value)
+    				.build();
+    		
+    		
+	        responseObserver.onNext(res);
+	        responseObserver.onCompleted();
     	}
     	catch(Exception e) {
     		e.printStackTrace();
@@ -95,7 +137,23 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     }
     
     @Override
-    public void move(MoveRequest request, StreamObserver<MoveReply> responseObserver)   {
+    public void moveStart(StartMoveRequest request, StreamObserver<NormalReply> responseObserver)   {
+     	try {
+        	/*
+        	 * 1.从user表里获得当前人物所在的breakPoint_id
+        	 * 2.根据breakPoint_id,从breakpoints表里获得对应的起始坐标
+        	 * 3.根据request中的clicking_action里的clicking_point(目的地)以及当前起始坐标计算出路径
+        	 * 4.返回整个路径的一段
+        	 * 
+        	 * */
+    	}
+    	catch(Exception e) {
+    		e.printStackTrace();
+    	}
+    }
+    
+    @Override
+    public void moveProcess(MoveNextNeighborRequest request, StreamObserver<MoveReply> responseObserver)   {
      	try {
         	/*
         	 * 1.从user表里获得当前人物所在的breakPoint_id
@@ -130,4 +188,52 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		e.printStackTrace();
     	}
     }
+    
+    private UserState createUserState(String user_id,State state) {
+    	UserState state = UserState.newBuilder()
+				.setUserId(user_id)
+				.setPlayerState(state)
+				.build();
+    }
+    
+    private State createPlayerState(Space player,Space camera,Point cameraCenter) {
+    	State playerState = State.newBuilder()
+    			.setRoomTypeId("")
+    			.setPerson(0)
+    			.setAvatarId("")
+    			.setSkinId("")
+    			.setRoomId("")
+    			.setIsHost(false)
+    			.setIsFollowHost(false)
+    			.setSkinDataVersion("")
+    			.setAvatarComponents("")
+    			.setNickName("")
+    			.setMovingMode(0)
+    			.setAttitude("")
+    			.setAreaName("")
+    			.setPathName("")
+    			.setPathId("")
+    			.setAvatarSize(1)
+    			.setExtra("")
+    			.setPrioritySync(false)
+    			.setPlayer(player)
+    			.setCamera(camera)
+    			.setCameraCenter(cameraCenter).build();
+    	return playerState;
+    }
+    
+    private Space createSpace(Point position,AngleUe4 angle) {
+    	Space space = Space.newBuilder().setPosition(position).setAngle(angle).build();
+    	return space;
+    }
+    
+    private Point createPoint(double x,double y,double z) {
+    	Point point = Point.newBuilder().setX(x).setY(y).setZ(z);
+    	return point;
+    }
+    
+    private AngleUe4 createAngle(int pitch,int yaw,int roll) {
+    	AngleUe4 angle = AngleUe4.newBuilder().setPitch(pitch).setYaw(yaw).setRoll(roll).build();
+    	return angle;
+    }
 }