private void OnApplyMetabolicMultiplier(EntityUid uid, MetabolizerComponent component, ApplyMetabolicMultiplierEvent args) { if (args.Apply) { component.UpdateFrequency *= args.Multiplier; return; } component.UpdateFrequency /= args.Multiplier; // Reset the accumulator properly if (component.AccumulatedFrametime >= component.UpdateFrequency) { component.AccumulatedFrametime = component.UpdateFrequency; } }
private void OnMetabolizerInit(EntityUid uid, MetabolizerComponent component, ComponentInit args) { if (!component.SolutionOnBody) { _solutionContainerSystem.EnsureSolution(uid, component.SolutionName); } else { if (EntityManager.TryGetComponent <MechanismComponent>(uid, out var mech)) { if (mech.Body != null) { _solutionContainerSystem.EnsureSolution((mech.Body).Owner, component.SolutionName); } } } }