(7f12d8742) More reliable firesource syncing: instead of just creating a network event when a firesource is created/removed and trusting that the fire behaves deterministically enough to stay in sync between the client and server, create events at 0.5 s intervals when there's fire in a hull. Closes #721
This commit is contained in:
@@ -257,12 +257,6 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (Character.Controlled == character)
|
|
||||||
{
|
|
||||||
GameMain.GameScreen.Cam.Shake = Math.Min(Math.Max(strongestImpact, GameMain.GameScreen.Cam.Shake), 3.0f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (character.MemLocalState.Count > 120) character.MemLocalState.RemoveRange(0, character.MemLocalState.Count - 120);
|
if (character.MemLocalState.Count > 120) character.MemLocalState.RemoveRange(0, character.MemLocalState.Count - 120);
|
||||||
character.MemState.Clear();
|
character.MemState.Clear();
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ namespace Barotrauma
|
|||||||
//update client hulls if the amount of water has changed by >10%
|
//update client hulls if the amount of water has changed by >10%
|
||||||
//or if oxygen percentage has changed by 5%
|
//or if oxygen percentage has changed by 5%
|
||||||
if (Math.Abs(lastSentVolume - waterVolume) > Volume * 0.1f ||
|
if (Math.Abs(lastSentVolume - waterVolume) > Volume * 0.1f ||
|
||||||
Math.Abs(lastSentOxygen - OxygenPercentage) > 5f)
|
Math.Abs(lastSentOxygen - OxygenPercentage) > 5f ||
|
||||||
|
FireSources.Count > 0)
|
||||||
{
|
{
|
||||||
sendUpdateTimer -= deltaTime;
|
sendUpdateTimer -= deltaTime;
|
||||||
if (sendUpdateTimer < 0.0f)
|
if (sendUpdateTimer < 0.0f)
|
||||||
|
|||||||
@@ -417,11 +417,6 @@ namespace Barotrauma
|
|||||||
public void AddFireSource(FireSource fireSource)
|
public void AddFireSource(FireSource fireSource)
|
||||||
{
|
{
|
||||||
FireSources.Add(fireSource);
|
FireSources.Add(fireSource);
|
||||||
|
|
||||||
if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsServer && !IdFreed)
|
|
||||||
{
|
|
||||||
GameMain.NetworkMember.CreateEntityEvent(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Update(float deltaTime, Camera cam)
|
public override void Update(float deltaTime, Camera cam)
|
||||||
@@ -589,11 +584,6 @@ namespace Barotrauma
|
|||||||
public void RemoveFire(FireSource fire)
|
public void RemoveFire(FireSource fire)
|
||||||
{
|
{
|
||||||
FireSources.Remove(fire);
|
FireSources.Remove(fire);
|
||||||
|
|
||||||
if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsServer && !Removed && !IdFreed)
|
|
||||||
{
|
|
||||||
GameMain.NetworkMember.CreateEntityEvent(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<Hull> GetConnectedHulls(int? searchDepth)
|
public IEnumerable<Hull> GetConnectedHulls(int? searchDepth)
|
||||||
|
|||||||
Reference in New Issue
Block a user