ContainerGenerator.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using UnityEngine;
  3. namespace HQFPSWeapons
  4. {
  5. [Serializable]
  6. public class ContainerGenerator
  7. {
  8. [SerializeField]
  9. private string m_Name = string.Empty;
  10. [SerializeField]
  11. private ItemContainerFlags m_Flag = ItemContainerFlags.AmmoPouch;
  12. [SerializeField]
  13. [Range(1, 100)]
  14. private int m_Size = 10;
  15. [SerializeField]
  16. [Space]
  17. [Reorderable]
  18. private ItemGeneratorList m_ItemGenerators = null;
  19. [Header("Item Filtering")]
  20. [SerializeField]
  21. [DatabaseCategory]
  22. private string[] m_ValidCategories = null;
  23. [SerializeField]
  24. [DatabaseProperty]
  25. private string[] m_RequiredProperties = null;
  26. public ItemContainer GenerateContainer(Transform parent)
  27. {
  28. var container = new ItemContainer(
  29. m_Name,
  30. m_Size,
  31. parent,
  32. m_Flag,
  33. m_ValidCategories,
  34. m_RequiredProperties);
  35. for(int i = 0; i < m_ItemGenerators.Count; i ++)
  36. {
  37. if(i >= container.Slots.Length)
  38. break;
  39. SaveableItem generatedItem = m_ItemGenerators[i].GenerateItem();
  40. if(generatedItem != null)
  41. container.Slots[i].SetItem(generatedItem);
  42. }
  43. return container;
  44. }
  45. }
  46. }