Skip to content

Ore Deposit World Gen Implementation#24

Open
starpanda24825 wants to merge 3 commits into
Create-Civilization:1.21.1from
starpanda24825:1.21.1
Open

Ore Deposit World Gen Implementation#24
starpanda24825 wants to merge 3 commits into
Create-Civilization:1.21.1from
starpanda24825:1.21.1

Conversation

@starpanda24825

Copy link
Copy Markdown
Contributor

Added cluster-based ore vein generation using create's layered deposit shapes

  • using rare cluster origins that spawn multiple deposits nearby, mimicking how Create places its striated ores (Asurine, Ochrum, etc)
  • ported Create's LayeredOreFeature algorithm: sphere-based deposits with gradients, layer bands, and radial falloff. single deposit size stays fixed at 32 to match Create's visual style, but if u choose you want to make the deposit tiers affect the actual SIZE of vein not number of veins in a cluster, then edit this respectivelt
  • implemented two-tier rarity system:
    • cluster-level: rare region-based origins (configurable via averageChunksPerCluster)
    • intra-cluster: deposit spacing (configurable via chunksBetweenDeposits)
    • tier size (LARGE/MEDIUM/SMALL) now determines number of deposits per cluster, not size of deposit
  • correct per-ore Y-levels to match vanilla counterparts (diamond, iron, copper, etc).
    netherite reuses diamond's overworld range since this mod is overworld-only (right?)
  • add /deposits debug command (dev-only, src/dev/java) to verify clusters spawn:
    • /deposits locate [radius] - scan area and show nearest cluster origins as /tp links
    • /deposits stats - print current config (spacing, deposits/cluster, Y ranges)
  • add LayeredDepositPattern for per-ore layer definitions (stone types, sizes, weights)
    so not every deposit of the same ore looks identical
  • wired biome selectors from config into actual biome filtering (was configured but unused)
  • optimised the code as much as I possibly could

Remains:

  • Register all the deepslate variants of ore deposits alongside their respective assets (not urgent)
  • use per-ore Y-levels of these ore deposit versions to match the vanilla deepslate counterparts (not urgent)

@EpicVon2468 EpicVon2468 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's too much for me to fully review right now, but just my initial thought is here

/*
* Dev-only debug command for verifying that deposit cluster generation is working.
*
* This file lives under `src/dev/java`, and `build.gradle` only attaches the `dev`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is wonderfully complicated. Just, uh... you only need an if statement for conditional compilation...

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.

2 participants