## 6.0.1
- fix: major random block ticking fixes
## 6.0.0
- Merge pull request [#87](https://github.com/Snownee/Lychee/issues/87) from SettingDust/1.21-fabric
- fix: remove text shadow on time
- refactor(jei): remove extra height for recipes
- refactor(jei): move the info rect
- fix(jei): failed to add block ingredients
- fix(jei): correct the fusing tnt size
- fix(jei): apply the offset of screen elements
- chore: remove unused files
- fix: avoid duplicate categories in recipe viewer
- refactor: move the recipe type init into the types registration
- feat(jei): make the game runnable
- feat(jei): port all categories and icons
- feat(jei): port various categories
- feat(jei): port `BlockCrushingRecipeCategory`
- feat: simply the category
- refactor: use TriState from Kiwi
- port: jei integration part 2
- Merge pull request [#86](https://github.com/Snownee/Lychee/issues/86) from SettingDust/1.21-fabric
- chore: start for JEI porting
- chore: prefer `WrapOperation`
- feat: port to 1.21
- chore: delete and rename
- chore: IsOffCooldown -> IsOffItemCooldown
- Merge pull request [#85](https://github.com/Snownee/Lychee/issues/85) from SettingDust/1.21-fabric
- feat: IsOffCooldown
- chore: remove unused codec
- chore: prefer var int for stream codec
- feat: use shaped's codec for syncing pattern
- feat: add stream codec for recipes
- chore: clean up actions' stream codec
- fix: prefer the any than air
- feat: the missing tag translations
- feat: yaml recipes
- chore: :fire: remove the unused util
- fix: correct the logic of building cache
- feat: add post actions stream codec to common properties
- feat: add stream codec for `AnvilCraftingRecipe`
- fix: filter out special recipes
- feat: target convention tags api v2
- Merge pull request [#82](https://github.com/Snownee/Lychee/issues/82) from SettingDust/1.21-fabric
- fix: make the key dispatched map working
- chore: rename kiwi util to KUtil
- chore: bump minecraft to 1.20.6
- chore: bump minecraft to 1.20.5
- fix: remove main hand check since MC will invoke off hand if main hand is pass
- Merge pull request [#70](https://github.com/Snownee/Lychee/issues/70) from SettingDust/feature/hug-the-codec
- chore: disable REI runtime for running on 1.20.5
- chore: bump minecraft to 1.20.5 pre4
- chore: fabric recipe api interface injection isn't working
- refactor: remove compact list codec
- feat: 'contextual' -> 'if'
- improve: codecs, part 1
- feat: port to 1.20.5 pre3
- feat: update fabric api
- feat: port to 1.20.5 pre1
- refactor: use `BlockPredicateExtensions.isAny`
- chore: remove `hashCode` and `equals`
- fix(recipes): fix invalid `matches`
- refactor: avoid optional for block predicate
- chore: small tweaks to the build script
- fix: missing default renderer for actions
- feat: `hide` now is a common property in actions
- refactor: re-implement recipe comparators
- fix: data gen
- feat: specify item to cool down in AddItemCooldown action
- improve: some codecs
- improve: remove the random position offset when spawning item entity
- feat: VisualOnlyComponentsIngredient
- fix: the `always_true` ingredient type does require testing
- improve: cache Level in LycheeContext
- refactor: BlockPredicateExtensions string parsing
- fix: recipes
- feat: avoid tag key in block predicate
- fix: move `loadCatalystsInfo` to `PostActionRenderer` for avoiding load client class
- feat: add displays for anvil crafting and shaped crafting
- fix: info badge position in block exploding category
- fix: the info rect calc is wrong
- fix: use the correct display height
- fix: use max value & check if the min equals to max
- fix
- chore: remove lycheev
- chore: disable recipes in lycheev
- improve: show the conditions for catalysts
- improve: do not show prevent default description in tooltip if there are conditions in the action (close [#71](https://github.com/Snownee/Lychee/issues/71))
- feat: tweak the block lighting
- feat: rewrite the display for list holder since the value mainly use in tooltips that can't hover
- fix: remove underscore in path
- feat: showing display name instead of key for difficulties
- fix: avoid calling architectury methods
- fix: adapt to u/v scale in latest MC
- chore: cleanup code
- fix: add item inside icon & fix block interaction ingredients
- feat: add `DripstoneRecipeCategory`
- feat: add `ItemInsideRecipeCategory`
- feat: add `BlockInteractingRecipe` and `ItemBurningRecipe`
- feat: add `BlockExplodingRecipe` category
- feat: register workstation for `LightningChannelingRecipe`, `ItemExplodingRecipe`
- feat: add `ItemExplodingRecipe` category
- feat: add `LightningChannelingRecipe` category
- refactor: use interface for LycheeCategory
- feat: port ItemShapelessRecipeCategory
- feat: add display for block crushing
- fix: avoid null & fix the title
- feat: render the frames
- fix: state codec need string
- feat: start works on REI compat
- fix: make the Hurt source optional
- chore: fix some builtin data pack entries
- chore: fix some builtin data pack entries
- feat: swing when interacting
- fix: rewrite the custom action/condition codec
- feat: add optional ingredient codec
- fix: ItemShapeless dead loop
- fix: send exploding packet & fix burning match
- fix: the conditions can't edit
- fix: add missing dripstone source
- fix: init the action data
- feat: apply post for `ShapedCraftingRecipe`
- fix: allow 0 in lychee
- feat: add back getItemIndexes
- fix: rename `ItemStackHolder#shrink` to `split`
- fix: test of `DamageItem` is wrong
- fix: rewrite some dangerous condition
- fix: `ItemInsideRecipe` optional block predicate
- fix: return ingredients correctly
- fix: `RandomSelect` is wrong
- fix: explosion won't add drop when can't match recipe
- feat: support flat item codec
- fix: `ExplosionMixin` missing level context
- fix: `BlockKeyableRecipeType` missing recipe context
- fix: `BlockCrushingRecipeType` showing wrong particle since the entity is AIR after matching
- fix: `ItemStackHolder#shrink` returned the wrong stack
- fix: use exact Y for fall distance
- fix: make the block predicate codec with registry
- fix: make the block predicate codec with registry
- feat: changed the block in tag to blocks
- fix: correct the method to get matched stacks
- refactor: optimize the `BlockPredicate` codec for better debug info
- fix: fix the `BlockInteractingRecipe#getIngredients`
- refactor: add offset codec
- refactor: switch to strict optional field
- chore: clearer description
- feat: new block predicate codec for supporting plain string
- chore: redirect the hashcode and toString
- fix: the result of anvil is wrong
- revert: revert the namespace changes for actions and contextual
- fix: the location contextual codec is wrong
- feat: make item stack codec can be plain string
- fix: fix the single ingredient codec
- fix: fix the ingredient pair codec
- refactor: downgrade `onConstructed` to the implementation class
- feat: put recipe to context when possible
- fix: wrong logic for required context construct
- fix: lack default value for time
- fix: wrong logic for required context construct
- fix: CycleStateProperty$Type codec is null
- fix: init context key and serializer
- refactor: revert nullable changes for using optional
- feat: update for new kiwi & 24w11a
- feat: update `SCustomLevelEventPacket` for new kiwi networking
- feat: cleanup code make project runnable
- chore(deps): bump dependencies
- fix: make `SCustomLevelEventPacket` work
- feat: remove nbt patch stuffs
- fix: correct the recipe context
- feat: port AlwaysTrueIngredient
- chore: cleanup mixins
- feat(action): add `DamageItem`
- feat(action): add `RandomSelect`
- feat(action): add `MoveTowardsFace`
- feat(action): add `If`
- feat(action): add `Hurt`
- feat(action): add `Explode`
- feat(action): add `Execute`
- feat(action): add `DropXp`
- feat(action): use record instead of classes
- feat(action): add `DropItem`
- feat(action): add `Delay`
- feat(context): add recipe and id to context
- feat(action): add `CycleStateProperty`
- feat(action): add `PlaceBlock`
- feat(action): records to classes
- feat(action): add `CustomAction`
- feat(action): add `Break`
- fix(recipe): adapt new process
- feat(action): add `AnvilDamageChance``
- feat(action): add `AddItemCooldown` & move conditions to `PostActionCommonProperties`
- feat(action): add `SetItem`
- feat(action): add `PreventDefault`
- feat(recipe): don't touch the original drops
- feat(recipe): try to fix the `snownee.lychee.mixin.recipes.blockexploding.ExplosionMixin`
- chore: move `LightningBoltMixin` into recipes
- chore: mark `blockexploding.ExplosionMixin` as need rewrite
- style: correct indent
- feat: use Minecraft's predicates in 24w09a
- fix(recipe): missing level for `DripstoneRecipe`
- refactor(recipe): remove level arg for `BlockPredicateExtensions.matches`
- refactor(recipe): remove unused recipes
- feat(recipe): add `DripstoneRecipe`
- fix(recipe): add `RandomBlockTickingRecipe`
- fix(recipe): add `LightningChannelingRecipe`
- fix(recipe): correct `BlockClickingRecipe` type and `invoke`
- feat(recipe): add serializer to `ItemExplodingRecipe`
- chore: switch to new stream codec
- chore(deps): bump minecraft and fabric to 24w07a
- feat(recipe): add `ItemInsideRecipe`
- feat(recipe): add `ItemExplodingRecipe`
- feat(recipe): add `ItemBurningRecipe`
- feat(recipe): add `BlockClickingRecipe`
- feat(recipe): add `BlockInteractingRecipe`
- feat(recipe): use container generic instead of fixed `LycheeContext` for recipes & correct the `ShapedCraftingRecipe`
- feat(recipe): add serializer and type to `ShapedCraftingRecipe`
- style: reformat files
- style: include the editorconfig from https://github.com/Snownee/Loquat/blob/1.20.1-fabric/.editorconfig
- chore(recipe): adapt crafting & block crushing mixins to new one(no test)
- fix(recipe): adapt anvil mixin to new one(no test)
- feat(recipe): add `ShapedCraftingRecipe`
- feat(context): add required context type
- feat(recipe): add `BlockExplodingRecipe`
- use more shortcut method
- delete unused mixins
- revive JSON fragments
- ...
- no Optional
- refactor LocationPredicate
- LocationPredicate
- oops!
- randomly editing things
- TweakedItemStackCodec
- TweakedItemStackResultCodec
- BlockPredicateCodec
- improve codecs
- feat(recipe): add `BlockCrushingRecipe`
- chore: using nullable description to avoid Optional field
- chore: remove generic for `ContextualCondition`
- chore: action use common properties
- return of the good old ContextualHolder, and it uses less RAM
- less interfaces, nicer codecs, more sanity
- chore(recipe): cleanup code
- refactor(recipe): using `applyCommonCodecs` instead of apply codecs manually
- refactor(recipe): convert `AnvilCraftingRecipe` to class for extendable
- refactor(context): allow context isn't have to be `LycheeContextValue`
- no more recipe id getter from LycheeRecipe
- `LycheeRecipe.allActions` now returns `Stream`
- prettier Codecs
- rename BlockInputLycheeRecipe -> BlockKeyableRecipe
- chore: remove BlockPredicate & use `optionalFieldOf`
- chore: delete docs
- feat: depends kiwi
- improve: nullable String in LycheeRecipeCommonHolder
- chore: cleanup code
- chore: port part of BlockKeyRecipe
- chore: correct the generic type
- refactor: port part of BlockKKeyRecipe
- chore: remove catalogs for simple class and specify the default namespace to `lychee`
- feat(recipes) add serializer and type for `AnvilCraftingRecipe`
- refactor: using common holders as abstract classes
- refactor(contextual): switch to new context
- chore: add default value for random
- feat: try adding key based value map codec for context
- refactor: complete json, generic, action contexts
- refactor: rewrite part of context
- refactor: rewrite part of `ItemStackHolder`, `PostAction`, `LycheeRecipe`
- feat(contextual): add `ContextualConditionsHolder` for reducing records' duplicate code
- fix(contextual): add constant check to min, max
- feat(contextual): ported contextual with codec
- chore: disable jei, rei, and kubejs compat for now
- chore: add parchmentmc for better param naming
- chore(build): bump gradle and loom
- chore(deps): bump dependencies
- chore: removing debug fox entry
- chore: using `clearFire` instead of set remaining directly
- feat: added two tags for entities surviving in lighting bolt
- chore: able to import project without tokens
## 5.0.7
- fix: droppers also place falling blocks ([#59](https://github.com/Snownee/Lychee/issues/59))
## 5.0.5
- bring back KubeJS integration
## 5.0.4
- fix: item duplication in the last commit
## 5.0.3
- fix: cannot place block in block exploding recipes
- Update Minecraft Wiki links to new domain after fork ([#55](https://github.com/Snownee/Lychee/issues/55))
- Update pt_br ([#53](https://github.com/Snownee/Lychee/issues/53))
## 5.0.2
- fix: my IDE went crazy
- vanilla recipes 2
- feat: execute action cancel repeating
- vanilla recipes
- fix: [#50](https://github.com/Snownee/Lychee/issues/50)
## 5.0.1
- feat: kiwi version checker
- fix: missing translations
## 5.0.0
- 1.20 port
## 3.13.1
- fix: drip particles not spawning
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }