protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     particleOid = inMessage.ReadInt64();
     timeToImpact = inMessage.ReadInt32();
     timestamp = inMessage.ReadTimestamp();
     location = inMessage.ReadIntVector();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     name = inMessage.ReadString();
     points = new List<Vector3>();
     int numPoints = inMessage.ReadInt32();
     for (int i = 0; i < numPoints; ++i) {
         IntVector3 point = inMessage.ReadIntVector();
         points.Add(point.ToVector3());
     }
     try {
         halfWidth = inMessage.ReadInt32();
     } catch (System.IO.EndOfStreamException) {
         log.Warn("Got old style road message");
         // ignore this - it means we got an old style message
         halfWidth = -1; // Use default
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     name = inMessage.ReadString();
     location = inMessage.ReadIntVector();
     orientation = inMessage.ReadQuaternion();
     scale = inMessage.ReadVector();
     objectType = (ObjectNodeType)inMessage.ReadInt32();
     followTerrain = inMessage.ReadBool();
     try {
         direction = inMessage.ReadVector();
         lastInterp = inMessage.ReadTimestamp();
     } catch (System.IO.EndOfStreamException) {
         // ignore this - it means we got an old style response
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     lightType = (LightNodeType)inMessage.ReadInt32();
     name = inMessage.ReadString();
     diffuse = inMessage.ReadColor();
     specular = inMessage.ReadColor();
     attenuationRange = inMessage.ReadSingle();
     attenuationConstant = inMessage.ReadSingle();
     attenuationLinear = inMessage.ReadSingle();
     attenuationQuadratic = inMessage.ReadSingle();
     switch (lightType) {
         case LightNodeType.Point:
             location = inMessage.ReadIntVector();
             break;
         case LightNodeType.Directional:
             orientation = inMessage.ReadQuaternion();
             break;
         case LightNodeType.Spotlight:
             location = inMessage.ReadIntVector();
             orientation = inMessage.ReadQuaternion();
             spotlightInnerAngle = inMessage.ReadSingle();
             spotlightOuterAngle = inMessage.ReadSingle();
             spotlightFalloff = inMessage.ReadSingle();
             break;
         default:
             throw new Exception("Invalid light node type: " + lightType);
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     startTime = inMessage.ReadTimestamp();
     interpKind = inMessage.ReadString();
     speed = inMessage.ReadSingle();
     terrainString = inMessage.ReadString();
     int count = inMessage.ReadInt32();
     pathPoints = new List<Vector3>();
     for (int i=0; i<count; i++)
         pathPoints.Add(inMessage.ReadIntVector().ToVector3());
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     direction = inMessage.ReadVector();
     location = inMessage.ReadIntVector();
 }