Advertisement
Guest User

Untitled

a guest
Apr 14th, 2021
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. private List<InterfaceComponent> getDynamicSubComponents() {
  2. List<InterfaceComponent> subcomponents = new ArrayList<>();
  3. RSInterfaceComponent provider = getProvider();
  4. if (provider == null) {
  5. return subcomponents;
  6. }
  7.  
  8. RSInterfaceComponent[] raw = provider.getSubComponents();
  9. if (raw == null) {
  10. return subcomponents;
  11. }
  12.  
  13. for (RSInterfaceComponent component : raw) {
  14. if (component != null && component.getParentUid() == getUid()) {
  15. subcomponents.add(new InterfaceComponent(component));
  16. }
  17. }
  18. return subcomponents;
  19. }
  20.  
  21. private List<InterfaceComponent> getStaticSubComponents() {
  22. List<InterfaceComponent> subcomponents = new ArrayList<>();
  23. if (getParentUid() == getUid()) {
  24. return subcomponents;
  25. }
  26.  
  27. int group = getGroupIndex();
  28. RSInterfaceComponent[][] raw = Game.getClient().getInterfaces();
  29. if (raw == null || group < 0 || group >= raw.length) {
  30. return subcomponents;
  31. }
  32.  
  33. RSInterfaceComponent[] grouped = raw[group];
  34. if (grouped == null) {
  35. return subcomponents;
  36. }
  37.  
  38. for (RSInterfaceComponent component : grouped) {
  39. if (component != null && component.getParentUid() == getUid()) {
  40. subcomponents.add(new InterfaceComponent(component));
  41. }
  42. }
  43.  
  44. return subcomponents;
  45. }
  46.  
  47. private List<InterfaceComponent> getNestedSubComponents() {
  48. List<InterfaceComponent> subcomponents = new ArrayList<>();
  49. if (getParentUid() == getUid()) {
  50. return subcomponents;
  51. }
  52.  
  53. RSNodeTable<RSSubInterface> nested = Game.getClient().getSubInterfaces();
  54. if (nested == null) {
  55. return subcomponents;
  56. }
  57.  
  58. RSSubInterface sub = nested.lookup(getUid());
  59. if (sub == null) {
  60. return subcomponents;
  61. }
  62.  
  63. int group = sub.getId();
  64.  
  65. RSInterfaceComponent[][] raw = Game.getClient().getInterfaces();
  66. if (raw == null || group < 0 || group >= raw.length) {
  67. return subcomponents;
  68. }
  69.  
  70. RSInterfaceComponent[] grouped = raw[group];
  71. if (grouped == null) {
  72. return subcomponents;
  73. }
  74.  
  75. for (RSInterfaceComponent component : grouped) {
  76. if (component != null && component.getParentUid() == -1) {
  77. subcomponents.add(new InterfaceComponent(component));
  78. }
  79. }
  80. return subcomponents;
  81. }
  82.  
  83. private List<InterfaceComponent> getDefaultSubComponents() {
  84. List<InterfaceComponent> subcomponents = new ArrayList<>();
  85. RSInterfaceComponent provider = getProvider();
  86. if (provider == null) {
  87. return subcomponents;
  88. }
  89.  
  90. RSInterfaceComponent[] raw = provider.getSubComponents();
  91. if (raw == null) {
  92. return subcomponents;
  93. }
  94.  
  95. for (RSInterfaceComponent component : raw) {
  96. if (component != null) {
  97. subcomponents.add(new InterfaceComponent(component));
  98. }
  99. }
  100. return subcomponents;
  101. }
  102.  
  103. public List<InterfaceComponent> getSubComponents(TraversalOption option) {
  104. switch (option) {
  105. case NESTED:
  106. return getNestedSubComponents();
  107. case STATIC:
  108. return getStaticSubComponents();
  109. case DYNAMIC:
  110. return getDynamicSubComponents();
  111. case DEFAULT:
  112. return getDefaultSubComponents();
  113. default: {
  114. throw new IllegalArgumentException("Unsupported TraversalOption: " + option);
  115. }
  116. }
  117. }
  118.  
  119. public List<InterfaceComponent> getSubComponents() {
  120. return getSubComponents(TraversalOption.DEFAULT);
  121. }
  122.  
  123. public enum TraversalOption {
  124.  
  125. NESTED,
  126. DYNAMIC,
  127. STATIC,
  128. DEFAULT;
  129.  
  130. private static final TraversalOption[] NATURAL = {NESTED, DYNAMIC, STATIC};
  131.  
  132. public static TraversalOption[] natural() {
  133. return NATURAL;
  134. }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement