Пример #1
0
        public Program()
        {
            Context          = new ExecutionContext(this);
            subsystemManager = new SubsystemManager(Context);

            Runtime.UpdateFrequency = UpdateFrequency.Update1;

            ParseConfigs();

            // Add subsystems
            // Intel system setup
            IntelSubsystem intelSubsystem = new IntelSubsystem(1);

            Context.IntelSystem = intelSubsystem;

            subsystemManager.AddSubsystem("intel", intelSubsystem);
            LookingGlassNetworkSubsystem lookingGlassNetwork = null;

            // Looking Glass Setup
            if (LookingGlass)
            {
                lookingGlassNetwork = new LookingGlassNetworkSubsystem(intelSubsystem, "LG", !FixedLookingGlass, ThrusterLookingGlass);
                subsystemManager.AddSubsystem("lookingglass", lookingGlassNetwork);
                lookingGlassNetwork.AddPlugin("command", new LookingGlassPlugin_Command());
                lookingGlassNetwork.AddPlugin("lidar", new LookingGlassPlugin_Lidar());
            }

            // Hangar system setup
            HangarSubsystem hangarSubsystem = new HangarSubsystem(intelSubsystem);

            subsystemManager.AddSubsystem("hangar", hangarSubsystem);

            ScannerNetworkSubsystem scannerSubsystem = null;

            // Seeing-Eye scanner setup
            if (Scanner)
            {
                scannerSubsystem = new ScannerNetworkSubsystem(intelSubsystem, "SE");
                subsystemManager.AddSubsystem("scanner", scannerSubsystem);
            }

            TorpedoSubsystem torpedoSubsystem = null;

            // Torpedo system setup
            if (Torpedos)
            {
                torpedoSubsystem = new TorpedoSubsystem(intelSubsystem);
                subsystemManager.AddSubsystem("torpedo", torpedoSubsystem);
            }


            lookingGlassNetwork?.AddPlugin("combat", new LookingGlassPlugin_Combat(torpedoSubsystem, hangarSubsystem, scannerSubsystem));
            lookingGlassNetwork?.ActivatePlugin(DefaultLookingGlassPlugin);

            //
            // Command system setup
            TacticalCommandSubsystem tacticalSubsystem = new TacticalCommandSubsystem(intelSubsystem);

            subsystemManager.AddSubsystem("command", tacticalSubsystem);

            // Black ops
            // ECMInterfaceSubsystem ECM = new ECMInterfaceSubsystem(intelSubsystem);
            // subsystemManager.AddSubsystem("ECM", ECM);

            subsystemManager.AddSubsystem("loader", new CombatLoaderSubsystem(CombatLoaderCargo, CombatCargoStore));

            subsystemManager.DeserializeManager(Storage);
        }