fix: Fixes regions having the wrong type (#1260)

## Possible Breaking Change
* Reverted regions.json back to RunUO until newer regions are implemented and proper expansion checks are added.

### Other Changes
- [X] Adds `Region.IsPartOf<T1, T2>()` to check for multiple types.
- [X] Fixes regions.json being wrong
- [X] Adds lots of missing regions. **They are not implemented properly yet**
- [X] Adds regions.xml -> regions.json (check ModernUO Discord)
- [X] Adds expansion specific regions.
This commit is contained in:
Kamron Batman 2022-11-21 16:47:40 -08:00 • committed by GitHub
parent f9c72a62df
commit 1f778cfacf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 3424 additions and 2949 deletions

View file

@ -104,10 +104,13 @@ public class Point3DConverter : JsonConverter<Point3D>
public override void Write(Utf8JsonWriter writer, Point3D value, JsonSerializerOptions options)
{
writer.WriteStartArray();
writer.WriteStartObject();
writer.WritePropertyName("x");
writer.WriteNumberValue(value.X);
writer.WritePropertyName("y");
writer.WriteNumberValue(value.Y);
writer.WritePropertyName("z");
writer.WriteNumberValue(value.Z);
writer.WriteEndArray();
writer.WriteEndObject();
}
}

View file

@ -172,13 +172,29 @@ public class Rectangle3DConverter : JsonConverter<Rectangle3D>
public override void Write(Utf8JsonWriter writer, Rectangle3D value, JsonSerializerOptions options)
{
writer.WriteStartArray();
var writeZ = value.Start.Z is > sbyte.MinValue and < sbyte.MaxValue || value.End.Z is > sbyte.MinValue and < sbyte.MaxValue;
writer.WriteStartObject();
writer.WritePropertyName("x1");
writer.WriteNumberValue(value.Start.X);
writer.WritePropertyName("y1");
writer.WriteNumberValue(value.Start.Y);
writer.WriteNumberValue(value.Start.Z);
writer.WriteNumberValue(value.Width);
writer.WriteNumberValue(value.Height);
writer.WriteNumberValue(value.Depth);
writer.WriteEndArray();
if (writeZ)
{
writer.WritePropertyName("z1");
writer.WriteNumberValue(value.Start.Z);
}
writer.WritePropertyName("x2");
writer.WriteNumberValue(value.End.X);
writer.WritePropertyName("y2");
writer.WriteNumberValue(value.End.Y);
if (writeZ)
{
writer.WritePropertyName("z2");
writer.WriteNumberValue(value.End.Z);
}
writer.WriteEndObject();
}
}