protected override void Parse(Stream s)
        {
            BinaryReader r = new BinaryReader(s);

            base.Parse(s);

            this.materialList      = new WallFloorPatternMaterialList(OnResourceChanged, s);
            this.common            = new Common(requestedApiVersion, OnResourceChanged, s);
            this.patternType       = (Pattern)r.ReadUInt32();
            this.materialVPXYIndex = r.ReadUInt32();
            this.sortFlags         = (SortFlagsType)r.ReadUInt32();
            this.surfaceType       = BigEndianUnicodeString.Read(s);
            this.terrainType       = (Terrain)r.ReadUInt32();
            this.argb = r.ReadUInt32();

            list = new TGIBlockList(OnResourceChanged, s, tgiPosn, tgiSize);

            if (checking)
            {
                if (this.GetType().Equals(typeof(WallFloorPatternCatalogResource)) && s.Position != s.Length)
                {
                    throw new InvalidDataException(String.Format("Data stream length 0x{0:X8} is {1:X8} bytes longer than expected at {2:X8}",
                                                                 s.Length, s.Length - s.Position, s.Position));
                }
            }
        }
 public WallFloorPatternCatalogResource(uint version,
                                        IEnumerable <WallFloorPatternMaterial> materialList,
                                        Common common,
                                        Pattern patternType,
                                        uint materialVPXYIndex,
                                        SortFlagsType sortFlags,
                                        string surfaceType,
                                        Terrain terrainType,
                                        uint argb,
                                        TGIBlockList ltgib)
     : base(version, common, ltgib)
 {
     this.materialList      = new WallFloorPatternMaterialList(OnResourceChanged, materialList);
     this.patternType       = patternType;
     this.materialVPXYIndex = materialVPXYIndex;
     this.sortFlags         = sortFlags;
     this.surfaceType       = surfaceType;
     this.terrainType       = terrainType;
     this.argb = argb;
 }