private void PutHandInSlotTryData([NotNull] DataSlot slotLeftTop) { if (slotLeftTop.DataInventory == null) { throw GetExceptionUnBindInventoryComponent(); } var entitySource = HandData.EntitySource; var amountWantPut = HandData.DataEntityHand.Amount; HandData.ReturnAmountInSource(); var slotLeftTopPrevious = DatabaseReadOnly.GetSlotOrNull(entitySource); if (slotLeftTopPrevious != slotLeftTop) { var command = Commands.CreateForHand <PutCommand>() .EnterData(new PutInputData(entitySource, slotLeftTop, amountWantPut)); var success = command.ExecuteTry(); if (!success) { var noValidOnlyForFilters = FactoryCommandNoValidOnlyForFilters.Create(command); // event if (noValidOnlyForFilters.IsCommandNoValidOnlyForFilters) { NoValidFiltersEvent.Invoke(noValidOnlyForFilters.GetImpossibleOnlyForThisFilters()); } } } HandData.Clear(); StatusWasChanged.Invoke(); }
private void SetButtonsActions() { if (!_holder.SaveButton.HasOnClickListeners) { _holder.SaveButton.Click += (s, e) => { SaveButtonClick?.Invoke(_holder.NameEditText.Text, _holder.LastnameEditText.Text, _holder.StatusEditText.Text); }; } if (!_holder.CancelButton.HasOnClickListeners) { _holder.CancelButton.Click += (s, e) => { CancelButtonClick?.Invoke(); }; } _holder.NameEditText.TextChanged += (sender, args) => { _iSNameChahged = true; }; _holder.NameEditText.FocusChange += (sender, args) => { if (_iSNameChahged && !args.HasFocus) { NameWasChanged?.Invoke(_holder.NameEditText.Text); } }; _holder.LastnameEditText.TextChanged += (sender, args) => { _iSLastNameChahged = true; }; _holder.LastnameEditText.FocusChange += (sender, args) => { if (_iSLastNameChahged && !args.HasFocus) { LastNameWasChanged?.Invoke(_holder.LastnameEditText.Text); } }; _holder.StatusEditText.TextChanged += (sender, args) => { _iSStatusChahged = true; }; _holder.StatusEditText.FocusChange += (sender, args) => { if (_iSStatusChahged && !args.HasFocus) { StatusWasChanged?.Invoke(_holder.StatusEditText.Text); } }; }
public void RemoveEntityInHand() { var entity = HandData.EntitySource; var amount = HandData.AmountInHand; UndoTakeEntityInHand(); var removeCommand = Commands.CreateForHand <RemoveCommand>().EnterData(new RemoveInputData(entity, amount)); removeCommand.ExecuteTry(); DestroyView(); StatusWasChanged.Invoke(); }
public void AddAmountInHand(int amountAdd) { if (amountAdd <= 0) { throw new ArgumentOutOfRangeException(nameof(amountAdd)); } if (HandData.IsEmpty) { throw new Exception("Hand is empty!"); } if (HandData.EntitySource.Amount == 0) { return; } var canTake = Math.Min(HandData.EntitySource.Amount, amountAdd); HandData.EntitySource.Amount -= canTake; HandData.DataEntityHand.Amount += canTake; StatusWasChanged.Invoke(); }
private void UndoTakeEntityInHandData() { HandData.ReturnAmountInSource(); HandData.Clear(); StatusWasChanged.Invoke(); }
public void UndoTakeEntityInHand() { UndoTakeEntityInHandData(); DestroyView(); StatusWasChanged.Invoke(); }
partial void _statusTextField_DidEnd(UITextField sender) { StatusWasChanged?.Invoke(_statusTextField.Text); }