BackgroundSpriteManager uses RandSync.Server because the server also generates background sprites now
This commit is contained in:
@@ -148,10 +148,10 @@ namespace Barotrauma
|
|||||||
rotation = MathUtils.VectorToAngle(new Vector2(edgeNormal.Y, edgeNormal.X));
|
rotation = MathUtils.VectorToAngle(new Vector2(edgeNormal.Y, edgeNormal.X));
|
||||||
}
|
}
|
||||||
|
|
||||||
rotation += Rand.Range(prefab.RandomRotation.X, prefab.RandomRotation.Y, Rand.RandSync.ClientOnly);
|
rotation += Rand.Range(prefab.RandomRotation.X, prefab.RandomRotation.Y, Rand.RandSync.Server);
|
||||||
|
|
||||||
var newSprite = new BackgroundSprite(prefab,
|
var newSprite = new BackgroundSprite(prefab,
|
||||||
new Vector3((Vector2)pos, Rand.Range(prefab.DepthRange.X, prefab.DepthRange.Y, Rand.RandSync.ClientOnly)), Rand.Range(prefab.Scale.X, prefab.Scale.Y, Rand.RandSync.ClientOnly), rotation);
|
new Vector3((Vector2)pos, Rand.Range(prefab.DepthRange.X, prefab.DepthRange.Y, Rand.RandSync.Server)), Rand.Range(prefab.Scale.X, prefab.Scale.Y, Rand.RandSync.Server), rotation);
|
||||||
|
|
||||||
//calculate the positions of the corners of the rotated sprite
|
//calculate the positions of the corners of the rotated sprite
|
||||||
Vector2 halfSize = newSprite.Prefab.Sprite.size * newSprite.Scale / 2;
|
Vector2 halfSize = newSprite.Prefab.Sprite.size * newSprite.Scale / 2;
|
||||||
@@ -228,8 +228,8 @@ namespace Barotrauma
|
|||||||
edgeNormal = Vector2.One;
|
edgeNormal = Vector2.One;
|
||||||
|
|
||||||
Vector2 randomPos = new Vector2(
|
Vector2 randomPos = new Vector2(
|
||||||
Rand.Range(0.0f, level.Size.X, Rand.RandSync.ClientOnly),
|
Rand.Range(0.0f, level.Size.X, Rand.RandSync.Server),
|
||||||
Rand.Range(0.0f, level.Size.Y, Rand.RandSync.ClientOnly));
|
Rand.Range(0.0f, level.Size.Y, Rand.RandSync.Server));
|
||||||
|
|
||||||
if (prefab.SpawnPos == BackgroundSpritePrefab.SpawnPosType.None) return randomPos;
|
if (prefab.SpawnPos == BackgroundSpritePrefab.SpawnPosType.None) return randomPos;
|
||||||
|
|
||||||
@@ -244,7 +244,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (cells.Any())
|
if (cells.Any())
|
||||||
{
|
{
|
||||||
VoronoiCell cell = cells[Rand.Int(cells.Count, Rand.RandSync.ClientOnly)];
|
VoronoiCell cell = cells[Rand.Int(cells.Count, Rand.RandSync.Server)];
|
||||||
|
|
||||||
foreach (GraphEdge edge in cell.edges)
|
foreach (GraphEdge edge in cell.edges)
|
||||||
{
|
{
|
||||||
@@ -300,13 +300,13 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (!edges.Any()) return null;
|
if (!edges.Any()) return null;
|
||||||
|
|
||||||
int index = Rand.Int(edges.Count, Rand.RandSync.ClientOnly);
|
int index = Rand.Int(edges.Count, Rand.RandSync.Server);
|
||||||
closestEdge = edges[index];
|
closestEdge = edges[index];
|
||||||
edgeNormal = normals[index];
|
edgeNormal = normals[index];
|
||||||
|
|
||||||
float length = Vector2.Distance(closestEdge.point1, closestEdge.point2);
|
float length = Vector2.Distance(closestEdge.point1, closestEdge.point2);
|
||||||
Vector2 dir = (closestEdge.point1 - closestEdge.point2) / length;
|
Vector2 dir = (closestEdge.point1 - closestEdge.point2) / length;
|
||||||
Vector2 pos = closestEdge.point2 + dir * Rand.Range(prefab.Sprite.size.X / 2.0f, length - prefab.Sprite.size.X / 2.0f, Rand.RandSync.ClientOnly);
|
Vector2 pos = closestEdge.point2 + dir * Rand.Range(prefab.Sprite.size.X / 2.0f, length - prefab.Sprite.size.X / 2.0f, Rand.RandSync.Server);
|
||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
@@ -334,7 +334,7 @@ namespace Barotrauma
|
|||||||
totalCommonness += prefab.GetCommonness(levelType);
|
totalCommonness += prefab.GetCommonness(levelType);
|
||||||
}
|
}
|
||||||
|
|
||||||
float randomNumber = Rand.Int(totalCommonness+1, Rand.RandSync.ClientOnly);
|
float randomNumber = Rand.Int(totalCommonness+1, Rand.RandSync.Server);
|
||||||
|
|
||||||
foreach (BackgroundSpritePrefab prefab in prefabs)
|
foreach (BackgroundSpritePrefab prefab in prefabs)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user