Skip to content

Commit

Permalink
Update 1.21-notes.md
Browse files Browse the repository at this point in the history
A whole lot of enums used as variant/style presets should probably go away. Also, nether variants of pasture seeds and nether behavior of floral fertilizer could be a thing.
  • Loading branch information
TheRealWormbo authored Jun 4, 2024
1 parent 9f60d2f commit 50d6a7c
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions doc/1.21-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,21 @@
* Flattern certain block entity attributes or block properties into block types
* mana spreader cover colors (to be able to tag them as `#c:dyed` and `#minecraft:dampens_vibrations`)
* mana pool dye colors (maybe even turn "fabulous" into a separate "color" somehow?)
* Get rid of some enum-based behavioral changes:\
(A lot of the enum preset variant approaches can probably convert the enum type to a record type, if they aren't outright replaced by different approaches.)
* Luminizer types should be subclasses
* Grass types should probably just be subclasses of `SpreadingSnowyDirtBlock`
* Spark augment types should be identified by item type
* Crafty Crate patterns are already translated from and to booleans per slot, maybe the slot configuration should not be restricted, allowing data packs to provide additiuonal flexibility here
* `OptionalDyeColor` can go away if mana pool colors are flattened into block types
* Mana pool variants (diluted, default size, or creative) should be subclasses, not enum-switched properties (fabulous should probably be a color variant)
* Mana spreader variants should not be stored as enum reference, but as presets (including flags for redstone trigger behavior and rotating color rendering)
* Stew effects for mystical flowers should not be defined in a private `DyeColor` switch referenced within the `BotaniaFlower` constructor
* Platform block types should be separate subclasses instead of using a variant enum to hard-code the existing types
* Natura pylon should be a separatre subclass, and pylon type variants should not be enum references
* Figure out if there's an alternative to the variant enum and massive switch cases in `CosmeticBaubleItem`
* Horn/drum variants should be subclasses instead of having a type/variant enum that is being switched over

This comment has been minimized.

Copy link
@williewillus

williewillus Jun 5, 2024

Member

is there anything motivating widespread de-enumification? I tend to find subclasses clunkier and give rise to clunkier code as people start adding special case overrides and stuff

* Elementium armor pieces (other than helmet) could be merged into `ElementiumArmorItem` with an additional constructor parameter for the pixie spawn chance (instead of duplicating the attribute modifier logic)

### Feature candidates (potentially breaking changes)
* nice-to-have Patchouli features we could use, that are yet to be merged:
Expand Down Expand Up @@ -80,3 +95,4 @@
* maybe add data-driven Orechid configurations to replace hard-coded GoG changes (mana cost per input item, operation speed)
* GoG could eventually become a data pack instead of having all kinds of exceptions hard-coded into Botania
* Armadillo: add it to Cocoon of Caprice as rare spawn, maybe find something to do with its scutes
* Nether variants/behavior for pasture seed variants (either reuse existing seed types or make new ones to make nylium) and floral fertilizer (spawn mushrooms on nylium)

0 comments on commit 50d6a7c

Please sign in to comment.