feat: Adds .NET 7 & Arm64 support (#1229)

## BREAKING CHANGE
**Publishing for linux will no longer include runtimes**

## Major Changes
* Adds .NET 7 support.
* Adds ARM64 support (experimental).
* Changes linux support to be open-ended against anything .NET 7 supports.
* Fixes native library resolutions. (Make sure to install `dev` versions of the libraries)
* Updates README
* Adds Ubuntu 22, CentOS 8/9 Stream to CI/CD.

## TODOs:
* Update modernuo.com docs

Closes #1173
Closes #1159
This commit is contained in:
Kamron Batman 2022-11-06 09:59:11 -08:00 • committed by GitHub
parent 119eec6b61
commit 5bd41d5b68
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 164 additions and 232 deletions

View file

@ -36,11 +36,7 @@ public class GumpAlphaRegion : GumpEntry
public int Height { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ checkertrans {X} {Y} {Width} {Height} }}");
}

View file

@ -39,11 +39,7 @@ public class GumpBackground : GumpEntry
public int GumpID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ resizepic {X} {Y} {GumpID} {Width} {Height} }}");
}

View file

@ -54,11 +54,7 @@ public class GumpButton : GumpEntry
public int Param { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ button {X} {Y} {NormalID} {PressedID} {(int)Type} {Param} {ButtonID} }}");
}

View file

@ -42,11 +42,7 @@ public class GumpCheck : GumpEntry
public int SwitchID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var initialState = InitialState ? "1" : "0";
writer.WriteAscii($"{{ checkbox {X} {Y} {InactiveID} {ActiveID} {initialState} {SwitchID} }}");

View file

@ -22,11 +22,7 @@ public class GumpECHandleInput : GumpEntry
{
private static byte[] _layout = Gump.StringToBuffer("{ echandleinput }");
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.Write(_layout);
}

View file

@ -25,9 +25,5 @@ public abstract class GumpEntry
// TODO: Replace OrderedHashSet with InsertOnlyHashSet, a copy of HashSet that is ReadOnly compatible, but includes
// a public AddIfNotPresent function that returns the index of the element
#if NET7_SDK
public abstract void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches);
#else
public abstract void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches);
#endif
}

View file

@ -26,11 +26,7 @@ public class GumpGroup : GumpEntry
public int Group { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
if (Group == 1)
{

View file

@ -45,11 +45,7 @@ public class GumpHtml : GumpEntry
public bool Scrollbar { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(Text ?? "");
var background = Background ? "1" : "0";

View file

@ -101,11 +101,7 @@ public class GumpHtmlLocalized : GumpEntry
public GumpHtmlLocalizedType Type { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var background = Background ? "1" : "0";
var scrollbar = Scrollbar ? "1" : "0";

View file

@ -39,11 +39,7 @@ public class GumpImage : GumpEntry
public string Class { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var hasHue = Hue != 0;
var hasClass = !string.IsNullOrEmpty(Class);

View file

@ -61,11 +61,7 @@ public class GumpImageTileButton : GumpEntry
public int Height { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii(
$"{{ buttontileart {X} {Y} {NormalID} {PressedID} {(int)Type} {Param} {ButtonID} {ItemID} {Hue} {Width} {Height} }}"

View file

@ -39,11 +39,7 @@ public class GumpImageTiled : GumpEntry
public int GumpID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ gumppictiled {X} {Y} {Width} {Height} {GumpID} }}");
}

View file

@ -36,11 +36,7 @@ public class GumpItem : GumpEntry
public int Hue { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii(Hue == 0 ? $"{{ tilepic {X} {Y} {ItemID} }}" : $"{{ tilepichue {X} {Y} {ItemID} {Hue} }}");
}

View file

@ -24,11 +24,7 @@ public class GumpItemProperty : GumpEntry
public Serial Serial { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ itemproperty {Serial.Value} }}");
}

View file

@ -36,11 +36,7 @@ public class GumpLabel : GumpEntry
public string Text { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(Text ?? "");
writer.WriteAscii($"{{ text {X} {Y} {Hue} {textIndex} }}");

View file

@ -42,11 +42,7 @@ public class GumpLabelCropped : GumpEntry
public string Text { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(Text ?? "");
writer.WriteAscii($"{{ croppedtext {X} {Y} {Width} {Height} {Hue} {textIndex} }}");

View file

@ -24,11 +24,7 @@ public class GumpMasterGump : GumpEntry
public int GumpID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ mastergump {GumpID} }}");
}

View file

@ -26,11 +26,7 @@ public class GumpPage : GumpEntry
public int Page { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
if (Page == 0)
{

View file

@ -42,11 +42,7 @@ public class GumpRadio : GumpEntry
public int SwitchID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var initialState = InitialState ? "1" : "0";
writer.WriteAscii($"{{ radio {X} {Y} {InactiveID} {ActiveID} {initialState} {SwitchID} }}");

View file

@ -45,11 +45,7 @@ public class GumpSpriteImage : GumpEntry
public int SY { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ picinpic {X} {Y} {GumpID} {Width} {Height} {SX} {SY} }}");
}

View file

@ -45,11 +45,7 @@ public class GumpTextEntry : GumpEntry
public string InitialText { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(InitialText ?? "");
writer.WriteAscii($"{{ textentry {X} {Y} {Width} {Height} {Hue} {EntryID} {textIndex} }}");

View file

@ -50,11 +50,7 @@ public class GumpTextEntryLimited : GumpEntry
public int Size { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(InitialText ?? "");
writer.WriteAscii($"{{ textentrylimited {X} {Y} {Width} {Height} {Hue} {EntryID} {textIndex} {Size} }}");

View file

@ -32,11 +32,7 @@ public class GumpTooltip : GumpEntry
public string Args { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii(string.IsNullOrEmpty(Args) ? $"{{ tooltip {Number} }}" : $"{{ tooltip {Number} @{Args}@ }}");
}