Beispiel #1
0
 public void Initialize()
 {
     _netManager.RegisterNetMessage <MsgPreferencesAndSettings>(nameof(MsgPreferencesAndSettings),
                                                                HandlePreferencesAndSettings);
     _netManager.RegisterNetMessage <MsgUpdateCharacter>(nameof(MsgUpdateCharacter));
     _netManager.RegisterNetMessage <MsgSelectCharacter>(nameof(MsgSelectCharacter));
 }
Beispiel #2
0
        /// <inheritdoc />
        public void Initialize()
        {
            _processor = new GameStateProcessor(_timing);

            _network.RegisterNetMessage <MsgState>(MsgState.NAME, HandleStateMessage);
            _network.RegisterNetMessage <MsgStateAck>(MsgStateAck.NAME);
            _client.RunLevelChanged += RunLevelChanged;

            if (!_config.IsCVarRegistered("net.interp"))
            {
                _config.RegisterCVar("net.interp", false, CVar.ARCHIVE, b => _processor.Interpolation = b);
            }

            if (!_config.IsCVarRegistered("net.interp_ratio"))
            {
                _config.RegisterCVar("net.interp_ratio", 0, CVar.ARCHIVE, i => _processor.InterpRatio = i);
            }

            if (!_config.IsCVarRegistered("net.logging"))
            {
                _config.RegisterCVar("net.logging", false, CVar.ARCHIVE, b => _processor.Logging = b);
            }

            _processor.Interpolation = _config.GetCVar <bool>("net.interp");
            _processor.InterpRatio   = _config.GetCVar <int>("net.interp_ratio");
            _processor.Logging       = _config.GetCVar <bool>("net.logging");
        }
        public override void Main(Godot.SceneTree tree)
        {
            PreInitIoC();
            IoCManager.Resolve <ISceneTreeHolder>().Initialize(tree);
            InitIoC();
            Godot.OS.SetWindowTitle("Space Station 14");

            tree.SetAutoAcceptQuit(false);

            // Load config.
            _configurationManager.LoadFromFile(PathHelpers.ExecutableRelativeFile("client_config.toml"));

            displayManager.Initialize();

            // Init resources.
            // Doesn't do anything right now because TODO Godot asset management is a bit ad-hoc.
            _resourceCache.LoadBaseResources();
            _resourceCache.LoadLocalResources();

            //identical code for server in baseserver
            if (!AssemblyLoader.TryLoadAssembly <GameShared>(_resourceManager, $"Content.Shared"))
            {
                if (!AssemblyLoader.TryLoadAssembly <GameShared>(_resourceManager, $"Sandbox.Shared"))
                {
                    Logger.Warning($"[ENG] Could not load any Shared DLL.");
                }
            }

            if (!AssemblyLoader.TryLoadAssembly <GameClient>(_resourceManager, $"Content.Client"))
            {
                if (!AssemblyLoader.TryLoadAssembly <GameClient>(_resourceManager, $"Sandbox.Client"))
                {
                    Logger.Warning($"[ENG] Could not load any Client DLL.");
                }
            }

            // Call Init in game assemblies.
            AssemblyLoader.BroadcastRunLevel(AssemblyLoader.RunLevel.Init);

            eyeManager.Initialize();
            inputManager.Initialize();
            _serializer.Initialize();
            _userInterfaceManager.Initialize();
            _tileDefinitionManager.Initialize();
            _networkManager.Initialize(false);
            _console.Initialize();
            _prototypeManager.LoadDirectory(@"./Prototypes/");
            _prototypeManager.Resync();
            _mapManager.Initialize();
            placementManager.Initialize();
            lightManager.Initialize();
            _entityManager.Initialize();

            _networkManager.RegisterNetMessage <MsgFullState>(MsgFullState.NAME, message => IoCManager.Resolve <IGameStateManager>().HandleFullStateMessage((MsgFullState)message));
            _networkManager.RegisterNetMessage <MsgStateUpdate>(MsgStateUpdate.NAME, message => IoCManager.Resolve <IGameStateManager>().HandleStateUpdateMessage((MsgStateUpdate)message));

            _client.Initialize();

            _stateManager.RequestStateChange <MainScreen>();
        }
        /// <inheritdoc />
        public void Initialize()
        {
            _config.RegisterCVar("player.name", "JoeGenero", CVar.ARCHIVE);

            _network.RegisterNetMessage <MsgPlayerListReq>(MsgPlayerListReq.NAME);
            _network.RegisterNetMessage <MsgPlayerList>(MsgPlayerList.NAME, HandlePlayerList);
        }
        /// <inheritdoc />
        public virtual void Initialize()
        {
            _network.RegisterNetMessage <MsgConCmdReg>(MsgConCmdReg.NAME, HandleConCmdReg);
            _network.RegisterNetMessage <MsgConCmdAck>(MsgConCmdAck.NAME, HandleConCmdAck);
            _network.RegisterNetMessage <MsgConCmd>(MsgConCmd.NAME);

            Reset();
        }
