private static void Main(string[] args) { AbstractApplicationContext appCtx = new AttributeApplicationContext("NdiExample"); IMainComponent mainComponent = (IMainComponent)appCtx.GetComponent("mainComponent"); mainComponent.Start(); Console.ReadLine(); }
private void Add(IMainComponent comp, bool forExport) { if (comp == null) { return; } var name = comp.name; switch (comp) { case BumperComponent bumperComponent: var bumperData = bumperComponent.CopyDataTo(_tableComponent.LegacyContainer.Bumpers.ContainsKey(name) ? _tableComponent.LegacyContainer.Bumpers[name] : new BumperData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Bumper(bumperData)); break; case FlipperComponent flipperComponent: var flipperData = flipperComponent.CopyDataTo(_tableComponent.LegacyContainer.Flippers.ContainsKey(name) ? _tableComponent.LegacyContainer.Flippers[name] : new FlipperData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Flipper(flipperData)); break; case GateComponent gateComponent: var gatData = gateComponent.CopyDataTo(_tableComponent.LegacyContainer.Gates.ContainsKey(name) ? _tableComponent.LegacyContainer.Gates[name] : new GateData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Gate(gatData)); break; case TargetComponent targetComponent: var hitTargetData = targetComponent.CopyDataTo(_tableComponent.LegacyContainer.HitTargets.ContainsKey(name) ? _tableComponent.LegacyContainer.HitTargets[name] : new HitTargetData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new HitTarget(hitTargetData)); break; case KickerComponent kickerComponent: var kickerData = kickerComponent.CopyDataTo(_tableComponent.LegacyContainer.Kickers.ContainsKey(name) ? _tableComponent.LegacyContainer.Kickers[name] : new KickerData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Kicker(kickerData)); break; case LightComponent lightComponent: var lightData = lightComponent.CopyDataTo(_tableComponent.LegacyContainer.Lights.ContainsKey(name) ? _tableComponent.LegacyContainer.Lights[name] : new LightData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Light(lightData)); break; case PlungerComponent plungerComponent: var plungerData = plungerComponent.CopyDataTo(_tableComponent.LegacyContainer.Plungers.ContainsKey(name) ? _tableComponent.LegacyContainer.Plungers[name] : new PlungerData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Plunger(plungerData)); break; case PrimitiveComponent primitiveComponent: var primitiveData = primitiveComponent.CopyDataTo(_tableComponent.LegacyContainer.Primitives.ContainsKey(name) ? _tableComponent.LegacyContainer.Primitives[name] : new PrimitiveData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Primitive(primitiveData)); break; case RampComponent rampComponent: var rampData = rampComponent.CopyDataTo(_tableComponent.LegacyContainer.Ramps.ContainsKey(name) ? _tableComponent.LegacyContainer.Ramps[name] : new RampData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Ramp(rampData)); break; case RubberComponent rubberComponent: var rubberData = rubberComponent.CopyDataTo(_tableComponent.LegacyContainer.Rubbers.ContainsKey(name) ? _tableComponent.LegacyContainer.Rubbers[name] : new RubberData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Rubber(rubberData)); break; case SpinnerComponent spinnerComponent: var spinnerData = spinnerComponent.CopyDataTo(_tableComponent.LegacyContainer.Spinners.ContainsKey(name) ? _tableComponent.LegacyContainer.Spinners[name] : new SpinnerData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Spinner(spinnerData)); break; case SurfaceComponent surfaceComponent: var surfaceData = surfaceComponent.CopyDataTo(_tableComponent.LegacyContainer.Surfaces.ContainsKey(name) ? _tableComponent.LegacyContainer.Surfaces[name] : new SurfaceData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Surface(surfaceData)); break; case TriggerComponent triggerComponent: var triggerData = triggerComponent.CopyDataTo(_tableComponent.LegacyContainer.Triggers.ContainsKey(name) ? _tableComponent.LegacyContainer.Triggers[name] : new TriggerData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Trigger(triggerData)); break; case TroughComponent troughComponent: var troughData = troughComponent.CopyDataTo(new TroughData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new Trough(troughData)); break; case MetalWireGuideComponent metalWireGuideComponent: var metalWireGuideData = metalWireGuideComponent.CopyDataTo(_tableComponent.LegacyContainer.MetalWireGuides.ContainsKey(name) ? _tableComponent.LegacyContainer.MetalWireGuides[name] : new MetalWireGuideData(), MaterialNames, TextureNames, forExport); Add(comp.gameObject.name, new MetalWireGuide(metalWireGuideData)); break; } }
public MainController(ILogger <MainController> logger, IMainComponent mainComponent) { _logger = logger; _mainComponent = mainComponent; }