Skip to content

Commit

Permalink
Update to Neo 21.0.82
Browse files Browse the repository at this point in the history
  • Loading branch information
JaisDK committed Jul 13, 2024
1 parent cf436ed commit c74539d
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 42 deletions.
6 changes: 4 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ plugins {
id 'idea'
id 'maven-publish'
id 'org.gradle.crypto.checksum' version '1.4.0'
id 'net.neoforged.gradle.userdev' version '7.0.142'
id 'net.neoforged.gradle.userdev' version '7.0.146'
}

java.toolchain.languageVersion = JavaLanguageVersion.of(21)
Expand Down Expand Up @@ -78,7 +78,9 @@ repositories {
dependencies {
implementation "net.neoforged:neoforge:${neo_version}"

implementation "curse.maven:jei-238222:5437447"
implementation "curse.maven:jei-238222:5525108"
implementation "curse.maven:productivebees-377897:5512587"
implementation "curse.maven:iron-furnaces-237664:5489826"
}

tasks.withType(ProcessResources).configureEach {
Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ minecraft_version=1.21
# as they do not follow standard versioning conventions.
minecraft_version_range=[1.21,1.22)
# The Neo version must agree with the Minecraft version to get a valid artifact
neo_version=21.0.10-beta
neo_version=21.0.86-beta
# The Neo version range can use any version of Neo as bounds
neo_version_range=[21.0.0-beta,)
neo_version_range=[21.0.82-beta,)
# The loader version range can only use the major version of FML as bounds
loader_version_range=[2,)

Expand All @@ -31,7 +31,7 @@ mod_name=Inventory Tweaks Refoxed
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=Apache License, Version 2.0
# The mod version. See https://semver.org/
mod_version=1.21.0-1.1.1
mod_version=1.21.0-1.1.2
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/invtweaks/InvTweaksMod.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package invtweaks;

import invtweaks.config.InvTweaksConfig;
import invtweaks.network.NetworkDispatcher;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.config.ModConfig;
import net.neoforged.fml.loading.FMLPaths;
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/invtweaks/config/InvTweaksConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ public class InvTweaksConfig {
.put("tfar.dankstorage.container.DankContainers", new ContOverride(NO_POS_OVERRIDE, NO_POS_OVERRIDE,""))
.put("mcjty.rftoolsutility.modules.crafter.blocks.CrafterContainer", new ContOverride(NO_POS_OVERRIDE, NO_POS_OVERRIDE, ""))
.put("gripe._90.megacells.menu.MEGAInterfaceMenu", new ContOverride(NO_POS_OVERRIDE, NO_POS_OVERRIDE, ""))
.put("com.direwolf20.laserio.client.screens.*", new ContOverride(NO_POS_OVERRIDE, NO_POS_OVERRIDE, ""))
.put("cofh.thermal.core.client.gui.*", new ContOverride(NO_POS_OVERRIDE, NO_POS_OVERRIDE, ""))
.put("ironfurnaces.gui.furnaces.*", new ContOverride(NO_POS_OVERRIDE, NO_POS_OVERRIDE, "0-45"))

.build();

Expand Down Expand Up @@ -250,7 +253,7 @@ public static void loadConfig(ModConfigSpec spec, Path path) {
.build();

configData.load();
spec.setConfig(configData);
spec.correct(configData);
}

public static void setPlayerCats(Player ent, Map<String, Category> cats) {
Expand Down
38 changes: 18 additions & 20 deletions src/main/java/invtweaks/events/ClientEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import invtweaks.network.PacketSortInv;
import invtweaks.util.ClientUtils;
import invtweaks.util.Sorting;
import invtweaks.util.Utils;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import net.minecraft.client.DeltaTracker;
Expand All @@ -33,6 +34,7 @@
import net.neoforged.neoforge.client.event.ScreenEvent;
import net.neoforged.neoforge.client.gui.VanillaGuiLayers;
import net.neoforged.neoforge.items.ItemHandlerHelper;
import net.neoforged.neoforge.items.wrapper.InvWrapper;
import net.neoforged.neoforge.network.PacketDistributor;

import javax.annotation.Nullable;
Expand Down Expand Up @@ -148,21 +150,23 @@ public static boolean isJEIKeyboardActive() {
@SubscribeEvent
public static void onKeyPressed(ScreenEvent.KeyPressed.Pre event) {
if (event.getScreen() instanceof AbstractContainerScreen<?> screen && !(screen instanceof CreativeModeInventoryScreen) && !(screen.getFocused() instanceof EditBox) && !isJEIKeyboardActive()) {
if (InvTweaksConfig.isSortEnabled(true)
&& KeyMappings.SORT_PLAYER.isActiveAndMatches(
InputConstants.getKey(event.getKeyCode(), event.getScanCode()))) {
if (
InvTweaksConfig.isSortEnabled(true) &&
KeyMappings.SORT_PLAYER.isActiveAndMatches(InputConstants.getKey(event.getKeyCode(), event.getScanCode()))
) {
requestSort(true, screen.getClass().getName());
}
if (InvTweaksConfig.isSortEnabled(false)
&& screensWithExtSort.contains(event.getScreen())
&& KeyMappings.SORT_INVENTORY.isActiveAndMatches(
InputConstants.getKey(event.getKeyCode(), event.getScanCode()))) {
if (
InvTweaksConfig.isSortEnabled(false) &&
screensWithExtSort.contains(event.getScreen()) &&
KeyMappings.SORT_INVENTORY.isActiveAndMatches(InputConstants.getKey(event.getKeyCode(), event.getScanCode()))
) {
requestSort(false, screen.getClass().getName());
}

Slot slot = screen.getSlotUnderMouse();
if (slot != null) {
boolean isPlayerSort = slot.container instanceof Inventory;
boolean isPlayerSort = Utils.isPlayerContainer(slot.container, screen, Minecraft.getInstance().player);;
if (InvTweaksConfig.isSortEnabled(isPlayerSort)
&& (isPlayerSort || screensWithExtSort.contains(event.getScreen()))
&& KeyMappings.SORT_EITHER.isActiveAndMatches(
Expand All @@ -182,14 +186,13 @@ public static void onKeyPressed(ScreenEvent.KeyPressed.Pre event) {
@SubscribeEvent
public static void onMouseButtonPressed(ScreenEvent.MouseButtonPressed.Pre event) {
if (event.getScreen() instanceof AbstractContainerScreen<?> screen && !(event.getScreen() instanceof CreativeModeInventoryScreen)) {
boolean isMouseActive = KeyMappings.SORT_EITHER.getKeyConflictContext().isActive()
&& KeyMappings.SORT_EITHER.matchesMouse(event.getButton());
boolean isMouseActive = KeyMappings.SORT_EITHER.getKeyConflictContext().isActive() && KeyMappings.SORT_EITHER.matchesMouse(event.getButton());
if (!isMouseActive) return;

Slot slot = screen.getSlotUnderMouse();
if (slot != null) {
boolean isPlayerSort = slot.container instanceof Inventory;
if (InvTweaksConfig.isSortEnabled(isPlayerSort)
&& (isPlayerSort || screensWithExtSort.contains(event.getScreen()))) {
boolean isPlayerSort = Utils.isPlayerContainer(slot.container, screen, Minecraft.getInstance().player);
if (InvTweaksConfig.isSortEnabled(isPlayerSort) && (isPlayerSort || screensWithExtSort.contains(event.getScreen()))) {
requestSort(isPlayerSort, screen.getClass().getName());
event.setCanceled(true); // stop pick block event
}
Expand Down Expand Up @@ -223,12 +226,7 @@ public static void renderOverlay(RenderGuiLayerEvent.Post event) {
HumanoidArm dominantHand = ent.getMainArm();
int i = Minecraft.getInstance().getWindow().getGuiScaledWidth() / 2;
int i2 = Minecraft.getInstance().getWindow().getGuiScaledHeight() - 16 - 3;
int iprime;
if (dominantHand == HumanoidArm.RIGHT) {
iprime = i + 91 + 10;
} else {
iprime = i - 91 - 26;
}
int prime = dominantHand == HumanoidArm.RIGHT ? i + 91 + 10 : i - 91 - 26;
int itemCount = IntStream.range(0, ent.getInventory().items.size()).filter(idx -> Collections.binarySearch(frozen, idx) < 0).mapToObj(ent.getInventory().items::get).filter(st -> ItemStack.isSameItemSameComponents(st, ent.getMainHandItem())).mapToInt(ItemStack::getCount).sum();

if (itemCount > ent.getMainHandItem().getCount()) {
Expand All @@ -240,7 +238,7 @@ public static void renderOverlay(RenderGuiLayerEvent.Post event) {
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();

// Minecraft.getInstance().gui.renderSlot(event.getGuiGraphics(), iprime, i2, DeltaTracker.ZERO, ent, toRender, 0);
Minecraft.getInstance().gui.renderSlot(event.getGuiGraphics(), prime, i2, DeltaTracker.ZERO, ent, toRender, 0);

RenderSystem.disableBlend();
}
Expand Down
14 changes: 5 additions & 9 deletions src/main/java/invtweaks/util/Sorting.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.Streams;
import invtweaks.InvTweaksMod;
import invtweaks.config.Category;
import invtweaks.config.ContOverride;
import invtweaks.config.InvTweaksConfig;
Expand All @@ -18,6 +19,7 @@
import net.minecraft.world.inventory.ClickType;
import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ItemStack;
import net.neoforged.neoforge.items.SlotItemHandler;
import org.apache.commons.lang3.tuple.Pair;

import java.util.*;
Expand All @@ -27,11 +29,8 @@
import java.util.stream.Stream;

public class Sorting {
private Sorting() {
// nothing to do
}

public static void executeSort(Player player, boolean isPlayerSort, String screenClass) {
InvTweaksMod.LOGGER.debug("opened screen: " + screenClass);
if (isPlayerSort) {
Map<String, Category> cats = InvTweaksConfig.getPlayerCats(player);
Ruleset rules = InvTweaksConfig.getPlayerRules(player);
Expand Down Expand Up @@ -63,11 +62,8 @@ public static void executeSort(Player player, boolean isPlayerSort, String scree
.filter(idx -> 0 <= idx && idx < cont.slots.size())
.mapToObj(cont.slots::get)
: cont.slots.stream())
.filter(slot -> !(slot.container instanceof Inventory))
.filter(
slot ->
(slot.mayPickup(player) && slot.mayPlace(slot.getItem()))
|| !slot.hasItem())
.filter(slot -> (slot instanceof SlotItemHandler || slot.container.getContainerSize() > 0) && !(slot.container instanceof Inventory))
.filter(slot -> (slot.mayPickup(player) && slot.mayPlace(slot.getItem())) || !slot.hasItem())
.collect(Collectors.toCollection(ArrayList::new));

if (player instanceof ServerPlayer serverPlayer) {
Expand Down
29 changes: 25 additions & 4 deletions src/main/java/invtweaks/util/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,24 @@

import com.google.common.base.Equivalence;
import com.google.common.collect.Streams;
import invtweaks.InvTweaksMod;
import it.unimi.dsi.fastutil.ints.IntArrays;
import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.core.component.DataComponentMap;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.Container;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ItemStack;
import net.neoforged.neoforge.items.ItemHandlerHelper;
import net.neoforged.neoforge.items.ItemStackHandler;
import net.neoforged.neoforge.items.wrapper.InvWrapper;


import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.*;
import java.util.function.Supplier;
Expand All @@ -20,10 +28,6 @@


public class Utils {
private Utils() {
// nothing to do
}

public static final Equivalence<ItemStack> STACKABLE =
new Equivalence<>()
{
Expand Down Expand Up @@ -194,4 +198,21 @@ public static List<ItemStack> condensed(Iterable<ItemStack> iterable) {
.filter(is -> !is.isEmpty())
.collect(Collectors.toCollection(ArrayList::new));
}


public static boolean isPlayerContainer(Container container, AbstractContainerScreen<?> screen, @Nullable Player player) {
Slot slot = screen.getSlotUnderMouse();
// for (int i = 0; i < container.getContainerSize(); i++) {
// InvTweaksMod.LOGGER.info("slot " + i + " contains " + container.getItem(i));
// }
if (slot != null) {
if (slot.container instanceof InvWrapper invWrapper) {
return invWrapper.getInv() instanceof Inventory;
}
if (slot.container instanceof Inventory) {
return true;
}
}
return false;
}
}
2 changes: 1 addition & 1 deletion src/main/resources/META-INF/neoforge.mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ issueTrackerURL="https://github.com/JDKDigital/InvTweaksRefoxed/issues"
type="required"
versionRange="${neo_version_range}"
ordering="NONE"
side="BOTH"
side="CLIENT"
[[dependencies.${mod_id}]]
modId="minecraft"
type="required"
Expand Down

0 comments on commit c74539d

Please sign in to comment.