Beispiel #6
0
 public void Initialize()
 {
     _netManager.RegisterNetMessage <MsgScriptStop>(MsgScriptStop.NAME);
     _netManager.RegisterNetMessage <MsgScriptEval>(MsgScriptEval.NAME);
     _netManager.RegisterNetMessage <MsgScriptStart>(MsgScriptStart.NAME);
     _netManager.RegisterNetMessage <MsgScriptResponse>(MsgScriptResponse.NAME, ReceiveScriptResponse);
     _netManager.RegisterNetMessage <MsgScriptStartAck>(MsgScriptStartAck.NAME, ReceiveScriptStartAckResponse);
 }
Beispiel #7
0
        /// <inheritdoc />
        public void Initialize()
        {
            _sessions = new Dictionary <NetSessionId, IPlayerSession>();

            _config.RegisterCVar("player.name", "JoeGenero", CVar.ARCHIVE);

            _network.RegisterNetMessage <MsgPlayerListReq>(MsgPlayerListReq.NAME);
            _network.RegisterNetMessage <MsgPlayerList>(MsgPlayerList.NAME, HandlePlayerList);
        }
        /// <inheritdoc />
        public void Initialize()
        {
            _network.RegisterNetMessage <MsgConCmdReg>(MsgConCmdReg.NAME, HandleConCmdReg);
            _network.RegisterNetMessage <MsgConCmdAck>(MsgConCmdAck.NAME, HandleConCmdAck);
            _network.RegisterNetMessage <MsgConCmd>(MsgConCmd.NAME);

            Reset();
            logManager.RootSawmill.AddHandler(new DebugConsoleLogHandler(this));
        }
        public void Initialize()
        {
            DebugTools.Assert(!_initialized);

            _netManager.RegisterNetMessage <MsgTickerJoinLobby>(nameof(MsgTickerJoinLobby), JoinLobby);
            _netManager.RegisterNetMessage <MsgTickerJoinGame>(nameof(MsgTickerJoinGame), JoinGame);
            _netManager.RegisterNetMessage <MsgTickerLobbyStatus>(nameof(MsgTickerLobbyStatus), LobbyStatus);
            _netManager.RegisterNetMessage <MsgTickerLobbyInfo>(nameof(MsgTickerLobbyInfo), LobbyInfo);

            _initialized = true;
        }
Beispiel #10
0
        /// <inheritdoc />
        public void Initialize()
        {
            _net.RegisterNetMessage <MsgServerInfo>(MsgServerInfo.NAME, HandleServerInfo);
            _net.RegisterNetMessage <MsgSetTickRate>(MsgSetTickRate.NAME, HandleSetTickRate);
            _net.Connected     += OnConnected;
            _net.ConnectFailed += OnConnectFailed;
            _net.Disconnect    += OnNetDisconnect;

            _playMan.Initialize();
            _debugDrawMan.Initialize();
            Reset();
        }
