This commit is contained in:
Aleksander Waage 2020-09-02 20:36:29 +02:00
commit 4f5663bfc9
16 changed files with 54 additions and 19 deletions

View File

@ -15,7 +15,7 @@ namespace QSB.DeathSync
} },
{ DeathType.Impact, new[]
{
"{0} forgot what retro thrusters were",
"{0} forgot to use retro-rockets",
"{0} bonked into the ground too hard",
"{0} went splat"
} },
@ -25,23 +25,25 @@ namespace QSB.DeathSync
"{0} forgot how to breathe",
"{0} forgot to check their oxygen meter",
"{0} lacked oxygen",
"{0} attempted to photosynthesise"
"{0} didn't need air anyway"
} },
{ DeathType.Energy, new[]
{
"{0} was cooked",
"{0} failed the Hotshot achievement",
"{0} forgot to install AC unit"
"{0} forgot to install an AC unit",
"{0} got too hot"
} },
{ DeathType.Supernova, new[]
{
"{0} ran out of time",
"{0} vaporized",
"{0} got vaporized",
"{0} lost track of time",
"{0} got front row seats to the supernova",
"{0} heard the End of Times music",
"{0} watched the sun go kaboom",
"{0} became cosmic marshmallow"
"{0} became cosmic marshmallow",
"{0} photosynthesized too much"
} },
{ DeathType.Digestion, new[]
{

View File

@ -1,8 +1,8 @@
using OWML.ModHelper.Events;
using OWML.Common;
using OWML.ModHelper.Events;
using QSB.Events;
using System.Linq;
using OWML.Common;
using QSB.Utility;
using System.Linq;
using UnityEngine;
namespace QSB.DeathSync

View File

@ -23,7 +23,7 @@ namespace QSB.ElevatorSync
_elevators = Resources.FindObjectsOfTypeAll<Elevator>().ToList();
for (var id = 0; id < _elevators.Count; id++)
{
var qsbElevator = new QSBElevator();
var qsbElevator = WorldRegistry.GetObject<QSBElevator>(id) ?? new QSBElevator();
qsbElevator.Init(_elevators[id], id);
WorldRegistry.AddObject(qsbElevator);
}

View File

@ -1,4 +1,8 @@
using QSB.Messaging;
using OWML.Common;
using QSB.Messaging;
using QSB.TransformSync;
using QSB.Utility;
using System.Linq;
namespace QSB.Events
{
@ -26,8 +30,24 @@ namespace QSB.Events
public override void OnServerReceive(ToggleMessage message)
{
DebugLog.DebugWrite($"[S] Get ready event from {message.FromId}", MessageType.Success);
if (message.FromId == PlayerRegistry.LocalPlayerId)
{
return;
}
PlayerRegistry.GetPlayer(message.AboutId).IsReady = message.ToggleValue;
PlayerState.LocalInstance.Send();
}
public override void OnReceiveRemote(ToggleMessage message)
{
DebugLog.DebugWrite($"Get ready event from {message.FromId}", MessageType.Success);
foreach (var item in PlayerRegistry.GetSyncObjects<TransformSync.TransformSync>()
.Where(x => x != null && x.IsReady && x.ReferenceSector != null && x.PlayerId == LocalPlayerId))
{
DebugLog.DebugWrite($"* Sending sector for netid {item.netId.Value}...");
GlobalMessenger<uint, QSBSector>.FireEvent(EventNames.QSBSectorChange, item.netId.Value, item.ReferenceSector);
}
}
}
}

View File

@ -28,11 +28,12 @@ namespace QSB.Events
public override void OnServerReceive(PlayerMessage message)
{
DebugLog.DebugWrite($"Server get state request from {message.FromId}");
DebugLog.DebugWrite($"[S] Get state request from {message.FromId}");
PlayerState.LocalInstance.Send();
foreach (var item in PlayerRegistry.GetSyncObjects<TransformSync.TransformSync>()
.Where(x => x != null && x.IsReady && x.ReferenceSector != null))
{
DebugLog.DebugWrite($"* Sending sector for netid {item.netId.Value}...");
GlobalMessenger<uint, QSBSector>.FireEvent(EventNames.QSBSectorChange, item.netId.Value, item.ReferenceSector);
}
}

View File

@ -18,7 +18,7 @@ namespace QSB.GeyserSync
var geyserControllers = Resources.FindObjectsOfTypeAll<GeyserController>();
for (var id = 0; id < geyserControllers.Length; id++)
{
var qsbGeyser = new QSBGeyser();
var qsbGeyser = WorldRegistry.GetObject<QSBGeyser>(id) ?? new QSBGeyser();
qsbGeyser.Init(geyserControllers[id], id);
WorldRegistry.AddObject(qsbGeyser);
}

View File

@ -53,7 +53,8 @@ namespace QSB
Translator?.ChangeEquipState(FlagsHelper.IsSet(State, State.Translator));
ProbeLauncher?.ChangeEquipState(FlagsHelper.IsSet(State, State.ProbeLauncher));
Signalscope?.ChangeEquipState(FlagsHelper.IsSet(State, State.Signalscope));
PlayerRegistry.GetSyncObject<AnimationSync>(NetId)?.SetSuitState(FlagsHelper.IsSet(State, State.Suit));
QSB.Helper.Events.Unity.RunWhen(() => PlayerRegistry.GetSyncObject<AnimationSync>(NetId) != null,
() => PlayerRegistry.GetSyncObject<AnimationSync>(NetId).SetSuitState(FlagsHelper.IsSet(State, State.Suit)));
}
public bool GetState(State state)

