private void BeforeInit() { if (Modulator.CubeGrid.Physics == null) { return; } _isServer = Session.Instance.IsServer; _isDedicated = Session.Instance.DedicatedServer; ResetComp(); Session.Instance.Modulators.Add(this); CreateUi(); ModUi.ComputeDamage(this, ModUi.GetDamage(Modulator)); Entity.TryGetSubpart("Rotor", out _subpartRotor); PowerInit(); Modulator.RefreshCustomInfo(); StateChange(true); if (!Session.Instance.ModAction) { Session.Instance.ModAction = true; Session.AppendConditionToAction <IMyUpgradeModule>((a) => Session.Instance.ModActions.Contains(a.Id), (a, b) => b.GameLogic.GetAs <Modulators>() != null && Session.Instance.ModActions.Contains(a.Id)); } MainInit = true; NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME; _bTime = _isDedicated ? 10 : 1; _bInit = true; }
internal void TerminalRefresh(bool update = true) { Modulator.RefreshCustomInfo(); if (update && InControlPanel && InThisTerminal) { MyCube.UpdateTerminal(); } }
private void ModulatorOn() { if (_isServer && StateChange()) { NeedUpdate(); StateChange(true); Modulator.RefreshCustomInfo(); } }
private void Timing() { if (_tock60 && !_isDedicated) { TerminalRefresh(); } if (_tock33) { if (SettingsUpdated) { SettingsUpdated = false; ModSet.SaveSettings(); ModState.SaveState(); if (Session.Enforced.Debug == 3) { Log.Line($"SettingsUpdated: server:{_isServer} - ModulatorId [{Modulator.EntityId}]"); } } } else if (_tock34) { if (ClientUiUpdate) { ClientUiUpdate = false; MyCube.UpdateTerminal(); Modulator.RefreshCustomInfo(); if (!_isServer) { ModSet.NetworkUpdate(); } } } if (_isDedicated || (_subDelayed && _tick > _subTick + 9)) { if (Session.Enforced.Debug == 3) { Log.Line($"Delayed tick: {_tick} - hierarchytick: {_subTick}"); } _subDelayed = false; HierarchyChanged(); } }
private void ModulatorOff() { var stateChange = StateChange(); if (stateChange) { if (_isServer) { NeedUpdate(); StateChange(true); Modulator.RefreshCustomInfo(); } else { StateChange(true); Modulator.RefreshCustomInfo(); } } }
private bool BlockWorking() { if (_tock60 || _firstRun) { _powered = Sink.IsPowerAvailable(_gId, 0.01f); } if (!MyCube.IsWorking || !_powered) { if (!_isDedicated && _tock60) { Modulator.RefreshCustomInfo(); } ModState.State.Online = false; return(false); } if (ModulatorComp.Modulator == null) { ModulatorComp.Modulator = this; } else if (ModulatorComp.Modulator != this) { if (!ModState.State.Backup || _firstLoop) { Session.Instance.BlockTagBackup(Modulator); } ModState.State.Backup = true; ModState.State.Online = false; _firstLoop = false; return(false); } ModState.State.Backup = false; if (_tock60 || _firstRun) { ServerCheckForCompLink(); } ModState.State.Online = true; _firstLoop = false; return(true); }