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:
clusterfack
2018-01-18 13:00:35 -06:00
committed by Pieter-Jan Briers
parent 37091d1254
commit 5ee56a4cd3
5 changed files with 153 additions and 13 deletions

2
.gitmodules vendored
View File

@@ -1,4 +1,4 @@
[submodule "engine"]
path = engine
url = https://github.com/space-wizards/space-station-14.git
branch = 054fcd931d165889c0979c4c1f849f38719883b5
branch = 3ccb252a968e1ded9310bdf9c1805d3364b81adb

View File

@@ -55,12 +55,12 @@ namespace Content.Client.UserInterface
protected override void DrawContents()
{
if (_playerManager?.ControlledEntity == null)
if (_playerManager?.LocalPlayer.ControlledEntity == null)
{
return;
}
IEntity entity = _playerManager.ControlledEntity;
IEntity entity = _playerManager.LocalPlayer.ControlledEntity;
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
{
return;
@@ -99,12 +99,12 @@ namespace Content.Client.UserInterface
public void UpdateHandIcons()
{
if (_playerManager?.ControlledEntity == null)
if (_playerManager?.LocalPlayer.ControlledEntity == null)
{
return;
}
IEntity entity = _playerManager.ControlledEntity;
IEntity entity = _playerManager.LocalPlayer.ControlledEntity;
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
{
return;
@@ -144,7 +144,7 @@ namespace Content.Client.UserInterface
private void SendSwitchHandTo(string index)
{
IEntity entity = _playerManager.ControlledEntity;
IEntity entity = _playerManager.LocalPlayer.ControlledEntity;
if (!entity.TryGetComponent<IHandsComponent>(out var hands))
{
return;

View File

@@ -1,16 +1,46 @@
using Content.Server.GameObjects;

using Content.Server.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.Player;
using SS14.Shared;
using SS14.Shared.Console;
using SS14.Shared.ContentPack;
using SS14.Shared.Enums;
using SS14.Shared.Interfaces.GameObjects;
using SS14.Shared.Interfaces.Map;
using SS14.Shared.Interfaces.Timers;
using SS14.Shared.IoC;
using SS14.Shared.Log;
using SS14.Shared.Map;
using SS14.Shared.Timers;
using System.Diagnostics;
namespace Content.Server
{
public class EntryPoint : GameServer
{
private IBaseServer _server;
private IPlayerManager _players;
private bool _countdownStarted;
/// <inheritdoc />
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>();
factory.Register<HandsComponent>();
@@ -29,9 +59,118 @@ namespace Content.Server
factory.Register<DestructibleComponent>();
factory.Register<TemperatureComponent>();
factory.Register<ServerDoorComponent>();
}
var playerManager = IoCManager.Resolve<IPlayerManager>();
playerManager.PlayerPrototypeName = "HumanMob_Content";
/// <inheritdoc />
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;
}
}
}

View File

@@ -9,6 +9,7 @@ using System;
using System.Collections.Generic;
using YamlDotNet.RepresentationModel;
using Lidgren.Network;
using SS14.Shared.Enums;
namespace Content.Server.GameObjects
{
@@ -257,7 +258,7 @@ namespace Content.Server.GameObjects
ActiveIndex = orderedHands[index];
}
public override void HandleNetworkMessage(IncomingEntityComponentMessage message, NetConnection sender)
public override void HandleNetworkMessage(IncomingEntityComponentMessage message)
{
if (message.MessageParameters.Count != 1)
{
@@ -268,7 +269,7 @@ namespace Content.Server.GameObjects
{
ActiveIndex = newIndex;
}
base.HandleNetworkMessage(message, sender);
base.HandleNetworkMessage(message);
}
}
}

2
engine

Submodule engine updated: 59b2df97d8...3ccb252a96