Set outside prediction flags on system/inputs to work without prediction.

This needs to be gone through more thoroughly but it works somewhat.
This commit is contained in:
Pieter-Jan Briers
2021-12-30 03:12:04 +01:00
parent 213d0f5e33
commit a0af197259
19 changed files with 53 additions and 6 deletions

View File

@@ -68,6 +68,7 @@ namespace Content.Client.AI
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeNetworkEvent<SharedAiDebug.UtilityAiDebugMessage>(HandleUtilityAiDebugMessage); SubscribeNetworkEvent<SharedAiDebug.UtilityAiDebugMessage>(HandleUtilityAiDebugMessage);
SubscribeNetworkEvent<SharedAiDebug.AStarRouteMessage>(HandleAStarRouteMessage); SubscribeNetworkEvent<SharedAiDebug.AStarRouteMessage>(HandleAStarRouteMessage);
SubscribeNetworkEvent<SharedAiDebug.JpsRouteMessage>(HandleJpsRouteMessage); SubscribeNetworkEvent<SharedAiDebug.JpsRouteMessage>(HandleJpsRouteMessage);

View File

@@ -42,6 +42,7 @@ namespace Content.Client.Audio
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
var configManager = IoCManager.Resolve<IConfigurationManager>(); var configManager = IoCManager.Resolve<IConfigurationManager>();
configManager.OnValueChanged(CCVars.AmbientCooldown, SetCooldown, true); configManager.OnValueChanged(CCVars.AmbientCooldown, SetCooldown, true);
configManager.OnValueChanged(CCVars.MaxAmbientSources, SetAmbientCount, true); configManager.OnValueChanged(CCVars.MaxAmbientSources, SetAmbientCount, true);

View File

@@ -63,7 +63,7 @@ namespace Content.Client.ContextMenu.UI
_cfg.OnValueChanged(CCVars.EntityMenuGroupingType, OnGroupingChanged, true); _cfg.OnValueChanged(CCVars.EntityMenuGroupingType, OnGroupingChanged, true);
CommandBinds.Builder CommandBinds.Builder
.Bind(ContentKeyFunctions.OpenContextMenu, new PointerInputCmdHandler(HandleOpenEntityMenu)) .Bind(ContentKeyFunctions.OpenContextMenu, new PointerInputCmdHandler(HandleOpenEntityMenu, outsidePrediction: true))
.Register<EntityMenuPresenter>(); .Register<EntityMenuPresenter>();
} }

View File

@@ -37,6 +37,7 @@ namespace Content.Client.DoAfter
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<PlayerAttachSysMessage>(HandlePlayerAttached); SubscribeLocalEvent<PlayerAttachSysMessage>(HandlePlayerAttached);
} }

View File

@@ -21,6 +21,8 @@ namespace Content.Client.Doors
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<ClientDoorComponent, DoorStateChangedEvent>(OnDoorStateChanged); SubscribeLocalEvent<ClientDoorComponent, DoorStateChangedEvent>(OnDoorStateChanged);
} }

View File

@@ -77,6 +77,8 @@ namespace Content.Client.DragDrop
public override void Initialize() public override void Initialize()
{ {
UpdatesOutsidePrediction = true;
_dragDropHelper = new DragDropHelper<EntityUid>(OnBeginDrag, OnContinueDrag, OnEndDrag); _dragDropHelper = new DragDropHelper<EntityUid>(OnBeginDrag, OnContinueDrag, OnEndDrag);
_dropTargetInRangeShader = _prototypeManager.Index<ShaderPrototype>(ShaderDropTargetInRange).Instance(); _dropTargetInRangeShader = _prototypeManager.Index<ShaderPrototype>(ShaderDropTargetInRange).Instance();

View File

@@ -41,10 +41,12 @@ namespace Content.Client.Examine
{ {
IoCManager.InjectDependencies(this); IoCManager.InjectDependencies(this);
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<GetOtherVerbsEvent>(AddExamineVerb); SubscribeLocalEvent<GetOtherVerbsEvent>(AddExamineVerb);
CommandBinds.Builder CommandBinds.Builder
.Bind(ContentKeyFunctions.ExamineEntity, new PointerInputCmdHandler(HandleExamine)) .Bind(ContentKeyFunctions.ExamineEntity, new PointerInputCmdHandler(HandleExamine, outsidePrediction: true))
.Register<ExamineSystem>(); .Register<ExamineSystem>();
} }
@@ -72,21 +74,21 @@ namespace Content.Client.Examine
return base.CanExamine(examiner, target, predicate); return base.CanExamine(examiner, target, predicate);
} }
private bool HandleExamine(ICommonSession? session, EntityCoordinates coords, EntityUid entity) private bool HandleExamine(in PointerInputCmdHandler.PointerInputCmdArgs args)
{ {
if (!entity.IsValid() || !EntityManager.EntityExists(entity)) if (!args.EntityUid.IsValid() || !EntityManager.EntityExists(args.EntityUid))
{ {
return false; return false;
} }
_playerEntity = _playerManager.LocalPlayer?.ControlledEntity ?? default; _playerEntity = _playerManager.LocalPlayer?.ControlledEntity ?? default;
if (_playerEntity == default || !CanExamine(_playerEntity, entity)) if (_playerEntity == default || !CanExamine(_playerEntity, args.EntityUid))
{ {
return false; return false;
} }
DoExamine(entity); DoExamine(args.EntityUid);
return true; return true;
} }

View File

