public static LaunchPacket FromSFSObject(ISFSObject data)
{
LaunchPacket launchMessage = new LaunchPacket();
ISFSObject launchData = data.GetSFSObject("launchMessage");
launchMessage.type = launchData.GetUtfString("messageType");
//cube hit id
launchMessage.cubeID = launchData.GetInt("cubeID");
//side hit id
launchMessage.sideID = launchData.GetInt("sideID");
//get launch pos
float sx = launchData.GetFloat("sx");
float sy = launchData.GetFloat("sy");
float sz = launchData.GetFloat("sz");
//set lauch pos in object
launchMessage.launchPosition = new Vector3(sx, sy, sz);
//get launch destination
float ex = launchData.GetFloat("ex");
float ey = launchData.GetFloat("ey");
float ez = launchData.GetFloat("ez");
//set lauch pos in object
launchMessage.launchDestination = new Vector3(ex, ey, ez);
//get & set senders local game time
launchMessage.localGameTime = launchData.GetDouble("localGameTime");
//get & set senders local game time
launchMessage.gameTimeETA = launchData.GetDouble("gameTimeETA");
launchMessage.paint = launchData.GetBool("paint");
return launchMessage;
}