GithubHelp home page GithubHelp logo

Comments (2)

TheRealWormbo avatar TheRealWormbo commented on June 30, 2024

A proposal on how to make the Agricarnation more consistent:

  • by default it assumes all blocks as candidate blocks, if they extend BushBlock (no more hard-coded exceptions here) or accept bonemeal
  • additional candidate blocks can be specified via block tag (e.g. #botania:agricarnation/growth_candidate)
  • candidate blocks are excluded if they do not support random ticking
  • additional candidate block exclusions can be defined via block tag (e.g. #botania:agricarnation/exclude)

For comparison, the current behavior:

  • block must not be a spreading grass/mycelium-type block
  • blocks are considered candidate blocks if they accept bonemeal
  • if the block extends BushBlock, but not a known subclass of that, it is excluded
  • previously there was an additional restriction on supported block materials (specifically: plant, cactus, grass, leaves, vegetable, water plant, bamboo, and bamboo sapling), but materials are no longer a thing

Examples of how this would change the affected set of vanilla blocks:

  • now boosted, but can optionally be excluded via tag:
    • netherwart (previously a "won't fix" bug: #643)
    • brown and red vanilla mushrooms (for spreading, not growing into tall version)
    • pumpkins/melons, not just their stems (there never was any bug report about those)
    • any modded crops that just happen to extend BushBlock, but not one of its previously allowed subclasses
  • still not boosted by default, but now optionally supported through tags:
    • sugarcane and cactus
    • chorus trees (chorus flowers, specifically)
    • vines (the original flat ones)
  • no longer considered (because they would fail to be boosted anyway):
    • azalea saplings
    • mangrove leaves
    • "body blocks" of bonemeal-accepting multi-block plants, such as kelp or glowberry vines (the "head block" still gets growth boosts)
  • no explicit exclusion required anymore, because even though bonemeal is accepted, random ticks are not:
    • tall flowers
    • sea pickles
    • short grass/fern
    • nether fungi
    • buried petals

To reduce frustration trying to grow weeping vines or glowberries, maybe the Agricarnation should also find the "head block" of that category of plants when it hits a "body block" in its search.

from botania.

TheRealWormbo avatar TheRealWormbo commented on June 30, 2024

Actually, this should be a more accurate set of rules to properly cover vanilla blocks and be as flexible as possible for customization:

  • three block tags: "growth candidate", "apply boost as bonemeal" (includes azalea bushes by default, and is included in the "growth canidates"), and "growth exclusion"
  • blocks extending SpreadingSnowyDirtBlock/NyliumBlock (because turns out those accept both random ticks and bonemeal), unless they are tagged as candidates, and blocks tagged for exclusion are not considered
  • a block is considered as candidate if it is tagged as such, accepts bonemeal, or extends BushBlock
  • a candidate block is accepted as growth boost target if it can be random-ticked, or if it accepts bonemeal and is tagged for bonemeal application

To balance the usually way more powerful bonemeal application, I recommend to have blocks that are eligible for it (i.e. they are tagged accordingly and actually accept bonemeal) having to pass both their native success check as well as an additional random chance to actually receive the bonemeal boost. Failing either check would still consume mana, and not give the random tick boost either.

from botania.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.