From c4914d7f647249757a8be7b99c97ea9a8b536091 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Sun, 5 Mar 2023 20:08:05 +0100 Subject: [PATCH] Move BehaviourFile processing to OMI lib --- PCK-Studio/Classes/FileTypes/BehaviourFile.cs | 31 ----------- .../Classes/IO/Behaviour/BehavioursReader.cs | 53 ------------------- .../Classes/IO/Behaviour/BehavioursWriter.cs | 47 ---------------- PCK-Studio/Forms/Editor/BehaviourEditor.cs | 9 ++-- PCK-Studio/Forms/Utilities/BehaviourUtil.cs | 6 ++- PCK-Studio/PckStudio.csproj | 3 -- Vendor/OMI-Lib | 2 +- 7 files changed, 11 insertions(+), 140 deletions(-) delete mode 100644 PCK-Studio/Classes/FileTypes/BehaviourFile.cs delete mode 100644 PCK-Studio/Classes/IO/Behaviour/BehavioursReader.cs delete mode 100644 PCK-Studio/Classes/IO/Behaviour/BehavioursWriter.cs diff --git a/PCK-Studio/Classes/FileTypes/BehaviourFile.cs b/PCK-Studio/Classes/FileTypes/BehaviourFile.cs deleted file mode 100644 index fbb96fd0..00000000 --- a/PCK-Studio/Classes/FileTypes/BehaviourFile.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace PckStudio.Classes.FileTypes -{ - public class BehaviourFile - { - public List entries { get; } = new List(); - public class RiderPositionOverride - { - public string name; - public List overrides { get; } - - public RiderPositionOverride(string name) - { - this.name = name; - overrides = new List(); - } - - public class PositionOverride - { - public bool EntityIsTamed; - public bool EntityHasSaddle; - public float x, y, z; - } - } - } -} diff --git a/PCK-Studio/Classes/IO/Behaviour/BehavioursReader.cs b/PCK-Studio/Classes/IO/Behaviour/BehavioursReader.cs deleted file mode 100644 index 86e31c17..00000000 --- a/PCK-Studio/Classes/IO/Behaviour/BehavioursReader.cs +++ /dev/null @@ -1,53 +0,0 @@ -using PckStudio.Classes.FileTypes; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace PckStudio.Classes.IO.Behaviour -{ - public class BehavioursReader : StreamDataReader - { - public static BehaviourFile Read(Stream stream) - { - return new BehavioursReader().ReadFromStream(stream); - } - - protected BehavioursReader() : base(false) // Doesn't seem that Behaviours uses little endian - { - } - - protected override BehaviourFile ReadFromStream(Stream stream) - { - BehaviourFile behaviourFile = new BehaviourFile(); - _ = ReadInt(stream); - int riderPosOverrideCount = ReadInt(stream); - for (int i = 0; i < riderPosOverrideCount; i++) - { - string name = ReadString(stream); - var riderPositionOverride = new BehaviourFile.RiderPositionOverride(name); - int posOverideCount = ReadInt(stream); - for (; 0 < posOverideCount; posOverideCount--) - { - var posOverride = new BehaviourFile.RiderPositionOverride.PositionOverride(); - posOverride.EntityIsTamed = ReadBool(stream); - posOverride.EntityHasSaddle = ReadBool(stream); - posOverride.x = ReadFloat(stream); - posOverride.y = ReadFloat(stream); - posOverride.z = ReadFloat(stream); - riderPositionOverride.overrides.Add(posOverride); - } - behaviourFile.entries.Add(riderPositionOverride); - } - return behaviourFile; - } - - private string ReadString(Stream stream) - { - short length = ReadShort(stream); - return ReadString(stream, length, Encoding.ASCII); - } - } -} diff --git a/PCK-Studio/Classes/IO/Behaviour/BehavioursWriter.cs b/PCK-Studio/Classes/IO/Behaviour/BehavioursWriter.cs deleted file mode 100644 index fe28400d..00000000 --- a/PCK-Studio/Classes/IO/Behaviour/BehavioursWriter.cs +++ /dev/null @@ -1,47 +0,0 @@ -using PckStudio.Classes.FileTypes; -using System; -using System.IO; -using System.Text; - -namespace PckStudio.Classes.IO.Behaviour -{ - internal class BehavioursWriter : StreamDataWriter - { - private BehaviourFile behaviourFile; - - public static void Write(Stream stream, BehaviourFile file) - { - new BehavioursWriter(file).WriteToStream(stream); - } - - public BehavioursWriter(BehaviourFile file) : base(false) - { - behaviourFile = file; - } - - protected override void WriteToStream(Stream stream) - { - WriteInt(stream, 0); - WriteInt(stream, behaviourFile.entries.Count); - foreach (var entry in behaviourFile.entries) - { - WriteString(stream, entry.name); - WriteInt(stream, entry.overrides.Count); - foreach(var posOverride in entry.overrides) - { - WriteBool(stream, posOverride.EntityIsTamed); - WriteBool(stream, posOverride.EntityHasSaddle); - WriteFloat(stream, posOverride.x); - WriteFloat(stream, posOverride.y); - WriteFloat(stream, posOverride.z); - } - } - } - - private void WriteString(Stream stream, string s) - { - WriteShort(stream, (short)s.Length); - WriteString(stream, s, Encoding.ASCII); - } - } -} \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/BehaviourEditor.cs b/PCK-Studio/Forms/Editor/BehaviourEditor.cs index fefc9eb5..6bb4d8f8 100644 --- a/PCK-Studio/Forms/Editor/BehaviourEditor.cs +++ b/PCK-Studio/Forms/Editor/BehaviourEditor.cs @@ -7,9 +7,10 @@ using System.Linq; using System.Windows.Forms; using MetroFramework.Forms; using PckStudio.Classes.FileTypes; -using PckStudio.Classes.IO.Behaviour; using PckStudio.Forms.Additional_Popups.EntityForms; using Newtonsoft.Json.Linq; +using OMI.Formats.Behaviour; +using OMI.Workers.Behaviour; namespace PckStudio.Forms.Editor { @@ -62,7 +63,8 @@ namespace PckStudio.Forms.Editor using (var stream = new MemoryStream(file.Data)) { - behaviourFile = BehavioursReader.Read(stream); + var reader = new BehavioursReader(); + behaviourFile = reader.FromStream(stream); } treeView1.ImageList = new ImageList(); @@ -267,7 +269,8 @@ namespace PckStudio.Forms.Editor } } - BehavioursWriter.Write(stream, behaviourFile); + var writer = new BehavioursWriter(behaviourFile); + writer.WriteToStream(stream); _file.SetData(stream.ToArray()); } DialogResult = DialogResult.OK; diff --git a/PCK-Studio/Forms/Utilities/BehaviourUtil.cs b/PCK-Studio/Forms/Utilities/BehaviourUtil.cs index 40f6c06e..64c0dd92 100644 --- a/PCK-Studio/Forms/Utilities/BehaviourUtil.cs +++ b/PCK-Studio/Forms/Utilities/BehaviourUtil.cs @@ -5,8 +5,9 @@ using System.IO; using PckStudio.Properties; using PckStudio.Classes.FileTypes; -using PckStudio.Classes.IO.Behaviour; using PckStudio.Classes.Extentions; +using OMI.Formats.Behaviour; +using OMI.Workers.Behaviour; namespace PckStudio.Forms.Utilities { @@ -23,7 +24,8 @@ namespace PckStudio.Forms.Utilities using (var stream = new MemoryStream()) { - BehavioursWriter.Write(stream, new BehaviourFile()); + var writer = new BehavioursWriter(new BehaviourFile()); + writer.WriteToStream(stream); file.SetData(stream.ToArray()); } diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index f2781c45..34b3b86e 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -171,15 +171,12 @@ - - - diff --git a/Vendor/OMI-Lib b/Vendor/OMI-Lib index 67da631d..e2fa983a 160000 --- a/Vendor/OMI-Lib +++ b/Vendor/OMI-Lib @@ -1 +1 @@ -Subproject commit 67da631de8c6128adf047637eaf5062250fdc9bb +Subproject commit e2fa983abc567498059bcbf858f7a638fe006b74