@ -19,8 +19,7 @@ public partial class GameModule : CallbackHandler<GameModule>
SetEntitySkin = CreateCallback < GameSetEntitySkinCallback > ( Callback_GameSetEntitySkin ) ,
RunParticleEffect = CreateCallback < RunParticleEffectCallback > ( Callback_RunParticleEffect ) ,
ParticleExplosion = CreateCallback < ParticleExplosionCallback > ( Callback_ParticleExplosion ) ,
TeleportSplash = CreateCallback < TeleportSplashCallback > ( Callback_TeleportSplash ) ,
CreateParticleEffect = CreateCallback < CreateParticleEffectCallback > ( Callback_CreateParticleEffect ) ,
} ;
RegisterCallbacks ( callbacks ) ;
@ -39,8 +38,7 @@ public partial class GameModule : CallbackHandler<GameModule>
public IntPtr SetEntitySkin ;
public IntPtr RunParticleEffect ;
public IntPtr ParticleExplosion ;
public IntPtr TeleportSplash ;
public IntPtr CreateParticleEffect ;
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
@ -110,24 +108,18 @@ public partial class GameModule : CallbackHandler<GameModule>
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate void ParticleExplosion Callback( IntPtr context , ref QVec3 origin ) ;
private delegate void CreateParticleEffect Callback( IntPtr context , ParticleEffect type , ref QVec3 origin , uint colorMin , uint colorMax ) ;
[MonoPInvokeCallback(typeof(ParticleExplosion Callback))]
private static void Callback_ParticleExplosion ( IntPtr context , ref QVec3 origin )
[MonoPInvokeCallback(typeof(CreateParticleEffect Callback))]
private static void Callback_CreateParticleEffect ( IntPtr context , ParticleEffect type , ref QVec3 origin , uint colorMin , uint colorMax )
{
Profiler . BeginSample ( "ParticleExplosion" ) ;
GetSelf ( context ) . ParticleExplosion ( origin . ToUnityPosition ( ) ) ;
Profiler . EndSample ( ) ;
}
Profiler . BeginSample ( "CreateParticleEffect" ) ;
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate void TeleportSplashCallback ( IntPtr context , ref QVec3 origin ) ;
if ( type = = ParticleEffect . Explosion2 )
GetSelf ( context ) . CreateParticleExplosion ( origin . ToUnityPosition ( ) , colorMin . ToColor ( ) , colorMax . ToColor ( ) ) ;
else
GetSelf ( context ) . CreateParticleEffect ( type , origin . ToUnityPosition ( ) ) ;
[MonoPInvokeCallback(typeof(TeleportSplashCallback))]
private static void Callback_TeleportSplash ( IntPtr context , ref QVec3 origin )
{
Profiler . BeginSample ( "TeleportSplash" ) ;
GetSelf ( context ) . TeleportSplash ( origin . ToUnityPosition ( ) ) ;
Profiler . EndSample ( ) ;
}
}