Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit 44da331

Browse files
committed
Implement trinket sorting in all sorters.
1 parent c0a04e3 commit 44da331

File tree

8 files changed

+254
-2
lines changed

8 files changed

+254
-2
lines changed

src/main/java/lv/id/bonne/vaultjewelsorting/ae2/mixin/MixinRepo.java

+35-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import appeng.api.stacks.AEKey;
2020
import appeng.client.gui.me.common.Repo;
2121
import appeng.menu.me.common.GridInventoryEntry;
22+
import iskallia.vault.gear.data.AttributeGearData;
2223
import iskallia.vault.gear.data.VaultGearData;
2324
import iskallia.vault.init.ModItems;
2425
import iskallia.vault.item.crystal.CrystalData;
@@ -158,6 +159,38 @@ else if (leftWhat.getId() == ModItems.VAULT_CRYSTAL.getRegistryName())
158159
ascending);
159160
};
160161
}
162+
else if (leftWhat.getId() == ModItems.TRINKET.getRegistryName())
163+
{
164+
AttributeGearData leftData = CustomVaultGearData.read(leftWhat.toTag().getCompound("tag"));
165+
AttributeGearData rightData = CustomVaultGearData.read(rightWhat.toTag().getCompound("tag"));
166+
167+
return switch (sortOrder) {
168+
case NAME -> SortingHelper.compareTrinkets(leftName,
169+
leftData,
170+
leftWhat.toTag().getCompound("tag"),
171+
rightName,
172+
rightData,
173+
rightWhat.toTag().getCompound("tag"),
174+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByName(),
175+
ascending);
176+
case AMOUNT -> SortingHelper.compareTrinkets(leftName,
177+
leftData,
178+
leftWhat.toTag().getCompound("tag"),
179+
rightName,
180+
rightData,
181+
rightWhat.toTag().getCompound("tag"),
182+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByAmount(),
183+
ascending);
184+
case MOD -> SortingHelper.compareTrinkets(leftName,
185+
leftData,
186+
leftWhat.toTag().getCompound("tag"),
187+
rightName,
188+
rightData,
189+
rightWhat.toTag().getCompound("tag"),
190+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByMod(),
191+
ascending);
192+
};
193+
}
161194
else
162195
{
163196
VaultGearData leftData = CustomVaultGearData.read(leftWhat.toTag().getCompound("tag"));
@@ -212,6 +245,7 @@ private static boolean isSortable(ResourceLocation id)
212245
id.equals(ModItems.WAND.getRegistryName()) ||
213246
id.equals(ModItems.MAGNET.getRegistryName()) ||
214247
id.equals(ModItems.INSCRIPTION.getRegistryName()) ||
215-
id.equals(ModItems.VAULT_CRYSTAL.getRegistryName());
248+
id.equals(ModItems.VAULT_CRYSTAL.getRegistryName()) ||
249+
id.equals(ModItems.TRINKET.getRegistryName());
216250
}
217251
}

src/main/java/lv/id/bonne/vaultjewelsorting/qio/mixin/MixinQIOItemViewerContainerListSortType.java

+74
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,18 @@
1616

1717
import java.util.Comparator;
1818

