public void Update()
    {
        try
        {
            var active = _headControl.possessed || !_possessedOnlyJSON.val;

            if (!_lastActive && active)
            {
                ApplyAll(true);
                _lastActive = true;
            }
            else if (_lastActive && !active)
            {
                ApplyAll(false);
                _lastActive = false;
            }
            else if (_dirty)
            {
                _dirty = false;
                ApplyAll(_lastActive);
            }
            else if (_lastActive && _selector.selectedCharacter != _character)
            {
                _skinHandler?.Restore();
                _skinHandler = null;
                ApplyAll(true);
            }
            else if (_lastActive && _selector.selectedHairGroup != _hair)
            {
                _hairHandler?.Restore();
                _hairHandler = null;
                ApplyAll(true);
            }
        }
        catch (Exception e)
        {
            if (_failedOnce)
            {
                return;
            }
            _failedOnce = true;
            SuperController.LogError("Failed to update Improved PoV: " + e);
        }
    }
Exemple #2
0
 public HairController(IHairRepository repository, HairHandler handler)
 {
     _repository = repository;
     _handler    = handler;
 }