Skip to content

Commit

Permalink
Merge pull request #210 from misternebula/dev
Browse files Browse the repository at this point in the history
Orb tracking
  • Loading branch information
misternebula authored Oct 22, 2020
2 parents 2d0895f + 47d116c commit b297f1c
Show file tree
Hide file tree
Showing 51 changed files with 928 additions and 224 deletions.
2 changes: 1 addition & 1 deletion AssetBundles/debug.manifest
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ CRC: 2815158869
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: b0dab33ce9502b8c920c956269fa585e
Hash: 5677b7876f2afae05c0920067ef29e8a
TypeTreeHash:
serializedVersion: 2
Hash: 4d6a73cb377370ba69c96eb5da1b5028
Expand Down
Binary file modified AssetBundles/network
Binary file not shown.
5 changes: 3 additions & 2 deletions AssetBundles/network.manifest
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 561788810
CRC: 3416116897
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 2ed408e0c9f6147e341c9606eb7228c3
Hash: f304be71f6b3202b0c75695ffc81dd4e
TypeTreeHash:
serializedVersion: 2
Hash: 47ee499ae8022a6b96ca6a5fd541f154
Expand All @@ -27,6 +27,7 @@ Assets:
- Assets/NetworkPlayer.prefab
- Assets/NetworkCameraRoot.prefab
- Assets/NetworkProbe.prefab
- Assets/NetworkOrb.prefab
- Assets/NetworkManager.prefab
- Assets/NetworkShip.prefab
Dependencies: []
10 changes: 2 additions & 8 deletions QSB/Animation/AnimTriggerEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,9 @@ public class AnimTriggerEvent : QSBEvent<AnimTriggerMessage>
{
public override EventType Type => EventType.AnimTrigger;

public override void SetupListener()
{
GlobalMessenger<short, float>.AddListener(EventNames.QSBAnimTrigger, Handler);
}
public override void SetupListener() => GlobalMessenger<short, float>.AddListener(EventNames.QSBAnimTrigger, Handler);

public override void CloseListener()
{
GlobalMessenger<short, float>.RemoveListener(EventNames.QSBAnimTrigger, Handler);
}
public override void CloseListener() => GlobalMessenger<short, float>.RemoveListener(EventNames.QSBAnimTrigger, Handler);

private void Handler(short triggerId, float value) => SendEvent(CreateMessage(triggerId, value));

Expand Down
2 changes: 0 additions & 2 deletions QSB/Animation/AnimationSync.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ namespace QSB.Animation
{
public class AnimationSync : PlayerSyncObject
{
protected override uint PlayerIdOffset => 0;

private Animator _anim;
private Animator _bodyAnim;
private NetworkAnimator _netAnim;
Expand Down
12 changes: 7 additions & 5 deletions QSB/DeathSync/Necronomicon.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public static class Necronomicon
} },
{ 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"
} },
Expand All @@ -25,23 +25,25 @@ public static class Necronomicon
"{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[]
{
Expand Down
10 changes: 2 additions & 8 deletions QSB/DeathSync/PlayerDeathEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,9 @@ public class PlayerDeathEvent : QSBEvent<PlayerDeathMessage>
{
public override EventType Type => EventType.PlayerDeath;

public override void SetupListener()
{
GlobalMessenger<DeathType>.AddListener(EventNames.QSBPlayerDeath, Handler);
}
public override void SetupListener() => GlobalMessenger<DeathType>.AddListener(EventNames.QSBPlayerDeath, Handler);

public override void CloseListener()
{
GlobalMessenger<DeathType>.RemoveListener(EventNames.QSBPlayerDeath, Handler);
}
public override void CloseListener() => GlobalMessenger<DeathType>.RemoveListener(EventNames.QSBPlayerDeath, Handler);

private void Handler(DeathType type) => SendEvent(CreateMessage(type));

Expand Down
6 changes: 3 additions & 3 deletions QSB/DeathSync/RespawnOnDeath.cs
Original file line number Diff line number Diff line change
@@ -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
Expand Down
12 changes: 2 additions & 10 deletions QSB/ElevatorSync/ElevatorEvent.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using QSB.Events;
using QSB.Messaging;
using QSB.Utility;
using QSB.WorldSync;

namespace QSB.ElevatorSync
Expand All @@ -9,15 +8,9 @@ public class ElevatorEvent : QSBEvent<ElevatorMessage>
{
public override EventType Type => EventType.Elevator;

public override void SetupListener()
{
GlobalMessenger<int, ElevatorDirection>.AddListener(EventNames.QSBStartLift, Handler);
}
public override void SetupListener() => GlobalMessenger<int, ElevatorDirection>.AddListener(EventNames.QSBStartLift, Handler);

public override void CloseListener()
{
GlobalMessenger<int, ElevatorDirection>.RemoveListener(EventNames.QSBStartLift, Handler);
}
public override void CloseListener() => GlobalMessenger<int, ElevatorDirection>.RemoveListener(EventNames.QSBStartLift, Handler);

private void Handler(int id, ElevatorDirection direction) => SendEvent(CreateMessage(id, direction));

Expand All @@ -29,7 +22,6 @@ public override void CloseListener()

public override void OnReceiveRemote(ElevatorMessage message)
{
DebugLog.DebugWrite($"Get ElevatorMessage {message.Direction} for {message.ObjectId}");
var elevator = WorldRegistry.GetObject<QSBElevator>(message.ObjectId);
elevator?.RemoteCall(message.Direction);
}
Expand Down
5 changes: 4 additions & 1 deletion QSB/Events/EventList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using QSB.DeathSync;
using QSB.ElevatorSync;
using QSB.GeyserSync;
using QSB.OrbSync;
using QSB.TimeSync;
using QSB.Tools;
using QSB.TransformSync;
Expand Down Expand Up @@ -37,7 +38,9 @@ public static void Init()
new ElevatorEvent(),
new GeyserEvent(),
new ServerTimeEvent(),
new AnimTriggerEvent()
new AnimTriggerEvent(),
new OrbSlotEvent(),
new OrbUserEvent()
};

_eventList.ForEach(ev => ev.SetupListener());
Expand Down
3 changes: 3 additions & 0 deletions QSB/Events/EventNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public static class EventNames
public static string UnequipTranslator = "UnequipTranslator";
public static string ExitShip = "ExitShip";
public static string RestartTimeLoop = "RestartTimeLoop";
public static string WakeUp = "WakeUp";

public static string QSBPlayerDeath = "QSBPlayerDeath";
public static string QSBPlayerJoin = "QSBPlayerJoin";
Expand All @@ -29,5 +30,7 @@ public static class EventNames
public static string QSBStartLift = "QSBStartLift";
public static string QSBGeyserState = "QSBGeyserState";
public static string QSBAnimTrigger = "QSBAnimTrigger";
public static string QSBOrbSlot = "QSBOrbSlot";
public static string QSBOrbUser = "QSBOrbUser";
}
}
14 changes: 4 additions & 10 deletions QSB/Events/PlayerJoinEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,9 @@ public class PlayerJoinEvent : QSBEvent<PlayerJoinMessage>
{
public override EventType Type => EventType.PlayerJoin;

public override void SetupListener()
{
GlobalMessenger<string>.AddListener(EventNames.QSBPlayerJoin, Handler);
}
public override void SetupListener() => GlobalMessenger<string>.AddListener(EventNames.QSBPlayerJoin, Handler);

public override void CloseListener()
{
GlobalMessenger<string>.RemoveListener(EventNames.QSBPlayerJoin, Handler);
}
public override void CloseListener() => GlobalMessenger<string>.RemoveListener(EventNames.QSBPlayerJoin, Handler);

private void Handler(string name) => SendEvent(CreateMessage(name));

Expand All @@ -30,8 +24,8 @@ public override void OnReceiveRemote(PlayerJoinMessage message)
{
var player = PlayerRegistry.GetPlayer(message.AboutId);
player.Name = message.PlayerName;
var text = $"{player.Name} joined!";
DebugLog.ToAll(text, MessageType.Info);
DebugLog.ToHud($"{player.Name} joined!");
DebugLog.DebugWrite($"{player.Name} joined as id {player.PlayerId}", MessageType.Info);
}

public override void OnReceiveLocal(PlayerJoinMessage message)
Expand Down
10 changes: 2 additions & 8 deletions QSB/Events/PlayerLeaveEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,9 @@ public class PlayerLeaveEvent : QSBEvent<PlayerLeaveMessage>
{
public override EventType Type => EventType.PlayerLeave;

public override void SetupListener()
{
GlobalMessenger<uint, uint[]>.AddListener(EventNames.QSBPlayerLeave, Handler);
}
public override void SetupListener() => GlobalMessenger<uint, uint[]>.AddListener(EventNames.QSBPlayerLeave, Handler);

public override void CloseListener()
{
GlobalMessenger<uint, uint[]>.RemoveListener(EventNames.QSBPlayerLeave, Handler);
}
public override void CloseListener() => GlobalMessenger<uint, uint[]>.RemoveListener(EventNames.QSBPlayerLeave, Handler);

private void Handler(uint playerId, uint[] netIds) => SendEvent(CreateMessage(playerId, netIds));

Expand Down
31 changes: 22 additions & 9 deletions QSB/Events/PlayerReadyEvent.cs
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
using QSB.Messaging;
using OWML.Common;
using QSB.Messaging;
using QSB.TransformSync;
using QSB.Utility;
using System.Linq;

namespace QSB.Events
{
public class PlayerReadyEvent : QSBEvent<ToggleMessage>
{
public override EventType Type => EventType.PlayerReady;

public override void SetupListener()
{
GlobalMessenger<bool>.AddListener(EventNames.QSBPlayerReady, Handler);
}
public override void SetupListener() => GlobalMessenger<bool>.AddListener(EventNames.QSBPlayerReady, Handler);

public override void CloseListener()
{
GlobalMessenger<bool>.RemoveListener(EventNames.QSBPlayerReady, Handler);
}
public override void CloseListener() => GlobalMessenger<bool>.RemoveListener(EventNames.QSBPlayerReady, Handler);

private void Handler(bool ready) => SendEvent(CreateMessage(ready));

Expand All @@ -26,8 +24,23 @@ public override void CloseListener()

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))
{
GlobalMessenger<uint, QSBSector>.FireEvent(EventNames.QSBSectorChange, item.netId.Value, item.ReferenceSector);
}
}
}
}
2 changes: 1 addition & 1 deletion QSB/Events/PlayerState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public void Send()
{
var message = new PlayerStateMessage
{
AboutId = player.NetId,
AboutId = player.PlayerId,
PlayerName = player.Name,
PlayerReady = player.IsReady,
PlayerState = player.State
Expand Down
12 changes: 3 additions & 9 deletions QSB/Events/PlayerStatesRequestEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,9 @@ public class PlayerStatesRequestEvent : QSBEvent<PlayerMessage>
{
public override EventType Type => EventType.FullStateRequest;

public override void SetupListener()
{
GlobalMessenger.AddListener(EventNames.QSBPlayerStatesRequest, Handler);
}
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBPlayerStatesRequest, Handler);

public override void CloseListener()
{
GlobalMessenger.RemoveListener(EventNames.QSBPlayerStatesRequest, Handler);
}
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBPlayerStatesRequest, Handler);

private void Handler() => SendEvent(CreateMessage());

Expand All @@ -28,7 +22,7 @@ public override void CloseListener()

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))
Expand Down
6 changes: 3 additions & 3 deletions QSB/GeyserSync/GeyserEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace QSB.GeyserSync
{
public class GeyserEvent : QSBEvent<GeyserMessage>
public class GeyserEvent : QSBEvent<BoolWorldObjectMessage>
{
public override EventType Type => EventType.Geyser;

Expand All @@ -20,14 +20,14 @@ public override void CloseListener()

private void Handler(int id, bool state) => SendEvent(CreateMessage(id, state));

private GeyserMessage CreateMessage(int id, bool state) => new GeyserMessage
private BoolWorldObjectMessage CreateMessage(int id, bool state) => new BoolWorldObjectMessage
{
AboutId = LocalPlayerId,
ObjectId = id,
State = state
};

public override void OnReceiveRemote(GeyserMessage message)
public override void OnReceiveRemote(BoolWorldObjectMessage message)
{
var geyser = WorldRegistry.GetObject<QSBGeyser>(message.ObjectId);
geyser?.SetState(message.State);
Expand Down
4 changes: 3 additions & 1 deletion QSB/Messaging/EventType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ public enum EventType
PlayerReady,
ProbeActiveChange,
Elevator,
Geyser
Geyser,
OrbSlot,
OrbUser
}
}
Loading

0 comments on commit b297f1c

Please sign in to comment.