Skip to content

Commit

Permalink
Arcane archive support (#82)
Browse files Browse the repository at this point in the history
* Arcane Archives: Radiant Chest support

* simplify InfinitySlotWrapper using FixedLimitSlot
  • Loading branch information
ZZZank authored Jan 27, 2025
1 parent 60a8f0b commit d0c7773
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 13 deletions.
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ dependencies {
compileOnly rfg.deobf("curse.maven:industrial-renewal-299849:3340876")
compileOnly rfg.deobf("curse.maven:rftools-224641:2861573")
compileOnly rfg.deobf("curse.maven:mcjtylib-233105:2745846")

compileOnly rfg.deobf("curse.maven:arcane-archives-311357:3057332")
//[IronBackpacks-1.12.2-3.0.8-12](https://www.curseforge.com/minecraft/mc-mods/iron-backpacks/files/2564573)
compileOnly(rfg.deobf("curse.maven:iron-backpacks-227049:2564573"))
}
18 changes: 18 additions & 0 deletions src/main/java/com/cleanroommc/bogosorter/compat/DefaultCompat.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
import c4.conarm.common.inventory.ContainerKnapsack;
import cassiokf.industrialrenewal.gui.container.ContainerStorageChest;
import codechicken.enderstorage.container.ContainerEnderItemStorage;
import com.aranaira.arcanearchives.config.ConfigHandler;
import com.aranaira.arcanearchives.inventory.ContainerRadiantChest;
import com.aranaira.arcanearchives.inventory.slots.SlotExtended;
import com.brandon3055.draconicevolution.inventory.ContainerDraconiumChest;
import com.cleanroommc.bogosorter.BogoSorter;
import com.cleanroommc.bogosorter.ShortcutHandler;
Expand Down Expand Up @@ -464,6 +467,21 @@ public static void init(IBogoSortAPI api) {
api.addGenericCompat(ContainerKnapsack.class);
}

if (Loader.isModLoaded("arcanearchives")) {
api.addCompat(ContainerRadiantChest.class, (chest, builder) -> {
var slots = new ArrayList<ISlot>();
for (Slot slot : chest.inventorySlots) {
if (slot instanceof SlotExtended) {
/**
* @see com.aranaira.arcanearchives.inventory.handlers.ExtendedItemStackHandler#getSlotLimit(int)
*/
slots.add(new FixedLimitSlot(slot, 64 * ConfigHandler.serverSideConfig.RadiantMultiplier));
}
}
builder.addSlotGroup(slots, 9);
});
}

if (Loader.isModLoaded("ironbackpacks")) {
api.addGenericCompat(gr8pefish.ironbackpacks.container.ContainerBackpack.class);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.cleanroommc.bogosorter.compat;

import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;

/**
* @author ZZZank
*/
public class FixedLimitSlot extends SlotDelegate {
private final int sizeLimit;

public FixedLimitSlot(Slot slot, int sizeLimit) {
super(slot);
if (sizeLimit <= 0) {
throw new IllegalArgumentException(String.format(
"size limit '%s' not valid, must be positive number",
sizeLimit
));
}
this.sizeLimit = sizeLimit;
}

@Override
public int bogo$getItemStackLimit(ItemStack itemStack) {
return sizeLimit;
}

@Override
public int bogo$getMaxStackSize(ItemStack itemStack) {
return sizeLimit;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
import org.jetbrains.annotations.NotNull;
import wanion.avaritiaddons.block.chest.infinity.InfinitySlot;

public class InfinitySlotWrapper extends SlotDelegate {
public class InfinitySlotWrapper extends FixedLimitSlot {

public final InfinitySlot infinitySlot;

public InfinitySlotWrapper(InfinitySlot slot) {
super(slot);
super(slot, Integer.MAX_VALUE);
this.infinitySlot = slot;
}

Expand All @@ -26,16 +26,6 @@ public InfinitySlotWrapper(InfinitySlot slot) {
return this.infinitySlot.getInfinityMatching().getStack();
}

@Override
public int bogo$getMaxStackSize(ItemStack itemStack) {
return Integer.MAX_VALUE;
}

@Override
public int bogo$getItemStackLimit(@NotNull ItemStack stack) {
return Integer.MAX_VALUE;
}

@Override
public boolean bogo$isItemValid(ItemStack stack) {
return true;
Expand Down

0 comments on commit d0c7773

Please sign in to comment.