Skip to content

Commit

Permalink
Added JEI Plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
JackyyTV committed Jun 8, 2023
1 parent f7ecabd commit 70aaf10
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 1 deletion.
55 changes: 55 additions & 0 deletions src/main/java/jackyy/simplesponge/integration/JEIPlugin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package jackyy.simplesponge.integration;

import jackyy.simplesponge.SimpleSponge;
import jackyy.simplesponge.registry.ModItems;
import mezz.jei.api.IModPlugin;
import mezz.jei.api.JeiPlugin;
import mezz.jei.api.constants.VanillaTypes;
import mezz.jei.api.ingredients.subtypes.IIngredientSubtypeInterpreter;
import mezz.jei.api.ingredients.subtypes.UidContext;
import mezz.jei.api.registration.ISubtypeRegistration;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.energy.IEnergyStorage;
import net.minecraftforge.registries.RegistryObject;

import java.util.Optional;

@JeiPlugin
public class JEIPlugin implements IModPlugin {

@Override
public ResourceLocation getPluginUid() {
return new ResourceLocation(SimpleSponge.MODID, "jei_plugin");
}

@Override
public void registerItemSubtypes(ISubtypeRegistration registration) {
for (RegistryObject<Item> item : ModItems.ITEMS.getEntries()) {
ItemStack stack = item.get().getDefaultInstance();
if (stack.getCapability(ForgeCapabilities.ENERGY).isPresent()) {
registration.registerSubtypeInterpreter(VanillaTypes.ITEM_STACK, item.get(), INTERPRETER);
}
}
}

private static final IIngredientSubtypeInterpreter<ItemStack> INTERPRETER = (stack, context) -> {
if (context == UidContext.Ingredient && stack.hasTag()) {
Optional<IEnergyStorage> capability = stack.getCapability(ForgeCapabilities.ENERGY).resolve();
if (capability.isPresent()) {
IEnergyStorage energyStorage = capability.get();
String subtype;
if (energyStorage.getEnergyStored() == energyStorage.getMaxEnergyStored()) {
subtype = "filled";
} else {
subtype = "empty";
}
return subtype;
}
}
return IIngredientSubtypeInterpreter.NONE;
};

}
2 changes: 1 addition & 1 deletion src/main/java/jackyy/simplesponge/registry/ModItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

public class ModItems {

private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, SimpleSponge.MODID);
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, SimpleSponge.MODID);

public static final RegistryObject<Item> SPONGE_ON_A_STICK
= ITEMS.register("sponge_on_a_stick", ItemSpongeOnAStick::new);
Expand Down

0 comments on commit 70aaf10

Please sign in to comment.