RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ItemComparator.java
1package com.osroyale.game.world.items;
2
3import com.osroyale.game.world.items.containers.pricechecker.PriceType;
4
5import java.util.Comparator;
6
30
31public enum ItemComparator implements Comparator<Item> {
32 HIGH_ALCH_COMPARATOR,
33 LOW_ALCH_COMPARATOR,
34 ITEM_WEIGHT_COMPARATOR,
35 SHOP_VALUE_COMPARATOR,
36 ITEM_ID_COMPARATOR,
37 ITEM_AMOUNT_COMPARATOR;
38
39 @Override
40 public int compare(Item first, Item second) {
41 double firstValue = 0;
42 double secondValue = 0;
43
44 if (first == null && second == null) {
45 return 0;
46 }
47
48 if (first == null) {
49 return 1;
50 }
51
52 if (second == null) {
53 return -1;
54 }
55
56 switch (this) {
57
58 case HIGH_ALCH_COMPARATOR:
59 firstValue = first.getValue(PriceType.HIGH_ALCH_VALUE);
60 secondValue = second.getValue(PriceType.HIGH_ALCH_VALUE);
61 break;
62
63 case ITEM_AMOUNT_COMPARATOR:
64 firstValue = first.getAmount();
65 secondValue = second.getAmount();
66 break;
67
68 case ITEM_ID_COMPARATOR:
69 firstValue = first.getId();
70 secondValue = second.getId();
71 break;
72
73 case ITEM_WEIGHT_COMPARATOR:
74 firstValue = first.getWeight();
75 secondValue = second.getWeight();
76 break;
77
78 case LOW_ALCH_COMPARATOR:
79 firstValue = first.getLowAlch();
80 secondValue = second.getLowAlch();
81 break;
82
83 case SHOP_VALUE_COMPARATOR:
84 firstValue = first.getValue(PriceType.VALUE);
85 secondValue = second.getValue(PriceType.VALUE);
86 break;
87
88 }
89
90 return Integer.signum((int) (secondValue - firstValue));
91 }
92}