On some ice-planet segments:
Lightweight planets:
Customize-options on planets (just skip details if you don't want to read. they are just examples):
NOTE: This should be editable in configs. Generate custom planet types.
1. Hills-segments:
2. Spawn veins, "floating islands", trees, ...
Note: Each object can be made of primary, secondary, bottom and surface blocks.
3. Inject resources
Spawn other structures (look at vines above and the NOTE) where you don't want resources injected.
Does somebody want to share thoughts?
- Every segment has a ground-plate. Blocks which create the bottom of a planet.
- Above this are surface blocks (snow, desert, grass) if there is no detail which overwrites them.
Lightweight planets:
- let planet cores have a lava texture in the centre of each face and the borders of each face have a transition into snow, desert, grass, rock, ocean, ...
- In the middle of each segment are chunks first going to a higher level (outer 5-10%) of about 0.7 chunks which fit to the border texture rendered on the core face.
- only a part (about 40%) should have > 1 chunk high.
- The terrain generator can do what it wants to do, but planets get flattened the closer to their border. 0 chunks @ 5%, linear climbing chunks 0..0.7 till 10%, up to 2 chunks height in 10..50%
- archived by just compressing vertically. Top blocks overwrite blocks below if levels get merged.
Customize-options on planets (just skip details if you don't want to read. they are just examples):
NOTE: This should be editable in configs. Generate custom planet types.
1. Hills-segments:
- % of hill chunks compared to all chunks
- Min height in hill chunks
- Max height chunks
2. Spawn veins, "floating islands", trees, ...
- % of eye-candy chunks compared to all chunks
- Min eye-candidness in eye-candy chunks
- Max eye-candidness in eye-candy chunks
All features require to be enabled in order to spawn.
- Most expensive (in eye-candidness) part spawns first, then less expensive ones
- then repeat most expensive to least expensive if there are still points left
- Skip parts which can't get paid
- Continue with next segment if the least expensive available is skipped
Note: Each object can be made of primary, secondary, bottom and surface blocks.
Veins spawn as a 3D construct which is anchored at 2 or 3 points and are created after hills are. Example generation:From another thread:
This 2-component triangle or T or lattice gave me an idea: How about requiring molecules?
Element A has to connect to x of X, y of Y, number z of Element Z
Element B has to be next to A and x of X, y of Y, z of Z
Element C has to be next to A [and maybe next to E] and x of X, y of Y, z of Z
Element D has to be next to C and x of X, y of Y, z of Z
Element E has to be next to A+C and x of X, y of Y, z of Z
x|y|z of X|Y|Z can be something like [min: 0, max: 4 | exactly 2] of BLOCK-TYPE
A and B can have the same block-ID, but can only have the "status" A or B if they fit the requirements of A or B.
C can be a completely different block-ID
EDIT:
A, B, C are just example names, could also be Hydrogen, Oxygen or Rock, Grass, ...
Or secondary, bot, surface.
Fill blocks could require to be next to 6 of surface|bottom|primary
- prefer 2 points on previously spawned veins, if required rotate and move vein up to 1/2 or 2/3 chunks
- for each x,z in vine.connectionPoint[x,y]
- vine[x, z].height = segment.highestBlockAt[x, z] ((chunk = mid of vine))
- for all columns of the vine
- skip connection points
- vine[x, z] = relativeY + ((height(p1) * distance(p1) + height(p2) * distance(p2) + ...)) / #connectionPoints
- If two adjacent columns differ in heigh by >1, generate blocks for (difference-1)
- skip connection points
3. Inject resources
- % of segments.
- min, max per segment.
Spawn other structures (look at vines above and the NOTE) where you don't want resources injected.
Does somebody want to share thoughts?
Last edited: