diff --git a/ReallifeGamemode.Server.Core.API/Color.cs b/ReallifeGamemode.Server.Core.API/Color.cs new file mode 100644 index 00000000..fe34d597 --- /dev/null +++ b/ReallifeGamemode.Server.Core.API/Color.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ReallifeGamemode.Server.Core.API +{ + public struct Color + { + public int R { get; set; } + + public int G { get; set; } + + public int B { get; set; } + + public Color(int r, int g, int b) + { + R = r; + G = g; + B = b; + } + } +} diff --git a/ReallifeGamemode.Server.Core.API/IAPI.cs b/ReallifeGamemode.Server.Core.API/IAPI.cs index c8528289..08f3d215 100644 --- a/ReallifeGamemode.Server.Core.API/IAPI.cs +++ b/ReallifeGamemode.Server.Core.API/IAPI.cs @@ -13,6 +13,8 @@ namespace ReallifeGamemode.Server.Core.API IVehicleAPI Vehicle { get; } + IMarkerAPI Marker { get; } + void DisableDefaultCommandErrorMessages(); void DisableDefaultSpawnBehavior(); diff --git a/ReallifeGamemode.Server.Core.API/IMarker.cs b/ReallifeGamemode.Server.Core.API/IMarker.cs new file mode 100644 index 00000000..b84bc209 --- /dev/null +++ b/ReallifeGamemode.Server.Core.API/IMarker.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ReallifeGamemode.Server.Core.API +{ + public interface IMarker : IEntity + { + + } +} diff --git a/ReallifeGamemode.Server.Core.API/IMarkerAPI.cs b/ReallifeGamemode.Server.Core.API/IMarkerAPI.cs new file mode 100644 index 00000000..159cd431 --- /dev/null +++ b/ReallifeGamemode.Server.Core.API/IMarkerAPI.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; +using ReallifeGamemode.Server.Types; + +namespace ReallifeGamemode.Server.Core.API +{ + public interface IMarkerAPI + { + IMarker CreateMarker(MarkerType markerType, Position position, Position direction, Position rotation, float scale, Color color); + } +} diff --git a/ReallifeGamemode.Server.Core.RageMP/RageAPI.cs b/ReallifeGamemode.Server.Core.RageMP/RageAPI.cs index 780d2974..29c931a8 100644 --- a/ReallifeGamemode.Server.Core.RageMP/RageAPI.cs +++ b/ReallifeGamemode.Server.Core.RageMP/RageAPI.cs @@ -12,6 +12,8 @@ namespace ReallifeGamemode.Server.Core.RageMP public IVehicleAPI Vehicle => new RageVehicleAPI(); + public IMarkerAPI Marker => new RageMarkerAPI(); + public void DisableDefaultCommandErrorMessages() { NAPI.Server.SetCommandErrorMessage(null); diff --git a/ReallifeGamemode.Server.Core.RageMP/RageExtensions.cs b/ReallifeGamemode.Server.Core.RageMP/RageExtensions.cs index 6679b4fa..50cfbc8e 100644 --- a/ReallifeGamemode.Server.Core.RageMP/RageExtensions.cs +++ b/ReallifeGamemode.Server.Core.RageMP/RageExtensions.cs @@ -35,5 +35,10 @@ namespace ReallifeGamemode.Server.Core.RageMP return DisconnectReason.Unknown; } } + + public static GTANetworkAPI.Color ToColor(this API.Color color) + { + return new GTANetworkAPI.Color(color.R, color.G, color.B); + } } } diff --git a/ReallifeGamemode.Server.Core.RageMP/RageMarker.cs b/ReallifeGamemode.Server.Core.RageMP/RageMarker.cs new file mode 100644 index 00000000..7c894c6d --- /dev/null +++ b/ReallifeGamemode.Server.Core.RageMP/RageMarker.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; +using GTANetworkAPI; +using ReallifeGamemode.Server.Core.API; + +namespace ReallifeGamemode.Server.Core.RageMP +{ + public class RageMarker : RageEntity, IMarker + { + private readonly Marker marker; + + public RageMarker(Marker marker) : base(marker) + { + this.marker = marker; + } + + + } +} diff --git a/ReallifeGamemode.Server.Core.RageMP/RageMarkerAPI.cs b/ReallifeGamemode.Server.Core.RageMP/RageMarkerAPI.cs new file mode 100644 index 00000000..33ae07a1 --- /dev/null +++ b/ReallifeGamemode.Server.Core.RageMP/RageMarkerAPI.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; +using GTANetworkAPI; +using ReallifeGamemode.Server.Core.API; + +namespace ReallifeGamemode.Server.Core.RageMP +{ + public class RageMarkerAPI : IMarkerAPI + { + public IMarker CreateMarker(Types.MarkerType markerType, Position position, Position direction, Position rotation, float scale, API.Color color) + { + Marker rageMarker = NAPI.Marker.CreateMarker( + (int)markerType, + position.ToVector3(), + direction.ToVector3(), + rotation.ToVector3(), + scale, + color.ToColor()); + + return new RageMarker(rageMarker); + } + } +} diff --git a/ReallifeGamemode.Server.Core/Main.cs b/ReallifeGamemode.Server.Core/Main.cs index 7db2182b..7344a2d0 100644 --- a/ReallifeGamemode.Server.Core/Main.cs +++ b/ReallifeGamemode.Server.Core/Main.cs @@ -16,7 +16,7 @@ namespace ReallifeGamemode.Server.Core internal static IAPI API { get; private set; } internal static Events.EventHandler EventHandler { get; private set; } - private static List