Botania Documentation

repository·1.20.x·Indexed 23 days ago

https://github.com/vazkiimods/botania

A Minecraft tech mod themed around natural magic. This documentation covers installation of the Garden of Glass skyblock mode, Gradle dependency configuration for Forge development, porting requirements for version 1.21 (including Java 21 and item components), and architectural details regarding the Xplat cross-platform module and Forge compatibility layer.

Tokens
8.6K
Snippets
4
Records
54
Agent score
80%

What's inside Botania

  1. Botania Flower Character Profiles

    1.20.x
    This document provides detailed character profiles for the 'Botania Flower Characters' (formerly known as 'Flowersonas'). Each profile includes the character's personality traits, gender identity, physical symbols, likes, and dislikes, serving as lore for the project's character-driven elements.
  2. What is the Xplat submodule?

    1.20.x

    The Xplat (cross-platform) submodule contains all Botania code designed to be shared between different mod loaders, specifically Forge and Fabric. It is functionally equivalent to what other multi-loader projects might call a "Common" module, but specifically refers to cross-loader compatibility rather than client/server code sharing.

    To handle cases where shared code must perform loader-specific actions, the project uses the XplatAbstractions interface. This interface is implemented by the respective Forge and Fabric submodules, allowing the Xplat code to call into loader-specific logic through these abstractions.

  3. Replace Enum-based behavior with Subclasses or Records

    1.20.x

    To reduce massive switch cases and improve type safety, several enum-based systems are being refactored into subclasses or record types:

    FeatureNew Implementation Approach
    Luminizer typesSubclasses
    Grass typesSubclasses of SpreadingSnowyDirtBlock
    Spark augment typesIdentified by item type
    Mana pool variantsSubclasses (diluted, default size, creative)
    Natura pylonSeparate subclass
    Horn/drum variantsSubclasses
    Elementium armorMerged into ElementiumArmorItem with constructor parameter for pixie spawn chance
  4. Character Profile: Exoflame

    1.20.x

    Exoflame

    Exothermic and Exuberant Ear

    • Gender: Tastefully done eyeliner that renders their features extra androgynous
    • Physical symbols: a party hat, but specifically the one from OSRS
    • Likes: Meeting new people, helping friends in need, Endoflame
    • Dislikes: When hangout plans fall through

    Exoflame is a social butterfly and a trusted friend who actively plans social gatherings and provides thoughtful support to others. They are the sibling of the introverted Endoflame.

  5. How Xplat code is distributed in loader-specific builds

    1.20.x

    When building Forge or Fabric specific artifacts, the Xplat module's sources are substituted directly into the loader-specific project (e.g., Xplat/src contents are treated as if they were in Forge/src or Fabric/src).

    For end-users (players and modders), the resulting JARs are indistinguishable from standard loader-specific mods. The code from Xplat included in these JARs is remapped to Intermediary/SRG just like any other part of the mod.

  6. Character Profile: Agricarnation

    1.20.x

    Agricarnation

    Guided Carnation Adrift in the Sea of Life

    • Gender: Fluid
    • Physical symbols: Composter
    • Likes: Self-improvement books
    • Dislikes: Not being motivated

    Agricarnation was a high-achieving student who struggled with the lack of external validation in adulthood. They often struggle with motivation and spend time pondering the purpose of life through self-help literature.

  7. How Garden of Glass works

    1.20.x
    Garden of Glass is a specialized configuration of Botania designed for skyblock playstyles. It does not contain independent Java code; instead, it functions as a 'dressed-up datapack' that provides specific recipe overrides and data changes. All functional code execution is handled by the base Botania mod.
  8. Understand the Forge module in Botania

    1.20.x

    The Forge module is the dedicated layer within Botania for Minecraft Forge compatibility. It encapsulates all Forge-specific logic, including:

    • Event registrations
    • Hooks
    • Integrations with other Forge mods
    • Mixins specifically targeting Forge environments

    Developers looking to understand how Botania interacts with the Forge ecosystem or how to implement Forge-specific extensions should focus on this module.

  9. Character Profile: Labellia

    1.20.x

    Labellia

    Archivist of Leaves and Lore

    • Gender: Book (they/them)
    • Physical symbols: Brain
    • Likes: Physical media (books, CD's, tapes, game cartridges, etc.), Munchdew
    • Dislikes: DRM, closed-access scientific journals, subscription services

    Labellia is an expert librarian who developed the 'Munchdewey Decimal System' to organize knowledge. They are a strong advocate for physical media and true ownership of content to combat the loss of digital access.

  10. Character Profile: Rannuncarpus

    1.20.x

    Rannuncarpus

    Handy and dexterous limbs

    • Gender: Removed -- it was only holding them back
    • Physical symbols: Toy slap hands
    • Likes: Piano, building castles and other large structures in Minecraft
    • Dislikes: Getting cold hands before work

    Rannuncarpus is a highly skilled professional pianist and electronics repair technician, though they can be surprisingly clumsy in their private life.