From 752f50e76fdfc54a6ec3c28bc2c3cfb63331fcfb Mon Sep 17 00:00:00 2001 From: DomCR Date: Fri, 24 Nov 2023 20:32:50 +0100 Subject: [PATCH 1/7] line --- ACadSharp.Tests/Svg/SvgConverterTests.cs | 42 +++++++++++++++++ ACadSharp/Entities/Line.cs | 11 +++++ ACadSharp/Svg/SvgConverter.cs | 57 ++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 ACadSharp.Tests/Svg/SvgConverterTests.cs create mode 100644 ACadSharp/Svg/SvgConverter.cs diff --git a/ACadSharp.Tests/Svg/SvgConverterTests.cs b/ACadSharp.Tests/Svg/SvgConverterTests.cs new file mode 100644 index 00000000..47eaac98 --- /dev/null +++ b/ACadSharp.Tests/Svg/SvgConverterTests.cs @@ -0,0 +1,42 @@ +using ACadSharp.Entities; +using ACadSharp.Svg; +using CSMath; +using System.IO; +using Xunit; + +namespace ACadSharp.Tests.Svg +{ + public class SvgConverterTests + { + protected const string _svgOutFolder = "../../../../samples/out/svg"; + + public static SvgConverter Instance = new SvgConverter(); + + static SvgConverterTests() + { + if (!Directory.Exists(_svgOutFolder)) + { + Directory.CreateDirectory(_svgOutFolder); + } + } + + [Fact] + public void LineTest() + { + Line line = new Line(new XYZ(0, 0, 0), new XYZ(10, 10, 0)); + + string filename = Path.Combine(_svgOutFolder, $"line.svg"); + string svg = Instance.Convert(line); + + this.writeSvg(filename, svg); + } + + private void writeSvg(string filename, string svg) + { + using (StreamWriter sw = new StreamWriter(filename)) + { + sw.Write(svg); + } + } + } +} diff --git a/ACadSharp/Entities/Line.cs b/ACadSharp/Entities/Line.cs index 4e98be2b..858fea1c 100644 --- a/ACadSharp/Entities/Line.cs +++ b/ACadSharp/Entities/Line.cs @@ -51,5 +51,16 @@ public class Line : Entity /// Default constructor /// public Line() : base() { } + + /// + /// Line constructor + /// + /// + /// + public Line(XYZ start, XYZ end) : base() + { + this.StartPoint = start; + this.EndPoint = end; + } } } diff --git a/ACadSharp/Svg/SvgConverter.cs b/ACadSharp/Svg/SvgConverter.cs new file mode 100644 index 00000000..a24fdfaf --- /dev/null +++ b/ACadSharp/Svg/SvgConverter.cs @@ -0,0 +1,57 @@ +using ACadSharp.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ACadSharp.Svg +{ + public class SvgConverter + { + public string Convert(Entity entity) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine($""); + + switch (entity) + { + case Line line: + sb.AppendLine(convertLine(line)); + break; + default: + throw new NotImplementedException($"Svg convertion not implemented for {entity.SubclassMarker}"); + } + + sb.AppendLine($""); + + return sb.ToString(); + } + + private string convertLine(Line line) + { + StringBuilder sb = new StringBuilder(); + + sb.Append($"\t"); + sb.Append($""); + + return sb.ToString(); + } + + private string entityStyle(Entity entity) + { + StringBuilder style = new StringBuilder(); + + style.Append($"style="); + style.Append($"\"stroke:rgb({entity.Color.R},{entity.Color.G},{entity.Color.B})\""); + + return style.ToString(); + } + } +} From 2cc1b8e95ee36930131f9a266e3b28999e538a06 Mon Sep 17 00:00:00 2001 From: DomCR Date: Fri, 24 Nov 2023 21:24:57 +0100 Subject: [PATCH 2/7] BoundingBox --- ACadSharp/BoundingBox.cs | 12 ++++++++++++ ACadSharp/Entities/Entity.cs | 5 +++++ ACadSharp/Svg/SvgConverter.cs | 1 + 3 files changed, 18 insertions(+) create mode 100644 ACadSharp/BoundingBox.cs diff --git a/ACadSharp/BoundingBox.cs b/ACadSharp/BoundingBox.cs new file mode 100644 index 00000000..eb00914c --- /dev/null +++ b/ACadSharp/BoundingBox.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ACadSharp +{ + public struct BoundingBox + { + } +} diff --git a/ACadSharp/Entities/Entity.cs b/ACadSharp/Entities/Entity.cs index 017780fd..8ee3e99f 100644 --- a/ACadSharp/Entities/Entity.cs +++ b/ACadSharp/Entities/Entity.cs @@ -132,6 +132,11 @@ public override CadObject Clone() return clone; } + public BoundingBox GetBoundingBox() + { + throw new NotImplementedException(); + } + internal override void AssignDocument(CadDocument doc) { base.AssignDocument(doc); diff --git a/ACadSharp/Svg/SvgConverter.cs b/ACadSharp/Svg/SvgConverter.cs index a24fdfaf..97f32c6c 100644 --- a/ACadSharp/Svg/SvgConverter.cs +++ b/ACadSharp/Svg/SvgConverter.cs @@ -49,6 +49,7 @@ private string entityStyle(Entity entity) StringBuilder style = new StringBuilder(); style.Append($"style="); + style.Append($"\"stroke:rgb({entity.Color.R},{entity.Color.G},{entity.Color.B})\""); return style.ToString(); From 59347c7c5f95819c1996b8d117663e46a358e7f4 Mon Sep 17 00:00:00 2001 From: DomCR Date: Thu, 15 Aug 2024 12:50:02 +0200 Subject: [PATCH 3/7] test --- .../ACadSharp.Tests}/Svg/SvgConverterTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {ACadSharp.Tests => src/ACadSharp.Tests}/Svg/SvgConverterTests.cs (90%) diff --git a/ACadSharp.Tests/Svg/SvgConverterTests.cs b/src/ACadSharp.Tests/Svg/SvgConverterTests.cs similarity index 90% rename from ACadSharp.Tests/Svg/SvgConverterTests.cs rename to src/ACadSharp.Tests/Svg/SvgConverterTests.cs index 47eaac98..c0fbf324 100644 --- a/ACadSharp.Tests/Svg/SvgConverterTests.cs +++ b/src/ACadSharp.Tests/Svg/SvgConverterTests.cs @@ -8,7 +8,7 @@ namespace ACadSharp.Tests.Svg { public class SvgConverterTests { - protected const string _svgOutFolder = "../../../../samples/out/svg"; + protected const string _svgOutFolder = "../../../../../samples/out/svg"; public static SvgConverter Instance = new SvgConverter(); From 0570172696ae211b7c1ffc7babb072263500c213 Mon Sep 17 00:00:00 2001 From: DomCR Date: Sun, 25 Aug 2024 14:06:55 +0200 Subject: [PATCH 4/7] merge --- src/ACadSharp/Entities/Entity.cs | 5 ----- src/ACadSharp/Entities/Line.cs | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ACadSharp/Entities/Entity.cs b/src/ACadSharp/Entities/Entity.cs index d32c9530..0e1d9f2c 100644 --- a/src/ACadSharp/Entities/Entity.cs +++ b/src/ACadSharp/Entities/Entity.cs @@ -136,11 +136,6 @@ public override CadObject Clone() return clone; } - public BoundingBox GetBoundingBox() - { - throw new NotImplementedException(); - } - internal override void AssignDocument(CadDocument doc) { base.AssignDocument(doc); diff --git a/src/ACadSharp/Entities/Line.cs b/src/ACadSharp/Entities/Line.cs index 858fea1c..234e2e0b 100644 --- a/src/ACadSharp/Entities/Line.cs +++ b/src/ACadSharp/Entities/Line.cs @@ -24,7 +24,7 @@ public class Line : Entity public override string SubclassMarker => DxfSubclassMarker.Line; /// - /// Specifies the distance a 2D AutoCAD object is extruded above or below its elevation. + /// Specifies the distance a 2D object is extruded above or below its elevation. /// [DxfCodeValue(39)] public double Thickness { get; set; } = 0.0; @@ -48,12 +48,12 @@ public class Line : Entity public XYZ EndPoint { get; set; } = XYZ.Zero; /// - /// Default constructor + /// Default constructor. /// public Line() : base() { } /// - /// Line constructor + /// Constructor with the start and end. /// /// /// @@ -62,5 +62,14 @@ public Line(XYZ start, XYZ end) : base() this.StartPoint = start; this.EndPoint = end; } + + /// + public override BoundingBox GetBoundingBox() + { + var min = new XYZ(System.Math.Min(this.StartPoint.X, this.EndPoint.X), System.Math.Min(this.StartPoint.Y, this.EndPoint.Y), System.Math.Min(this.StartPoint.Z, this.EndPoint.Z)); + var max = new XYZ(System.Math.Max(this.StartPoint.X, this.EndPoint.X), System.Math.Max(this.StartPoint.Y, this.EndPoint.Y), System.Math.Max(this.StartPoint.Z, this.EndPoint.Z)); + + return new BoundingBox(min, max); + } } -} +} \ No newline at end of file From aaef18e48d032bfffde1d62c276b595234a874fa Mon Sep 17 00:00:00 2001 From: DomCR Date: Sun, 1 Sep 2024 11:07:01 +0200 Subject: [PATCH 5/7] svgwriter --- src/ACadSharp.Tests/IO/SvgWriterTests.cs | 67 +++++++ .../IO/WriterSingleObjectTests.cs | 10 + src/ACadSharp.Tests/Svg/SvgConverterTests.cs | 42 ---- src/ACadSharp.Tests/TestVariables.cs | 19 +- src/ACadSharp/IO/CadWriterBase.cs | 13 +- src/ACadSharp/IO/ICadWriter.cs | 10 +- src/ACadSharp/IO/SvgWriter.cs | 183 ++++++++++++++++++ src/ACadSharp/Svg/SvgConverter.cs | 58 ------ 8 files changed, 282 insertions(+), 120 deletions(-) create mode 100644 src/ACadSharp.Tests/IO/SvgWriterTests.cs delete mode 100644 src/ACadSharp.Tests/Svg/SvgConverterTests.cs create mode 100644 src/ACadSharp/IO/SvgWriter.cs delete mode 100644 src/ACadSharp/Svg/SvgConverter.cs diff --git a/src/ACadSharp.Tests/IO/SvgWriterTests.cs b/src/ACadSharp.Tests/IO/SvgWriterTests.cs new file mode 100644 index 00000000..de79bc4d --- /dev/null +++ b/src/ACadSharp.Tests/IO/SvgWriterTests.cs @@ -0,0 +1,67 @@ +using ACadSharp.Entities; +using ACadSharp.IO; +using ACadSharp.Tests.Common; +using CSMath; +using System; +using System.IO; +using Xunit; + +namespace ACadSharp.Tests.IO +{ + public class SvgWriterTests + { + public static readonly TheoryData EntityTypes = new TheoryData(); + + static SvgWriterTests() + { + foreach (var item in DataFactory.GetTypes()) + { + if (item == typeof(UnknownEntity)) + { + continue; + } + + EntityTypes.Add(item); + } + + if (!Directory.Exists(TestVariables.OutputSvgFolder)) + { + Directory.CreateDirectory(TestVariables.OutputSvgFolder); + } + } + + [Theory] + [MemberData(nameof(EntityTypes))] + public void WriteEntitiesNoDocument(Type t) + { + Entity e = (Entity)Factory.CreateObject(t); + string filename = Path.Combine(TestVariables.OutputSvgFolder, $"{e.SubclassMarker}.svg"); + + using (SvgWriter writer = new SvgWriter(filename)) + { + writer.WriteEntity(e); + } + } + + [Fact] + public void WriteLineNoDocument() + { + Entity e = new Line(new XYZ(0, 0, 0), new XYZ(10, 10, 0)); + + string filename = Path.Combine(TestVariables.OutputSvgFolder, $"{e.ObjectType}.svg"); + + using (SvgWriter writer = new SvgWriter(filename)) + { + writer.WriteEntity(e); + } + } + + private void writeSvg(string filename, string svg) + { + using (StreamWriter sw = new StreamWriter(filename)) + { + sw.Write(svg); + } + } + } +} diff --git a/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs b/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs index 6d4b30fb..3f5ddd26 100644 --- a/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs +++ b/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs @@ -140,6 +140,15 @@ public void SingleMText() this.Document.Entities.Add(mtext); } + public void MTextChineseCharacters() + { + MText mtext = new MText(); + + mtext.Value = "这是一个多行文本"; + + this.Document.Entities.Add(mtext); + } + public void SingleMTextSpecialCharacter() { MText mtext = new MText(); @@ -395,6 +404,7 @@ static WriterSingleObjectTests() Data.Add(new(nameof(SingleCaseGenerator.SingleMText))); Data.Add(new(nameof(SingleCaseGenerator.SingleMTextSpecialCharacter))); Data.Add(new(nameof(SingleCaseGenerator.SingleMTextMultiline))); + Data.Add(new(nameof(SingleCaseGenerator.MTextChineseCharacters))); Data.Add(new(nameof(SingleCaseGenerator.SinglePoint))); Data.Add(new(nameof(SingleCaseGenerator.ClosedLwPolyline))); Data.Add(new(nameof(SingleCaseGenerator.ClosedPolyline2DTest))); diff --git a/src/ACadSharp.Tests/Svg/SvgConverterTests.cs b/src/ACadSharp.Tests/Svg/SvgConverterTests.cs deleted file mode 100644 index c0fbf324..00000000 --- a/src/ACadSharp.Tests/Svg/SvgConverterTests.cs +++ /dev/null @@ -1,42 +0,0 @@ -using ACadSharp.Entities; -using ACadSharp.Svg; -using CSMath; -using System.IO; -using Xunit; - -namespace ACadSharp.Tests.Svg -{ - public class SvgConverterTests - { - protected const string _svgOutFolder = "../../../../../samples/out/svg"; - - public static SvgConverter Instance = new SvgConverter(); - - static SvgConverterTests() - { - if (!Directory.Exists(_svgOutFolder)) - { - Directory.CreateDirectory(_svgOutFolder); - } - } - - [Fact] - public void LineTest() - { - Line line = new Line(new XYZ(0, 0, 0), new XYZ(10, 10, 0)); - - string filename = Path.Combine(_svgOutFolder, $"line.svg"); - string svg = Instance.Convert(line); - - this.writeSvg(filename, svg); - } - - private void writeSvg(string filename, string svg) - { - using (StreamWriter sw = new StreamWriter(filename)) - { - sw.Write(svg); - } - } - } -} diff --git a/src/ACadSharp.Tests/TestVariables.cs b/src/ACadSharp.Tests/TestVariables.cs index f9675524..400470a9 100644 --- a/src/ACadSharp.Tests/TestVariables.cs +++ b/src/ACadSharp.Tests/TestVariables.cs @@ -9,11 +9,13 @@ public static class TestVariables public static string DesktopFolder { get { return Environment.GetFolderPath(Environment.SpecialFolder.Desktop); } } public static string SamplesFolder { get { return EnvironmentVars.Get("SAMPLES_FOLDER"); } } - + public static string OutputSamplesFolder { get { return EnvironmentVars.Get("OUTPUT_SAMPLES_FOLDER"); } } public static string OutputSingleCasesFolder { get { return EnvironmentVars.Get("OUTPUT_SINGLE_CASES_FOLDER"); } } + public static string OutputSvgFolder { get { return EnvironmentVars.Get("OUTPUT_SVG"); } } + public static bool LocalEnv { get { return EnvironmentVars.Get("LOCAL_ENV"); } } public static double Delta { get { return EnvironmentVars.Get("DELTA"); } } @@ -27,6 +29,7 @@ static TestVariables() EnvironmentVars.SetIfNull("SAMPLES_FOLDER", "../../../../../samples/"); EnvironmentVars.SetIfNull("OUTPUT_SAMPLES_FOLDER", "../../../../../samples/out"); EnvironmentVars.SetIfNull("OUTPUT_SINGLE_CASES_FOLDER", "../../../../../samples/out/single_cases"); + EnvironmentVars.SetIfNull("OUTPUT_SVG", "../../../../../samples/out/svg"); EnvironmentVars.SetIfNull("LOCAL_ENV", "true"); EnvironmentVars.SetIfNull("DELTA", "0.00001"); EnvironmentVars.SetIfNull("DECIMAL_PRECISION", "5"); @@ -35,14 +38,16 @@ static TestVariables() public static void CreateOutputFolders() { - if (!Directory.Exists(OutputSamplesFolder)) - { - Directory.CreateDirectory(OutputSamplesFolder); - } + craateFolderIfDoesNotExist(OutputSamplesFolder); + craateFolderIfDoesNotExist(OutputSingleCasesFolder); + craateFolderIfDoesNotExist(OutputSvgFolder); + } - if (!Directory.Exists(OutputSingleCasesFolder)) + private static void craateFolderIfDoesNotExist(string path) + { + if (!Directory.Exists(path)) { - Directory.CreateDirectory(OutputSingleCasesFolder); + Directory.CreateDirectory(path); } } } diff --git a/src/ACadSharp/IO/CadWriterBase.cs b/src/ACadSharp/IO/CadWriterBase.cs index d0042595..f54eb9e6 100644 --- a/src/ACadSharp/IO/CadWriterBase.cs +++ b/src/ACadSharp/IO/CadWriterBase.cs @@ -3,12 +3,6 @@ using System; using System.IO; using ACadSharp.Classes; -using ACadSharp.IO; -using ACadSharp.Exceptions; -using ACadSharp.IO.DWG; -using ACadSharp.IO.DWG.DwgStreamWriters; -using CSUtilities.IO; -using System.Collections.Generic; namespace ACadSharp.IO { @@ -18,12 +12,7 @@ namespace ACadSharp.IO public abstract class CadWriterBase : ICadWriter where T : CadWriterConfiguration, new() { - /// - /// Notification event to get information about the writing process. - /// - /// - /// The notification system informs about any issue or non critical errors during the writing. - /// + /// public event NotificationEventHandler OnNotification; /// diff --git a/src/ACadSharp/IO/ICadWriter.cs b/src/ACadSharp/IO/ICadWriter.cs index 413d5bce..e80f2c56 100644 --- a/src/ACadSharp/IO/ICadWriter.cs +++ b/src/ACadSharp/IO/ICadWriter.cs @@ -5,7 +5,15 @@ namespace ACadSharp.IO public interface ICadWriter : IDisposable { /// - /// Write the + /// Notification event to get information about the writing process. + /// + /// + /// The notification system informs about any issue or non critical errors during the writing. + /// + event NotificationEventHandler OnNotification; + + /// + /// Write the into the stream. /// void Write(); } diff --git a/src/ACadSharp/IO/SvgWriter.cs b/src/ACadSharp/IO/SvgWriter.cs new file mode 100644 index 00000000..c0764bfc --- /dev/null +++ b/src/ACadSharp/IO/SvgWriter.cs @@ -0,0 +1,183 @@ +using ACadSharp.Entities; +using CSMath; +using System; +using System.Globalization; +using System.IO; +using System.Text; +using System.Xml; + +namespace ACadSharp.IO +{ + public class SvgWriter : CadWriterBase + { + private SvgXmlWriter _writer; + + public SvgWriter(Stream stream) : base(stream, null) + { + StreamWriter textWriter = new StreamWriter(stream); + this._writer = new SvgXmlWriter(textWriter); + } + + public SvgWriter(string filename) + : this(File.Create(filename), null) + { + } + + public SvgWriter(string filename, CadDocument document) + : this(File.Create(filename), document) + { + } + + public SvgWriter(Stream stream, CadDocument document) : base(stream, document) + { + StreamWriter textWriter = new StreamWriter(this._stream); + this._writer = new SvgXmlWriter(this._stream, Encoding.Default); + + this._writer.Formatting = Formatting.Indented; + } + + /// + /// + /// will draw all the content in the model space.
+ /// The writer must be initialized with a none null . + ///
+ public override void Write() + { + this.Write(this._document); + + throw new NotImplementedException(); + } + + public void Write(CadDocument document) + { + if (this._document is null) + { + throw new ArgumentNullException("CadDocument cannot be null in the SvgWriter.", "CadDocument"); + } + + this._encoding = this.getListedEncoding(document.Header.CodePage); + + throw new NotImplementedException(); + } + + public void WriteEntity(Entity entity) + { + this._writer.WriteStartDocument(); + + this._writer.WriteStartElement("svg"); + + BoundingBox box = entity.GetBoundingBox(); + this._writer.WriteAttributeString("width", box.Max.X); + this._writer.WriteAttributeString("height", box.Max.Y); + + switch (entity) + { + case Line line: + this.writeLine(line); + break; + default: + throw new NotImplementedException($"Entity {entity.SubclassMarker} is not implemented."); + } + + this._writer.WriteEndElement(); + + this._writer.WriteEndDocument(); + + this._writer.Close(); + } + + private void writeEntityStyle(Entity entity) + { + this._writer.WriteAttributeString("style", $"stroke:rgb({entity.Color.R},{entity.Color.G},{entity.Color.B})"); + } + + private void writeLine(Line line) + { + this._writer.WriteStartElement("line"); + + this.writeEntityStyle(line); + + this._writer.WriteAttributeString("x1", line.StartPoint.X); + this._writer.WriteAttributeString("y1", line.StartPoint.Y); + this._writer.WriteAttributeString("x2", line.EndPoint.X); + this._writer.WriteAttributeString("y2", line.EndPoint.Y); + } + + public string Convert(Entity entity) + { + StringBuilder sb = new StringBuilder(); + + BoundingBox box = entity.GetBoundingBox(); + + + + sb.AppendLine($""); + + switch (entity) + { + case Line line: + sb.AppendLine(convertLine(line)); + break; + default: + throw new NotImplementedException($"Svg convertion not implemented for {entity.SubclassMarker}"); + } + + sb.AppendLine($""); + + return sb.ToString(); + } + + /// + public override void Dispose() + { + this._stream.Dispose(); + } + + private string convertLine(Line line) + { + StringBuilder sb = new StringBuilder(); + + sb.Append($"\t"); + sb.Append($""); + + return sb.ToString(); + } + + private string entityStyle(Entity entity) + { + StringBuilder style = new StringBuilder(); + + style.Append($"style="); + + style.Append($"\"stroke:rgb({entity.Color.R},{entity.Color.G},{entity.Color.B})\""); + + return style.ToString(); + } + } + + public class SvgXmlWriter : XmlTextWriter + { + public SvgXmlWriter(TextWriter w) : base(w) + { + } + + public SvgXmlWriter(Stream w, Encoding encoding) : base(w, encoding) + { + } + + public SvgXmlWriter(string filename, Encoding encoding) : base(filename, encoding) + { + } + + public void WriteAttributeString(string localName, double value) + { + this.WriteAttributeString(localName, value.ToString(CultureInfo.InvariantCulture)); + } + } +} diff --git a/src/ACadSharp/Svg/SvgConverter.cs b/src/ACadSharp/Svg/SvgConverter.cs deleted file mode 100644 index 97f32c6c..00000000 --- a/src/ACadSharp/Svg/SvgConverter.cs +++ /dev/null @@ -1,58 +0,0 @@ -using ACadSharp.Entities; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ACadSharp.Svg -{ - public class SvgConverter - { - public string Convert(Entity entity) - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine($""); - - switch (entity) - { - case Line line: - sb.AppendLine(convertLine(line)); - break; - default: - throw new NotImplementedException($"Svg convertion not implemented for {entity.SubclassMarker}"); - } - - sb.AppendLine($""); - - return sb.ToString(); - } - - private string convertLine(Line line) - { - StringBuilder sb = new StringBuilder(); - - sb.Append($"\t"); - sb.Append($""); - - return sb.ToString(); - } - - private string entityStyle(Entity entity) - { - StringBuilder style = new StringBuilder(); - - style.Append($"style="); - - style.Append($"\"stroke:rgb({entity.Color.R},{entity.Color.G},{entity.Color.B})\""); - - return style.ToString(); - } - } -} From 6188648308683191a2ea15fc412aa6fbd6312e6f Mon Sep 17 00:00:00 2001 From: DomCR Date: Thu, 17 Oct 2024 08:55:44 +0200 Subject: [PATCH 6/7] merge --- src/CSUtilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CSUtilities b/src/CSUtilities index 2e0fbe7f..03f926cb 160000 --- a/src/CSUtilities +++ b/src/CSUtilities @@ -1 +1 @@ -Subproject commit 2e0fbe7f2305037ec10e358891e80ffd7fdfdc2d +Subproject commit 03f926cb78953c7f49f79a799828f1f1f2ad4ea5 From 9464d58fb2cf138a4af7b9809dcf34f79d06868e Mon Sep 17 00:00:00 2001 From: DomCR Date: Wed, 20 Nov 2024 12:55:33 +0100 Subject: [PATCH 7/7] merge --- src/CSUtilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CSUtilities b/src/CSUtilities index 041deaf6..8e90ba97 160000 --- a/src/CSUtilities +++ b/src/CSUtilities @@ -1 +1 @@ -Subproject commit 041deaf69322f64fe27b42fa6f482f14991dc82e +Subproject commit 8e90ba97610979043414306d57016d9a25db0251