/// <summary> /// Clears all file systems. /// </summary> public void Clear() { SkeletonFiles.Clear(); MotionFiles.Clear(); EffectFiles.Clear(); Characters.Clear(); }
/// <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); }); } }); }
/// <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); } }
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); } }