Пример #1
0
        protected override void UnloadData()
        {
            MyAPIGateway.Entities.OnEntityAdd    -= AddGrid;
            MyAPIGateway.Entities.OnEntityRemove -= RemoveGrid;

            RtsApiBackend.Close();
        }
Пример #2
0
        public override void Init(MyObjectBuilder_SessionComponent sessionComponent)
        {
            thrustTypeId  = MyObjectBuilderType.ParseBackwardsCompatible("Thrust");
            cockpitTypeId = MyObjectBuilderType.ParseBackwardsCompatible("Cockpit");

            NetworkAPI.LogNetworkTraffic = false;

            if (!NetworkAPI.IsInitialized)
            {
                NetworkAPI.Init(ComId, ModName, CommandKeyword);
            }

            if (!RtsApiBackend.IsInitialized)
            {
                RtsApiBackend.Init(this);
            }

            cfg = new NetSync <Settings>(this, TransferType.ServerToClient, Settings.Load(), true, false);
            cfg.ValueChangedByNetwork += SettingChanged;
            Settings.Instance          = cfg.Value;

            Network.RegisterChatCommand(string.Empty, Chat_Help);
            Network.RegisterChatCommand("help", Chat_Help);
            Network.RegisterChatCommand("hud", Chat_Hud);
            Network.RegisterChatCommand("config", Chat_Config);

            if (!MyAPIGateway.Multiplayer.IsServer)
            {
                Network.RegisterChatCommand("load", (args) => { Network.SendCommand("load"); });
            }
            else
            {
                Network.RegisterNetworkCommand("load", ServerCallback_Load);
                Network.RegisterChatCommand("load", (args) => { cfg.Value = Settings.Load(); });
            }

            MyLog.Default.Info("[RelativeTopSpeed] Starting.");
            MyAPIGateway.Entities.OnEntityAdd    += AddGrid;
            MyAPIGateway.Entities.OnEntityRemove += RemoveGrid;
        }