BREAKING CHANGES IS INCLUDED
Gameplay:
- Add elemental soaking, which allows players to transform a block near an elemental stone into another.
- Ritual recipe can upgrade enchantments of items.
- Add sound effects for recipes.
- Some directories are renamed/moved, you may need to reset config to make it work.
- Modify some of the recipes.
- Elemental liquid buckets are renamed from "xxx_bucket" to "bucket_xxx", may result in item-missing.
- Elemental items are renamed from "elemental_xxx" to "gem_xxx", may result in item-missing.
Dev:
- (Modify) Generator API
- PackHandler is less bound to this mod and can be instantiated & registered anywhere. See example.
- Almost everything is generated via Generator API now. Including crops and elements' recipes, tags, lang, item & block models, etc.
- Generator files are now more generically formatted and can be compiled into JSON
with DgCompiler.
A generator file should be ended with
.cdg
(abbreviated from "croparia data generator"). - The registry to be iterated is now specifiable via
@registry={id}
. See example and available built-in registries. - If you want to add your own built-in generators in your mod, place your
.cdg
files undersrc/main/resources/data-generators/{namespace}/{path}/
so that Croparia will try move them under{packhandler_root}/generators
(Non-override). Namespace and path are derived from the id of aPackHandler
. - 3 generator types are provided:
croparia:default
(default),croparia:composite
andcroparia:lang
, can be specified via@type={type}
.
- (Modify) Element API
- Automatically register bucket, fluid, potion and liquid block when instantiating an element. See usage.
- Supports Generator API.
- (Modify) Crop API
- File format is renewed.
- Crop type is only used to specify the texture of crops, and is not limited to a set of values.
- Supports Generator API.
- (Modify) Recipe API
- Now use custom recipe entries that support
SlotDisplay
to provide better consistency of recipe format. TypedSerializer
andDisplayableRecipe
allow developers to handle registries in a more generic way. See example.
- Now use custom recipe entries that support
- (Modify) Recipe Wizard
- Support custom recipe wizard templates located at
{pack_path}/recipe_wizard/
, using the format of.cdg
. - Match specific template via block pointed with
@block={block_input}
.
- Support custom recipe wizard templates located at
- (New) Json API
- Used to conveniently build JSON via Java. See example.
- (New) Codec API
- Allows extending codecs
- Allows multiple codecs for 1 field name, or multiple field names for 1 codec.
TODO:
- Complete recipe wizard templates.
- fix recipe error in dedicated server
- Change injection points of datapack gen
- Add compat crops
- Add tags for elematilius related
- Add dedicated recipe for dragon egg seed
- Prefill data generator "crop_block_loot_table" with extra pool, users may edit
roll
to let it drop extra seeds (clearconfig/croparia/generators/crop_block_loot_table
and reload if not present) - Fix greenhouse placement
- Fix botanypots generator (clear
config/croparia/generators/botanypots.crop
to make it effective) - Data generator do not remove indents now
- Fix typo in CreateCommand
- Add more compat crops
- Fix generated textures not working on 1.21.1
- Fix null value cannot be set to crop type in
CropModifier
- Optimize command syntax for
/croparia create
- Remove redundant translations
- Crop with invalid name will not be registered