public static List <CustomSyncMsg> extract_msg(List <p_AllMsg.p_CustomSyncMsg> pmsg_list) { List <CustomSyncMsg> customSyncMsgs = new List <CustomSyncMsg>(); foreach (p_AllMsg.p_CustomSyncMsg pmsg in pmsg_list) { if (pmsg.msg_type == (int)RequestType.ROTATE) { p_AllMsg.p_RotateMessage pRotate = pmsg as p_AllMsg.p_RotateMessage; RotateMessage rotate_msg = new RotateMessage(pmsg.player_id, new Vector2(pRotate.delta_x, pRotate.delta_y)); customSyncMsgs.Add(rotate_msg); } else if (pmsg.msg_type == (int)RequestType.SPAWN) { } else if (pmsg.msg_type == (int)RequestType.INPUT) { p_AllMsg.p_InputMessage pInput = pmsg as p_AllMsg.p_InputMessage; InputMessage input_msg = new InputMessage(pmsg.player_id, new Vector3(pInput.moving_x, pInput.moving_y, pInput.moving_z)); customSyncMsgs.Add(input_msg); } else if (pmsg.msg_type == (int)RequestType.SHOOT) { p_AllMsg.p_ShootMessage pshoot = pmsg as p_AllMsg.p_ShootMessage; ShootMessage shoot_msg = new ShootMessage(pmsg.player_id, new Vector3(pshoot.origin_x, pshoot.origin_y, pshoot.origin_z), new Vector3(pshoot.direction_x, pshoot.direction_y, pshoot.direction_z)); customSyncMsgs.Add(shoot_msg); } } return(customSyncMsgs); }
public static List <p_AllMsg.p_CustomSyncMsg> Buffer_SyncFrame_msg_list(List <CustomSyncMsg> msg_list) { List <p_AllMsg.p_CustomSyncMsg> p_msg_list = new List <p_AllMsg.p_CustomSyncMsg>(); foreach (CustomSyncMsg msg in msg_list) { if (msg.msg_type == (int)RequestType.ENTERAREA) { EnterAreaMessage enterArea = msg as EnterAreaMessage; p_AllMsg.p_EnterAreaMessage p_msg = new p_AllMsg.p_EnterAreaMessage(); p_msg.id = enterArea.id; p_msg.health = enterArea.health;; p_msg.position_x = enterArea.position.x; p_msg.position_y = enterArea.position.y; p_msg.position_z = enterArea.position.z; p_msg.direction_x = enterArea.direction.x; p_msg.direction_y = enterArea.direction.y; p_msg.direction_z = enterArea.direction.z; p_msg.rotation_x = enterArea.rotation.x; p_msg.rotation_y = enterArea.rotation.y; p_msg.msg_type = enterArea.msg_type; p_msg.player_id = enterArea.player_id; p_msg.area_id = enterArea.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.INPUT) { InputMessage input = msg as InputMessage; p_AllMsg.p_InputMessage p_msg = new p_AllMsg.p_InputMessage(); p_msg.id = input.id; p_msg.moving_x = input.moving.x; p_msg.moving_y = input.moving.y; p_msg.moving_z = input.moving.z; p_msg.msg_type = input.msg_type; p_msg.player_id = input.player_id; p_msg.area_id = input.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.LEAVEAREA) { LeaveAreaMessage leaveArea = msg as LeaveAreaMessage; p_AllMsg.p_LeaveAreaMessage p_msg = new p_AllMsg.p_LeaveAreaMessage(); p_msg.id = leaveArea.id; p_msg.msg_type = leaveArea.msg_type; p_msg.player_id = leaveArea.player_id; p_msg.area_id = leaveArea.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.ROTATE) { RotateMessage rotate = msg as RotateMessage; p_AllMsg.p_RotateMessage p_msg = new p_AllMsg.p_RotateMessage(); p_msg.id = rotate.id; p_msg.delta_x = rotate.delta.x; p_msg.delta_y = rotate.delta.y; p_msg.msg_type = rotate.msg_type; p_msg.player_id = rotate.player_id; p_msg.area_id = rotate.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.SPAWN) { SpawnMessage spawn = msg as SpawnMessage; p_AllMsg.p_SpawnMessage p_msg = new p_AllMsg.p_SpawnMessage(); p_msg.id = spawn.id; p_msg.position_x = spawn.position.x; p_msg.position_y = spawn.position.y; p_msg.position_z = spawn.position.z; p_msg.msg_type = spawn.msg_type; p_msg.player_id = spawn.player_id; p_msg.area_id = spawn.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.SHOOT) { ShootMessage shoot = msg as ShootMessage; p_AllMsg.p_ShootMessage p_msg = new p_AllMsg.p_ShootMessage(); p_msg.direction_x = shoot.direction_x; p_msg.direction_y = shoot.direction_y; p_msg.direction_z = shoot.direction_z; p_msg.origin_x = shoot.origin_x; p_msg.origin_y = shoot.origin_y; p_msg.origin_z = shoot.origin_z; p_msg.player_id = shoot.player_id; p_msg.msg_type = shoot.msg_type; p_msg_list.Add(p_msg); } } return(p_msg_list); }