Caerula Arbor Crop Compatibility

Quick rating

Community listing page, reviews here may not be monitored by the author.

Caerula Arbor Crop Compatibility

No reviews yet

Makes Caerula Arbor crops compatible with standard Minecraft crop automation while preserving their original behavior.

Mod Loaders
Minecraft

About

Description

Caerula Arbor Crop Compatibility

A lightweight compatibility add-on for Caerula Arbor on Minecraft 1.20.1 (Forge).

It makes six Caerula Arbor plants expose the standard Minecraft crop interfaces (the vanilla CropBlock contract) so that generic crop harvesters, automation mods, and other standard farming integrations can recognize them. It primarily relies on standard crop interfaces and tags, with a small optional compatibility patch for Harvest With Ease 9.4.0, whose crop age lookup assumes a property literally named age. Other mods that already support vanilla crops should pick these plants up through the normal crop interfaces and tags.

What it changes

The following Caerula Arbor plants are exposed as standard crops. Their original blockstate property remains the sole maturity property (0..N); the bridge's getAgeProperty() returns that exact property and getMaxAge() derives its maximum from the property's possible values.

  • Viviparous Lily
  • Nethersea Potato
  • Nethersea Wheat
  • Ocean Peduncle
  • Ocean Cell
  • Fake Egg

The add-on preserves Caerula Arbor's growth, bonemeal, drops, planting items, shapes, collision, lighting, pathfinding, and trampling behavior. It does not copy or override Caerula Arbor loot tables or blockstate/model JSON.

Crop entries

Crop semantics are configured in the instance file config/caerula_crop_compat/crops.json. The first run creates six entries with the current Caerula Arbor defaults. Each entry is self-contained:

{
  "crops": [
    {
      "block": "caerula_arbor:planted_cell",
      "seed": "caerula_arbor:ocean_cell",
      "age_property": "blockstate",
      "max_age": -1,
      "crop_tag": true,
      "seed_tag": true,
      "enabled": true
    }
  ]
}

Append another object to crops to add an entry. max_age: -1 derives the maximum from the property's possible values; a non-negative value must itself be one of those values. Invalid IDs, properties, and ranges are warned about and skipped.

An entry does not dynamically transform arbitrary classes. The six built-in Caerula Arbor classes are transformed by the coremod and use every configured field through the CaerulaCropBlock bridge. An additional block that is already a CropBlock can use age_property through the compatibility lookup and can participate in the generated tags, but this mod does not override that block's own getMaxAge() or seed method. A non-CropBlock is not transformed; its valid tag settings are retained with a warning, but it does not gain standard CropBlock automation merely by adding a JSON entry.

The enabled flag controls this mod's configuration semantics and generated tags. Setting it to false does not undo the startup superclass transform for the six built-in Caerula Arbor classes or turn those classes back into ordinary Block classes.

Capability Built-in Caerula bridge Existing user CropBlock User non-CropBlock
age_property / HWE lookup Used by the bridge Used by the compatibility lookup Not used
max_age Used by CaerulaCropBlock Does not override the block Not used
seed Used by the bridge Does not override the block Not used
crop_tag / seed_tag Generated Generated Generated
enabled Disables config lookups and tags; does not undo the transform Disables this entry's lookups and tags Disables this entry's tags

The minecraft:crops and forge:seeds tags are supplied by a small generated server-data pack based on the enabled entries. The pack is regenerated on startup and is safe for Forge 1.20.1; edit the file and restart the instance to apply changes.

Requirements

  • Minecraft 1.20.1
  • Forge 47.x
  • Caerula Arbor 0.12.4 or newer

Install on both client and server (it changes block state and server-side behavior).

Compatibility

Tested with Caerula Arbor 0.12.6. Versions 0.12.4 and newer are allowed to load, but compatibility with future Caerula Arbor updates cannot be guaranteed until tested.

This add-on rewrites six internal Caerula Arbor crop classes at startup via a Forge coremod transformer. It checks each original superclass and constructor call before replacing Block with the compatibility CropBlock bridge. If a future Caerula Arbor update changes that structure, loading fails loudly rather than silently producing incompatible behavior.

Credits

Caerula Arbor is created by Apocalypse and contributors.

This project is an unofficial compatibility add-on and is not affiliated with or endorsed by the Caerula Arbor developers.

License

GNU General Public License v3.0. See LICENSE.

Caerula Arbor is distributed under GPL-3.0. This project is released under the same license.