Merge pull request #136 from Raicuparta/dev

This commit is contained in:
AmazingAlek 2020-08-08 19:04:49 +02:00 committed by GitHub
commit 535f89cced
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 31 additions and 27 deletions

View File

@ -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);
}
}

View File

@ -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" />

View File

@ -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);
}
}

View File

@ -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();
}
}
}

View File

@ -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"
}

View File

@ -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>