Exemplo n.º 1
0
 /// <summary>
 /// Clears all file systems.
 /// </summary>
 public void Clear()
 {
     SkeletonFiles.Clear();
     MotionFiles.Clear();
     EffectFiles.Clear();
     Characters.Clear();
 }
Exemplo n.º 2
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);
                    });
                }
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// Loads the file from the specified stream.
        /// </summary>
        /// <param name="stream">The stream to read from.</param>
        public override void Load(Stream stream)
        {
            BinaryReader reader = new BinaryReader(stream, CodePagesEncodingProvider.Instance.GetEncoding("EUC-KR"));

            short skeletonFileCount = reader.ReadInt16();

            for (int i = 0; i < skeletonFileCount; i++)
            {
                string skeletonFile = reader.ReadNullTerminatedString();

                SkeletonFiles.Add(skeletonFile);
            }

            short motionFileCount = reader.ReadInt16();

            for (int i = 0; i < motionFileCount; i++)
            {
                string motionFile = reader.ReadNullTerminatedString();

                MotionFiles.Add(motionFile);
            }

            short effectFileCount = reader.ReadInt16();

            for (int i = 0; i < effectFileCount; i++)
            {
                string effectFile = reader.ReadNullTerminatedString();

                EffectFiles.Add(effectFile);
            }

            short characterCount = reader.ReadInt16();

            for (int i = 0; i < characterCount; i++)
            {
                Character character = new Character();
                character.IsEnabled = reader.ReadBoolean();

                if (character.IsEnabled)
                {
                    character.ID   = reader.ReadInt16();
                    character.Name = reader.ReadNullTerminatedString();

                    short objectCount = reader.ReadInt16();

                    for (int j = 0; j < objectCount; j++)
                    {
                        CharacterObject @object = new CharacterObject();
                        @object.Object = reader.ReadInt16();

                        character.Objects.Add(@object);
                    }

                    short animationCount = reader.ReadInt16();

                    for (int j = 0; j < animationCount; j++)
                    {
                        CharacterAnimation animation = new CharacterAnimation();
                        animation.Type      = (AnimationType)reader.ReadInt16();
                        animation.Animation = reader.ReadInt16();

                        character.Animations.Add(animation);
                    }

                    short effectCount = reader.ReadInt16();

                    for (int j = 0; j < effectCount; j++)
                    {
                        CharacterEffect effect = new CharacterEffect();
                        effect.Bone   = reader.ReadInt16();
                        effect.Effect = reader.ReadInt16();

                        character.Effects.Add(effect);
                    }
                }

                Characters.Add(character);
            }
        }
Exemplo n.º 4
0
        public void Load(string filePath)
        {
            var fh = new FileHandler(filePath, FileHandler.FileOpenMode.Reading, Encoding.UTF8);

            short skeletonFileCount = fh.Read <short>();

            for (int i = 0; i < skeletonFileCount; i++)
            {
                string skeletonFile = fh.Read <ZString>();
                SkeletonFiles.Add(skeletonFile);
            }

            short motionFileCount = fh.Read <short>();

            for (int i = 0; i < motionFileCount; i++)
            {
                string motionFile = fh.Read <ZString>();

                MotionFiles.Add(motionFile);
            }

            short effectFileCount = fh.Read <short>();

            for (int i = 0; i < effectFileCount; i++)
            {
                string effectFile = fh.Read <ZString>();

                EffectFiles.Add(effectFile);
            }

            short characterCount = fh.Read <short>();

            for (int i = 0; i < characterCount; i++)
            {
                Character character = new Character();
                character.IsEnabled = fh.Read <char>() != 0;

                if (character.IsEnabled)
                {
                    character.ID   = fh.Read <short>();
                    character.Name = fh.Read <ZString>();

                    short objectCount = fh.Read <short>();

                    for (int j = 0; j < objectCount; j++)
                    {
                        CharacterObject @object = new CharacterObject();
                        @object.Object = fh.Read <short>();

                        character.Objects.Add(@object);
                    }

                    short animationCount = fh.Read <short>();

                    for (int j = 0; j < animationCount; j++)
                    {
                        CharacterAnimation animation = new CharacterAnimation();
                        animation.Type      = (AnimationType)fh.Read <short>();
                        animation.Animation = fh.Read <short>();

                        character.Animations.Add(animation);
                    }

                    short effectCount = fh.Read <short>();

                    for (int j = 0; j < effectCount; j++)
                    {
                        CharacterEffect effect = new CharacterEffect();
                        effect.Bone   = fh.Read <short>();
                        effect.Effect = fh.Read <short>();

                        character.Effects.Add(effect);
                    }
                }

                Characters.Add(character);
            }
        }