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); } }
public HairController(IHairRepository repository, HairHandler handler) { _repository = repository; _handler = handler; }