@@ -38,6 +38,8 @@ namespace Content.Client.Instruments
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
_cfg.OnValueChanged(CCVars.MaxMidiEventsPerBatch, OnMaxMidiEventsPerBatchChanged, true); _cfg.OnValueChanged(CCVars.MaxMidiEventsPerBatch, OnMaxMidiEventsPerBatchChanged, true);
_cfg.OnValueChanged(CCVars.MaxMidiEventsPerSecond, OnMaxMidiEventsPerSecondChanged, true); _cfg.OnValueChanged(CCVars.MaxMidiEventsPerSecond, OnMaxMidiEventsPerSecondChanged, true);

View File

@@ -13,6 +13,13 @@ namespace Content.Client.Light
{ {
[Dependency] private IGameTiming _gameTiming = default!; [Dependency] private IGameTiming _gameTiming = default!;
public override void Initialize()
{
base.Initialize();
UpdatesOutsidePrediction = true;
}
public override void Update(float frameTime) public override void Update(float frameTime)
{ {
base.Update(frameTime); base.Update(frameTime);

View File

@@ -21,6 +21,8 @@ public class TrayScannerSystem : SharedTrayScannerSystem
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<TrayScannerComponent, ComponentShutdown>(OnComponentShutdown); SubscribeLocalEvent<TrayScannerComponent, ComponentShutdown>(OnComponentShutdown);
} }

View File

@@ -43,6 +43,8 @@ namespace Content.Client.Tabletop
public override void Initialize() public override void Initialize()
{ {
UpdatesOutsidePrediction = true;
CommandBinds.Builder CommandBinds.Builder
.Bind(EngineKeyFunctions.Use, new PointerInputCmdHandler(OnUse, false)) .Bind(EngineKeyFunctions.Use, new PointerInputCmdHandler(OnUse, false))
.Register<TabletopSystem>(); .Register<TabletopSystem>();

View File

@@ -51,6 +51,8 @@ namespace Content.Client.Verbs
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeNetworkEvent<RoundRestartCleanupEvent>(Reset); SubscribeNetworkEvent<RoundRestartCleanupEvent>(Reset);
SubscribeNetworkEvent<VerbsResponseEvent>(HandleVerbResponse); SubscribeNetworkEvent<VerbsResponseEvent>(HandleVerbResponse);

View File

@@ -29,6 +29,13 @@ namespace Content.Client.Weapons.Ranged
private bool _blocked; private bool _blocked;
private int _shotCounter; private int _shotCounter;
public override void Initialize()
{
base.Initialize();
UpdatesOutsidePrediction = true;
}
public override void Update(float frameTime) public override void Update(float frameTime)
{ {
base.Update(frameTime); base.Update(frameTime);

View File

@@ -11,6 +11,12 @@ namespace Content.Shared.Actions
private const float CooldownCheckIntervalSeconds = 10; private const float CooldownCheckIntervalSeconds = 10;
private float _timeSinceCooldownCheck; private float _timeSinceCooldownCheck;
public override void Initialize()
{
base.Initialize();
UpdatesOutsidePrediction = true;
}
public override void Update(float frameTime) public override void Update(float frameTime)
{ {

View File

@@ -23,6 +23,8 @@ namespace Content.Shared.Chemistry
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<MovespeedModifierMetabolismComponent, ComponentHandleState>(OnMovespeedHandleState); SubscribeLocalEvent<MovespeedModifierMetabolismComponent, ComponentHandleState>(OnMovespeedHandleState);
SubscribeLocalEvent<MovespeedModifierMetabolismComponent, ComponentStartup>(AddComponent); SubscribeLocalEvent<MovespeedModifierMetabolismComponent, ComponentStartup>(AddComponent);
SubscribeLocalEvent<MovespeedModifierMetabolismComponent, RefreshMovementSpeedModifiersEvent>(OnRefreshMovespeed); SubscribeLocalEvent<MovespeedModifierMetabolismComponent, RefreshMovementSpeedModifiersEvent>(OnRefreshMovespeed);

View File

@@ -25,6 +25,7 @@ namespace Content.Shared.Movement.EntitySystems
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<MovementSpeedModifierComponent, ComponentGetState>(OnGetState); SubscribeLocalEvent<MovementSpeedModifierComponent, ComponentGetState>(OnGetState);
SubscribeLocalEvent<MovementSpeedModifierComponent, ComponentHandleState>(OnHandleState); SubscribeLocalEvent<MovementSpeedModifierComponent, ComponentHandleState>(OnHandleState);
} }

View File

@@ -56,6 +56,8 @@ namespace Content.Shared.Pulling
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset); SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
SubscribeLocalEvent<PullStartedMessage>(OnPullStarted); SubscribeLocalEvent<PullStartedMessage>(OnPullStarted);
SubscribeLocalEvent<PullStoppedMessage>(OnPullStopped); SubscribeLocalEvent<PullStoppedMessage>(OnPullStopped);

View File

@@ -26,6 +26,9 @@ namespace Content.Shared.Slippery
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<SlipperyComponent, StartCollideEvent>(HandleCollide); SubscribeLocalEvent<SlipperyComponent, StartCollideEvent>(HandleCollide);
SubscribeLocalEvent<NoSlipComponent, SlipAttemptEvent>(OnNoSlipAttempt); SubscribeLocalEvent<NoSlipComponent, SlipAttemptEvent>(OnNoSlipAttempt);
} }

View File

@@ -20,6 +20,8 @@ namespace Content.Shared.StatusEffect
{ {
base.Initialize(); base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeLocalEvent<StatusEffectsComponent, ComponentGetState>(OnGetState); SubscribeLocalEvent<StatusEffectsComponent, ComponentGetState>(OnGetState);
SubscribeLocalEvent<StatusEffectsComponent, ComponentHandleState>(OnHandleState); SubscribeLocalEvent<StatusEffectsComponent, ComponentHandleState>(OnHandleState);
} }