protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     slotName = inMessage.ReadString();
     effectName = inMessage.ReadString();
     orientation = inMessage.ReadQuaternion();
     velocityMultiplier = inMessage.ReadSingle();
     particleSizeMultiplier = inMessage.ReadSingle();
     particleBooleans = inMessage.ReadByte();
     if (GetFlag(Flags.HasColor))
         color = inMessage.ReadColor();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     imageName = inMessage.ReadString();
     positionX = inMessage.ReadInt32();
     positionZ = inMessage.ReadInt32();
     sizeX = inMessage.ReadSingle();
     sizeZ = inMessage.ReadSingle();
     rotation = inMessage.ReadSingle();
     priority = inMessage.ReadInt32();
     expireTime = inMessage.ReadInt64();
 }
 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());
 }