19+
import iskallia.vault.gear.data.AttributeGearData;
1920
import iskallia.vault.gear.data.VaultGearData;
2021
import iskallia.vault.gear.item.VaultGearItem;
2122
import iskallia.vault.item.InscriptionItem;
2223
import iskallia.vault.item.crystal.CrystalData;
2324
import iskallia.vault.item.crystal.VaultCrystalItem;
2425
import iskallia.vault.item.data.InscriptionData;
26+
import iskallia.vault.item.gear.TrinketItem;
2527
import iskallia.vault.item.tool.JewelItem;
2628
import iskallia.vault.item.tool.ToolItem;
2729
import lv.id.bonne.vaultjewelsorting.VaultJewelSorting;
30+
import lv.id.bonne.vaultjewelsorting.utils.CustomVaultGearData;
2831
import lv.id.bonne.vaultjewelsorting.utils.SortingHelper;
2932
import mekanism.common.inventory.ISlotClickHandler;
3033
import mekanism.common.inventory.container.QIOItemViewerContainer;
@@ -194,6 +197,42 @@ else if (firstItem.getItem() instanceof VaultCrystalItem &&
194197
true);
195198
};
196199
}
200+
else if (firstItem.getItem() instanceof TrinketItem &&
201+
secondItem.getItem() instanceof TrinketItem)
202+
{
203+
String leftName = firstItem.getDisplayName().getString();
204+
String rightName = secondItem.getDisplayName().getString();
205+
AttributeGearData leftData = AttributeGearData.read(firstItem);
206+
AttributeGearData rightData = AttributeGearData.read(secondItem);
207+
208+
return switch (instance)
209+
{
210+
case NAME -> SortingHelper.compareTrinkets(leftName,
211+
leftData,
212+
firstItem.getTag(),
213+
rightName,
214+
rightData,
215+
secondItem.getTag(),
216+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByName(),
217+
true);
218+
case SIZE -> SortingHelper.compareTrinkets(leftName,
219+
leftData,
220+
firstItem.getTag(),
221+
rightName,
222+
rightData,
223+
secondItem.getTag(),
224+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByAmount(),
225+
true);
226+
case MOD -> SortingHelper.compareTrinkets(leftName,
227+
leftData,
228+
firstItem.getTag(),
229+
rightName,
230+
rightData,
231+
secondItem.getTag(),
232+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByMod(),
233+
true);
234+
};
235+
}
197236
else
198237
{
199238
return 0;
@@ -343,6 +382,41 @@ else if (firstItem.getItem() instanceof VaultCrystalItem &&
343382
false);
344383
};
345384
}
385+
else if (firstItem.getItem() instanceof TrinketItem &&
386+
secondItem.getItem() instanceof TrinketItem)
387+
{
388+
String leftName = firstItem.getDisplayName().getString();
389+
String rightName = secondItem.getDisplayName().getString();
390+
AttributeGearData leftData = AttributeGearData.read(firstItem);
391+
AttributeGearData rightData = AttributeGearData.read(secondItem);
392+
393+
return switch (instance) {
394+
case NAME -> SortingHelper.compareTrinkets(leftName,
395+
leftData,
396+
firstItem.getTag(),
397+
rightName,
398+
rightData,
399+
secondItem.getTag(),
400+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByName(),
401+
false);
402+
case SIZE -> SortingHelper.compareTrinkets(leftName,
403+
leftData,
404+
firstItem.getTag(),
405+
rightName,
406+
rightData,
407+
secondItem.getTag(),
408+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByAmount(),
409+
false);
410+
case MOD -> SortingHelper.compareTrinkets(leftName,
411+
leftData,
412+
firstItem.getTag(),
413+
rightName,
414+
rightData,
415+
secondItem.getTag(),
416+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByMod(),
417+
false);
418+
};
419+
}
346420
else
347421
{
348422
return 0;

src/main/java/lv/id/bonne/vaultjewelsorting/quark/mixin/MixinSortingHandler.java

+23-1
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
import org.spongepowered.asm.mixin.injection.Inject;
1414
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1515

16+
import iskallia.vault.gear.data.AttributeGearData;
1617
import iskallia.vault.gear.data.VaultGearData;
1718
import iskallia.vault.gear.item.VaultGearItem;
1819
import iskallia.vault.item.InscriptionItem;
1920
import iskallia.vault.item.crystal.CrystalData;
2021
import iskallia.vault.item.crystal.VaultCrystalItem;
2122
import iskallia.vault.item.data.InscriptionData;
23+
import iskallia.vault.item.gear.TrinketItem;
2224
import iskallia.vault.item.tool.JewelItem;
2325
import iskallia.vault.item.tool.ToolItem;
2426
import lv.id.bonne.vaultjewelsorting.VaultJewelSorting;
@@ -129,6 +131,24 @@ else if (stack1.getItem() instanceof VaultCrystalItem &&
129131
callbackInfoReturnable.cancel();
130132
}
131133
}
134+
else if (stack1.getItem() instanceof TrinketItem &&
135+
stack2.getItem() instanceof TrinketItem)
136+
{
137+
if (!VaultJewelSorting.CONFIGURATION.getTrinketSortingByName().isEmpty())
138+
{
139+
callbackInfoReturnable.setReturnValue(
140+
SortingHelper.compareTrinkets(stack1.getDisplayName().getString(),
141+
AttributeGearData.read(stack1),
142+
stack1.getTag(),
143+
stack2.getDisplayName().getString(),
144+
AttributeGearData.read(stack2),
145+
stack2.getTag(),
146+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByName(),
147+
true));
148+
149+
callbackInfoReturnable.cancel();
150+
}
151+
}
132152
}
133153

134154

