fixed DB sync (#134)

This commit is contained in:
AmazingAlek 2020-08-08 18:57:39 +02:00 committed by GitHub
parent 1403c22e2e
commit f37c1cfc44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 11 deletions

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