Skip to content

Apply biomes to minestom instances#504

Merged
duplexsystem merged 25 commits intoPolyhedralDev:dev/7.0-2from
everbuild-org:dev/7.0-2
Jun 5, 2025
Merged

Apply biomes to minestom instances#504
duplexsystem merged 25 commits intoPolyhedralDev:dev/7.0-2from
everbuild-org:dev/7.0-2

Conversation

@Bloeckchengrafik
Copy link
Copy Markdown
Member

@Bloeckchengrafik Bloeckchengrafik commented Jun 4, 2025

Pull Request

Description

Terra supports using custom biome information to make the generated world even more beautiful. Now, this is supported with Minestom

Note: There is currently a minestom bug with biome serialization. To counteract, one can set the feature flag doFineGrainedBiomes on your local world builder. This will be removed once the corresponding bug is fixed. Only while supplies last!

Note, this depends on the PR by @ckyuri, please merge their PR first.

For the eager people: To install an early-access version, follow the guide in my blog with the version number 7.0.0-BETA+7f324bd72.

Changelog

  • Custom Biome Support with Minestom

Checklist

Mandatory checks

  • The base branch of this PR is an unreleased version branch (that has a ver/ prefix)
    or is a branch that is intended to be merged into a version branch.
  • There are no already existing PRs that provide the same changes.
  • The PR is within the scope of Terra (i.e. is something a configurable terrain generator should be doing).
  • Changes follow the code style for this project.
  • I have read the CONTRIBUTING.md
    document in the root of the git repository.

Types of changes

  • Bug Fix
  • Build system
  • Documentation
  • New Feature
  • Performance
  • Refactoring
  • Repository
  • Revert
  • Style
  • Tests
  • Translation

Compatibility

  • Introduces a breaking change
  • Introduces new functionality in a backwards compatible way.
  • Introduces bug fixes

Documentation

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

Testing

  • I have added tests to cover my changes.
  • All new and existing tests passed.

Licensing

  • I am the original author of this code, and I am willing to
    release it under GPLv3. - Except the code by ckyuri, that's their code
  • I am not the original author of this code, but it is in public domain or
    released under GPLv3 or a compatible license.

Ifiht and others added 20 commits March 19, 2025 15:54
Updated method names to new documentation and changed minestom versioning.

- Paper Build version was changed as I had issues building at all with the snapshot version. So it was changed to a generic version but everything still builds fine.
…ing issues to load the world.

EntityType.fromId(Integer.parseInt(id));
to
delegate = EntityType.fromKey(id);
…ng pulling functionality out of a common existing function
…dependency injection for better modularity

Renamed `MinestomPlatform` to `TerraMinestomPlatform` and updated `TerraMinestomWorldBuilder` to utilize the platform instance directly. Simplified world builder initialization and improved code clarity.
Updated the Minestom library to version 1_21_5-69b9a5d844 and migrated from the deprecated `ItemComponent` API to `DataComponents`. This ensures compatibility with the latest changes and improves maintainability.
Replaced 3D array with a 1D array for chunk block storage and adjusted related logic to use calculated indices. Updated block type comparison to use state IDs instead of block IDs for consistency and correctness.
Replaced "Custom" with "UserDefined" in biome classes, factories, and references for consistency and clarity. Updated relevant imports, method signatures, and internal logic to align with the new terminology. This change improves readability and better represents the purpose of these biome-related components.
Introduced a `doFineGrainedBiomes` flag to allow fine-grained biome control per chunk. This helps mitigate client disconnection issues caused by a Minestom biome encoding bug, with a plan to deprecate once the bug is resolved. Adjusted relevant classes and the example implementation to support this feature.
Introduce the `MinestomBlockEntity` class to represent block entities and hook into the block system. Update `DefaultBlockEntityFactory` to create `MinestomBlockEntity` instances and adjust `TerraMinestomWorldBuilder` initialization for factory injection. These changes improve extensibility and block entity management.
Bloeckchengrafik and others added 5 commits June 4, 2025 21:43
# Conflicts:
#	buildSrc/src/main/kotlin/Versions.kt
This commit updates the Minestom dependency to the latest tagged version. Ensures compatibility with new features and fixes in the updated Minestom release.
@duplexsystem duplexsystem merged commit 1881051 into PolyhedralDev:dev/7.0-2 Jun 5, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants