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;
|
package dev.micle.totemofreviving.data;
|
||||||
|
|
||||||
|
import dev.micle.totemofreviving.item.crafting.ExtendedShapedRecipeBuilder;
|
||||||
import dev.micle.totemofreviving.setup.ModItems;
|
import dev.micle.totemofreviving.setup.ModItems;
|
||||||
|
import dev.micle.totemofreviving.setup.ModRecipes;
|
||||||
import net.minecraft.data.DataGenerator;
|
import net.minecraft.data.DataGenerator;
|
||||||
import net.minecraft.data.IFinishedRecipe;
|
import net.minecraft.data.IFinishedRecipe;
|
||||||
import net.minecraft.data.RecipeProvider;
|
import net.minecraft.data.RecipeProvider;
|
||||||
import net.minecraft.data.ShapedRecipeBuilder;
|
|
||||||
import net.minecraft.item.Items;
|
import net.minecraft.item.Items;
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
@ -18,7 +19,7 @@ public class ModRecipeProvider extends RecipeProvider {
|
|||||||
@Override
|
@Override
|
||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
protected void buildShapelessRecipes(Consumer<IFinishedRecipe> consumer) {
|
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('W', Items.WHEAT)
|
||||||
.define('|', Items.STICK)
|
.define('|', Items.STICK)
|
||||||
.define('S', Items.STRING)
|
.define('S', Items.STRING)
|
||||||
@ -29,6 +30,17 @@ public class ModRecipeProvider extends RecipeProvider {
|
|||||||
.unlockedBy("has_item", has(Items.WHEAT))
|
.unlockedBy("has_item", has(Items.WHEAT))
|
||||||
.save(consumer);
|
.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())
|
ShapedRecipeBuilder.shaped(ModItems.STRAW_CHARGE.get())
|
||||||
.define('W', Items.WHEAT)
|
.define('W', Items.WHEAT)
|
||||||
.define('E', Items.EMERALD)
|
.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;
|
package dev.micle.totemofreviving.setup;
|
||||||
|
|
||||||
import dev.micle.totemofreviving.TotemOfReviving;
|
import dev.micle.totemofreviving.TotemOfReviving;
|
||||||
import dev.micle.totemofreviving.event.UpdateRecipesEventHandler;
|
|
||||||
import net.minecraft.item.Item;
|
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.eventbus.api.IEventBus;
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
import net.minecraftforge.registries.DeferredRegister;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
@ -13,6 +12,7 @@ import net.minecraftforge.registries.IForgeRegistryEntry;
|
|||||||
|
|
||||||
public class Registration {
|
public class Registration {
|
||||||
public static final DeferredRegister<Item> ITEMS = create(ForgeRegistries.ITEMS);
|
public static final DeferredRegister<Item> ITEMS = create(ForgeRegistries.ITEMS);
|
||||||
|
public static final DeferredRegister<IRecipeSerializer<?>> RECIPE_SERIALIZERS = create(ForgeRegistries.RECIPE_SERIALIZERS);
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||||
@ -20,9 +20,8 @@ public class Registration {
|
|||||||
ITEMS.register(modEventBus);
|
ITEMS.register(modEventBus);
|
||||||
ModItems.register();
|
ModItems.register();
|
||||||
|
|
||||||
modEventBus.register(new UpdateRecipesEventHandler.ModBus());
|
RECIPE_SERIALIZERS.register(modEventBus);
|
||||||
|
ModRecipes.register();
|
||||||
MinecraftForge.EVENT_BUS.register(new UpdateRecipesEventHandler.EventBus());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <T extends IForgeRegistryEntry<T>> DeferredRegister<T> create(IForgeRegistry<T> registry) {
|
private static <T extends IForgeRegistryEntry<T>> DeferredRegister<T> create(IForgeRegistry<T> registry) {
|
||||||
|
Reference in New Issue
Block a user