Beispiel #11
0
        public void Initialize()
        {
            DebugTools.Assert(!_initialized);

            _netManager.RegisterNetMessage <MsgTickerJoinLobby>(nameof(MsgTickerJoinLobby), _joinLobby);
            _netManager.RegisterNetMessage <MsgTickerJoinGame>(nameof(MsgTickerJoinGame), _joinGame);
            _netManager.RegisterNetMessage <MsgTickerLobbyStatus>(nameof(MsgTickerLobbyStatus), _lobbyStatus);

            _baseClient.RunLevelChanged += BaseClientOnRunLevelChanged;

            _initialized = true;
        }
        public void Initialize()
        {
            _netManager.RegisterNetMessage <MsgSandboxStatus>(nameof(MsgSandboxStatus),
                                                              message => SetAllowed(message.SandboxAllowed));

            _gameHud.SandboxButtonToggled = SandboxButtonToggled;
        }
Beispiel #13
0
        public void Initialize()
        {
            _netManager.RegisterNetMessage<MsgSandboxStatus>(nameof(MsgSandboxStatus),
                message => SetAllowed(message.SandboxAllowed));

            _netManager.RegisterNetMessage<MsgSandboxRespawn>(nameof(MsgSandboxRespawn));

            _gameHud.SandboxButtonToggled = SandboxButtonPressed;

            _inputManager.SetInputCommand(ContentKeyFunctions.OpenEntitySpawnWindow,
                InputCmdHandler.FromDelegate(session => ToggleEntitySpawnWindow()));
            _inputManager.SetInputCommand(ContentKeyFunctions.OpenSandboxWindow,
                InputCmdHandler.FromDelegate(session => ToggleSandboxWindow()));
            _inputManager.SetInputCommand(ContentKeyFunctions.OpenTileSpawnWindow,
                InputCmdHandler.FromDelegate(session => ToggleTilesWindow()));
        }
        public void Initialize()
        {
            NetworkManager.RegisterNetMessage <MsgPlacement>(MsgPlacement.NAME, HandlePlacementMessage);

            _modeDictionary.Clear();
            foreach (var type in ReflectionManager.GetAllChildren <PlacementMode>())
            {
                _modeDictionary.Add(type.Name, type);
            }

            _mapMan.TileChanged += HandleTileChanged;
        }
Beispiel #15
0
        public void Initialize()
        {
            DebugTools.Assert(!_initialized);

            _netManager.RegisterNetMessage <MsgTickerJoinLobby>(nameof(MsgTickerJoinLobby), JoinLobby);
            _netManager.RegisterNetMessage <MsgTickerJoinGame>(nameof(MsgTickerJoinGame), JoinGame);
            _netManager.RegisterNetMessage <MsgTickerLobbyStatus>(nameof(MsgTickerLobbyStatus), LobbyStatus);
            _netManager.RegisterNetMessage <MsgTickerLobbyInfo>(nameof(MsgTickerLobbyInfo), LobbyInfo);
            _netManager.RegisterNetMessage <MsgTickerLobbyCountdown>(nameof(MsgTickerLobbyCountdown), LobbyCountdown);
            _netManager.RegisterNetMessage <MsgTickerLobbyReady>(nameof(MsgTickerLobbyReady), LobbyReady);
            _netManager.RegisterNetMessage <MsgRoundEndMessage>(nameof(MsgRoundEndMessage), RoundEnd);
            _netManager.RegisterNetMessage <MsgRequestWindowAttention>(nameof(MsgRequestWindowAttention), msg =>
            {
                IoCManager.Resolve <IClyde>().RequestWindowAttention();
            });
            _netManager.RegisterNetMessage <MsgTickerLateJoinStatus>(nameof(MsgTickerLateJoinStatus), LateJoinStatus);
            _netManager.RegisterNetMessage <MsgTickerJobsAvailable>(nameof(MsgTickerJobsAvailable), UpdateJobsAvailable);

            Status       = new Dictionary <NetUserId, PlayerStatus>();
            _initialized = true;
        }
 public void Initialize()
 {
     _netManager.RegisterNetMessage <MsgViewVariablesOpenSession>(MsgViewVariablesOpenSession.NAME,
                                                                  _netMessageOpenSession);
     _netManager.RegisterNetMessage <MsgViewVariablesRemoteData>(MsgViewVariablesRemoteData.NAME,
                                                                 _netMessageRemoteData);
     _netManager.RegisterNetMessage <MsgViewVariablesCloseSession>(MsgViewVariablesCloseSession.NAME,
                                                                   _netMessageCloseSession);
     _netManager.RegisterNetMessage <MsgViewVariablesDenySession>(MsgViewVariablesDenySession.NAME,
                                                                  _netMessageDenySession);
     _netManager.RegisterNetMessage <MsgViewVariablesModifyRemote>(MsgViewVariablesModifyRemote.NAME);
     _netManager.RegisterNetMessage <MsgViewVariablesReqSession>(MsgViewVariablesReqSession.NAME);
     _netManager.RegisterNetMessage <MsgViewVariablesReqData>(MsgViewVariablesReqData.NAME);
 }
        public void Initialize()
        {
            NetworkManager.RegisterNetMessage <MsgPlacement>(MsgPlacement.NAME, HandlePlacementMessage);

            _modeDictionary.Clear();
            foreach (var type in ReflectionManager.GetAllChildren <PlacementMode>())
            {
                _modeDictionary.Add(type.Name, type);
            }

            _mapMan.TileChanged += HandleTileChanged;
            drawNode             = new Godot.Node2D()
            {
                Name = "Placement Manager Sprite",
            };
            sceneTree.WorldRoot.AddChild(drawNode);
            drawNodeDrawSubscriber = new GodotGlue.GodotSignalSubscriber0();
            drawNodeDrawSubscriber.Connect(drawNode, "draw");
            drawNodeDrawSubscriber.Signal += Render;
        }
