//******************** 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); }
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); }
/*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); }