@ -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)]
@ -108,26 +106,20 @@ public partial class GameModule : CallbackHandler<GameModule>
GetSelf ( context ) . RunParticleEffect ( origin . ToUnityPosition ( ) , direction . ToUnityPosition ( ) , colorMin . ToColor ( ) , colorMax . ToColor ( ) , count ) ;
Profiler . EndSample ( ) ;
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate void ParticleExplosionCallback ( IntPtr context , ref QVec3 origin ) ;
[MonoPInvokeCallback(typeof(ParticleExplosionCallback))]
private static void Callback_ParticleExplosion ( IntPtr context , ref QVec3 origin )
{
Profiler . BeginSample ( "ParticleExplosion" ) ;
GetSelf ( context ) . ParticleExplosion ( origin . ToUnityPosition ( ) ) ;
Profiler . EndSample ( ) ;
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate void TeleportSplash Callback( IntPtr context , ref QVec3 origin ) ;
private delegate void CreateParticleEffectCallback ( IntPtr context , ParticleEffect type , ref QVec3 origin , uint colorMin , uint colorMax ) ;
[MonoPInvokeCallback(typeof(TeleportSplash Callback))]
private static void Callback_TeleportSplash ( IntPtr context , ref QVec3 origin )
[MonoPInvokeCallback(typeof(CreateParticleEffectCallback))]
private static void Callback_CreateParticleEffect ( IntPtr context , ParticleEffect type , ref QVec3 origin , uint colorMin , uint colorMax )
{
Profiler . BeginSample ( "TeleportSplash" ) ;
GetSelf ( context ) . TeleportSplash ( origin . ToUnityPosition ( ) ) ;
Profiler . BeginSample ( "CreateParticleEffect" ) ;
if ( type = = ParticleEffect . Explosion2 )
GetSelf ( context ) . CreateParticleExplosion ( origin . ToUnityPosition ( ) , colorMin . ToColor ( ) , colorMax . ToColor ( ) ) ;
else
GetSelf ( context ) . CreateParticleEffect ( type , origin . ToUnityPosition ( ) ) ;
Profiler . EndSample ( ) ;
}
}