修复药水配方问题
This commit is contained in:
parent
f0642bb279
commit
6258da944c
3 changed files with 58 additions and 2 deletions
|
@ -62,7 +62,7 @@ public class Mod {
|
||||||
ModEntities.REGISTRY.register(bus);
|
ModEntities.REGISTRY.register(bus);
|
||||||
ModMobEffects.REGISTRY.register(bus);
|
ModMobEffects.REGISTRY.register(bus);
|
||||||
ModParticleTypes.REGISTRY.register(bus);
|
ModParticleTypes.REGISTRY.register(bus);
|
||||||
ModPotion.POTIONS.register(bus);
|
ModPotions.POTIONS.register(bus);
|
||||||
ModMenuTypes.REGISTRY.register(bus);
|
ModMenuTypes.REGISTRY.register(bus);
|
||||||
ModVillagers.register(bus);
|
ModVillagers.register(bus);
|
||||||
ModRecipes.RECIPE_SERIALIZERS.register(bus);
|
ModRecipes.RECIPE_SERIALIZERS.register(bus);
|
||||||
|
|
|
@ -8,7 +8,7 @@ import net.neoforged.neoforge.registries.DeferredHolder;
|
||||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class ModPotion {
|
public class ModPotions {
|
||||||
public static final DeferredRegister<Potion> POTIONS = DeferredRegister.create(BuiltInRegistries.POTION, Mod.MODID);
|
public static final DeferredRegister<Potion> POTIONS = DeferredRegister.create(BuiltInRegistries.POTION, Mod.MODID);
|
||||||
|
|
||||||
public static final DeferredHolder<Potion, Potion> SHOCK = POTIONS.register("superbwarfare_shock",
|
public static final DeferredHolder<Potion, Potion> SHOCK = POTIONS.register("superbwarfare_shock",
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.atsuishio.superbwarfare.recipe;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModPotions;
|
||||||
|
import com.momosoftworks.coldsweat.util.item.PotionUtils;
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
|
import net.minecraft.world.item.alchemy.Potion;
|
||||||
|
import net.minecraft.world.item.alchemy.Potions;
|
||||||
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
|
import net.neoforged.neoforge.common.brewing.BrewingRecipe;
|
||||||
|
import net.neoforged.neoforge.common.brewing.IBrewingRecipe;
|
||||||
|
import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@EventBusSubscriber(modid = Mod.MODID)
|
||||||
|
public class ModPotionRecipes {
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void register(RegisterBrewingRecipesEvent event) {
|
||||||
|
ItemStack water = potion(Potions.WATER);
|
||||||
|
ItemStack shock = potion(ModPotions.SHOCK);
|
||||||
|
ItemStack strongShock = potion(ModPotions.STRONG_SHOCK);
|
||||||
|
ItemStack longShock = potion(ModPotions.LONG_SHOCK);
|
||||||
|
|
||||||
|
event.getBuilder().addRecipe(createRecipe(Ingredient.of(water), Ingredient.of(Items.LIGHTNING_ROD), shock));
|
||||||
|
event.getBuilder().addRecipe(createRecipe(Ingredient.of(shock), Ingredient.of(Items.GLOWSTONE_DUST), strongShock));
|
||||||
|
event.getBuilder().addRecipe(createRecipe(Ingredient.of(shock), Ingredient.of(Items.REDSTONE), longShock));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ItemStack potion(Holder<Potion> potion) {
|
||||||
|
return PotionUtils.setPotion(Items.POTION.getDefaultInstance(), potion);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IBrewingRecipe createRecipe(Ingredient input, Ingredient ingredient, ItemStack output) {
|
||||||
|
return new BrewingRecipe(input, ingredient, output) {
|
||||||
|
@Override
|
||||||
|
public boolean isInput(@NotNull ItemStack stack) {
|
||||||
|
ItemStack[] matchingStacks = input.getItems();
|
||||||
|
return matchingStacks.length == 0 ? stack.isEmpty() : Arrays.stream(matchingStacks).anyMatch((itemstack) -> ItemStack.isSameItemSameComponents(itemstack, stack));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isIngredient(@NotNull ItemStack stack) {
|
||||||
|
ItemStack[] matchingStacks = ingredient.getItems();
|
||||||
|
return matchingStacks.length == 0 ? stack.isEmpty() : Arrays.stream(matchingStacks).anyMatch((itemstack) -> ItemStack.isSameItemSameComponents(itemstack, stack));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue