//******************** Network Interface ****************************

    public static NetworkInterfaceResponse HandleNetworkCommand(Player player, NetworkInterfaceCommand nic)
    {
        StorageHopper sh = nic.target as StorageHopper;

        switch (nic.command)
        {
        case InterfaceTogglePermissions:
            TogglePermissions(player, sh);
            break;

        case InterfaceToggleHoover:
            ToggleHoover(player, sh);
            break;

        case InterfaceTakeItems:
            TakeItems(player, sh);
            break;

        case InterfaceStoreItems:
            StoreItems(player, sh, nic.itemContext);
            break;
        }

        NetworkInterfaceResponse response = new NetworkInterfaceResponse();

        response.entity    = sh;
        response.inventory = player.mInventory;

        return(response);
    }
        public static NetworkInterfaceResponse HandleNetworkCommand(Player player, NetworkInterfaceCommand nic)
        {
            QuantumOutputPortMachine target = nic.target as QuantumOutputPortMachine;

            switch (nic.command)
            {
            case "SetExemplar":
                QuantumOutputPortWindow.SetExemplar(player, target, nic.itemContext);
                break;
            }

            NetworkInterfaceResponse interfaceResponse = new NetworkInterfaceResponse();

            interfaceResponse.entity    = (SegmentEntity)target;
            interfaceResponse.inventory = player.mInventory;
            return(interfaceResponse);
        }
Example #3
0
        public static NetworkInterfaceResponse HandleNetworkCommand(Player player, NetworkInterfaceCommand nic)
        {
            if (!(nic.target is QuantumStorageControllerMachine target))
            {
                return(null);
            }

            var command = nic.command;

            if (command != null)
            {
                var dictionary = new Dictionary <string, int>(2);
                dictionary.Add("TakeItem", 1);
                dictionary.Add("StoreItem", 2);

                if (dictionary.TryGetValue(command, out var num))
                {
                    switch (num)
                    {
                    case 1:
                        TakeItem(player, target, nic.itemContext);
                        break;

                    case 2:
                        StoreItem(player, target, nic.itemContext);
                        break;
                    }
                }
            }

            var interfaceResponse = new NetworkInterfaceResponse();

            interfaceResponse.entity    = target;
            interfaceResponse.inventory = player.mInventory;
            return(interfaceResponse);
        }
Example #4
0
        /*public static bool TakeItems(Player player, QuantumStorageControllerMachine quantumStorageController,
         *  ItemBase item)
         * {
         *  if (!player.mbIsLocalPlayer)
         *  {
         *      NetworkRedraw = true;
         *  }
         *
         *  if (quantumStorageController.GetItems().Count > 0)
         *  {
         *      quantumStorageController.TakeItem(ref item);
         *      if (item != null)
         *      {
         *          Debug.Log((object) ("Removing Item from StorageHopper for " + player.mUserName));
         *          if (!player.mInventory.AddItem(itemBase))
         *          {
         *              if (!quantumStorageController.AddItem(itemBase))
         *                  ItemManager.instance.DropItem(itemBase, player.mnWorldX, player.mnWorldY, player.mnWorldZ,
         *                      Vector3.zero);
         *              return false;
         *          }
         *
         *          if (player.mbIsLocalPlayer)
         *          {
         *              Color lCol = Color.green;
         *              if (itemBase.mType == ItemType.ItemCubeStack)
         *              {
         *                  ItemCubeStack itemCubeStack = itemBase as ItemCubeStack;
         *                  if (CubeHelper.IsGarbage(itemCubeStack.mCubeType))
         *                      lCol = Color.red;
         *                  if (CubeHelper.IsSmeltableOre(itemCubeStack.mCubeType))
         *                      lCol = Color.green;
         *              }
         *
         *              if (itemBase.mType == ItemType.ItemStack)
         *                  lCol = Color.cyan;
         *              if (itemBase.mType == ItemType.ItemSingle)
         *                  lCol = Color.white;
         *              if (itemBase.mType == ItemType.ItemCharge)
         *                  lCol = Color.magenta;
         *              if (itemBase.mType == ItemType.ItemDurability)
         *                  lCol = Color.yellow;
         *              if (itemBase.mType == ItemType.ItemLocation)
         *                  lCol = Color.gray;
         *              FloatingCombatTextManager.instance.QueueText(quantumStorageController.mnX,
         *                  quantumStorageController.mnY + 1L, quantumStorageController.mnZ, 1f,
         *                  player.GetItemName(itemBase), lCol, 1.5f, 64f);
         *          }
         *
         *          player.mInventory.VerifySuitUpgrades();
         *          if (!WorldScript.mbIsServer)
         *              NetworkManager.instance.SendInterfaceCommand(nameof(StorageHopperWindowNew), nameof(TakeItems),
         *                  (string) null, itemBase, (SegmentEntity) quantumStorageController, 0.0f);
         *          return true;
         *      }
         *  }
         *
         *  return false;
         * }*/

        public static NetworkInterfaceResponse HandleNetworkCommand(Player player, NetworkInterfaceCommand nic)
        {
            if (!(nic.target is QuantumStorageControllerMachine target))
            {
                return(null);
            }

            var command = nic.command;

            if (command != null)
            {
                var dictionary = new Dictionary <string, int>(2);
                dictionary.Add("ToggleInput", 1);
                dictionary.Add("ToggleOutput", 2);
                dictionary.Add("AddItemRule", 3);
                dictionary.Add("RemoveItemRule", 4);
                dictionary.Add("ReduceItemRule", 5);
                dictionary.Add("IncreaseItemRule", 6);

                if (dictionary.TryGetValue(command, out var num))
                {
                    switch (num)
                    {
                    case 1:
                        target.ToggleInput();
                        break;

                    case 2:
                        target.ToggleOutput();
                        break;

                    case 3:
                        var itemInputRule = new ItemInputRule();
                        itemInputRule.Item     = nic.itemContext;
                        itemInputRule.MaxInput = int.Parse(nic.payload);
                        target.AddItemInputRule(itemInputRule);
                        break;

                    case 4:
                        var itemInputRuleToRemove = new ItemInputRule();
                        itemInputRuleToRemove.Item     = nic.itemContext;
                        itemInputRuleToRemove.MaxInput = int.Parse(nic.payload);
                        target.RemoveItemInputRule(itemInputRuleToRemove);
                        break;

                    case 5:
                        var itemInputRuleToReduce = new ItemInputRule();
                        itemInputRuleToReduce.Item = nic.itemContext;
                        target.ReduceItemInputRuleLimit(itemInputRuleToReduce);
                        break;

                    case 6:
                        var itemInputRuleToIncrease = new ItemInputRule();
                        itemInputRuleToIncrease.Item = nic.itemContext;
                        target.IncreaseItemInputRuleLimit(itemInputRuleToIncrease);
                        break;
                    }
                }
            }

            var interfaceResponse = new NetworkInterfaceResponse();

            interfaceResponse.entity    = target;
            interfaceResponse.inventory = player.mInventory;
            return(interfaceResponse);
        }