protected override bool OnClose(params object[] args)
 {
     onConfirm = null;
     selected  = null;
     noneCheck = false;
     if (!doConfirm)
     {
         onCancel?.Invoke();
     }
     return(base.OnClose(args));
 }
 private void OnSelected(WarehouseAgent warehouse)
 {
     if (warehouse.IsSelected)
     {
         selected = warehouse.Data;
     }
     else if (warehouse.Data == selected)
     {
         selected = null;
     }
     deselect.interactable = list.SelectedIndices.Count > 0;
 }
Exemplo n.º 3
0
 private void OnSetWarehouse(IWarehouseKeeper data)
 {
     warehouse = data;
     if (warehouse == null)
     {
         inventorySelector.value = 0;
         return;
     }
     WarehouseManager.Instance.SetManagedWarehouse(data);
     handler = WarehouseManager.Instance;
     inventorySelector.ClearOptions();
     inventorySelector.AddOptions(new List <string> {
         $"从{BackpackManager.Instance.Name}中制作", $"{warehouse.WarehouseName}", "选择其它仓库"
     });
     inventorySelector.SetValueWithoutNotify(1);
     ShowDescription(currentItem);
 }
Exemplo n.º 4
0
 private void SelectInventory(int type)
 {
     if (type == 0)
     {
         typeBef   = type;
         warehouse = null;
         handler   = BackpackManager.Instance;
         inventorySelector.ClearOptions();
         inventorySelector.AddOptions(new List <string> {
             $"从{BackpackManager.Instance.Name}中制作", $"从{WarehouseManager.Instance.Name}中制作"
         });
         ShowDescription(currentItem);
     }
     else if (type == 1 || type == 2)
     {
         Vector3 point = CurrentTool ? CurrentTool.transform.position : PlayerManager.Instance.Player.Position;
         wsWindow = WarehouseSelectionWindow.StartSelection(OnSetWarehouse, () => inventorySelector.value = typeBef, (d) => d == warehouse, false, true, point);
         if (!wsWindow)
         {
             inventorySelector.value = 0;
         }
         else
         {
             if (type != 2)
             {
                 typeBef = type;
             }
             inventorySelector.interactable = false;
             wsWindow.onClose += () =>
             {
                 if (warehouse == null)
                 {
                     inventorySelector.value = 0;
                 }
                 wsWindow = null;
                 inventorySelector.interactable = true;
             };
         }
     }
 }