PG85 / OpenTerrainGenerator

Minecraft Terrain Generator for Bukkit/Spigot/Forge
MIT License
199 stars 82 forks source link

1.16.x 1.0.0: 5.1 - Biome resources update #575

Closed PG85 closed 3 years ago

PG85 commented 3 years ago

We need to re-design/update resources for biomes to support all 1.16 resources. We should also do any improvements/refactoring at this point. Here's a list of current resources, need to know for each if they should be renamed/refactored/changed/removed. Also need to know if any new resources should be added.

"AboveWaterRes", AboveWaterGen "Boulder", BoulderGen "Cactus", CactusGen "Dungeon", DungeonGen "Grass", GrassGen "Fossil", FossilGen "IceSpike", IceSpikeGen "Liquid", LiquidGen "Ore", OreGen "Plant", PlantGen "UnderWaterPlant", UnderWaterPlantGen "Reed", ReedGen "SmallLake", SmallLakeGen "SurfacePatch", SurfacePatchGen "UndergroundLake", UndergroundLakeGen "UnderWaterOre", UnderWaterOreGen "Vein", VeinGen "Vines", VinesGen "Well", WellGen "CustomObject", CustomObjectGen "CustomStructure", CustomStructureGen "Sapling", SaplingGen "Tree", TreeGen

#######################################################################
# +-----------------------------------------------------------------+ #
# |                          Resource queue                         | #
# +-----------------------------------------------------------------+ #
#######################################################################

# This section control all resources spawning after terrain generation.
# The resources will be placed in this order.

# Keep in mind that a high size, frequency or rarity might slow down terrain generation.

# Possible resources:
# DoResourceInheritance(true|false)
# SmallLake(BlockName,Frequency,Rarity,MinAltitude,MaxAltitude)
# Dungeon(Frequency,Rarity,MinAltitude,MaxAltitude)
# UnderGroundLake(MinSize,MaxSize,Frequency,Rarity,MinAltitude,MaxAltitude)
# Ore(BlockName,Size,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
# UnderWaterOre(BlockName,Size,Frequency,Rarity,BlockSource[,BlockSource2,BlockSource3.....])
# CustomObject(Object[,AnotherObject[,...]])
# CustomStructure([Object,Object_Chance[,AnotherObject,Object_Chance[,...]]])
# SurfacePatch(BlockName,DecorationBlockName,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....]
# Tree(Frequency,TreeType,TreeTypeChance[,AdditionalTreeType,AdditionalTreeTypeChance.....])
# Plant(PlantType,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
# UnderWaterPlant(PlantType,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
# Grass(PlantType,Grouped/NotGrouped,Frequency,Rarity,BlockSource[,BlockSource2,BlockSource3.....])
# Reed(BlockName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
# Cactus(BlockName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
# Liquid(BlockName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,BlockSource3.....])
# AboveWaterRes(BlockName,Frequency,Rarity)
# Vines(Frequency,Rarity,MinAltitude,MaxAltitude)
# Vein(BlockName,MinRadius,MaxRadius,Rarity,OreSize,OreFrequency,OreRarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,..])
# Well(BaseBlockName,HalfSlabBlockName,WaterBlockName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,..])
# Boulder(BlockName,Frequency,Rarity,MinAltitude,MaxAltitude,BlockSource[,BlockSource2,..]
# IceSpike(BlockName,IceSpikeType,Frequency,Rarity,MinAltitude,MaxAltitude,Blocksource[,BlockSource2,...])

# BlockName:      must be the name of a block. May include block data, like "WOOL:1".
# BlockSource:    list of blocks the resource can spawn on/in. You can also use "Solid" or "All".
# Frequency:      number of attempts to place this resource in each chunk.
# Rarity:         chance for each attempt, Rarity:100 - mean 100% to pass, Rarity:1 - mean 1% to pass.
# MinAltitude and MaxAltitude: height limits.
# BlockSource:    mean where or whereupon resource will be placed 
# TreeType:       Tree (original oak tree) - BigTree - Birch - TallBirch - SwampTree -
#                 HugeMushroom (randomly red or brown) - HugeRedMushroom - HugeBrownMushroom -
#                 Taiga1 - Taiga2 - HugeTaiga1 - HugeTaiga2 -
#                 JungleTree (the huge jungle tree) - GroundBush - CocoaTree (smaller jungle tree)
#                 DarkOak (from the roofed forest biome) - Acacia
#                 You can also use your own custom objects, as long as they have set Tree to true in their settings.
# TreeTypeChance: similar to Rarity. Example:
#                 Tree(10,Taiga1,35,Taiga2,100) - plugin tries 10 times, for each attempt it tries to place Taiga1 (35% chance),
#                 if that fails, it attempts to place Taiga2 (100% chance).
# PlantType:      one of the plant types: Allium, AzureBluet, BlueOrchid, BrownMushroom, Dandelion, DeadBush, DoubleTallgrass, Fern, LargeFern, Lilac, OrangeTulip, OxeyeDaisy, Peony, PinkTulip, Poppy, RedMushroom, RedTulip, RoseBush, Sunflower, Tallgrass, WhiteTulip
#                 or simply a BlockName
# IceSpikeType:   one of the ice spike types: Basement,HugeSpike,SmallSpike
# Object:         can be a any kind of custom object (bo2 or bo3) but without the file extension. You can
#                 also use UseWorld to spawn one of the object in the WorldObjects folder and UseBiome to spawn
#                 one of the objects in the BiomeObjects setting. When using BO2s for UseWorld, the BO2 must have
#                 this biome in their spawnInBiome setting.

# Plant and Grass resource: both a resource of one block. Plant can place blocks underground, Grass cannot.
# UnderWaterPlant resource: a resource of one block, places blocks only in water.
# Liquid resource: a one-block water or lava source
# SmallLake and UnderGroundLake resources: small lakes of about 8x8 blocks
# Vein resource: not in vanilla. Starts an area where ores will spawn. Can be slow, so use a low Rarity (smaller than 1).
# CustomStructure resource: starts a BO3 structure in the chunk.

Also need to rewrite this whole section.

PG85 commented 3 years ago

@SuperCoder7979 said on #570

A quick list of all the new resource generators we're going to need:

Coral
Kelp
Seagrass
Icebergs (shudders)
Bamboo

Nether generators (lower priority, but nice-to-haves):

Huge fungus
Weeping vines
Twisting vines
Deltas
Basalt Columns
Replace blobs
Basalt pillars
No surface ore (netherite ore)

1.17 stuff, lowest priority:

Geodes
BiomeBundle commented 3 years ago

Some of these are better spawned like other vanilla structures, but here's a quick list of worldgen stuff added in 1.13 to start with:

Buried Treasure Coral Kelp Seagrass Sea Pickles Iceberg Shipwrecks Ocean Ruins

Jishuna commented 3 years ago

1.14:

Bamboo New Flowers Sweet Berry Bushes Pillager Outposts Large Village Overhaul

New Bamboo Jungle Biome

PG85 commented 3 years ago

Nice, thanks. The following are structures, not resources, so we'll have to make another issue for those:

And ofc we already have:

The following are "structures spawned as resources":

I'll make a new issue for structures. See #576

PG85 commented 3 years ago

So we've got the requirements looks like:

"structures spawned as resources":

@MCPitman & @SuperCoder7979 Could you make a finalised list of new resources for the biome configs, that covers all these?

BiomeBundle commented 3 years ago

Maybe iceberg should be a SurfaceAndGroundControl: type?

PG85 commented 3 years ago

Should have everything now I think? Anything left has its own issue, closing.