Node CreateNode(ActorSetup actorSetup) { var node = new Node(); node.title = actorSetup.DisplayName; node.capabilities |= Capabilities.Movable; node.name = actorSetup.Id; node.userData = actorSetup; node.SetPosition(new Rect(actorSetup.Position, Vector2.zero)); var actorConfig = m_Asset.ActorConfigs.FirstOrDefault(x => x.Id == actorSetup.ConfigId); CreatePort(node.inputContainer, actorSetup.Inputs, actorConfig?.InputConfigs); CreatePort(node.outputContainer, actorSetup.Outputs, actorConfig?.OutputConfigs); if (actorSetup.IsRemoved) { node.mainContainer.style.backgroundColor = Color.red; } else if (actorSetup.HasSettingsTypeChanged) { node.mainContainer.style.backgroundColor = Color.cyan; } AddElement(node); return(node); }
public static void Connect <TComponent, TMessage>(this ActorSystemSetup actorSystemSetup, ActorSetup outputActorSetup, ActorSetup inputActorSetup) { var componentConfig = actorSystemSetup.GetComponentConfig <TComponent>(); var messageTypeName = typeof(TMessage).ToString(); var outputActorConfig = actorSystemSetup.GetActorConfig(outputActorSetup); var inputActorConfig = actorSystemSetup.GetActorConfig(inputActorSetup); var outputPortConfig = outputActorConfig.OutputConfigs.First(x => x.ComponentConfigId == componentConfig.Id && x.MessageTypeNormalizedFullName == messageTypeName); var inputPortConfig = inputActorConfig.InputConfigs.First(x => x.ComponentConfigId == componentConfig.Id && x.MessageTypeNormalizedFullName == messageTypeName); var outputPort = outputActorSetup.Outputs.First(x => x.ConfigId == outputPortConfig.Id); var inputPort = inputActorSetup.Inputs.First(x => x.ConfigId == inputPortConfig.Id); var link = new ActorLink(outputPort.Id, inputPort.Id, false); outputPort.Links.Add(link); inputPort.Links.Add(link); }
public static void ConnectRpc <T>(this ActorSystemSetup actorSystemSetup, ActorSetup outputActorSetup, ActorSetup inputActorSetup) { actorSystemSetup.Connect <RpcComponent, T>(outputActorSetup, inputActorSetup); }
public static T GetActorSettings <T>(this ActorSetup actorSetup) where T : ActorSettings => (T)actorSetup.Settings;
public static ActorConfig GetActorConfig(this ActorSystemSetup actorSystemSetup, ActorSetup actorSetup) => actorSystemSetup.ActorConfigs.First(x => x.Id == actorSetup.ConfigId);