public void Setup(RecipeModel model) { _model = model; MolecularWeightLabel.text = _model.MolecularMass.ToString(); ExchangeRateLabel.text = _model.ExchangeRate.ToString(); HardCurrencyLabel.text = "0"; AmountSlider.OnValueChangedAsObservable().Subscribe(UpdateSliderLabel).AddTo(this); ConvertButton.OnClickAsObservable().Subscribe(_ => handleConvertButtonClick()).AddTo(this); for (int i = 0; i < _model.FormulaAtomsList.Count; i++) { GameObject go = Instantiate(FormulaAtomPrefab, RecipeFormula); FormulaAtomComponent formulaAtom = go.GetComponent <FormulaAtomComponent>(); FormulaAtomModel formulaAtomModel = _model.FormulaAtomsList[i]; if (formulaAtomModel.AtomicNumber < gameModel.User.Atoms.Count) { listenForAtomStockChange(formulaAtomModel.AtomicNumber); } formulaAtom.Setup(formulaAtomModel); } _isSetup = true; gameModel.User.Atoms.ObserveAdd().Subscribe(addEvent => listenForAtomStockChange(addEvent.Value.AtomicNumber)); UpdateSliderLabel(0); }
public void Setup(FormulaAtomModel model) { _model = model; Symbol.text = _model.Symbol; Amount.text = _model.Amount.ToString(); gameModel.User.Atoms.ObserveAdd().Subscribe(addEvent => listenForAtomStockChange(addEvent.Value.AtomicNumber)); if (_model.AtomicNumber < gameModel.User.Atoms.Count) { listenForAtomStockChange(_model.AtomicNumber); } _model.HaveEnough .Select(x => x ? _color = gameModel.Config.GreenColor : _color = Color.red) .Subscribe(_ => { Symbol.color = _color; Amount.color = _color; }) .AddTo(this); }