Exemplo n.º 1
0
        /// <summary>
        /// Saves the file to the specified stream.
        /// </summary>
        /// <param name="stream">The stream to save to.</param>
        public override void Save(Stream stream)
        {
            BinaryWriter writer = new BinaryWriter(stream, CodePagesEncodingProvider.Instance.GetEncoding("EUC-KR"));

            writer.Write((short)SkeletonFiles.Count);

            SkeletonFiles.ForEach(file => {
                writer.WriteString(file);
                writer.Write((byte)0);
            });

            writer.Write((short)MotionFiles.Count);

            MotionFiles.ForEach(file => {
                writer.WriteString(file);
                writer.Write((byte)0);
            });

            writer.Write((short)EffectFiles.Count);

            EffectFiles.ForEach(file => {
                writer.WriteString(file);
                writer.Write((byte)0);
            });

            writer.Write((short)Characters.Count);

            Characters.ForEach(character => {
                writer.Write(character.IsEnabled);

                if (character.IsEnabled)
                {
                    writer.Write(character.ID);
                    writer.WriteString(character.Name);
                    writer.Write((byte)0);

                    writer.Write((short)character.Objects.Count);

                    character.Objects.ForEach(@object => {
                        writer.Write(@object.Object);
                    });

                    writer.Write((short)character.Animations.Count);

                    character.Animations.ForEach(animation => {
                        writer.Write((short)animation.Type);
                        writer.Write(animation.Animation);
                    });

                    writer.Write((short)character.Effects.Count);

                    character.Effects.ForEach(effect => {
                        writer.Write(effect.Bone);
                        writer.Write(effect.Effect);
                    });
                }
            });
        }