Ejemplo n.º 1
0
        void ISolutionChange.SolutionChanged(SolutionChangeEventArgs eventArgs)
        {
            var solution = eventArgs.Owner.GetComponent <SolutionContainerComponent>();

            if (solution.Solution.GetReagentQuantity(_catalystPrototype) > ReagentUnit.Zero)
            {
                Expand();
            }
        }
Ejemplo n.º 2
0
        void ISolutionChange.SolutionChanged(SolutionChangeEventArgs eventArgs)
        {
            var solution = eventArgs.Owner.GetComponent <SolutionContainerComponent>();

            //Transform container into initial state when emptied
            if (_currentReagent != null && solution.ReagentList.Count == 0)
            {
                CancelTransformation();
            }

            //the biggest reagent in the solution decides the appearance
            var reagentId = solution.Solution.GetPrimaryReagentId();

            //If biggest reagent didn't changed - don't change anything at all
            if (_currentReagent != null && _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 (Owner.TryGetComponent(out SpriteComponent? sprite))
                {
                    sprite?.LayerSetSprite(0, spriteSpec);
                }

                Owner.Name        = proto.Name + " glass";
                Owner.Description = proto.Description;
                _currentReagent   = proto;
                Transformed       = true;
            }
        }
 void ISolutionChange.SolutionChanged(SolutionChangeEventArgs eventArgs) => UpdateUserInterface();
Ejemplo n.º 4
0
 void ISolutionChange.SolutionChanged(SolutionChangeEventArgs eventArgs)
 {
     UpdateAppearance();
 }
Ejemplo n.º 5
0
 void ISolutionChange.SolutionChanged(SolutionChangeEventArgs eventArgs) => _uiDirty = true;
Ejemplo n.º 6
0
 void ISolutionChange.SolutionChanged(SolutionChangeEventArgs eventArgs)
 {
     IsRigged = Owner.TryGetComponent(out SolutionContainerComponent? solution) &&
                solution.Solution.ContainsReagent("Plasma", out var plasma) &&
                plasma >= 5;
 }
Ejemplo n.º 7
0
 void ISolutionChange.SolutionChanged(SolutionChangeEventArgs eventArgs)
 {
     IsRigged = Owner.TryGetComponent(out SolutionContainerComponent? solution) &&
                solution.Solution.ContainsReagent("chem.Phoron", out var phoron) &&
                phoron >= 5;
 }
Ejemplo n.º 8
0
 public void SolutionChanged(SolutionChangeEventArgs eventArgs)
 {
     Dirty();
 }