Generator - ShaneBeee/SkNMS GitHub Wiki

EXAMPLE:

[!CAUTION] This example uses some features from an upcoming release of SkBee.
Hopefully I can get that release out soon.

[!IMPORTANT] Addons required for this example:

  • SkBee (unreleased future version)
  • SkNMS (Obviously)
  • Skript-Reflect (For the custom expressions, could be done without but I found it easier to break up the biome sections)

This is an example of a world generator created in SkBee, that uses custom biomes created with SkNMS.


on load:
	if world("world_test_new") is not set:
		set {_creator} to world creator named "world_test_new"
		set chunk generator of {_creator} to chunk generator with id "test"
		set keep spawn loaded option of {_creator} to false
		send "&aLoading world..."
		load world from creator {_creator}
		send "&bWorld loaded!!!"
		set gamerule doDaylightCycle of world "world_test_new" to false
		set time of world "world_test_new" to 12pm

#! REGISTER GENERATOR !#
register chunk generator with id "test":
	vanilla decor: true
	vanilla caves: false
	vanilla structures: true
	vanilla mobs: true
	biome gen:
		set {_cont} to biome continentalness of biome parameter point
		set {_point} to biome parameter point

		if {_cont} <= -1.05:
			set {_biome} to wythers:eucalyptus_woodland
		else if {_cont} <= -0.455: # deep ocean
			set {_biome} to deep ocean biome of {_point}
		else if {_cont} <= -0.19: # ocean
			set {_biome} to ocean biome of {_point}
		else if {_cont} <= -0.11: # coastal
			set {_biome} to coastal biome of {_point}
		else if {_cont} <= 0.03: # near-inland
			set {_biome} to near-inland biome of {_point}
		else if {_cont} <= 0.3: # mid-inland
			set {_biome} to mid-inland biome of {_point}
		else: # far-inland
			set {_biome} to far-inland biome of {_point}

		set chunkdata biome to {_biome}

expression deep ocean biome of %biomeparameterpoint%:
	get:
		set {_temp} to biome temp of expr-1
		if {_temp} <= -0.45:
			set {_biome} to deep frozen ocean
		else if {_temp} <= -0.15:
			set {_biome} to deep cold ocean
		else if {_temp} <= 0.2:
			set {_biome} to deep ocean
		else if {_temp} <= 0.55:
			set {_biome} to deep lukewarm ocean
		else:
			set {_biome} to warm ocean
		return {_biome}

expression ocean biome of %biomeparameterpoint%:
	get:
		set {_temp} to biome temp of expr-1
		if {_temp} <= -0.45:
			set {_biome} to frozen ocean
		else if {_temp} <= -0.15:
			set {_biome} to cold ocean
		else if {_temp} <= 0.2:
			set {_biome} to ocean
		else if {_temp} <= 0.55:
			set {_biome} to lukewarm ocean
		else:
			set {_biome} to warm ocean
		return {_biome}

expression coastal biome of %biomeparameterpoint%:
	get:
		set {_temp} to biome temp of expr-1
		set {_erosion} to biome erosion of expr-1
		set {_pv} to biome pv of expr-1
		if {_pv} < -0.85:
			set {_biome} to river biome of {_temp}
		else if {_erosion} < -0.2225:
			set {_biome} to near-inland biome of expr-1
		else if {_temp} <= -0.45:
			set {_biome} to snowy beach
		else if {_temp} <= -0.15:
			set {_biome} to skbee:beachy_beach
		else if {_temp} <= 0.2:
			set {_biome} to skbee:colorful_coast
		else if {_temp} <= 0.55:
			set {_biome} to skbee:palm_beach
		else:
			set {_biome} to wythers:bayou
		return {_biome}

expression near-inland biome of %biomeparameterpoint%:
	get:
		set {_temp} to biome temp of expr-1
		set {_weird} to biome weirdness of expr-1
		set {_pv} to biome pv of expr-1
		if {_pv} < -0.85:
			set {_biome} to river biome of {_temp}
		else if {_temp} <= -0.45:
			set {_biome} to snowy plains
		else if {_temp} <= -0.15:
			if {_weird} > 0:
				set {_biome} to skbee:plains
			else:
				set {_biome} to skbee:boring_plains
		else if {_temp} <= 0.2:
			set {_biome} to minecraft:jungle
		else if {_temp} <= 0.55:
			set {_biome} to desert
		else:
			set {_biome} to badlands
		return {_biome}

expression mid-inland biome of %biomeparameterpoint%:
	get:
		set {_temp} to biome temp of expr-1
		set {_pv} to biome pv of expr-1
		if {_pv} < -0.85:
			set {_biome} to river biome of {_temp}
		else if {_temp} <= -0.45:
			set {_biome} to snowy taiga
		else if {_temp} <= -0.15:
			set {_biome} to taiga
		else if {_temp} <= 0.2:
			set {_biome} to forest
		else if {_temp} <= 0.55:
			set {_biome} to savanna
		else:
			set {_biome} to wooded badlands
		return {_biome}

expression far-inland biome of %biomeparameterpoint%:
	get:
		set {_temp} to biome temp of expr-1
		set {_pv} to biome pv of expr-1
		if {_pv} < -0.85:
			set {_biome} to river biome of {_temp}
		else if {_temp} <= -0.45:
			set {_biome} to cold taiga
		else if {_temp} <= -0.15:
			set {_biome} to old growth spruce taiga
		else if {_temp} <= 0.2:
			set {_biome} to sparse jungle
		else if {_temp} <= 0.55:
			set {_biome} to savanna plateau
		else:
			set {_biome} to eroded badlands
		return {_biome}

expression river biome of %number%:
	get:
		set {_temp} to expr-1
		if {_temp} <= -0.45:
			set {_biome} to frozen river
		else if {_temp} <= -0.15:
			set {_biome} to wythers:gravelly_river
		else if {_temp} <= 0.2:
			set {_biome} to wythers:jungle_river
		else if {_temp} <= 0.55:
			set {_biome} to wythers:savanna_river
		else:
			set {_biome} to wythers:desert_river
		return {_biome}