fix some stuff

This commit is contained in:
Mister_Nebula 2020-08-24 15:51:12 +01:00
parent 8b9452a6e1
commit 3b4fcbf477
10 changed files with 41 additions and 6 deletions

View File

@ -1,5 +1,6 @@
using OWML.ModHelper.Events;
using QSB.Events;
using QSB.Utility;
using System;
using System.Linq;
using UnityEngine;
@ -151,6 +152,7 @@ namespace QSB.Animation
private void SuitUp()
{
DebugLog.DebugWrite($"Suit on for {PlayerId}");
_bodyAnim.runtimeAnimatorController = _suitedAnimController;
_anim.runtimeAnimatorController = _suitedAnimController;
_unsuitedGraphics.SetActive(false);
@ -159,6 +161,7 @@ namespace QSB.Animation
private void SuitDown()
{
DebugLog.DebugWrite($"Suit off for {PlayerId}");
_bodyAnim.runtimeAnimatorController = _unsuitedAnimController;
_anim.runtimeAnimatorController = _unsuitedAnimController;
_unsuitedGraphics.SetActive(true);

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

@ -21,6 +21,7 @@ namespace QSB
public string Name { get; set; }
public bool IsReady { get; set; }
public State State { get; set; }
//public int[] SectorCacheList = new int[PlayerRegistry.NetworkObjectCount];
public PlayerInfo(uint id)
{
@ -53,7 +54,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

@ -32,6 +32,8 @@ namespace QSB.TransformSync
{
if (!QSBSceneManager.IsInUniverse)
{
//var player = PlayerRegistry.GetPlayer(message.FromId);
//player.SectorCacheList[message.AboutId - message.FromId + 1] = message.ObjectId;
return;
}
var sector = WorldRegistry.GetObject<QSBSector>(message.ObjectId);

View File

@ -3,6 +3,6 @@
"settings": {
"defaultServerIP": "localhost",
"port": 7777,
"debugMode": false
"debugMode": true
}
}