private void InventoryOnContentChanged(object sender, PropStoreEventArgs e)
    {
        var actor     = _playerState.ActiveActor.Actor;
        var inventory = actor.Person.Inventory;

        UpdatePropsInner(InventoryItemsParent, inventory.CalcActualItems());
    }
Пример #2
0
 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);
    }
Пример #5
0
 private void Inventory_Changed(object sender, PropStoreEventArgs e)
 {
     foreach (var changedProp in e.Props)
     {
         var propViewModel = _propViewModels.Single(x => x.Prop == changedProp);
         propViewModel.UpdateProp();
     }
 }
Пример #6
0
        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);
        }
    }
Пример #8
0
        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);
            }
        }
    }
Пример #10
0
        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);
    }
Пример #12
0
 private void Content_Added(object sender, PropStoreEventArgs e)
 {
     ItemsAdded?.Invoke(this, e);
 }
 private void ContainerModule_ItemsRemoved(object sender, PropStoreEventArgs e)
 {
     CheckAndDestroy();
 }