#NEWLINE# @ staticmethod #NEWLINE# def execute( world , seed ) : #NEWLINE# #INDENT# assert ( seed is not None ) #NEWLINE# w = world #NEWLINE# width = world . width #NEWLINE# height = world . height #NEWLINE# ocean = world . layers [ 'ocean' ] . data #NEWLINE# cm = { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } #NEWLINE# biome_cm = { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } #NEWLINE# biome = numpy . zeros ( ( height , width ) , dtype = object ) #NEWLINE# for y in range ( height ) : #NEWLINE# #INDENT# for x in range ( width ) : #NEWLINE# #INDENT# if ocean [ ( y , x ) ] : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'ocean' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_temperature_polar ( ( x , y ) ) : #NEWLINE# #INDENT# if w . is_humidity_superarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'polar desert' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'ice' #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_temperature_alpine ( ( x , y ) ) : #NEWLINE# #INDENT# if w . is_humidity_superarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subpolar dry tundra' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_perarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subpolar moist tundra' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_arid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subpolar wet tundra' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subpolar rain tundra' #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_temperature_boreal ( ( x , y ) ) : #NEWLINE# #INDENT# if w . is_humidity_superarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'boreal desert' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_perarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'boreal dry scrub' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_arid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'boreal moist forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_semiarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'boreal wet forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'boreal rain forest' #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_temperature_cool ( ( x , y ) ) : #NEWLINE# #INDENT# if w . is_humidity_superarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'cool temperate desert' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_perarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'cool temperate desert scrub' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_arid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'cool temperate steppe' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_semiarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'cool temperate moist forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_subhumid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'cool temperate wet forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'cool temperate rain forest' #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_temperature_warm ( ( x , y ) ) : #NEWLINE# #INDENT# if w . is_humidity_superarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'warm temperate desert' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_perarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'warm temperate desert scrub' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_arid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'warm temperate thorn scrub' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_semiarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'warm temperate dry forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_subhumid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'warm temperate moist forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_humid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'warm temperate wet forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'warm temperate rain forest' #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_temperature_subtropical ( ( x , y ) ) : #NEWLINE# #INDENT# if w . is_humidity_superarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subtropical desert' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_perarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subtropical desert scrub' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_arid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subtropical thorn woodland' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_semiarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subtropical dry forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_subhumid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subtropical moist forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_humid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subtropical wet forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'subtropical rain forest' #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_temperature_tropical ( ( x , y ) ) : #NEWLINE# #INDENT# if w . is_humidity_superarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical desert' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_perarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical desert scrub' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_arid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical thorn woodland' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_semiarid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical very dry forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_subhumid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical dry forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_humid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical moist forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if w . is_humidity_perhumid ( ( x , y ) ) : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical wet forest' #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'tropical rain forest' #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# biome [ ( y , x ) ] = 'bare rock' #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# if ( not ( biome [ ( y , x ) ] in biome_cm ) ) : #NEWLINE# #INDENT# biome_cm [ biome [ ( height , x ) ] ] = 0 #NEWLINE# #UNINDENT# biome_cm [ biome [ ( y , x ) ] ] += 1 #NEWLINE# #UNINDENT# #UNINDENT# w . set_biome ( biome ) #NEWLINE# return ( cm , biome_cm )