Fix some mispredict reconciliation issues. (#6319)

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
Leon Friedrich
2022-01-31 05:34:48 +13:00
committed by GitHub
parent 90b2f716a4
commit d40bcc9168
15 changed files with 110 additions and 71 deletions

View File

@@ -76,7 +76,7 @@ internal class ClientAlertsSystem : AlertsSystem
if (componentAlerts == null) return;
//TODO: Do we really want to send alerts for non-attached entity?
component.Alerts = componentAlerts;
component.Alerts = new(componentAlerts);
if (!CurControlled(component.Owner, _playerManager)) return;
SyncAlerts?.Invoke(this, componentAlerts);

View File

@@ -72,7 +72,7 @@ namespace Content.Client.Atmos.Visualizers
if (!component.TryGetData(PipeColorVisuals.Color, out Color color))
color = Color.White;
if (!component.TryGetData(PipeVisuals.VisualState, out PipeVisualState state))
if (!component.TryGetData(PipeVisuals.VisualState, out PipeDirection connectedDirections))
return;
if(!component.TryGetData(SubFloorVisuals.SubFloor, out bool subfloor))
@@ -84,7 +84,7 @@ namespace Content.Client.Atmos.Visualizers
{
var layer = sprite.LayerMapGet(layerKey);
var dir = (PipeDirection) layerKey;
var visible = subfloor && state.ConnectedDirections.HasDirection(dir);
var visible = subfloor && connectedDirections.HasDirection(dir);
sprite.LayerSetVisible(layer, visible);
if (!visible) continue;

View File

@@ -58,12 +58,18 @@ namespace Content.Client.Botany
var sprite = IoCManager.Resolve<IEntityManager>().GetComponent<ISpriteComponent>(component.Owner);
if (component.TryGetData<SpriteSpecifier>(PlantHolderVisuals.Plant, out var specifier))
if (component.TryGetData<string>(PlantHolderVisuals.PlantRsi, out var rsi)
&& component.TryGetData<string>(PlantHolderVisuals.PlantState, out var state))
{
var valid = !specifier.Equals(SpriteSpecifier.Invalid);
var valid = !string.IsNullOrWhiteSpace(state);
sprite.LayerSetVisible(PlantHolderLayers.Plant, valid);
if(valid)
sprite.LayerSetSprite(PlantHolderLayers.Plant, specifier);
{
sprite.LayerSetRSI(PlantHolderLayers.Plant, rsi);
sprite.LayerSetState(PlantHolderLayers.Plant, state);
}
}
if (component.TryGetData<bool>(PlantHolderVisuals.HealthLight, out var health))

View File

@@ -548,9 +548,9 @@ namespace Content.Client.Damage
{
UpdateDamageVisuals(damageComponent, spriteComponent, damageData);
}
else if (component.TryGetData<List<string>>(DamageVisualizerKeys.DamageUpdateGroups, out List<string>? delta))
else if (component.TryGetData(DamageVisualizerKeys.DamageUpdateGroups, out DamageVisualizerGroupData data))
{
UpdateDamageVisuals(delta, damageComponent, spriteComponent, damageData);
UpdateDamageVisuals(data.GroupList, damageComponent, spriteComponent, damageData);
}
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using Content.Shared.Rotation;
using JetBrains.Annotations;
using Robust.Client.Animations;
@@ -17,17 +17,17 @@ namespace Content.Client.Rotation
{
base.OnChangeData(component);
if (component.TryGetData<RotationState>(RotationVisuals.RotationState, out var state))
// if TryGet fails, state defaults to RotationState.Vertical.
component.TryGetData<RotationState>(RotationVisuals.RotationState, out var state);
switch (state)
{
switch (state)
{
case RotationState.Vertical:
SetRotation(component, 0);
break;
case RotationState.Horizontal:
SetRotation(component, Angle.FromDegrees(90));
break;
}
case RotationState.Vertical:
SetRotation(component, 0);
break;
case RotationState.Horizontal:
SetRotation(component, Angle.FromDegrees(90));
break;
}
}