Difference between revisions of "Potions"

From Forge Community Wiki
m (Text replacement - "{{Colored box|title=Important|content=" to "{{Tip/Important|")
(Categorize with Category:Game Effects by SizableShrimp#0755)
Line 12: Line 12:
  
 
{{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.}}
 +
 +
 +
[[Category:Game Effects]]

Revision as of 23:15, 18 May 2021

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

If you want to use NBT information in your inputs (e.g. create a potion from another potion), you need to pass in an NBTIngredient instead.

Alert

BrewingRecipeRegistry is not thread-safe. It should be called within enqueueWork in the specified parallel dispatch event.