Skip to content

Technical Changelog

Apollo edited this page Dec 3, 2024 · 16 revisions

1.3.9

First version on 1.21.4! 1.21.2 support has been dropped.

Mod Changes

New Features

  • Added block_state block predicate type. It takes a properties field, which is a block state predicate.
  • Added offset placement modifier type as a more configurable version of vanilla's random_offset. It takes an x_offset, y_offset and z_offset integer provider field. These fields can be omitted for an offset of 0 on that axis. Offsets on the x/z axis are clamped from -16 to 16, y axis is unclamped.

Changes

  • Renamed the remove_structures_from_structure_set worldgen modifier to remove_structure_set_entries for consistency.
  • Changed the syntax of most worldgen modifiers slightly.

Fields for the target element to be modified (e.g. the template_pool field in the add_template_pool_elements modifier) are now plural and are sets, meaning they can also take lists of elements or a #-prefixed element tag.

Old syntax:

{
  "type": "lithostitched:add_template_pool_elements",
  "template_pool": "minecraft:trial_chambers/decor",
  "elements": []
}

New syntax:

{
  "type": "lithostitched:add_template_pool_elements",
  "template_pools": [ // This can still be a single element, the list is an example
    "minecraft:trial_chambers/decor"
    "example:some_other_pool"
  ],
  "elements": []
}

This applies to:

  • base_feature in stack_feature
  • structure_set in add_structure_set_entries and remove_structure_set_entries
  • structure in set_pool_aliases and set_structure_spawn_condition
  • template_pool in add_template_pool_elements and set_pool_element_processors
  • processor_list in add_processor_list_processors

The old format is currently still supported! Support for the old format will be removed upon the release of Lithostitched v1.4 in January 2025.


1.3.8

Mod Changes

New Features

  • Added schedule_tick processor, which will schedule block and fluid ticking.

Changes

  • Made the random_mode field in the condition processor optional.

Fixes

  • Fixed the reference processor not working.
  • Fixed a rare chunk saving error/crash that could occur with jigsaw structures which was amplified when using C2ME.

1.3.7

Mod Changes

Changes

  • Added the min_depth field to the limited pool element type.
  • Made the match_type field in the matching_blocks processor condition default to input.
  • Structures using the lithostitched:jigsaw structure type use the chained template pool fallback system even if breaks_seed_parity is disabled.

Fixes

  • Fixed the min_depth field in guaranteed pool elements not working.
  • Fixed the block_entity_modifier in set_block processor not working correctly in some cases.
  • Fixed 1.20 modifier predicates not working.

1.3.5

Mod Changes

Lots of new features and changes this release!

New Features

