public virtual void SetSolution(T solution) { T lastSolution = Solution; Solution = solution; SolutionChangedEvent?.Invoke(this, new SolutionChangedEventArgs <T> { PreviousSolution = lastSolution, CurrentSolution = solution }); }
private void OnSolutionChange(EntityUid uid, PowerCellComponent component, SolutionChangedEvent args) { component.IsRigged = _solutionsSystem.TryGetSolution(uid, PowerCellComponent.SolutionName, out var solution) && solution.ContainsReagent("Plasma", out var plasma) && plasma >= 5; if (component.IsRigged) { _logSystem.Add(LogType.Explosion, LogImpact.Medium, $"Power cell {ToPrettyString(uid)} has been rigged up to explode when used."); } }
private void OnSolutionChange(EntityUid owner, TransformableContainerComponent component, SolutionChangedEvent args) { if (!_solutionsSystem.TryGetFitsInDispenser(owner, out var solution)) { return; } //Transform container into initial state when emptied if (component.CurrentReagent != null && solution.Contents.Count == 0) { CancelTransformation(component); } //the biggest reagent in the solution decides the appearance var reagentId = solution.GetPrimaryReagentId(); //If biggest reagent didn't changed - don't change anything at all if (component.CurrentReagent != null && component.CurrentReagent.ID == reagentId) { return; } //Only reagents with spritePath property can change appearance of transformable containers! if (!string.IsNullOrWhiteSpace(reagentId) && _prototypeManager.TryIndex(reagentId, out ReagentPrototype? proto) && !string.IsNullOrWhiteSpace(proto.SpriteReplacementPath)) { var spriteSpec = new SpriteSpecifier.Rsi( new ResourcePath("Objects/Consumable/Drinks/" + proto.SpriteReplacementPath), "icon"); if (EntityManager.TryGetComponent(owner, out SpriteComponent? sprite)) { sprite?.LayerSetSprite(0, spriteSpec); } string val = proto.Name + " glass"; EntityManager.GetComponent <MetaDataComponent>(owner).EntityName = val; EntityManager.GetComponent <MetaDataComponent>(owner).EntityDescription = proto.Description; component.CurrentReagent = proto; component.Transformed = true; } }
private void OnSolutionChange(EntityUid uid, HyposprayComponent component, SolutionChangedEvent args) { component.Dirty(); }
private void OnSolutionChange(EntityUid uid, PowerCellComponent component, SolutionChangedEvent args) { component.IsRigged = _solutionsSystem.TryGetSolution(uid, PowerCellComponent.SolutionName, out var solution) && solution.ContainsReagent("Plasma", out var plasma) && plasma >= 5; }
private void OnSolutionChange(EntityUid uid, DrinkComponent component, SolutionChangedEvent args) { UpdateAppearance(component); }
private void OnSolutionChange(EntityUid uid, RehydratableComponent component, SolutionChangedEvent args) { if (_solutionsSystem.GetReagentQuantity(uid, component.CatalystPrototype) > ReagentUnit.Zero) { Expand(component, component.Owner); } }
private void OnUpdate(EntityUid uid, PuddleComponent component, SolutionChangedEvent args) { UpdateSlip(uid, component); UpdateVisuals(uid, component); }
private void OnSolutionChange(EntityUid uid, MicrowaveComponent component, SolutionChangedEvent args) { component.DirtyUi(); }
private void OnSolutionChange(EntityUid uid, InjectorComponent component, SolutionChangedEvent args) { Dirty(component); }
private void OnSolutionChange(EntityUid uid, ReagentDispenserComponent component, SolutionChangedEvent args) { component.UpdateUserInterface(); }
private void OnSolutionChange(EntityUid uid, ChemMasterComponent component, SolutionChangedEvent solutionChanged) { component.UpdateUserInterface(); }