Lychee

Lychee

Mod

Define in-world crafting & interactions using JSON recipes. item interaction, burning, touching fluid, anvil, crushing, lightning, exploding...

Client and server Game MechanicsLibraryUtility

37.8k downloads
58 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

[Fabric 1.21.1] 6.0.2

Changelog

6.0.2

  • fix: marker entity NPE

6.0.1

  • fix: major random block ticking fixes

6.0.0

  • Merge pull request #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 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 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 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 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)
  • 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)

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)
  • Update pt_br (#53)

5.0.2

  • fix: my IDE went crazy
  • vanilla recipes 2
  • feat: execute action cancel repeating
  • vanilla recipes
  • fix: #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

Dependencies

Files

Lychee-1.21-Fabric-6.0.2.jar(738.29 KiB) Primary Download

Project members

Snownee

Owner

Details

Licensed ARR
Published 2 years ago
Updated 2 months ago