Because there is so many new features, the changelog won't include format details. Please see the respective wiki pages for details.

  • Configured Feature Types

    • Added composite for stacking multiple placed features in the same place.
    • Added select for selecting a placed feature to place based on a block predicate.
    • Added weighted_selector as a more convenient version of vanilla's random_selector.
    • Added large_dripstone as a more configurable version of vanilla's large_dripstone.
    • Added ore as a more configurable version of vanilla's ore.
    • Added vines as a more configurable version of vanilla's vines.
  • Block Predicate Types

    • Added multiple_of for checking if a certain number or range of numbers of block predicates pass.
    • Added random_chance to pass a certain percentage of the time
  • Block State Provider Types

    • Added random_block for placing a random block from a block set (block, list of blocks, #-prefixed tag of blocks)
    • Added weighted as a version of vanilla's weighted_state_provider with entries being state providers rather than block states.
  • Structure Condition Types

    • Added multiple_of for checking if a certain number or range of numbers of structure conditions pass.
  • Structure Processor Types

    • Added condition as a more powerful, configurable and readable version of several vanilla processors.
      • The condition processors checks processor conditions and if they pass, a processor will run. See the [processor condition] page for details.
    • Added discard_input, which discards the structure template's block and uses the one in the world already. Built for use with the condition processor.
    • Added set_block, which sets the block to a new block. Built for use with the condition processor.
  • Worldgen Modifier Types

    • Replaced redirect_feature with stack_feature, which lets you stack multiple features onto an existing configured feature.
    • Added set_pool_element_processors for setting structure processors onto template pool entries directly.
    • Added set_structure_spawn_condition for setting/adding a spawn condition onto an existing structure.

Changes

  • The vanilla jigsaw structure type now uses Lithostitched's jigsaw structure system.

    • This means all vanilla jigsaw structures and the vast majority of modded ones will support guaranteed/limited pool elements and generate faster.
    • The optimizations come at the loss of some seed parity, jigsaw structure layouts without Lithostitched will be different from with it. (The location of structures is unaffected.)
      • Disable breaks_seed_parity in the config to maintain seed parity.
  • Modified the height_filter structure condition.

    • Added a range_type field which can be absolute (old behavior) or heightmap_relative.
    • Replaced min_inclusive and max_inclusive with permitted_range, which is an int range (64, [64,96], {"min_inclusive":64,"max_inclusive":96}).
  • Removed the matching_blocks rule test. Use the condition processor as a replacement.

Fixes

  • Fixed an issue with density function wrapping that would cause some world's worldgen to break down if closed and reopened multiple times.
  • Fixed lithostitched:jigsaw structure generation being fully random rather than seed-based random.
  • Fixed the reference processor not being able to modify blocks multiple times.
  • Fixed set_pool_aliases modifiers not working consistently on Trial Chambers.

Non-Mod Changes

  • Updated the generator site for all the new changes.
  • Added a placed feature generator to the site.

1.3.4

Mod Changes

  • Added the ability to customize shipwreck wood types using a processor list tag.

Non-Mod Changes

  • Updated the wiki with a new Guides section for guides on features like custom shipwreck palettes and custom trial chambers mobs.

1.3.3 (1.20.1 only)

Mod Changes

  • Fixed modifier predicates. If a modifier predicate doesn't pass, the entire modifier won't be registered.
  • Massive internal refactoring to Modifier to align it with the 1.21 version.

1.3.1b (1.20.1 only)

Mod Changes

  • Fixed the delegating structure type not working.

Non-Mod Changes

  • Updated the Lithostitched generator site to enforce inlining a delegate structure in the delegating structure type, as references weren't allowed.

1.3.1a

Mod Changes

  • Added a dimension field to the wrap_noise_router modifier type, being an id for a dimension. The dimension referenced doesn't have to exist.

1.3.1

Mod Changes

  • Added the wrap_density_function and wrap_noise_router worldgen modifier types, allowing for density function injection.
    • Both have a priority field, being an int representing the priority the modifier takes in wrapping around density functions/noise router entries. These modifiers are applied in ascending priority order (low -> high values). Defaults to 1000.
    • Both have a wrapper_function field, being a density function to wrap around the target.
    • wrap_density_function has a target_function field, being a density function reference to wrap.
    • wrap_noise_router has a target field, being a noise router field to wrap.
  • Added two density function types for use in the previously mentioned modifier types: wrapped_marker and original_marker. Both can only be used in density functions referenced by the density function injection modifiers and will crash the game if attempted to be computed regularly.
    • wrapped_marker is a marker for the current wrapped density function. For example, the following worldgen modifier will multiply temperature by 2:
{
  "type": "lithostitched:wrap_noise_router",
  "target": "temperature",
  "wrapper_function": {
    "type": "minecraft:mul",
    "argument1": 2,
    "argument2": {
      "type": "lithostitched:wrapped_marker"
    }
  }
}
  • original_marker is a marker to get the original density function without other mod/datapack's wrappings around it.

Non-Mod Changes

  • Updated the Lithostitched generator site with new worldgen modifier and density function types, adding a density function generator as well.

1.3.0

Mod Changes

  • Brought the 1.20.1 version up to speed with the 1.21 version. They will be the two main supported versions for the foreseeable future.
  • Added processor list injection with the add_processor_list_processors worldgen modifier type.
  • Added the ability to place structure nbt files as features with the structure_template feature type.
  • Added the matching_blocks rule test type, making functionality such as random tag matches possible.
  • Added an optional heightmap field to the height_filter structure condition.
  • Removed the apply_with_chance pool alias type.

Non-Mod Changes

  • Fully restructured the wiki to be easier to navigate.
  • Added a technical changelog (that's where you are right now!).
  • Created a modified version of misode.github.io with full Lithostitched support. View it here!