public override void Draw() { try { if (DedicatedServer || _lastDrawTick == Tick || _paused) { return; } _lastDrawTick = Tick; DsUtil.Start("draw"); CameraMatrix = Session.Camera.WorldMatrix; CameraPos = CameraMatrix.Translation; CameraFrustrum.Matrix = (Camera.ViewMatrix * Camera.ProjectionMatrix); if (HudUi.TexturesToAdd > 0) { HudUi.DrawTextures(); } if ((UiInput.PlayerCamera || UiInput.FirstPersonView || InGridAiBlock) && !InMenu && !Session.Config.MinimalHud && !MyAPIGateway.Gui.IsCursorVisible) { if (WheelUi.WheelActive) { WheelUi.DrawWheel(); } TargetUi.DrawTargetUi(); } Av.Run(); DsUtil.Complete("draw", true); } catch (Exception ex) { Log.Line($"Exception in SessionDraw: {ex}"); } }
private void Paused() { Pause = true; Log.Line($"Stopping all AV due to pause"); /* * foreach (var aiPair in GridTargetingAIs) * { * var gridAi = aiPair.Value; * foreach (var comp in gridAi.WeaponBase.Values) * comp.StopAllAv(); * } * * foreach (var p in Projectiles.ActiveProjetiles) * { * p.ParticleStopped = true; * if (p.AmmoEffect != null) * { * p.AmmoEffect.Stop(); * p.AmmoEffect = null; * } * * if (p.Info.AvShot?.HitEffect != null) * { * p.Info.AvShot.HitEffect.Stop(); * p.Info.AvShot.HitEffect = null; * } * * } */ if (WheelUi.WheelActive && WheelUi.Ai != null) { WheelUi.CloseWheel(); } }
private void Paused() { Pause = true; Log.Line($"Stopping all AV due to pause"); if (WheelUi.WheelActive && WheelUi.Ai != null) { WheelUi.CloseWheel(); } }
public override void UpdateBeforeSimulation() { try { // // Finish work from last frame // DsUtil.Start("projectiles2"); Projectiles.Stage2(); DsUtil.Complete("projectiles2", true); DsUtil.Start("damage"); if (_effectedCubes.Count > 0) { ApplyGridEffect(); } if (Tick60) { GridEffects(); } if (Hits.Count > 0) { ProcessHits(); } DsUtil.Complete("damage", true); if (MpActive) { DsUtil.Start("network1"); if (WeaponsToSync.Count > 0) { Proccessor.Proccess(); } if (UiInput.InputChanged && ActiveControlBlock != null) { SendMouseUpdate(ActiveControlBlock); } if (ClientGridResyncRequests.Count > 0) { ProccessGridResyncRequests(); } Proccessor.AddPackets(); if (PacketsToClient.Count > 0) { ProccessServerPacketsForClients(); } if (PacketsToServer.Count > 0) { ProccessClientPacketsForServer(); } if (ClientSideErrorPktList.Count > 0) { ReproccessClientErrorPackets(); } DsUtil.Complete("network1", true); } DsUtil.Start("av"); if (!DedicatedServer) { Av.End(); } DsUtil.Complete("av", true); // // Finished last frame // Timings(); if (!WeaponAmmoRemoveQueue.IsEmpty && CTask.IsComplete) { if (CTask.valid && CTask.Exceptions != null) { TaskHasErrors(ref CTask, "CTask"); } CTask = MyAPIGateway.Parallel.StartBackground(AmmoToRemove, RemoveAmmo); } if (!WeaponAmmoPullQueue.IsEmpty && ITask.IsComplete) { if (ITask.valid && ITask.Exceptions != null) { TaskHasErrors(ref ITask, "ITask"); } ITask = MyAPIGateway.Parallel.StartBackground(AmmoPull, MoveAmmo); } if (!CompsToStart.IsEmpty) { StartComps(); } if (Tick120 && CompsDelayed.Count > 0) { DelayedComps(); } if (CompReAdds.Count > 0) { ChangeReAdds(); } if (Tick3600 && MpActive) { NetReport(); } if (Tick180) { ProfilePerformance(); } FutureEvents.Tick(Tick); if (!DedicatedServer && ActiveControlBlock != null && !InMenu) { WheelUi.UpdatePosition(); } } catch (Exception ex) { Log.Line($"Exception in SessionBeforeSim: {ex}"); } }
public override void UpdateBeforeSimulation() { try { DsUtil.Start("av"); if (!DedicatedServer) { Av.End(); } DsUtil.Complete("av", true); Timings(); if (!WeaponAmmoRemoveQueue.IsEmpty && CTask.IsComplete) { if (CTask.valid && CTask.Exceptions != null) { TaskHasErrors(ref CTask, "CTask"); } CTask = MyAPIGateway.Parallel.StartBackground(AmmoToRemove, RemoveAmmo); } if (!WeaponAmmoPullQueue.IsEmpty && ITask.IsComplete) { if (ITask.valid && ITask.Exceptions != null) { TaskHasErrors(ref ITask, "ITask"); } ITask = MyAPIGateway.Parallel.StartBackground(AmmoPull, MoveAmmo); } if (!CompsToStart.IsEmpty) { StartComps(); } if (Tick120 && CompsDelayed.Count > 0) { DelayedComps(); } if (CompReAdds.Count > 0) { ChangeReAdds(); } if (Tick3600 && MpActive) { NetReport(); } if (Tick180) { ProfilePerformance(); } FutureEvents.Tick(Tick); if (!DedicatedServer && UiInput.PlayerCamera && !InMenu) { WheelUi.UpdatePosition(); } } catch (Exception ex) { Log.Line($"Exception in SessionBeforeSim: {ex}"); } }