Beispiel #18
0
 public void Initialize()
 {
     _netMgr.RegisterNetMessage <MsgUpdateAdminStatus>(MsgUpdateAdminStatus.NAME, UpdateMessageRx);
 }
 public void Initialize()
 {
     netManager.RegisterNetMessage <MsgState>(MsgState.NAME, HandleStateMessage);
     netManager.RegisterNetMessage <MsgStateAck>(MsgStateAck.NAME);
     baseClient.RunLevelChanged += RunLevelChanged;
 }
Beispiel #20
0
 public void Initialize()
 {
     _netManager.RegisterNetMessage <MsgConGroupUpdate>(MsgConGroupUpdate.Name, _onConGroupUpdate);
 }
Beispiel #21
0
 /// <inheritdoc />
 public void Initialize()
 {
     _network.RegisterNetMessage <MsgPlayerListReq>(MsgPlayerListReq.NAME);
     _network.RegisterNetMessage <MsgPlayerList>(MsgPlayerList.NAME, HandlePlayerList);
 }
 public void Initialize()
 {
     _netManager.RegisterNetMessage <GamePrototypeLoadMessage>(LoadGamePrototype);
 }
        public void Run()
        {
            Logger.Debug("Initializing GameController.");

            _configurationManager.LoadFromFile(PathHelpers.ExecutableRelativeFile("client_config.toml"));

            _resourceCache.LoadBaseResources();
            // Load resources used by splash screen and main menu.
            LoadSplashResources();
            ShowSplashScreen();

            _resourceCache.LoadLocalResources();

            //identical code for server in baseserver
            if (!AssemblyLoader.TryLoadAssembly <GameShared>(_resourceManager, $"Content.Shared"))
            {
                if (!AssemblyLoader.TryLoadAssembly <GameShared>(_resourceManager, $"Sandbox.Shared"))
                {
                    Logger.Warning($"[ENG] Could not load any Shared DLL.");
                }
            }

            if (!AssemblyLoader.TryLoadAssembly <GameClient>(_resourceManager, $"Content.Client"))
            {
                if (!AssemblyLoader.TryLoadAssembly <GameClient>(_resourceManager, $"Sandbox.Client"))
                {
                    Logger.Warning($"[ENG] Could not load any Client DLL.");
                }
            }

            IoCManager.Resolve <ILightManager>().Initialize();

            // Call Init in game assemblies.
            AssemblyLoader.BroadcastRunLevel(AssemblyLoader.RunLevel.Init);

            //Setup Cluwne first, as the rest depends on it.
            SetupCluwne();
            CleanupSplashScreen();

            //Initialization of private members
            _tileDefinitionManager.InitializeResources();

            _serializer.Initialize();
            var prototypeManager = IoCManager.Resolve <IPrototypeManager>();

            prototypeManager.LoadDirectory(@"Prototypes");
            prototypeManager.Resync();
            _networkManager.Initialize(false);
            _console.Initialize();
            _netGrapher.Initialize();
            _userInterfaceManager.Initialize();
            _mapManager.Initialize();
            _placementManager.Initialize();
            _entityManager.Initialize();

            _networkManager.RegisterNetMessage <MsgFullState>(MsgFullState.NAME, message => IoCManager.Resolve <IGameStateManager>().HandleFullStateMessage((MsgFullState)message));
            _networkManager.RegisterNetMessage <MsgStateUpdate>(MsgStateUpdate.NAME, message => IoCManager.Resolve <IGameStateManager>().HandleStateUpdateMessage((MsgStateUpdate)message));

            _client.Initialize();

            _stateManager.RequestStateChange <MainScreen>();

            #region GameLoop

            // maximum number of ticks to queue before the loop slows down.
            const int maxTicks = 5;

            _time.ResetRealTime();
            var maxTime = TimeSpan.FromTicks(_time.TickPeriod.Ticks * maxTicks);

            while (CluwneLib.IsRunning)
            {
                var accumulator = _time.RealTime - _lastTick;

                // If the game can't keep up, limit time.
                if (accumulator > maxTime)
                {
                    // limit accumulator to max time.
                    accumulator = maxTime;

                    // pull lastTick up to the current realTime
                    // This will slow down the simulation, but if we are behind from a
                    // lag spike hopefully it will be able to catch up.
                    _lastTick = _time.RealTime - maxTime;

                    // announce we are falling behind
                    if ((_time.RealTime - _lastKeepUpAnnounce).TotalSeconds >= 15.0)
                    {
                        Logger.Warning("[ENG] MainLoop: Cannot keep up!");
                        _lastKeepUpAnnounce = _time.RealTime;
                    }
                }

                _time.StartFrame();

                var realFrameEvent = new FrameEventArgs((float)_time.RealFrameTime.TotalSeconds);

                // process Net/KB/Mouse input
                Process(realFrameEvent);

                _time.InSimulation = true;
                // run the simulation for every accumulated tick
                while (accumulator >= _time.TickPeriod)
                {
                    accumulator -= _time.TickPeriod;
                    _lastTick   += _time.TickPeriod;

                    // only run the sim if unpaused, but still use up the accumulated time
                    if (!_time.Paused)
                    {
                        // update the simulation
                        var simFrameEvent = new FrameEventArgs((float)_time.FrameTime.TotalSeconds);
                        Update(simFrameEvent);
                        _time.CurTick++;
                    }
                }

                // if not paused, save how close to the next tick we are so interpolation works
                if (!_time.Paused)
                {
                    _time.TickRemainder = accumulator;
                }

                _time.InSimulation = false;

                // render the simulation
                Render(realFrameEvent);
            }

            #endregion GameLoop

            _networkManager.ClientDisconnect("Client disconnected from game.");
            CluwneLib.Terminate();
            Logger.Info("GameController terminated.");

            IoCManager.Resolve <IConfigurationManager>().SaveToFile();
        }
 public void Initialize()
 {
     _netManager.RegisterNetMessage <MsgPreferencesAndSettings>(nameof(MsgPreferencesAndSettings),
                                                                HandlePreferencesAndSettings);
 }
Beispiel #25
0
 public void Initialize()
 {
     netManager.RegisterNetMessage <MsgState>(MsgState.NAME, HandleStateMessage);
     netManager.RegisterNetMessage <MsgStateAck>(MsgStateAck.NAME);
 }
Beispiel #26
0
    public void Initialize()
    {
        _netManager.RegisterNetMessage <MsgGhostKick>(RxCallback);

        _baseClient.RunLevelChanged += BaseClientOnRunLevelChanged;
    }
Beispiel #27
0
 public void Initialize()
 {
     _netManager.RegisterNetMessage <MsgChatMessage>(MsgChatMessage.NAME, _onChatMessage);
 }
Beispiel #28
0
 /// <inheritdoc />
 public void SetupNetworking()
 {
     _networkManager.RegisterNetMessage <MsgEntity>(MsgEntity.NAME, HandleEntityNetworkMessage);
 }