private async Task DoInitialization() { await _messageEndPoint.RegisterAsync(new DefaultHandlerFactory <CommandMessageBroker>()); await _messageEndPoint.RegisterAsync <RegisterCommandForwarding>(new DefaultHandlerFactory <CommandMessageBroker>()); await _messageEndPoint.RegisterAsync <UnregisterCommandForwarding>(new DefaultHandlerFactory <CommandMessageBroker>()); await _messageEndPoint.RegisterAsync(new DefaultHandlerFactory <QueryMessageBroker>()); await _messageEndPoint.RegisterAsync <RegisterQueryForwarding>(new DefaultHandlerFactory <QueryMessageBroker>()); await _messageEndPoint.RegisterAsync <UnregisterQueryForwarding>(new DefaultHandlerFactory <QueryMessageBroker>()); await _messageEndPoint.RegisterAsync <RegisterEventForwarding>(new DefaultHandlerFactory <EventMessageBroker>()); await _messageEndPoint.RegisterAsync <UnregisterEventForwarding>(new DefaultHandlerFactory <EventMessageBroker>()); await _messageEndPoint.RegisterAsync <DispatchEvent>(new DefaultHandlerFactory <EventMessageBroker>()); await _messageEndPoint.Initialization; var setupMessage = new SetupModule(); await _messageEndPoint.SendAsync(setupMessage); }
/// <summary> /// Draw the details of the selected module (below the list) /// </summary> /// <param name="rItem"></param> /// <returns></returns> private bool DrawModuleDetailItem(SetupModule rItem) { bool lIsDirty = false; if (rItem == null) { EditorGUILayout.LabelField("NULL"); return(false); } Type lType = rItem.GetType(); EditorGUI.BeginDisabledGroup(lType == typeof(UndefinedSetupModule)); if (rItem.Name.Length > 0) { EditorHelper.DrawSmallTitle(rItem.Name.Length > 0 ? rItem.Name : "Module"); } else { string lName = ModuleNameAttribute.GetName(rItem.GetType()); EditorHelper.DrawSmallTitle(lName.Length > 0 ? lName : "Module"); } string lDescription = ModuleDescriptionAttribute.GetDescription(rItem.GetType()); if (lDescription.Length > 0) { EditorHelper.DrawInspectorDescription(lDescription, MessageType.None); } // Draw the Inspector for the individual module bool lModuleDirty = rItem.OnInspectorGUI(mTarget); if (lModuleDirty) { lIsDirty = true; } EditorGUI.EndDisabledGroup(); if (lIsDirty) { UpdateModuleDefinition(mModuleList.index, rItem); } return(lIsDirty); }
/// <summary> /// Update the serialized module definition /// </summary> /// <param name="rIndex"></param> /// <param name="rModule"></param> private void UpdateModuleDefinition(int rIndex, SetupModule rModule) { if (!IsValidIndex(rIndex)) { return; } try { var lSerialized = rModule.Serialize(); //Debug.Log("Updating Module Definition: " + lSerialized); mTarget._ModuleDefinitions[rIndex] = lSerialized; } catch (IndexOutOfRangeException ex) { Debug.LogError("Invalid index for mTarget._ModuleDefinitions: " + rIndex); Debug.LogException(ex); } }
protected override void linkPartnerModules() { base.linkPartnerModules(); setupModule = gameObject.GetComponent <SetupModule>(); }