Made Straw totem use new Extended Recipe builder. Created ModRecipes and registering new TOTEM_RECIPE serializer. Removed old events from Registration and added RECIPE_SERIALIZERS. Created new TotemRecipe for totem items.
This commit is contained in:
@ -1,10 +1,11 @@
|
||||
package dev.micle.totemofreviving.data;
|
||||
|
||||
import dev.micle.totemofreviving.item.crafting.ExtendedShapedRecipeBuilder;
|
||||
import dev.micle.totemofreviving.setup.ModItems;
|
||||
import dev.micle.totemofreviving.setup.ModRecipes;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.data.IFinishedRecipe;
|
||||
import net.minecraft.data.RecipeProvider;
|
||||
import net.minecraft.data.ShapedRecipeBuilder;
|
||||
import net.minecraft.item.Items;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
@ -18,7 +19,7 @@ public class ModRecipeProvider extends RecipeProvider {
|
||||
@Override
|
||||
@ParametersAreNonnullByDefault
|
||||
protected void buildShapelessRecipes(Consumer<IFinishedRecipe> consumer) {
|
||||
ShapedRecipeBuilder.shaped(ModItems.STRAW_TOTEM.get())
|
||||
ExtendedShapedRecipeBuilder.shaped(ModRecipes.TOTEM_RECIPE.get(), ModItems.STRAW_TOTEM.get())
|
||||
.define('W', Items.WHEAT)
|
||||
.define('|', Items.STICK)
|
||||
.define('S', Items.STRING)
|
||||
@ -29,6 +30,17 @@ public class ModRecipeProvider extends RecipeProvider {
|
||||
.unlockedBy("has_item", has(Items.WHEAT))
|
||||
.save(consumer);
|
||||
/*
|
||||
ShapedRecipeBuilder.shaped(ModItems.STRAW_TOTEM.get())
|
||||
.define('W', Items.WHEAT)
|
||||
.define('|', Items.STICK)
|
||||
.define('S', Items.STRING)
|
||||
.define('N', Items.IRON_NUGGET)
|
||||
.pattern("NSN")
|
||||
.pattern("NWN")
|
||||
.pattern("N|N")
|
||||
.unlockedBy("has_item", has(Items.WHEAT))
|
||||
.save(consumer);
|
||||
|
||||
ShapedRecipeBuilder.shaped(ModItems.STRAW_CHARGE.get())
|
||||
.define('W', Items.WHEAT)
|
||||
.define('E', Items.EMERALD)
|
||||
|
@ -0,0 +1,36 @@
|
||||
package dev.micle.totemofreviving.item.crafting;
|
||||
|
||||
import dev.micle.totemofreviving.config.Config;
|
||||
import dev.micle.totemofreviving.item.StrawTotemItem;
|
||||
import dev.micle.totemofreviving.setup.ModRecipes;
|
||||
import net.minecraft.inventory.CraftingInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.IRecipeSerializer;
|
||||
import net.minecraft.item.crafting.ShapedRecipe;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TotemRecipe extends ExtendedShapedRecipe {
|
||||
public TotemRecipe(ShapedRecipe recipe) {
|
||||
super(recipe);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IRecipeSerializer<?> getSerializer() {
|
||||
return ModRecipes.TOTEM_RECIPE.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matches(CraftingInventory inventory, World world) {
|
||||
if (!Config.Server.getStrawTotemConfig().getIsEnabled()) {
|
||||
if (getResultItem().getItem() instanceof StrawTotemItem) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return getBaseRecipe().matches(inventory, world);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack assemble(CraftingInventory inventory) {
|
||||
return getResultItem();
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package dev.micle.totemofreviving.setup;
|
||||
|
||||
import dev.micle.totemofreviving.item.crafting.ExtendedShapedRecipe;
|
||||
import dev.micle.totemofreviving.item.crafting.TotemRecipe;
|
||||
import net.minecraft.item.crafting.IRecipeSerializer;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
|
||||
public class ModRecipes {
|
||||
public static final RegistryObject<IRecipeSerializer<?>> TOTEM_RECIPE =
|
||||
Registration.RECIPE_SERIALIZERS.register("totem_recipe", () -> ExtendedShapedRecipe.Serializer.basic(TotemRecipe::new));
|
||||
|
||||
public static void register() {}
|
||||
}
|
@ -1,9 +1,8 @@
|
||||
package dev.micle.totemofreviving.setup;
|
||||
|
||||
import dev.micle.totemofreviving.TotemOfReviving;
|
||||
import dev.micle.totemofreviving.event.UpdateRecipesEventHandler;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraft.item.crafting.IRecipeSerializer;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
@ -13,6 +12,7 @@ import net.minecraftforge.registries.IForgeRegistryEntry;
|
||||
|
||||
public class Registration {
|
||||
public static final DeferredRegister<Item> ITEMS = create(ForgeRegistries.ITEMS);
|
||||
public static final DeferredRegister<IRecipeSerializer<?>> RECIPE_SERIALIZERS = create(ForgeRegistries.RECIPE_SERIALIZERS);
|
||||
|
||||
public static void register() {
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
@ -20,9 +20,8 @@ public class Registration {
|
||||
ITEMS.register(modEventBus);
|
||||
ModItems.register();
|
||||
|
||||
modEventBus.register(new UpdateRecipesEventHandler.ModBus());
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(new UpdateRecipesEventHandler.EventBus());
|
||||
RECIPE_SERIALIZERS.register(modEventBus);
|
||||
ModRecipes.register();
|
||||
}
|
||||
|
||||
private static <T extends IForgeRegistryEntry<T>> DeferredRegister<T> create(IForgeRegistry<T> registry) {
|
||||
|
Reference in New Issue
Block a user