/recicropal/icons/bottle_gourd_fruit.png Bottle Gourds

Bottle gourds are climbing plants that can be found in small patches in savanna biomes. They grow and spread much like vines and each blocks can bear their own fruits.

Savanna Gourd Patches
Savanna Gourd Patches

Savanna gourd patches

Bottle gourds and gourd bottles can sometimes be traded for emeralds with savanna or desert villagers.

Bottle Trades

A desert farmer villager with a listing for water-filled bottles.

/recicropal/icons/bottle_gourd_seeds.png Bottle Gourd Seeds and Crop

Bottle gourd seeds can be obtained via crafting recipe below.

They can be planted on any dirt. They don't drop their seeds when the plant block is broken.

Bottle gourd seeds can also be collected from rotten bottle gourds.

From time to time, the main plant will try to attach vines to its surrounding available blocks. These vines would also try to spread copy of themselves vertically and horizontally. The vines cannot stray too far from the main plant and they'll die out if they do.

The vines and main plant have 4 stages of growth. The final stage is indicated by the prescence of a white flower. After some time in bloom, they'll try to place their fruit in place. Destroying the vine itself in the process.

The vines has 6 sides to fill inside a block's space. If it has the bottom side and is supported by a non-full block, like trellises, and the block below the supporting block is empty, it will try to bear a hanging fruit instead. Replacing the empty space with the fruit.

/recicropal/icons/bottle_gourd.png Gourd Bottles

Gourd bottles can stack up to 16 and can be used to hold a configurable amount of fluid. By default, the amount of fluid each bottle can hold is 2000 mB or 2 standard vanilla buckets.

Gourd bottles are placeable. Retaining their fluid contents when placed. They can also be emptied via crafting.

Gourd bottles can be used like so.

    • When used on a fluid source, it will attempt to take the fluid and fill the bottle with it.
        • If it fails to fill the bottle, The player would attempt to drink the fluid inside the bottle.
    • When used on an empty space, it will attempt to place the fluid inside it.
        • Again. If it fails to place the fluid, The player would attempt to drink the fluid inside the bottle.
    • When used on a valid surface while sneaking, it will attempt to place the bottle itself.

The contents of gourd bottles are shown by their item tooltips and a graphical tooltip visible when the player is sneaking while looking at their placed blocks.

Gourd bottle blocks outputs comparator signal. Emitting the full range of redstone signal from 0 to 15.

Obtaining

Gourd bottles are mainly obtained from smoking bottle gourds as shown below.

Desert villages would sometimes have drinking wells inside them, featuring the bottles.

Drinking Well

A drinking well found in a desert village

Savanna and desert village house chests sometimes contain some number of bottles with a random amount of water inside.

By default, naturally-grown bottle gourd fruits may sometimes rot and leave behind a gourd bottle filled with a random mixture.

Filling

Gourd bottles can be filled in various ways. Fluid-containing items could be used on the bottle without sneaking to attempt transfer from them into the bottle. By default, the amount of transfer is set to one bucket or 1000 mB.

Common ways to fill fluid containers from other mods can also be used to fill gourd bottles.

Gourd bottle capabilities

As an item, gourd bottles have the IFluidHandlerItem capability.

Gourd bottle blocks also exposes the IFluidHandler capability but only from their top and bottom sides.

Vanilla milk buckets, honey bottles, and potions can also be used to fill gourd bottle blocks. Using them on a gourd bottle would empty their respective contents into the bottles.

'Fluid-handling' items

Some items may need further configuration via recipes to work as they may not be 'coded' in the common way of fluid-handling items. Some of these examples are vanilla milk buckets, honey bottles, and potions.

If an IFluidHandlerItem item is configured to have a recicropal:filling recipe, it will prioritize the recipe first.

