Updates submodule (#22)
* Updates submodule Fix connect not entering server (with correct toml config) and compile error, updates submodule Server still has an issue with toml file pointing towards sandbox instead of content and roundstart object initializations * Updates more stuff Needs my most recent PR on ss14 to function * Submodule updated for real this time
This commit is contained in:
committed by
Pieter-Jan Briers
parent
37091d1254
commit
5ee56a4cd3
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -1,4 +1,4 @@
|
|||||||
[submodule "engine"]
|
[submodule "engine"]
|
||||||
path = engine
|
path = engine
|
||||||
url = https://github.com/space-wizards/space-station-14.git
|
url = https://github.com/space-wizards/space-station-14.git
|
||||||
branch = 054fcd931d165889c0979c4c1f849f38719883b5
|
branch = 3ccb252a968e1ded9310bdf9c1805d3364b81adb
|
||||||
@@ -55,12 +55,12 @@ namespace Content.Client.UserInterface
|
|||||||
|
|
||||||
protected override void DrawContents()
|
protected override void DrawContents()
|
||||||
{
|
{
|
||||||
if (_playerManager?.ControlledEntity == null)
|
if (_playerManager?.LocalPlayer.ControlledEntity == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IEntity entity = _playerManager.ControlledEntity;
|
IEntity entity = _playerManager.LocalPlayer.ControlledEntity;
|
||||||
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
|
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -99,12 +99,12 @@ namespace Content.Client.UserInterface
|
|||||||
|
|
||||||
public void UpdateHandIcons()
|
public void UpdateHandIcons()
|
||||||
{
|
{
|
||||||
if (_playerManager?.ControlledEntity == null)
|
if (_playerManager?.LocalPlayer.ControlledEntity == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IEntity entity = _playerManager.ControlledEntity;
|
IEntity entity = _playerManager.LocalPlayer.ControlledEntity;
|
||||||
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
|
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -144,7 +144,7 @@ namespace Content.Client.UserInterface
|
|||||||
|
|
||||||
private void SendSwitchHandTo(string index)
|
private void SendSwitchHandTo(string index)
|
||||||
{
|
{
|
||||||
IEntity entity = _playerManager.ControlledEntity;
|
IEntity entity = _playerManager.LocalPlayer.ControlledEntity;
|
||||||
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
|
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,16 +1,46 @@
|
|||||||
using Content.Server.GameObjects;
|
|
||||||
|
using Content.Server.GameObjects;
|
||||||
using Content.Server.Interfaces.GameObjects;
|
using Content.Server.Interfaces.GameObjects;
|
||||||
|
using SS14.Server;
|
||||||
|
using SS14.Server.Interfaces;
|
||||||
|
using SS14.Server.Interfaces.Chat;
|
||||||
|
using SS14.Server.Interfaces.Maps;
|
||||||
using SS14.Server.Interfaces.Player;
|
using SS14.Server.Interfaces.Player;
|
||||||
|
using SS14.Server.Player;
|
||||||
|
using SS14.Shared;
|
||||||
|
using SS14.Shared.Console;
|
||||||
using SS14.Shared.ContentPack;
|
using SS14.Shared.ContentPack;
|
||||||
|
using SS14.Shared.Enums;
|
||||||
using SS14.Shared.Interfaces.GameObjects;
|
using SS14.Shared.Interfaces.GameObjects;
|
||||||
|
using SS14.Shared.Interfaces.Map;
|
||||||
|
using SS14.Shared.Interfaces.Timers;
|
||||||
using SS14.Shared.IoC;
|
using SS14.Shared.IoC;
|
||||||
|
using SS14.Shared.Log;
|
||||||
|
using SS14.Shared.Map;
|
||||||
|
using SS14.Shared.Timers;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace Content.Server
|
namespace Content.Server
|
||||||
{
|
{
|
||||||
public class EntryPoint : GameServer
|
public class EntryPoint : GameServer
|
||||||
{
|
{
|
||||||
|
private IBaseServer _server;
|
||||||
|
private IPlayerManager _players;
|
||||||
|
|
||||||
|
private bool _countdownStarted;
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
public override void Init()
|
public override void Init()
|
||||||
{
|
{
|
||||||
|
base.Init();
|
||||||
|
|
||||||
|
_server = IoCManager.Resolve<IBaseServer>();
|
||||||
|
_players = IoCManager.Resolve<IPlayerManager>();
|
||||||
|
|
||||||
|
_server.RunLevelChanged += HandleRunLevelChanged;
|
||||||
|
_players.PlayerStatusChanged += HandlePlayerStatusChanged;
|
||||||
|
_players.PlayerPrototypeName = "HumanMob_Content";
|
||||||
|
|
||||||
var factory = IoCManager.Resolve<IComponentFactory>();
|
var factory = IoCManager.Resolve<IComponentFactory>();
|
||||||
|
|
||||||
factory.Register<HandsComponent>();
|
factory.Register<HandsComponent>();
|
||||||
@@ -29,9 +59,118 @@ namespace Content.Server
|
|||||||
factory.Register<DestructibleComponent>();
|
factory.Register<DestructibleComponent>();
|
||||||
factory.Register<TemperatureComponent>();
|
factory.Register<TemperatureComponent>();
|
||||||
factory.Register<ServerDoorComponent>();
|
factory.Register<ServerDoorComponent>();
|
||||||
|
}
|
||||||
|
|
||||||
var playerManager = IoCManager.Resolve<IPlayerManager>();
|
/// <inheritdoc />
|
||||||
playerManager.PlayerPrototypeName = "HumanMob_Content";
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
_server.RunLevelChanged -= HandleRunLevelChanged;
|
||||||
|
_players.PlayerStatusChanged -= HandlePlayerStatusChanged;
|
||||||
|
|
||||||
|
base.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleRunLevelChanged(object sender, RunLevelChangedEventArgs args)
|
||||||
|
{
|
||||||
|
switch (args.NewLevel)
|
||||||
|
{
|
||||||
|
case ServerRunLevel.PreGame:
|
||||||
|
IoCManager.Resolve<IPlayerManager>().FallbackSpawnPoint = new LocalCoordinates(0, 0, GridId.DefaultGrid, new MapId(1));
|
||||||
|
NewDemoGrid(new GridId(1), new MapId(1));
|
||||||
|
|
||||||
|
IoCManager.Resolve<IChatManager>().DispatchMessage(ChatChannel.Server, "Gamemode: Round loaded!");
|
||||||
|
break;
|
||||||
|
case ServerRunLevel.Game:
|
||||||
|
IoCManager.Resolve<IPlayerManager>().SendJoinGameToAll();
|
||||||
|
IoCManager.Resolve<IChatManager>().DispatchMessage(ChatChannel.Server, "Gamemode: Round started!");
|
||||||
|
break;
|
||||||
|
case ServerRunLevel.PostGame:
|
||||||
|
IoCManager.Resolve<IChatManager>().DispatchMessage(ChatChannel.Server, "Gamemode: Round over!");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandlePlayerStatusChanged(object sender, SessionStatusEventArgs args)
|
||||||
|
{
|
||||||
|
switch (args.NewStatus)
|
||||||
|
{
|
||||||
|
case SessionStatus.Connected:
|
||||||
|
{
|
||||||
|
// timer time must be > tick length
|
||||||
|
IoCManager.Resolve<ITimerManager>().AddTimer(new Timer(250, false, () =>
|
||||||
|
{
|
||||||
|
args.Session.JoinLobby();
|
||||||
|
}));
|
||||||
|
IoCManager.Resolve<IChatManager>().DispatchMessage(ChatChannel.Server, "Gamemode: Player joined server!", args.Session.Index);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SessionStatus.InLobby:
|
||||||
|
{
|
||||||
|
// auto start game when first player joins
|
||||||
|
if (_server.RunLevel == ServerRunLevel.PreGame && !_countdownStarted)
|
||||||
|
{
|
||||||
|
_countdownStarted = true;
|
||||||
|
IoCManager.Resolve<ITimerManager>().AddTimer(new Timer(2000, false, () =>
|
||||||
|
{
|
||||||
|
_server.RunLevel = ServerRunLevel.Game;
|
||||||
|
_countdownStarted = false;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
IoCManager.Resolve<IChatManager>().DispatchMessage(ChatChannel.Server, "Gamemode: Player joined Lobby!", args.Session.Index);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SessionStatus.InGame:
|
||||||
|
{
|
||||||
|
//TODO: Check for existing mob and re-attach
|
||||||
|
IoCManager.Resolve<IPlayerManager>().SpawnPlayerMob(args.Session);
|
||||||
|
|
||||||
|
IoCManager.Resolve<IChatManager>().DispatchMessage(ChatChannel.Server, "Gamemode: Player joined Game!", args.Session.Index);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SessionStatus.Disconnected:
|
||||||
|
{
|
||||||
|
IoCManager.Resolve<IChatManager>().DispatchMessage(ChatChannel.Server, "Gamemode: Player left!", args.Session.Index);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: This whole method should be removed once file loading/saving works, and replaced with a 'Demo' map.
|
||||||
|
/// <summary>
|
||||||
|
/// Generates 'Demo' grid and inserts it into the map manager.
|
||||||
|
/// </summary>
|
||||||
|
private void NewDemoGrid(GridId gridId, MapId mapId)
|
||||||
|
{
|
||||||
|
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||||
|
var defManager = IoCManager.Resolve<ITileDefinitionManager>();
|
||||||
|
|
||||||
|
mapManager.SuppressOnTileChanged = true;
|
||||||
|
|
||||||
|
Logger.Log("Cannot find map. Generating blank map.", LogLevel.Warning);
|
||||||
|
var floor = defManager["Floor"].TileId;
|
||||||
|
|
||||||
|
Debug.Assert(floor > 0);
|
||||||
|
|
||||||
|
var map = mapManager.CreateMap(mapId);
|
||||||
|
var grid = map.CreateGrid(gridId);
|
||||||
|
|
||||||
|
for (var y = -32; y <= 32; ++y)
|
||||||
|
{
|
||||||
|
for (var x = -32; x <= 32; ++x)
|
||||||
|
{
|
||||||
|
grid.SetTile(new LocalCoordinates(x, y, gridId, mapId), new Tile(floor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// load entities
|
||||||
|
IoCManager.Resolve<IMapLoader>().Load(_server.MapName, map);
|
||||||
|
|
||||||
|
mapManager.SuppressOnTileChanged = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using YamlDotNet.RepresentationModel;
|
using YamlDotNet.RepresentationModel;
|
||||||
using Lidgren.Network;
|
using Lidgren.Network;
|
||||||
|
using SS14.Shared.Enums;
|
||||||
|
|
||||||
namespace Content.Server.GameObjects
|
namespace Content.Server.GameObjects
|
||||||
{
|
{
|
||||||
@@ -257,7 +258,7 @@ namespace Content.Server.GameObjects
|
|||||||
ActiveIndex = orderedHands[index];
|
ActiveIndex = orderedHands[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void HandleNetworkMessage(IncomingEntityComponentMessage message, NetConnection sender)
|
public override void HandleNetworkMessage(IncomingEntityComponentMessage message)
|
||||||
{
|
{
|
||||||
if (message.MessageParameters.Count != 1)
|
if (message.MessageParameters.Count != 1)
|
||||||
{
|
{
|
||||||
@@ -268,7 +269,7 @@ namespace Content.Server.GameObjects
|
|||||||
{
|
{
|
||||||
ActiveIndex = newIndex;
|
ActiveIndex = newIndex;
|
||||||
}
|
}
|
||||||
base.HandleNetworkMessage(message, sender);
|
base.HandleNetworkMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
engine
2
engine
Submodule engine updated: 59b2df97d8...3ccb252a96
Reference in New Issue
Block a user