Skip to content

Adding Crystal Apothecary Harvestables

DaFuqs edited this page Apr 4, 2023 · 7 revisions

The Crystal Apothecary is a functional block that automatically harvests blocks in it's vicinity.

You can specify additional conversions, or edit existing ones, by placing json files in the directory: <data_pack_or_mod_name>/crystal_apothecary_harvestables. Here you have 2 options:

  • Simple Variant: one-liner, that will make the Apothecary detect any block when placed and process it's drops
  • Extensive Variant: ore extensive json, that allows the Apothecary to additionally simulate (gemstone cluster) block growth for unloaded chunks

Simple Variant

Allowing the Crystal Apothecary to harvest any block when placed (without compensation when unloaded).

Properties:

  • harvested_block (Block ID): The id of a block that should be automatically be broken & it's drops collected

Example:

{
  "harvested_block": "minecraft:oxidized_copper"
}

Extensive Variant

Properties:

  • harvested_block (Block ID): The id of a block that should be automatically be broken & it's drops collected
  • budding_block (Block ID):
  • valid_neighbor_blocks (List of Block IDs):
  • ticks_for_compensation_loot_per_valid_neighbor_block (int): (adjusted to match increase / decrease via randomTickTimes != 3)
  • compensated_loot (Item ID + count):

Example: Allowing the Crystal Apothecary to harvest Topaz

{
  "harvested_block": "minecraft:amethyst_cluster",
  "simulated_block_growth": {
    "budding_block": "minecraft:budding_amethyst",
    "valid_neighbor_blocks": [
      "minecraft:small_amethyst_bud",
      "minecraft:medium_amethyst_bud",
      "minecraft:large_amethyst_bud",
      "minecraft:air",
      "minecraft:cave_air",
      "minecraft:water"
    ],
    "ticks_for_compensation_loot_per_valid_neighbor": 10000,
    "compensated_loot": {
      "item": "minecraft:amethyst_shard",
      "count": 2
    }
  }
}
Clone this wiki locally