public void SubscribeToEvent <T>(AObject sender, NativeEventDelegate <T> eventDelegate) where T : NativeEventData { uint eventType = NativeEvents.GetEventID <T>(); if (eventType == 0) { throw new InvalidOperationException("AObject.SubscribeToEvent<T>(EventDelegate<T> eventDelegate) - Unknown native event id"); } // Move this NETCore.RegisterNETEventType(eventType); NativeEventHandlers[eventType] = (eventData) => { eventDelegate((T)eventData); }; if (sender != null) { NativeCore.SubscribeToEvent(this, sender, eventType); } else { NativeCore.SubscribeToEvent(this, eventType); } }
public static void Initialize() { // Atomic Modules CoreModule.Initialize(); MathModule.Initialize(); EngineModule.Initialize(); InputModule.Initialize(); IOModule.Initialize(); ResourceModule.Initialize(); AudioModule.Initialize(); GraphicsModule.Initialize(); SceneModule.Initialize(); Atomic2DModule.Initialize(); NavigationModule.Initialize(); NetworkModule.Initialize(); PhysicsModule.Initialize(); EnvironmentModule.Initialize(); UIModule.Initialize(); #if ATOMIC_DESKTOP IPCModule.Initialize(); #endif AtomicAppModule.Initialize(); ScriptModule.Initialize(); AtomicNETScriptModule.Initialize(); AtomicNETNativeModule.Initialize(); PlayerModule.Initialize(); coreDelegates = new CoreDelegates(); coreDelegates.eventDispatch = NativeCore.EventDispatch; coreDelegates.updateDispatch = NativeCore.UpdateDispatch; IntPtr coreptr = csi_Atomic_NETCore_Initialize(ref coreDelegates); NETCore core = (coreptr == IntPtr.Zero ? null : NativeCore.WrapNative <NETCore>(coreptr)); if (core != null) { AtomicNET.RegisterSubsystem("NETCore", core); } context = core.Context; NativeCore.Initialize(); CSComponentCore.Initialize(); #if ATOMIC_DESKTOP string[] arguments = Environment.GetCommandLineArgs(); foreach (string arg in arguments) { AppBase.AddArgument(arg); } #endif }
public void SubscribeToEvent(AObject sender, uint eventType, EventDelegate eventDelegate) { if (sender == null) { throw new InvalidOperationException("AObject.SubscribeToEvent - trying to subscribe to events from a null object"); } // Move this NETCore.RegisterNETEventType(eventType); NativeCore.SubscribeToEvent(this, sender, eventType); }
public void SubscribeToEvent(AObject sender, uint eventType, SenderEventDelegate eventDelegate) { if (sender == null) { throw new InvalidOperationException("AObject.SubscribeToEvent - trying to subscribe to events from a null object"); } NETCore.RegisterNETEventType(eventType); var key = new SenderEventKey(eventType, sender.nativeInstance); SenderEventHandlers[key] = eventDelegate; NativeCore.SubscribeToEvent(this, sender, eventType); }
public static void Initialize() { // Atomic Modules CoreModule.Initialize(); MathModule.Initialize(); EngineModule.Initialize(); InputModule.Initialize(); IOModule.Initialize(); ResourceModule.Initialize(); AudioModule.Initialize(); GraphicsModule.Initialize(); SceneModule.Initialize(); Atomic2DModule.Initialize(); Atomic3DModule.Initialize(); NavigationModule.Initialize(); NetworkModule.Initialize(); PhysicsModule.Initialize(); EnvironmentModule.Initialize(); UIModule.Initialize(); IPCModule.Initialize(); AtomicAppModule.Initialize(); ScriptModule.Initialize(); AtomicNETScriptModule.Initialize(); AtomicNETNativeModule.Initialize(); PlayerModule.Initialize(); coreDelegates = new CoreDelegates(); coreDelegates.eventDispatch = NativeCore.EventDispatch; coreDelegates.updateDispatch = NativeCore.UpdateDispatch; IntPtr coreptr = csb_Atomic_NETCore_Initialize(ref coreDelegates); NETCore core = (coreptr == IntPtr.Zero ? null : NativeCore.WrapNative <NETCore>(coreptr)); if (core != null) { AtomicNET.RegisterSubsystem("NETCore", core); } context = core.Context; NativeCore.Initialize(); CSComponentCore.Initialize(); }
public void SubscribeToEvent(uint eventType, EventDelegate eventDelegate) { NETCore.RegisterNETEventType(eventType); EventHandlers[eventType] = eventDelegate; NativeCore.SubscribeToEvent(this, eventType); }