Views
Actions
Difference between revisions of "Potions"
(Inital Import dokuwiki) |
m (Text replacement - "{{Colored box|title=Important|content=" to "{{Tip/Important|") |
||
| Line 9: | Line 9: | ||
Brewing Recipes can be added using <code>BrewingRecipeRegistry::addRecipe</code>. The most common constructor takes in an <code>Ingredient</code> input, an <code>Ingredient</code> reactant, and an <code>ItemStack</code> output. This can be registered during <code>FMLCommonSetupEvent</code>. | Brewing Recipes can be added using <code>BrewingRecipeRegistry::addRecipe</code>. The most common constructor takes in an <code>Ingredient</code> input, an <code>Ingredient</code> reactant, and an <code>ItemStack</code> output. This can be registered during <code>FMLCommonSetupEvent</code>. | ||
| − | {{ | + | {{Tip/Important|If you want to use NBT information in your inputs (e.g. create a potion from another potion), you need to pass in an <code>NBTIngredient</code> instead.}} |
{{Colored box|title=Alert|content=<code>BrewingRecipeRegistry</code> is '''not''' thread-safe. It should be called within <code>enqueueWork</code> in the specified parallel dispatch event.}} | {{Colored box|title=Alert|content=<code>BrewingRecipeRegistry</code> is '''not''' thread-safe. It should be called within <code>enqueueWork</code> in the specified parallel dispatch event.}} | ||
Revision as of 22:02, 20 December 2020
A Potion is simply a list of Effects to be applied when used. Each Potion gets applied to every Items#POTION, Items#SPLASH_POTION, Items#LINGERING_POTION, and Items#TIPPED_ARROW. Like effects, potions need to be registered.
Creating a Potion
A Potion requires a passed in list of EffectInstances to apply to the player when the potion is "consumed". There is also a nullable parameter called baseName that can be set if you would like to use the same name for multiple potions (e.g. a SWIFTNESS and LONG_SWIFTNESS entry can be both swiftness potions).
Adding a Brewing Recipe
Brewing Recipes can be added using BrewingRecipeRegistry::addRecipe. The most common constructor takes in an Ingredient input, an Ingredient reactant, and an ItemStack output. This can be registered during FMLCommonSetupEvent.
Important
NBTIngredient instead.Alert
BrewingRecipeRegistry is not thread-safe. It should be called within enqueueWork in the specified parallel dispatch event.