View File

@ -44,11 +44,13 @@ namespace QSB
public static void HandleFullStateMessage(PlayerStateMessage message)
{
DebugLog.DebugWrite($"Handle full state message");
DebugLog.DebugWrite($"Handle full state message for player {message.AboutId}");
var player = GetPlayer(message.AboutId);
player.Name = message.PlayerName;
player.IsReady = message.PlayerReady;
DebugLog.DebugWrite($"* Is ready? : {player.IsReady}");
player.State = message.PlayerState;
DebugLog.DebugWrite($"* Suit is on? : {FlagsHelper.IsSet(player.State, State.Suit)}");
//DebugLog.DebugWrite($"Updating state of player {player.NetId} to : {Environment.NewLine}" +
// $"{DebugLog.GenerateTable(Enum.GetNames(typeof(State)).ToList(), FlagsHelper.FlagsToListSet(player.State))}");
if (LocalPlayer.IsReady)

View File

@ -142,7 +142,7 @@ namespace QSB
Destroy(GetComponent<RespawnOnDeath>());
Destroy(GetComponent<PreventShipDestruction>());
EventList.Reset();
DebugLog.ToConsole("Server stopped!", MessageType.Info);
DebugLog.ToConsole("[S] Server stopped!", MessageType.Info);
PlayerRegistry.PlayerList.ForEach(player => player.HudMarker?.Remove());
NetworkServer.connections.ToList().ForEach(CleanupConnection);
base.OnStopServer();

View File

@ -1,6 +1,7 @@
using OWML.ModHelper.Events;
using QSB.DeathSync;
using QSB.Events;
using QSB.Utility;
using UnityEngine;
using UnityEngine.Networking;
@ -75,6 +76,7 @@ namespace QSB.TimeSync
private void Init()
{
DebugLog.DebugWrite("WakeUpSync init - Request state!");
GlobalMessenger.FireEvent(EventNames.QSBPlayerStatesRequest);
_state = State.Loaded;
gameObject.AddComponent<PreserveTimeScale>();
@ -165,6 +167,7 @@ namespace QSB.TimeSync
_isFirstFastForward = false;
Physics.SyncTransforms();
SpinnerUI.Hide();
DebugLog.DebugWrite("ResetTimeScale - Request state!");
FindObjectOfType<SleepTimerUI>().Invoke("OnEndFastForward");
GlobalMessenger.FireEvent(EventNames.QSBPlayerStatesRequest);
RespawnOnDeath.Instance.Init();

View File

@ -1,5 +1,6 @@
using QSB.Events;
using QSB.Tools;
using QSB.Utility;
using UnityEngine;
namespace QSB.TransformSync
@ -23,6 +24,7 @@ namespace QSB.TransformSync
Player.IsReady = true;
GlobalMessenger<bool>.FireEvent(EventNames.QSBPlayerReady, true);
DebugLog.DebugWrite("PlayerCameraSync init done - Request state!");
GlobalMessenger.FireEvent(EventNames.QSBPlayerStatesRequest);
return body;

View File

@ -38,7 +38,7 @@ namespace QSB.TransformSync
{
return;
}
_markerLabel = _player.Name;
_markerLabel = _player.Name.ToUpper();
_isReady = false;
base.InitCanvasMarker();

View File

@ -26,7 +26,7 @@ namespace QSB.TransformSync
var sectors = Resources.FindObjectsOfTypeAll<Sector>().ToList();
for (var id = 0; id < sectors.Count; id++)
{
var qsbSector = new QSBSector();
var qsbSector = WorldRegistry.GetObject<QSBSector>(id) ?? new QSBSector();
qsbSector.Init(sectors[id], id);
WorldRegistry.AddObject(qsbSector);
}

View File

@ -18,7 +18,7 @@ namespace QSB.Utility
{
return;
}
var data = new NotificationData(NotificationTarget.Player, message);
var data = new NotificationData(NotificationTarget.Player, message.ToUpper());
NotificationManager.SharedInstance.PostNotification(data);
}

View File

@ -9,6 +9,10 @@ namespace QSB.WorldSync
public static void AddObject(WorldObject worldObject)
{
if (_worldObjects.Contains(worldObject))
{
return;
}
_worldObjects.Add(worldObject);
}

View File

@ -4,6 +4,6 @@
"name": "Quantum Space Buddies",
"description": "Adds online multiplayer to the game.",
"uniqueName": "Raicuparta.QuantumSpaceBuddies",
"version": "0.5.0",
"version": "0.5.1",
"owmlVersion": "0.7.3"
}