mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-27 00:40:12 +00:00
Merge pull request #136 from Raicuparta/dev
This commit is contained in:
commit
535f89cced
@ -12,7 +12,7 @@ namespace QSB
|
||||
public static List<PlayerInfo> PlayerList { get; } = new List<PlayerInfo>();
|
||||
|
||||
public static List<TransformSync.TransformSync> TransformSyncs { get; } = new List<TransformSync.TransformSync>();
|
||||
public static List<TransformSync.TransformSync> LocalTransformSyncs => TransformSyncs.Where(t => t.hasAuthority).ToList();
|
||||
public static List<TransformSync.TransformSync> LocalTransformSyncs => TransformSyncs.Where(t => t != null && t.hasAuthority).ToList();
|
||||
|
||||
public static List<AnimationSync> AnimationSyncs { get; } = new List<AnimationSync>();
|
||||
|
||||
@ -50,12 +50,12 @@ namespace QSB
|
||||
|
||||
public static TransformSync.TransformSync GetTransformSync(uint id)
|
||||
{
|
||||
return TransformSyncs.Single(x => x.netId.Value == id);
|
||||
return TransformSyncs.First(x => x != null && x.netId.Value == id);
|
||||
}
|
||||
|
||||
public static AnimationSync GetAnimationSync(uint id)
|
||||
{
|
||||
return AnimationSyncs.SingleOrDefault(x => x.netId.Value == id);
|
||||
return AnimationSyncs.FirstOrDefault(x => x != null && x.netId.Value == id);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -38,37 +38,37 @@
|
||||
<HintPath>$(GameDir)\OuterWilds_Data\Managed\Assembly-CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NAudio-Unity, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\NAudio-Unity.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\NAudio-Unity.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Json.Net.Unity3D.9.0.1\lib\net35\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.Common.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.Logging, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.Logging.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.ModHelper, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.ModHelper.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.ModHelper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.ModHelper.Assets, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.ModHelper.Assets.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.ModHelper.Assets.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.ModHelper.Events, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.ModHelper.Events.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.ModHelper.Events.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.ModHelper.Input, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.ModHelper.Input.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.ModHelper.Input.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.ModHelper.Interaction, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.ModHelper.Interaction.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.ModHelper.Interaction.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OWML.ModHelper.Menus, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OWML.0.7.1\lib\net35\OWML.ModHelper.Menus.dll</HintPath>
|
||||
<HintPath>..\packages\OWML.0.7.2\lib\net35\OWML.ModHelper.Menus.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
|
@ -8,17 +8,20 @@ namespace QSB.TransformSync
|
||||
public override MessageType MessageType => MessageType.Sector;
|
||||
|
||||
public int SectorId;
|
||||
public string SectorName;
|
||||
public uint SenderId;
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
SectorId = reader.ReadInt32();
|
||||
SectorName = reader.ReadString();
|
||||
SenderId = reader.ReadPackedUInt32();
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
writer.Write(SectorId);
|
||||
writer.Write(SectorName);
|
||||
writer.Write(SenderId);
|
||||
}
|
||||
}
|
||||
|
@ -34,30 +34,31 @@ namespace QSB.TransformSync
|
||||
_allSectors = FindObjectsOfType<Sector>();
|
||||
}
|
||||
|
||||
private void SendSector(uint id, Sector.Name sectorName)
|
||||
private void SendSector(uint id, Sector sector)
|
||||
{
|
||||
DebugLog.ToScreen($"Sending sector {sectorName} for id {id}");
|
||||
DebugLog.ToScreen($"Sending sector {sector.name} for id {id}");
|
||||
|
||||
var msg = new SectorMessage
|
||||
{
|
||||
SectorId = (int)sectorName,
|
||||
SectorId = (int)sector.GetName(),
|
||||
SectorName = sector.name,
|
||||
SenderId = id
|
||||
};
|
||||
_sectorHandler.SendToServer(msg);
|
||||
}
|
||||
|
||||
private Sector FindSectorByName(Sector.Name sectorName)
|
||||
private Sector FindSectorByName(Sector.Name sectorName, string goName)
|
||||
{
|
||||
return _allSectors?
|
||||
.FirstOrDefault(sector => sectorName == sector.GetName());
|
||||
.FirstOrDefault(sector => sector.GetName() == sectorName && sector.name == goName);
|
||||
}
|
||||
|
||||
private void OnClientReceiveMessage(SectorMessage message)
|
||||
{
|
||||
var sectorName = (Sector.Name)message.SectorId;
|
||||
DebugLog.ToScreen($"Received sector {sectorName} for id {message.SenderId}");
|
||||
DebugLog.ToScreen($"Received sector {message.SectorName} for id {message.SenderId}");
|
||||
|
||||
var sector = FindSectorByName(sectorName);
|
||||
var sector = FindSectorByName(sectorName, message.SectorName);
|
||||
|
||||
if (sector == null)
|
||||
{
|
||||
@ -97,16 +98,16 @@ namespace QSB.TransformSync
|
||||
{
|
||||
return;
|
||||
}
|
||||
SendSector(transformSync.netId.Value, closestSector.GetName());
|
||||
SendSector(transformSync.netId.Value, closestSector);
|
||||
transformSync.ReferenceTransform = closestSector.transform;
|
||||
}
|
||||
|
||||
private Sector GetClosestSector(Transform trans)
|
||||
{
|
||||
return _allSectors?
|
||||
.Where(sector => !_sectorBlacklist.Contains(sector.GetName()))
|
||||
.OrderBy(sector => Vector3.Distance(sector.transform.position, trans.position))
|
||||
.First();
|
||||
.Where(sector => !_sectorBlacklist.Contains(sector.GetName()))
|
||||
.OrderBy(sector => Vector3.Distance(sector.transform.position, trans.position))
|
||||
.First();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,6 @@
|
||||
"name": "Quantum Space Buddies",
|
||||
"description": "Adds online multiplayer to the game.",
|
||||
"uniqueName": "Raicuparta.QuantumSpaceBuddies",
|
||||
"version": "0.3.0",
|
||||
"owmlVersion": "0.7.1"
|
||||
"version": "0.3.1",
|
||||
"owmlVersion": "0.7.2"
|
||||
}
|
||||
|
@ -2,5 +2,5 @@
|
||||
<packages>
|
||||
<package id="Json.Net.Unity3D" version="9.0.1" targetFramework="net35" />
|
||||
<package id="Lib.Harmony" version="1.2.0.1" targetFramework="net35" />
|
||||
<package id="OWML" version="0.7.1" targetFramework="net35" />
|
||||
<package id="OWML" version="0.7.2" targetFramework="net35" />
|
||||
</packages>
|
Loading…
x
Reference in New Issue
Block a user