mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 18:40:03 +00:00
more stuff
This commit is contained in:
parent
f3ec0e8abb
commit
140fefe475
@ -1,4 +1,5 @@
|
|||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
|
using QSB.Player.TransformSync;
|
||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
using QSB.WorldSync;
|
using QSB.WorldSync;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -10,16 +11,26 @@ namespace QSB.Player
|
|||||||
{
|
{
|
||||||
public static async UniTaskVoid Create(PlayerInfo player, bool joining)
|
public static async UniTaskVoid Create(PlayerInfo player, bool joining)
|
||||||
{
|
{
|
||||||
|
if (!player.IsLocalPlayer)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (joining)
|
||||||
|
{
|
||||||
|
if (PlayerTransformSync.LocalInstance == null ||
|
||||||
|
player.PlayerId < QSBPlayerManager.LocalPlayerId)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await UniTask.WaitUntil(() => player.TransformSync.IsValid && player.TransformSync.ReferenceTransform);
|
||||||
|
}
|
||||||
|
|
||||||
DebugLog.DebugWrite($"WARP {player.TransformSync}");
|
DebugLog.DebugWrite($"WARP {player.TransformSync}");
|
||||||
|
|
||||||
player.SetVisible(false);
|
player.SetVisible(false);
|
||||||
|
|
||||||
bool Predicate() => player.TransformSync.IsValid && player.TransformSync.ReferenceTransform;
|
|
||||||
if (!Predicate())
|
|
||||||
{
|
|
||||||
await UniTask.WaitUntil(Predicate);
|
|
||||||
}
|
|
||||||
|
|
||||||
var go = new GameObject(nameof(JoinLeaveSingularity));
|
var go = new GameObject(nameof(JoinLeaveSingularity));
|
||||||
go.transform.parent = player.TransformSync.ReferenceTransform;
|
go.transform.parent = player.TransformSync.ReferenceTransform;
|
||||||
go.transform.localPosition = player.TransformSync.transform.position;
|
go.transform.localPosition = player.TransformSync.transform.position;
|
||||||
|
@ -76,8 +76,6 @@ namespace QSB.Player.Messages
|
|||||||
player.Name = PlayerName;
|
player.Name = PlayerName;
|
||||||
DebugLog.ToAll($"{player.Name} joined!", MessageType.Info);
|
DebugLog.ToAll($"{player.Name} joined!", MessageType.Info);
|
||||||
DebugLog.DebugWrite($"{player.Name} joined. id:{player.PlayerId}, qsbVersion:{QSBVersion}, gameVersion:{GameVersion}, dlcInstalled:{DlcInstalled}", MessageType.Info);
|
DebugLog.DebugWrite($"{player.Name} joined. id:{player.PlayerId}, qsbVersion:{QSBVersion}, gameVersion:{GameVersion}, dlcInstalled:{DlcInstalled}", MessageType.Info);
|
||||||
|
|
||||||
JoinLeaveSingularity.Create(player, true).Forget();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnReceiveLocal()
|
public override void OnReceiveLocal()
|
||||||
|
@ -44,16 +44,15 @@ namespace QSB.Player.TransformSync
|
|||||||
base.OnStartClient();
|
base.OnStartClient();
|
||||||
QSBPlayerManager.OnAddPlayer?.Invoke(Player);
|
QSBPlayerManager.OnAddPlayer?.Invoke(Player);
|
||||||
DebugLog.DebugWrite($"Create Player : id<{Player.PlayerId}>", MessageType.Info);
|
DebugLog.DebugWrite($"Create Player : id<{Player.PlayerId}>", MessageType.Info);
|
||||||
|
|
||||||
|
JoinLeaveSingularity.Create(Player, true).Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnStartLocalPlayer() => LocalInstance = this;
|
public override void OnStartLocalPlayer() => LocalInstance = this;
|
||||||
|
|
||||||
public override void OnStopClient()
|
public override void OnStopClient()
|
||||||
{
|
{
|
||||||
if (!isLocalPlayer)
|
JoinLeaveSingularity.Create(Player, false).Forget();
|
||||||
{
|
|
||||||
JoinLeaveSingularity.Create(Player, false).Forget();
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
|
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
|
||||||
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
|
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user