Skip to content

Commit 8151aed

Browse files
committed
Hold this
1 parent bdc5634 commit 8151aed

46 files changed

Lines changed: 907 additions & 96 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,25 @@ subprojects {
2222
owner_name = mod_owner
2323
year = java.time.LocalDate.now().getYear().toString()
2424
}
25-
// Alternate license
25+
// Attribution licenses
2626
matching(includes: [
27-
"**/client/inventory/**",
27+
"**/client/inventory/screen/**",
28+
"**/client/inventory/control/SingleUseController.java",
29+
"**/client/inventory/control/client/ClientSurvivalController.java",
2830
"**/client/network/InteractionManager.java",
2931
"**/client/order/**",
3032
"**/mixin/**",
31-
"**/network/handler/**",
33+
"**/network/handler/util/**",
34+
"**/network/handler/SortHandler.java",
3235
]) {
3336
header = rootProject.project("common").file(licenseDir + "mouse-wheelie/HEADER.txt")
3437
}
38+
matching(includes: [
39+
"**/client/gui/widget/**",
40+
"**/client/gui/ControlButtonManager.java",
41+
]) {
42+
header = rootProject.project("common").file(licenseDir + "inventory-management/HEADER.txt")
43+
}
3544
}
3645

3746
if (name != "common") {

common/src/main/java/dev/terminalmc/clientsort/client/ClientSort.java

Lines changed: 50 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,29 @@
1717
package dev.terminalmc.clientsort.client;
1818

1919
import com.mojang.blaze3d.platform.InputConstants;
20+
import dev.terminalmc.clientsort.client.gui.ControlButtonManager;
21+
import dev.terminalmc.clientsort.client.gui.widget.ControlButton;
2022
import dev.terminalmc.clientsort.client.order.SortOrder;
2123
import dev.terminalmc.clientsort.client.config.Config;
2224
import dev.terminalmc.clientsort.client.network.InteractionManager;
25+
import dev.terminalmc.clientsort.client.util.inject.ISlot;
26+
import dev.terminalmc.clientsort.util.ModLogger;
2327
import net.minecraft.client.KeyMapping;
2428
import net.minecraft.client.Minecraft;
29+
import net.minecraft.client.gui.screens.Screen;
2530
import net.minecraft.resources.ResourceLocation;
31+
import net.minecraft.world.inventory.Slot;
2632

2733
import java.util.ArrayList;
2834
import java.util.List;
2935

3036
import static dev.terminalmc.clientsort.util.Localization.translationKey;
3137

3238
public class ClientSort {
39+
public static final String MOD_ID = dev.terminalmc.clientsort.ClientSort.MOD_ID;
40+
public static final String MOD_NAME = dev.terminalmc.clientsort.ClientSort.MOD_NAME;
41+
public static final ModLogger LOG = dev.terminalmc.clientsort.ClientSort.LOG;
42+
3343
public static final KeyMapping SORT_KEY = new KeyMapping(
3444
translationKey("key", "group.sort"), InputConstants.Type.MOUSE,
3545
InputConstants.MOUSE_BUTTON_MIDDLE, translationKey("key", "group"));
@@ -39,12 +49,42 @@ public class ClientSort {
3949
public static final KeyMapping FILL_STACKS_KEY = new KeyMapping(
4050
translationKey("key", "group.fillStacks"), InputConstants.Type.KEYSYM,
4151
InputConstants.UNKNOWN.getValue(), translationKey("key", "group"));
52+
53+
// TODO remove
54+
public static int slotNumberType = 0;
55+
public static final KeyMapping CYCLE_INDICATOR_KEY = new KeyMapping(
56+
translationKey("key", "group.cycleIndicator"), InputConstants.Type.KEYSYM,
57+
InputConstants.KEY_PERIOD, translationKey("key", "group"));
58+
public static String getNumber(Slot slot) {
59+
return switch(slotNumberType) {
60+
case 0 -> String.valueOf(((ISlot)slot).clientSort$getIdInContainer());
61+
case 1 -> String.valueOf(((ISlot)slot).clientSort$getIndexInInv());
62+
case 2 -> String.valueOf(slot.getContainerSlot());
63+
default -> "?";
64+
};
65+
}
66+
public static void cycleSlotNumberType() {
67+
slotNumberType += 1;
68+
dev.terminalmc.clientsort.ClientSort.LOG.warn("Slot Indicator: {}", switch (slotNumberType) {
69+
case 0 -> "index";
70+
case 1 -> "slot";
71+
case 2 -> "getContainerSlot";
72+
default -> {
73+
slotNumberType = 0;
74+
yield "index";
75+
}
76+
});
77+
}
78+
4279
public static final List<KeyMapping> KEYBINDS = List.of(
4380
SORT_KEY,
4481
TRANSFER_KEY,
45-
FILL_STACKS_KEY
82+
FILL_STACKS_KEY,
83+
CYCLE_INDICATOR_KEY
4684
);
4785

86+
public static final List<ControlButton> buttons = new ArrayList<>();
87+
4888
public static final List<ScheduledAction> SCHEDULED_ACTIONS = new ArrayList<>();
4989
public static class ScheduledAction {
5090
int ticks;
@@ -65,7 +105,7 @@ public static void init() {
65105
Config.getAndSave();
66106
}
67107

68-
public static void onEndTick(Minecraft mc) {
108+
public static void afterClientTick(Minecraft mc) {
69109
SCHEDULED_ACTIONS.removeIf((sa) -> {
70110
if (--sa.ticks <= 0) {
71111
sa.action.run();
@@ -74,22 +114,21 @@ public static void onEndTick(Minecraft mc) {
74114
return false;
75115
});
76116
}
117+
118+
public static void afterScreenInit(Screen screen) {
119+
ControlButtonManager.afterScreenInit(screen);
120+
}
77121

78122
public static void onConfigSaved(Config config) {
79123
Config.Options options = config.options;
124+
// Convert config sort order strings into enum values
80125
options.sortOrder = SortOrder.SORT_MODES.get(options.sortOrderStr);
81126
options.shiftSortOrder = SortOrder.SORT_MODES.get(options.shiftSortOrderStr);
82127
options.ctrlSortOrder = SortOrder.SORT_MODES.get(options.ctrlSortOrderStr);
83128
options.altSortOrder = SortOrder.SORT_MODES.get(options.altSortOrderStr);
129+
// Parse sound location string
84130
options.sortSoundLoc = ResourceLocation.tryParse(options.sortSound);
85-
setInteractionManagerTickRate(config.options);
86-
}
87-
88-
public static void setInteractionManagerTickRate(Config.Options options) {
89-
if (Minecraft.getInstance().getSingleplayerServer() == null) {
90-
InteractionManager.setTickRate(options.interactionRateServer);
91-
} else {
92-
InteractionManager.setTickRate(options.interactionRateClient);
93-
}
131+
// Update interaction manager tick rate
132+
InteractionManager.setTickRate(options.interactionInterval);
94133
}
95134
}

common/src/main/java/dev/terminalmc/clientsort/client/compat/itemlocks/ItemLocksCompat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class ItemLocksCompat {
3232
*/
3333
static boolean isLocked(Slot slot) {
3434
if (!(slot.container instanceof Inventory)) return false;
35-
int index = adjustForInventory(((ISlot) slot).clientSort$getIndexInInv());
35+
int index = adjustForInventory(((ISlot)slot).clientSort$getIndexInInv());
3636
return getComponent(LockManager.class).isLockedSlotRaw(index) && !isBypass();
3737
}
3838

common/src/main/java/dev/terminalmc/clientsort/client/config/Config.java

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,13 @@ public static class Options {
4949

5050
// General options
5151

52-
public static final int interactionRateMin = 1;
53-
public static final int interactionRateMax = 100;
54-
public static final int interactionRateServerDefault = 10;
55-
public int interactionRateServer = interactionRateServerDefault;
52+
public static final int interactionIntervalMin = 1;
53+
public static final int interactionIntervalMax = 100;
54+
public static final int interactionIntervalDefault = 10;
55+
public int interactionInterval = interactionIntervalDefault;
5656

57-
public static final int interactionRateClientDefault = 1;
58-
public int interactionRateClient = interactionRateClientDefault;
59-
60-
public static final boolean serverAcceleratedSortingDefault = true;
61-
public boolean serverAcceleratedSorting = serverAcceleratedSortingDefault;
57+
public static final boolean serverAccelerationDefault = true;
58+
public boolean serverAcceleration = serverAccelerationDefault;
6259

6360
public static final boolean optimizedCreativeSortingDefault = true;
6461
public boolean optimizedCreativeSorting = optimizedCreativeSortingDefault;
@@ -180,20 +177,20 @@ public ExtraSlotScope update() {
180177
private void validate() {
181178
update();
182179
// interactionRateServer
183-
if (options.interactionRateServer < Options.interactionRateMin)
184-
options.interactionRateServer = Options.interactionRateMin;
185-
if (options.interactionRateServer > Options.interactionRateMax)
186-
options.interactionRateServer = Options.interactionRateMax;
180+
if (options.interactionInterval < Options.interactionIntervalMin)
181+
options.interactionInterval = Options.interactionIntervalMin;
182+
if (options.interactionInterval > Options.interactionIntervalMax)
183+
options.interactionInterval = Options.interactionIntervalMax;
187184
// interactionRateClient
188-
if (options.interactionRateClient < Options.interactionRateMin)
189-
options.interactionRateClient = Options.interactionRateMin;
190-
if (options.interactionRateClient > Options.interactionRateMax)
191-
options.interactionRateClient = Options.interactionRateMax;
185+
if (options.interactionRateClient < Options.interactionIntervalMin)
186+
options.interactionRateClient = Options.interactionIntervalMin;
187+
if (options.interactionRateClient > Options.interactionIntervalMax)
188+
options.interactionRateClient = Options.interactionIntervalMax;
192189
// soundRate
193-
if (options.soundRate < Options.interactionRateMin)
194-
options.soundRate = Options.interactionRateMin;
195-
if (options.soundRate > Options.interactionRateMax)
196-
options.soundRate = Options.interactionRateMax;
190+
if (options.soundRate < Options.interactionIntervalMin)
191+
options.soundRate = Options.interactionIntervalMin;
192+
if (options.soundRate > Options.interactionIntervalMax)
193+
options.soundRate = Options.interactionIntervalMax;
197194
// soundMinPitch
198195
if (options.soundMinPitch < Options.soundPitchMin)
199196
options.soundMinPitch = Options.soundPitchMin;

0 commit comments

Comments
 (0)