public static GameEventData ToData(this GameEventEventArgs e) { if (e == null) { return(null); } GameEventData data = new GameEventData(e); return(data); }
private async void Engine_GameEvent(object sender, GameEventEventArgs e) { Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings(); settings.Converters.Add(new GameEventDataFlatConverter()); string json = Newtonsoft.Json.JsonConvert.SerializeObject(e, Newtonsoft.Json.Formatting.None, settings); GameEventEventArgs e2 = Newtonsoft.Json.JsonConvert.DeserializeObject <GameEventEventArgs>(json, settings); string line = string.Format("GameEvent : {0}={1}", e.Event, json); await this.Log(line); Console.WriteLine(line); }
void IPluginManager.RaiseGameEvent(Int64 evtDataPtr, int evtArgsCount, Int64 evtArgsPtr) { //NativeEventData evtData = new NativeEventData(); //Marshal.PtrToStructure(new IntPtr(evtDataPtr), evtData); NativeEventData evtData = (NativeEventData)Marshal.PtrToStructure(new IntPtr(evtDataPtr), typeof(NativeEventData)); NativeEventArgs[] args = new NativeEventArgs[evtArgsCount]; int size = Marshal.SizeOf(typeof(NativeEventArgs)); for (int i = 0; i < evtArgsCount; i++) { IntPtr argPtr = new IntPtr(evtArgsPtr + i * size); args[i] = (NativeEventArgs)Marshal.PtrToStructure(argPtr, typeof(NativeEventArgs)); } GameEventEventArgs e = new GameEventEventArgs(evtData.Event, args.Select(a => new GameEventArgument(a)).ToArray()); this.Raise(this.m_engine.RaiseGameEvent, e); }
internal GameEventData(GameEventEventArgs e) { this.Event = e.Event; this.Args = e.Args.Select(a => new GameEventArg(a)).ToArray(); }
internal void RaiseGameEvent(GameEventEventArgs e) { this.RaiseEvent(EventGameEvent, e); }