public void SendMessage(EventArgs message) { BdaMessage messageToSend = new BdaMessage() { Type = message.GetType(), Content = message }; byte[] messageToBeSend = BinaryUtils.Serialize(messageToSend); ModApiSystem.Singleton.SendModMessage(ModName, messageToBeSend, messageToBeSend.Length, true); }
private void ProcessReceivedMessage(BdaMessage messageReceived) { switch (messageReceived.Content) { case DamageEventArgs args: Dependencies.Get <IBdaMessageHandler <DamageEventArgs> >().ProcessMessage(args); break; case ExplosionEventArgs args: Dependencies.Get <IBdaMessageHandler <ExplosionEventArgs> >().ProcessMessage(args); break; case ForceEventArgs args: Dependencies.Get <IBdaMessageHandler <ForceEventArgs> >().ProcessMessage(args); break; case VesselTeamChangeEventArgs args: Dependencies.Get <IBdaMessageHandler <VesselTeamChangeEventArgs> >().ProcessMessage(args); break; case ArmorEventArgs args: Dependencies.Get <IBdaMessageHandler <ArmorEventArgs> >().ProcessMessage(args); break; case FireEventArgs args: Dependencies.Get <IBdaMessageHandler <FireEventArgs> >().ProcessMessage(args); break; case TurretAimEventArgs args: Dependencies.Get <IBdaMessageHandler <TurretAimEventArgs> >().ProcessMessage(args); break; case MissileFireEventArgs args: Dependencies.Get <IBdaMessageHandler <MissileFireEventArgs> >().ProcessMessage(args); break; case RequestVesselTeamEventArgs args: Dependencies.Get <IBdaMessageHandler <RequestVesselTeamEventArgs> >().ProcessMessage(args); break; } }
public void HandlerFunction(byte[] messageData) { BdaMessage messageReceived = BinaryUtils.Deserialize <BdaMessage>(messageData); ProcessReceivedMessage(messageReceived); }