Re-add Crafting Tweaks integration
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package com.raoulvdberge.refinedstorage.integration.craftingtweaks;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
||||
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
||||
import com.raoulvdberge.refinedstorage.container.slot.grid.CraftingGridSlot;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraftforge.fml.InterModComms;
|
||||
import net.minecraftforge.fml.ModList;
|
||||
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public final class CraftingTweaksIntegration {
|
||||
private static final String ID = "craftingtweaks";
|
||||
|
||||
public static boolean isLoaded() {
|
||||
return ModList.get().isLoaded(ID);
|
||||
}
|
||||
|
||||
public static boolean isCraftingTweaksClass(Class clazz) {
|
||||
return clazz.getName().startsWith("net.blay09.mods.craftingtweaks");
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
CompoundNBT tag = new CompoundNBT();
|
||||
|
||||
tag.putString("ContainerClass", GridContainer.class.getName());
|
||||
tag.putString("ValidContainerPredicate", ValidContainerPredicate.class.getName());
|
||||
tag.putString("GetGridStartFunction", GetGridStartFunction.class.getName());
|
||||
tag.putString("AlignToGrid", "left");
|
||||
|
||||
InterModComms.sendTo(ID, "RegisterProvider", () -> tag);
|
||||
}
|
||||
|
||||
public static class ValidContainerPredicate implements Predicate<GridContainer> {
|
||||
@Override
|
||||
public boolean test(GridContainer containerGrid) {
|
||||
return containerGrid.getGrid().getGridType() == GridType.CRAFTING;
|
||||
}
|
||||
}
|
||||
|
||||
public static class GetGridStartFunction implements Function<GridContainer, Integer> {
|
||||
@Override
|
||||
public Integer apply(GridContainer containerGrid) {
|
||||
for (int i = 0; i < containerGrid.inventorySlots.size(); i++) {
|
||||
if (containerGrid.inventorySlots.get(i) instanceof CraftingGridSlot) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.integration.craftingtweaks;
|
||||
|
||||
/*
|
||||
public final class IntegrationCraftingTweaks {
|
||||
private static final String ID = "craftingtweaks";
|
||||
|
||||
public static boolean isLoaded() {
|
||||
return Loader.isModLoaded(ID);
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
CompoundNBT tag = new CompoundNBT();
|
||||
|
||||
tag.setString("ContainerClass", ContainerGrid.class.getName());
|
||||
tag.setString("ValidContainerPredicate", ValidContainerPredicate.class.getName());
|
||||
tag.setString("GetGridStartFunction", GetGridStartFunction.class.getName());
|
||||
tag.setString("AlignToGrid", "left");
|
||||
|
||||
FMLInterModComms.sendMessage(ID, "RegisterProviderV3", tag);
|
||||
}
|
||||
|
||||
public static class ValidContainerPredicate implements Predicate<ContainerGrid> {
|
||||
@Override
|
||||
public boolean apply(ContainerGrid containerGrid) {
|
||||
return containerGrid.getGrid().getGridType() == GridType.CRAFTING;
|
||||
}
|
||||
}
|
||||
|
||||
public static class GetGridStartFunction implements Function<ContainerGrid, Integer> {
|
||||
@Override
|
||||
public Integer apply(ContainerGrid containerGrid) {
|
||||
for (int i = 0; i < containerGrid.inventorySlots.size(); i++) {
|
||||
if (containerGrid.inventorySlots.get(i) instanceof SlotGridCrafting) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.container.slot.filter.FilterSlot;
|
||||
import com.raoulvdberge.refinedstorage.container.slot.filter.FluidFilterSlot;
|
||||
import com.raoulvdberge.refinedstorage.integration.craftingtweaks.CraftingTweaksIntegration;
|
||||
import com.raoulvdberge.refinedstorage.render.FluidRenderer;
|
||||
import com.raoulvdberge.refinedstorage.screen.widget.CheckBoxWidget;
|
||||
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.SideButton;
|
||||
@@ -73,8 +74,13 @@ public abstract class BaseScreen<T extends Container> extends ContainerScreen<T>
|
||||
|
||||
super.init();
|
||||
|
||||
buttons.clear();
|
||||
children.clear();
|
||||
if (CraftingTweaksIntegration.isLoaded()) {
|
||||
buttons.removeIf(b -> !CraftingTweaksIntegration.isCraftingTweaksClass(b.getClass()));
|
||||
children.removeIf(c -> !CraftingTweaksIntegration.isCraftingTweaksClass(c.getClass()));
|
||||
} else {
|
||||
buttons.clear();
|
||||
children.clear();
|
||||
}
|
||||
|
||||
sideButtonY = 6;
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import com.raoulvdberge.refinedstorage.block.*;
|
||||
import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability;
|
||||
import com.raoulvdberge.refinedstorage.container.*;
|
||||
import com.raoulvdberge.refinedstorage.container.factory.*;
|
||||
import com.raoulvdberge.refinedstorage.integration.craftingtweaks.CraftingTweaksIntegration;
|
||||
import com.raoulvdberge.refinedstorage.item.*;
|
||||
import com.raoulvdberge.refinedstorage.item.blockitem.*;
|
||||
import com.raoulvdberge.refinedstorage.loottable.ControllerLootFunctionSerializer;
|
||||
@@ -134,6 +135,10 @@ public class CommonSetup {
|
||||
LootFunctionManager.registerFunction(new PortableGridBlockLootFunctionSerializer());
|
||||
LootFunctionManager.registerFunction(new CrafterLootFunctionSerializer());
|
||||
LootFunctionManager.registerFunction(new ControllerLootFunctionSerializer());
|
||||
|
||||
if (CraftingTweaksIntegration.isLoaded()) {
|
||||
CraftingTweaksIntegration.register();
|
||||
}
|
||||
}
|
||||
|
||||
private INetworkNode readAndReturn(CompoundNBT tag, NetworkNode node) {
|
||||
|
||||
Reference in New Issue
Block a user