@@ -141,6 +161,8 @@ else if (stack1.getItem() instanceof VaultCrystalItem &&
141161
private static boolean hasCustomComparison(ItemStack stack)
142162
{
143163
return stack.getItem() instanceof VaultGearItem ||
144-
stack.getItem() instanceof InscriptionItem;
164+
stack.getItem() instanceof InscriptionItem ||
165+
stack.getItem() instanceof VaultCrystalItem ||
166+
stack.getItem() instanceof TrinketItem;
145167
}
146168
}

src/main/java/lv/id/bonne/vaultjewelsorting/refinedstorage/mixin/MixinIdGridSorter.java

+19
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@
1515
import org.spongepowered.asm.mixin.injection.Inject;
1616
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1717

18+
import iskallia.vault.gear.data.AttributeGearData;
1819
import iskallia.vault.gear.data.VaultGearData;
1920
import iskallia.vault.gear.item.VaultGearItem;
2021
import iskallia.vault.item.InscriptionItem;
2122
import iskallia.vault.item.crystal.CrystalData;
2223
import iskallia.vault.item.crystal.VaultCrystalItem;
2324
import iskallia.vault.item.data.InscriptionData;
25+
import iskallia.vault.item.gear.TrinketItem;
2426
import iskallia.vault.item.tool.JewelItem;
2527
import iskallia.vault.item.tool.ToolItem;
2628
import lv.id.bonne.vaultjewelsorting.VaultJewelSorting;
@@ -127,6 +129,23 @@ else if (leftStack.getItem() instanceof VaultCrystalItem &&
127129
callbackInfoReturnable.cancel();
128130
}
129131
}
132+
else if (leftStack.getItem() instanceof TrinketItem &&
133+
rightStack.getItem() instanceof TrinketItem)
134+
{
135+
if (!VaultJewelSorting.CONFIGURATION.getTrinketSortingByMod().isEmpty())
136+
{
137+
callbackInfoReturnable.setReturnValue(
138+
SortingHelper.compareTrinkets(leftStack.getDisplayName().getString(),
139+
AttributeGearData.read(leftStack),
140+
leftStack.getTag(),
141+
rightStack.getDisplayName().getString(),
142+
AttributeGearData.read(rightStack),
143+
rightStack.getTag(),
144+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByMod(),
145+
sortingDirection == SortingDirection.ASCENDING));
146+
callbackInfoReturnable.cancel();
147+
}
148+
}
130149
}
131150
}
132151
}

src/main/java/lv/id/bonne/vaultjewelsorting/refinedstorage/mixin/MixinNameGridSorter.java

+19
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@
1515
import org.spongepowered.asm.mixin.injection.Inject;
1616
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1717

18+
import iskallia.vault.gear.data.AttributeGearData;
1819
import iskallia.vault.gear.data.VaultGearData;
1920
import iskallia.vault.gear.item.VaultGearItem;
2021
import iskallia.vault.item.InscriptionItem;
2122
import iskallia.vault.item.crystal.CrystalData;
2223
import iskallia.vault.item.crystal.VaultCrystalItem;
2324
import iskallia.vault.item.data.InscriptionData;
25+
import iskallia.vault.item.gear.TrinketItem;
2426
import iskallia.vault.item.tool.JewelItem;
2527
import iskallia.vault.item.tool.ToolItem;
2628
import lv.id.bonne.vaultjewelsorting.VaultJewelSorting;
@@ -127,6 +129,23 @@ else if (leftStack.getItem() instanceof VaultCrystalItem &&
127129
callbackInfoReturnable.cancel();
128130
}
129131
}
132+
else if (leftStack.getItem() instanceof TrinketItem &&
133+
rightStack.getItem() instanceof TrinketItem)
134+
{
135+
if (!VaultJewelSorting.CONFIGURATION.getTrinketSortingByName().isEmpty())
136+
{
137+
callbackInfoReturnable.setReturnValue(
138+
SortingHelper.compareTrinkets(leftStack.getDisplayName().getString(),
139+
AttributeGearData.read(leftStack),
140+
leftStack.getTag(),
141+
rightStack.getDisplayName().getString(),
142+
AttributeGearData.read(rightStack),
143+
rightStack.getTag(),
144+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByName(),
145+
sortingDirection == SortingDirection.ASCENDING));
146+
callbackInfoReturnable.cancel();
147+
}
148+
}
130149
}
131150
}
132151
}

src/main/java/lv/id/bonne/vaultjewelsorting/refinedstorage/mixin/MixinQuantityGridSorter.java

+19
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@
1515
import org.spongepowered.asm.mixin.injection.Inject;
1616
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1717

