diff --git a/managed/SwiftlyS2.PluginTemplate/nupkgs/SwiftlyS2.CS2.PluginTemplate.1.0.1.nupkg b/managed/SwiftlyS2.PluginTemplate/nupkgs/SwiftlyS2.CS2.PluginTemplate.1.0.1.nupkg new file mode 100644 index 000000000..f92fb06a2 Binary files /dev/null and b/managed/SwiftlyS2.PluginTemplate/nupkgs/SwiftlyS2.CS2.PluginTemplate.1.0.1.nupkg differ diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntity.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntity.cs index 3afa100f2..750e48697 100644 --- a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntity.cs +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntity.cs @@ -1,4 +1,5 @@ using SwiftlyS2.Shared.Natives; +using SwiftlyS2.Shared.Players; namespace SwiftlyS2.Shared.SchemaDefinitions; @@ -17,6 +18,12 @@ public partial interface CBaseEntity /// Gets the absolute rotation of the entity. /// public QAngle? AbsRotation { get; } + + /// + /// Gets the team of the entity. + /// + public Team Team { get; set; } + /// /// Teleports the entity to the specified position, orientation, and velocity. /// @@ -25,7 +32,7 @@ public partial interface CBaseEntity /// The target position to move the entity to. If null, the entity's position is not changed. /// The target orientation to set for the entity. If null, the entity's orientation is not changed. /// The velocity to apply to the entity after teleportation. If null, the entity's velocity is not changed. - public void Teleport(Vector? position, QAngle? angle, Vector? velocity); + public void Teleport( Vector? position, QAngle? angle, Vector? velocity ); /// diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntityImpl.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntityImpl.cs index 0be83aebd..b05e38d8f 100644 --- a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntityImpl.cs +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CBaseEntityImpl.cs @@ -1,5 +1,6 @@ using SwiftlyS2.Core.Natives; using SwiftlyS2.Shared.Natives; +using SwiftlyS2.Shared.Players; using SwiftlyS2.Shared.SchemaDefinitions; namespace SwiftlyS2.Core.SchemaDefinitions; @@ -15,6 +16,11 @@ public CEntitySubclassVDataBase VData { public Vector? AbsOrigin => CBodyComponent?.SceneNode?.AbsOrigin; public QAngle? AbsRotation => CBodyComponent?.SceneNode?.AbsRotation; + public Team Team { + get => (Team)TeamNum; + set => TeamNum = (byte)value; + } + public void Teleport( Vector? position, QAngle? angle, Vector? velocity ) { unsafe diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRules.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRules.cs index f5b0f7539..a155c9db7 100644 --- a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRules.cs +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRules.cs @@ -1,4 +1,5 @@ -using SwiftlyS2.Shared.Natives; +using SwiftlyS2.Shared.Misc; +using SwiftlyS2.Shared.Natives; using SwiftlyS2.Shared.SchemaDefinitions; using SwiftlyS2.Shared.Schemas; @@ -19,4 +20,6 @@ public partial interface CCSGameRules /// The reason for ending the round /// The delay before ending the round public void TerminateRound( RoundEndReason reason, float delay ); + + public GamePhase GamePhaseEnum { get; set; } } \ No newline at end of file diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRulesImpl.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRulesImpl.cs index 2d568ed54..06e813558 100644 --- a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRulesImpl.cs +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSGameRulesImpl.cs @@ -1,4 +1,5 @@ using SwiftlyS2.Core.Natives; +using SwiftlyS2.Shared.Misc; using SwiftlyS2.Shared.Natives; using SwiftlyS2.Shared.SchemaDefinitions; using SwiftlyS2.Shared.Schemas; @@ -17,4 +18,9 @@ public void TerminateRound( RoundEndReason reason, float delay ) { GameFunctions.TerminateRound(Address, (uint)reason, delay); } + + public GamePhase GamePhaseEnum { + get => (GamePhase)GamePhase; + set => GamePhase = (int)value; + } } \ No newline at end of file diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSObserverPawn.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSObserverPawn.cs new file mode 100644 index 000000000..7c2839fbe --- /dev/null +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSObserverPawn.cs @@ -0,0 +1,9 @@ +namespace SwiftlyS2.Shared.SchemaDefinitions; + +public partial interface CCSObserverPawn +{ + public new CCSObserver_ObserverServices? ObserverServices { get; } + public new CCSObserver_MovementServices? MovementServices { get; } + public new CCSObserver_CameraServices? CameraServices { get; } + public new CCSObserver_UseServices? UseServices { get; } +} \ No newline at end of file diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSObserverPawnImpl.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSObserverPawnImpl.cs new file mode 100644 index 000000000..d9cdb2a1b --- /dev/null +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSObserverPawnImpl.cs @@ -0,0 +1,11 @@ +using SwiftlyS2.Shared.SchemaDefinitions; + +namespace SwiftlyS2.Core.SchemaDefinitions; + +internal partial class CCSObserverPawnImpl : CCSObserverPawn +{ + public new CCSObserver_ObserverServices? ObserverServices => base.ObserverServices?.As(); + public new CCSObserver_MovementServices? MovementServices => base.MovementServices?.As(); + public new CCSObserver_CameraServices? CameraServices => base.CameraServices?.As(); + public new CCSObserver_UseServices? UseServices => base.UseServices?.As(); +} \ No newline at end of file diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSPlayerPawn.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSPlayerPawn.cs new file mode 100644 index 000000000..f29cca508 --- /dev/null +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSPlayerPawn.cs @@ -0,0 +1,11 @@ +namespace SwiftlyS2.Shared.SchemaDefinitions; + +public partial interface CCSPlayerPawn +{ + public new CCSPlayer_WeaponServices? WeaponServices { get; } + public new CCSPlayer_ItemServices? ItemServices { get; } + public new CCSPlayer_UseServices? UseServices { get; } + public new CCSPlayer_WaterServices? WaterServices { get; } + public new CCSPlayer_MovementServices? MovementServices { get; } + public new CCSPlayer_CameraServices? CameraServices { get; } +} \ No newline at end of file diff --git a/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSPlayerPawnImpl.cs b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSPlayerPawnImpl.cs new file mode 100644 index 000000000..3468d9c67 --- /dev/null +++ b/managed/src/SwiftlyS2.Core/Modules/Schemas/Extensions/CCSPlayerPawnImpl.cs @@ -0,0 +1,13 @@ +using SwiftlyS2.Shared.SchemaDefinitions; + +namespace SwiftlyS2.Core.SchemaDefinitions; + +internal partial class CCSPlayerPawnImpl : CCSPlayerPawn +{ + public new CCSPlayer_WeaponServices? WeaponServices => base.WeaponServices?.As(); + public new CCSPlayer_ItemServices? ItemServices => base.ItemServices?.As(); + public new CCSPlayer_UseServices? UseServices => base.UseServices?.As(); + public new CCSPlayer_WaterServices? WaterServices => base.WaterServices?.As(); + public new CCSPlayer_MovementServices? MovementServices => base.MovementServices?.As(); + public new CCSPlayer_CameraServices? CameraServices => base.CameraServices?.As(); +} \ No newline at end of file diff --git a/managed/src/SwiftlyS2.Generated/Schemas/Interfaces/CCSPlayerPawn.cs b/managed/src/SwiftlyS2.Generated/Schemas/Interfaces/CCSPlayerPawn.cs index 4b08e414e..4a6bb0007 100644 --- a/managed/src/SwiftlyS2.Generated/Schemas/Interfaces/CCSPlayerPawn.cs +++ b/managed/src/SwiftlyS2.Generated/Schemas/Interfaces/CCSPlayerPawn.cs @@ -12,7 +12,6 @@ public partial interface CCSPlayerPawn : CCSPlayerPawnBase, ISchemaClass.From(nint handle) => new CCSPlayerPawnImpl(handle); static int ISchemaClass.Size => 7280; - public CCSPlayer_BulletServices? BulletServices { get; } diff --git a/managed/src/SwiftlyS2.Shared/Misc/GamePhase.cs b/managed/src/SwiftlyS2.Shared/Misc/GamePhase.cs new file mode 100644 index 000000000..20f699302 --- /dev/null +++ b/managed/src/SwiftlyS2.Shared/Misc/GamePhase.cs @@ -0,0 +1,12 @@ +namespace SwiftlyS2.Shared.Misc; + +public enum GamePhase : short +{ + GAMEPHASE_WARMUP_ROUND = 0, + GAMEPHASE_PLAYING_STANDARD = 1, + GAMEPHASE_PLAYING_FIRST_HALF = 2, + GAMEPHASE_PLAYING_SECOND_HALF = 3, + GAMEPHASE_HALFTIME = 4, + GAMEPHASE_MATCH_ENDED = 5, + GAMEPHASE_MAX = 6 +} \ No newline at end of file