GregTechCE / GregTech

GregTech rewrite for modern versions of Minecraft
GNU Lesser General Public License v3.0
270 stars 150 forks source link

Ore Generation #38

Closed Rongmario closed 6 years ago

Rongmario commented 6 years ago

General Outline

  1. Veins are now randomly shaped ellipsoids
  2. They can intersect any bounds, both grid and chunks
  3. (CubicChunks Integration): No hardcore height limits
  4. Some may have a bigger chance of spawning under sea level/floor
  5. Surface rocks indicate vein locations (Optional)
  6. Biome influences on vein spawns

Config Options (need to be discussed)

Complex (Object, can include themselves and criterias above, recursive):

  1. Random Block State
  2. WeightedRandom Block State
  3. Per-Stone Type Block State
  4. Per-Block Type Block State
  5. Custom Marked Block State with Properties

Vein Layouts:

1, Solid = one criteria group for all blocks in a vein

  1. Levelled = different criteria for block positioning inside a vein:
    • Sporadic
    • Primary + Secondary (most rare ore close to center)

Vein Shapes:

  1. Ellipsoid = Min, Max Radius (Randomly Rotated)
  2. Spheric = Correct Sphere with Min, Max Radius
  3. Plate = Layer-like Generation with little height but very wide
OvermindDL1 commented 6 years ago

Why not just do it the way that GT6 did it, which will never cause adjacent chunks to generate, can have overlapping layers with ease (and in fact some specialty ores only gen on such overlapping boundaries), multiple rock types, etc... etc... See screenshots on the GT6 site recently.

Rongmario commented 6 years ago

Updated Main post.

@OvermindDL1 Generation is now 'cube based' as we are taking Cubic Chunks into consideration, without CC it'll just generate 16 cubes (16x16x256). And hopefully this way of generating we can escape chunk cascading.

OvermindDL1 commented 6 years ago

@Rongmario GT6's method is block-by-block based, it does not need to generate sets of blocks at a time but it could even generate each individually and perfectly every time, it is proper noise-based generation and as such will never need to generate any neighbor.