private bool ServerRequestReport(PacketObj data) { var packet = data.Packet; var cube = MyEntities.GetEntityByIdOrDefault(packet.EntityId) as MyCubeBlock; if (cube == null) { return(Error(data, Msg("Cube"))); } var reportData = ProblemRep.PullData(cube); if (reportData == null) { return(Error(data, Msg("RequestReport"))); } ProblemRep.NetworkTransfer(false, packet.SenderId, reportData); data.Report.PacketValid = true; return(true); }
public override void UpdateBeforeSimulation() { try { if (SuppressWc) { return; } if (DeformProtection.Count > 0 && Tick - LastDeform > 0) { DeformProtection.Clear(); } Timings(); if (IsClient) { if (ClientSideErrorPkt.Count > 0) { ReproccessClientErrorPackets(); } if (ClientPacketsToClean.Count > 0) { CleanClientPackets(); } } if (IsServer) { if (Tick60) { AcqManager.Observer(); } if (Tick600) { AcqManager.ReorderSleep(); } } if (!DedicatedServer && TerminalMon.Active) { TerminalMon.Monitor(); } MyCubeBlock cube; if (Tick60 && UiInput.ControlKeyPressed && UiInput.CtrlPressed && GetAimedAtBlock(out cube) && cube.BlockDefinition != null && WeaponCoreBlockDefs.ContainsKey(cube.BlockDefinition.Id.SubtypeName)) { ProblemRep.GenerateReport(cube); } if (!IsClient && !InventoryUpdate && WeaponToPullAmmo.Count > 0 && ITask.IsComplete) { StartAmmoTask(); } if (!CompsToStart.IsEmpty) { StartComps(); } if (Tick120 && CompsDelayed.Count > 0) { DelayedComps(); } if (Tick20 && !DelayedAiClean.IsEmpty) { DelayedAiCleanup(); } if (CompReAdds.Count > 0) { ChangeReAdds(); } if (Tick3600 && MpActive) { NetReport(); } if (Tick180) { ProfilePerformance(); } FutureEvents.Tick(Tick); if (HomingWeapons.Count > 0) { UpdateHomingWeapons(); } if (MpActive) { if (PacketsToClient.Count > 0 || PrunedPacketsToClient.Count > 0) { ProccessServerPacketsForClients(); } if (PacketsToServer.Count > 0) { ProccessClientPacketsForServer(); } } } catch (Exception ex) { Log.Line($"Exception in SessionBeforeSim: {ex}"); } }