12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System.Collections;
- using System.Text;
- using System.Collections.Generic;
- using UnityEngine;
- using Sirenix.OdinInspector;
- using QFSW.QC;
- using QFSW.QC.Utilities;
- using KairoEngine.Core;
- namespace KairoEngine.Inventory
- {
- public class ItemConsoleCommands : MonoBehaviour
- {
- private static readonly Pool<StringBuilder> _builderPool = new Pool<StringBuilder>();
- [Command("get-item", "Adds target item to player's inventory")]
- private static string GetItem(string itemName, int quantity = 1)
- {
- QuantumConsole console = QuantumConsole.Instance;
- Color successColor = Color.green;
- Color errorColor = Color.red;
- Color blueColor = Color.blue;
- if(console != null)
- {
- QuantumTheme theme = console.GetTheme();
- successColor = theme ? theme.SuccessColor : Color.white;
- errorColor = theme ? theme.ErrorColor : Color.white;
- blueColor = theme ? theme.CommandLogColor : Color.white;
- }
- ItemContainer playerInventory = EventManager.request.GetItemContainer("PlayeritemContainer").value;
- if(playerInventory == null)
- {
- return ColorExtensions.ColorText("Could not find player's inventory", errorColor);
- }
- ItemBase item = ItemLibrary.GetItemByName(itemName);
- if(item == null)
- {
- return ColorExtensions.ColorText("Item \"" + itemName + "\" could not be found!", errorColor);
- }
- if(item.category == ItemType.firearm)
- {
- ItemBaseFirearm firearmItem = (ItemBaseFirearm)item;
- ItemFirearmRef firearmRef = new ItemFirearmRef(item, 1, firearmItem.ammoType, quantity);
- playerInventory.AddItem(firearmRef);
- string msg = "Added ";
- msg += ColorExtensions.ColorText(itemName, successColor);
- msg += " and ";
- msg += ColorExtensions.ColorText(quantity.ToString() + "x ", blueColor);
- msg += ColorExtensions.ColorText(firearmItem.ammoType.title, successColor);
- msg += " to player inventory.";
- return msg;
- }
- else
- {
- ItemRef itemRef = new ItemRef(item, quantity, 1000);
- playerInventory.AddItem(itemRef);
- string msg = "Added ";
- msg += ColorExtensions.ColorText(quantity.ToString() + "x", blueColor);
- msg += " ";
- msg += ColorExtensions.ColorText(itemName, successColor);
- msg += " to player inventory.";
- return msg;
- }
- }
- [Command("list-items", "List all items available in the ItemLibrary")]
- private static string ListItems()
- {
- QuantumConsole console = QuantumConsole.Instance;
- Color successColor = Color.green;
- StringBuilder buffer = _builderPool.GetObject();
- string result = "";
- if(console != null)
- {
- QuantumTheme theme = console.GetTheme();
- successColor = theme ? theme.SuccessColor : Color.white;
- }
- for (int i = 0; i < ItemLibrary.itemList.Count; i++)
- {
- string t = ColorExtensions.ColorText(ItemLibrary.itemList[i].title, successColor);
- buffer.Append(t);
- if(i < ItemLibrary.itemList.Count -1) buffer.Append(", ");
- }
- result = buffer.ToString();
- _builderPool.Release(buffer);
- return result;
- }
- }
- }
|