To allow other items to be used to fill the bottle, filling recipes could be configured. The structure of a recicropal:filling recipe can be described as below.

    Filling Recipe
    root
  • type : recicropal:filling
  • conditions Predicates to achieve conditionally-loaded data.
  • ingredient A vanilla-esque item ingredient to be emptied.
  • fluid A fluid definition to fill the bottle with.
    • Either a tag or fluid but not both.
      • tag If this is set, it will find the first fluid registered that has the tag specified.
      • fluid A fluid ID.
    • amount The amount of fluid to be filled. Defaults to zero if not specified.
    • nbt The NBT to attach to the fluid filled structured as-is. Optional.
  • result A serialized ItemStack representing the item returned after its contents are emptied e.g. glass bottles.
    • id The item's ID. Must be specified in order to work.
    • Count The number of items. Must be specified in order to work.
    • nbt The item's NBT. Optional.
  • process A string value for a special process's ID. Currently, only recicropal:potion exists and should only be used for potion items.
    If this property exists, the recipe will ignore all other properties.

Milk, Honey, and Potion Fluid

They are what milk buckets, honey bottles, and potions contain respectively. They cannot be placed in the world.

Potion fluids

Potion fluids contains all of the potion item's NBT that is considered necessary, including potion ID, effects, and color.

To appropriately handle other mod's potion fluids, fluid conversion might be needed. Check out current integrations to see the mods that have built-in support.

Fluid Conversion

For integration purposes, fluids inserted into the bottle can be converted into other fluids. This allows certain fluids to be handled properly when interacted with the bottle.

By default, every milk under the tag #forge:milk would be converted into default milk. Note that this may cause complications when there are other kinds of milk that the packdev may want to preserve.

When there's already any fluid inside the bottle and filling is attempted, fluid mixing would be attempted.

Fluid conversion recipes' structure can be described as following.

    Fluid Conversion Recipe
    root
  • type : recicropal:fluid_conversion
  • conditions Predicates to achieve conditionally-loaded data.
  • from A fluid ingredient to convert.
    • Either a tag or fluid but not both.
      • tag A fluid tag to match.
      • fluid A fluid ID.
  • to An ID specifying the fluid to convert the input fluid into.
  • function A function ID to use. If not specified, it would only swap the fluid types. Currently hardcoded and only available for certain mods for built-in integration. Read more here.
  • ingress A flag that specifies the direction of flow. Currently does nothing.

Pouring out Fluids

Similarly, there are various mechanisms that allow the fluid inside the bottle to be extracted. Common ways to empty fluid containers from other mods can be used to extract fluid from gourd bottles. Fluid container items can also take out the stored fluid when used on the bottle while sneaking.

By default, glass bottles can be used to extract water, potion, and honey from gourd bottle blocks. Vanilla buckets can also be used to extract milk from a gourd bottle.

To allow other items to be used to extract fluid from the bottle, pouring recipes could be configured. The structure of a recicropal:pouring recipe can be described as below.

    Pouring Recipe
    root
  • type : recicropal:pouring
  • conditions Predicates to achieve conditionally-loaded data.
  • ingredient A vanilla-esque item ingredient to be filled.
  • fluid A fluid definition to fill the item with.
    • Either a tag or fluid but not both.
      • tag If this is set, it will match for fluids with the tag specified.
      • fluid A specific fluid ID to match.
    • amount The amount of fluid to be poured out. Defaults to the drinkingMaxAmount config if not specified.
    • nbt An optional NBT structured as-is. If this is specified, the recipe would sensitively match for the NBT. If not, the recipe woould ignore the fluid's NBTs.
  • result A serialized ItemStack representing the item returned after it has been filled with the fluid e.g. honey bottles.
    • id The item's ID. Must be specified in order to work.
    • Count The number of items. Must be specified in order to work.
    • nbt The item's NBT. Optional.
  • process A string value for a special process's ID. Currently, only recicropal:potion exists and should only be used for potion items.
    If this property exists, the recipe will ignore all other properties.

/recicropal/icons/bottle_gourd_seeds.png Rotting

Naturally-grown bottle gourd fruits may rot from time to time. Turning into gourd bottles that drop seeds when broken. These bottles may contain mixtures with interesting compositions of potion effects.

/recicropal/icons/glamorous_gourd.png Glamorous Gourd

Bottle gourd fruits can be crafted into glamorous gourds as shown below.

Glamorous gourds are currently used only for brewing Potion of Revitalization which gives health boost, regeneration, and instant healing.