private void InventoryOnContentChanged(object sender, PropStoreEventArgs e) { var actor = _playerState.ActiveActor.Actor; var inventory = actor.Person.Inventory; UpdatePropsInner(InventoryItemsParent, inventory.CalcActualItems()); }
private void Content_Removed(object sender, PropStoreEventArgs e) { if (!Content.CalcActualItems().Any()) { IsActive = false; } }
private void Inventory_Added(object sender, PropStoreEventArgs e) { foreach (var newProp in e.Props) { CreatePropObject(InventoryItemsParent, newProp); } }
private void Inventory_Removed(object sender, PropStoreEventArgs e) { var propStore = (IPropStore)sender; var itemsParent = InventoryItemsParent; foreach (var prop in e.Props) { PropItemVm propViewModel; switch (prop) { case Resource resource: propViewModel = _inventoryViewModels.Single(x => x.Prop.Scheme == prop.Scheme); break; case Equipment _: case Concept _: propViewModel = _inventoryViewModels.Single(x => x.Prop == prop); break; default: throw new InvalidOperationException(); } _inventoryViewModels.Remove(propViewModel); Destroy(propViewModel.gameObject); propViewModel.Click -= InventoryPropItem_Click; } var parentRect = itemsParent.GetComponent <RectTransform>(); var rowCount = (int)Math.Ceiling(propStore.CalcActualItems().Count() / 4f); parentRect.sizeDelta = new Vector2(parentRect.sizeDelta.x, (40 + 5) * rowCount); }
private void Inventory_Changed(object sender, PropStoreEventArgs e) { foreach (var changedProp in e.Props) { var propViewModel = _propViewModels.Single(x => x.Prop == changedProp); propViewModel.UpdateProp(); } }
private void LootContainer_ItemsRemoved(object sender, PropStoreEventArgs e) { var container = (IPropContainer)sender; if (!container.Content.CalcActualItems().Any()) { _propContainerManager.Remove(container); } }
private void Container_Changed(object sender, PropStoreEventArgs e) { var propStore = (IPropStore)sender; var itemsParent = ContainerItemsParent; foreach (var prop in e.Props) { var propItemViewModel = _containerViewModels.Single(x => x.Prop.Scheme == prop.Scheme); propItemViewModel.Init(prop); } }
private void LootContainer_ItemsRemoved(object sender, PropStoreEventArgs e) { var container = (IPropContainer)sender; if (!container.Content.CalcActualItems().Any()) { var staticObject = StaticObjectManager.Items.Single(x => ReferenceEquals(x.GetModuleSafe <IPropContainer>(), container)); StaticObjectManager.Remove(staticObject); } }
private void Inventory_Removed(object sender, PropStoreEventArgs e) { foreach (var removedProp in e.Props) { var propViewModel = _propViewModels.Single(x => x.Prop == removedProp); _propViewModels.Remove(propViewModel); Destroy(propViewModel.gameObject); var isRemovedPropWasSelected = ReferenceEquals(propViewModel, _inventoryState.SelectedProp); if (isRemovedPropWasSelected) { _inventoryState.SelectedProp = null; UseButton.SetActive(false); } } }
private void LootContainer_ItemsRemoved(object?sender, PropStoreEventArgs e) { if (sender is null) { throw new InvalidOperationException("The handler can work only for instance. Sender can't be null."); } var container = (IPropContainer)sender; if (!container.Content.CalcActualItems().Any()) { var staticObject = StaticObjectManager.Items.Single(x => ReferenceEquals(x.GetModuleSafe <IPropContainer>(), container)); StaticObjectManager.Remove(staticObject); } }
private void Container_Added(object sender, PropStoreEventArgs e) { var propStore = (IPropStore)sender; var itemsParent = ContainerItemsParent; foreach (var prop in e.Props) { var propItemViewModel = Instantiate(PropItemPrefab, itemsParent); propItemViewModel.Init(prop); propItemViewModel.Click += ContainerPropItem_Click; propItemViewModel.MouseEnter += PropItemViewModel_MouseEnter; propItemViewModel.MouseExit += PropItemViewModel_MouseExit; _containerViewModels.Add(propItemViewModel); } var parentRect = itemsParent.GetComponent <RectTransform>(); var rowCount = (int)Math.Ceiling(propStore.CalcActualItems().Count() / 4f); parentRect.sizeDelta = new Vector2(parentRect.sizeDelta.x, (40 + 5) * rowCount); }
private void Content_Added(object sender, PropStoreEventArgs e) { ItemsAdded?.Invoke(this, e); }
private void ContainerModule_ItemsRemoved(object sender, PropStoreEventArgs e) { CheckAndDestroy(); }