Exemple #1
0
        public override Stream UnParse()
        {
            MemoryStream ms = new MemoryStream();
            BinaryWriter w  = new BinaryWriter(ms);

            w.Write(tag);
            w.Write(version);

            if (routes == null)
            {
                routes = new PartList(handler);
            }
            w.Write(routes.Count);
            if (containers == null)
            {
                containers = new SlottedPartList(handler);
            }
            w.Write(containers.Count);
            if (effects == null)
            {
                effects = new PartList(handler);
            }
            w.Write(effects.Count);
            if (inverseKineticsTargets == null)
            {
                inverseKineticsTargets = new PartList(handler);
            }
            w.Write(inverseKineticsTargets.Count);
            if (cones == null)
            {
                cones = new ConePartList(handler);
            }
            w.Write(cones.Count);

            routes.UnParse(ms);
            if (routes.Count > 0)
            {
                routeOffsets.UnParse(ms);
            }
            containers.UnParse(ms);
            if (containers.Count > 0)
            {
                containerOffsets.UnParse(ms);
            }
            effects.UnParse(ms);
            if (effects.Count > 0)
            {
                effectOffsets.UnParse(ms);
            }
            inverseKineticsTargets.UnParse(ms);
            if (inverseKineticsTargets.Count > 0)
            {
                inverseKineticsTargetOffsets.UnParse(ms);
            }
            cones.UnParse(ms);
            if (cones.Count > 0)
            {
                coneOffsets.UnParse(ms);
            }

            return(ms);
        }