18+
import iskallia.vault.gear.data.AttributeGearData;
1819
import iskallia.vault.gear.data.VaultGearData;
1920
import iskallia.vault.gear.item.VaultGearItem;
2021
import iskallia.vault.item.InscriptionItem;
2122
import iskallia.vault.item.crystal.CrystalData;
2223
import iskallia.vault.item.crystal.VaultCrystalItem;
2324
import iskallia.vault.item.data.InscriptionData;
25+
import iskallia.vault.item.gear.TrinketItem;
2426
import iskallia.vault.item.tool.JewelItem;
2527
import iskallia.vault.item.tool.ToolItem;
2628
import lv.id.bonne.vaultjewelsorting.VaultJewelSorting;
@@ -129,6 +131,23 @@ else if (leftStack.getItem() instanceof VaultCrystalItem &&
129131
callbackInfoReturnable.cancel();
130132
}
131133
}
134+
else if (leftStack.getItem() instanceof TrinketItem &&
135+
rightStack.getItem() instanceof TrinketItem)
136+
{
137+
if (!VaultJewelSorting.CONFIGURATION.getTrinketSortingByAmount().isEmpty())
138+
{
139+
callbackInfoReturnable.setReturnValue(
140+
SortingHelper.compareTrinkets(leftStack.getDisplayName().getString(),
141+
AttributeGearData.read(leftStack),
142+
leftStack.getTag(),
143+
rightStack.getDisplayName().getString(),
144+
AttributeGearData.read(rightStack),
145+
rightStack.getTag(),
146+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByAmount(),
147+
sortingDirection == SortingDirection.ASCENDING));
148+
callbackInfoReturnable.cancel();
149+
}
150+
}
132151
}
133152
}
134153
}

src/main/java/lv/id/bonne/vaultjewelsorting/sophisticatedcore/mixin/MixinInventorySorter.java

+32
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import com.refinedmods.refinedstorage.screen.grid.sorting.SortingDirection;
44

5+
import iskallia.vault.gear.data.AttributeGearData;
56
import iskallia.vault.gear.data.VaultGearData;
67
import iskallia.vault.gear.item.VaultGearItem;
78
import iskallia.vault.item.InscriptionItem;
89
import iskallia.vault.item.crystal.CrystalData;
910
import iskallia.vault.item.crystal.VaultCrystalItem;
1011
import iskallia.vault.item.data.InscriptionData;
12+
import iskallia.vault.item.gear.TrinketItem;
1113
import iskallia.vault.item.tool.JewelItem;
1214
import iskallia.vault.item.tool.ToolItem;
1315
import lv.id.bonne.vaultjewelsorting.VaultJewelSorting;
@@ -87,6 +89,21 @@ else if (first.getKey().getStack().getItem() instanceof VaultCrystalItem &&
8789
true);
8890
}
8991
}
92+
else if (first.getKey().getStack().getItem() instanceof TrinketItem &&
93+
second.getKey().getStack().getItem() instanceof TrinketItem)
94+
{
95+
if (!VaultJewelSorting.CONFIGURATION.getTrinketSortingByAmount().isEmpty())
96+
{
97+
return SortingHelper.compareTrinkets(first.getKey().getStack().getDisplayName().getString(),
98+
AttributeGearData.read(first.getKey().getStack()),
99+
first.getKey().getStack().getTag(),
100+
second.getKey().getStack().getDisplayName().getString(),
101+
AttributeGearData.read(second.getKey().getStack()),
102+
second.getKey().getStack().getTag(),
103+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByAmount(),
104+
true);
105+
}
106+
}
90107

91108
return 0;
92109
});
@@ -151,6 +168,21 @@ else if (first.getKey().getStack().getItem() instanceof VaultCrystalItem &&
151168
true);
152169
}
153170
}
171+
else if (first.getKey().getStack().getItem() instanceof TrinketItem &&
172+
second.getKey().getStack().getItem() instanceof TrinketItem)
173+
{
174+
if (!VaultJewelSorting.CONFIGURATION.getTrinketSortingByName().isEmpty())
175+
{
176+
return SortingHelper.compareTrinkets(first.getKey().getStack().getDisplayName().getString(),
177+
AttributeGearData.read(first.getKey().getStack()),
178+
first.getKey().getStack().getTag(),
179+
second.getKey().getStack().getDisplayName().getString(),
180+
AttributeGearData.read(second.getKey().getStack()),
181+
second.getKey().getStack().getTag(),
182+
VaultJewelSorting.CONFIGURATION.getTrinketSortingByName(),
183+
true);
184+
}
185+
}
154186

155187
return 0;
156188
});

0 commit comments

Comments
 (0)