Documentation: Biome

From Noita Wiki
Jump to navigation Jump to search
Name Type Initial Value Example Range Description
Members
name std::string the name that is exposed to lua functions that spawn entities
background_image std::string path to the image file (texture) that is used for the background
background_edge_left std::string if not empty, will use this image as the left edge
background_edge_right std::string if not empty, will use this image as the right edge
background_edge_top std::string if not empty, will use this image as the top edge
background_edge_bottom std::string if not empty, will use this image as the bottom edge
background_edge_priority int 0 if both biomes have edges defined, will use the one with higher priority (if priority is same, will compare (>) background_images)
background_use_neighbor bool false if set will look for neighboring biomes and use their background image
background_image_height float 225 height were the background image starts
limit_background_image bool true Will limit the background image to start at the cave height
bitmap_noise_file std::string if set, loads it to mBitmapNoise
noise_biome_edges bool true does the noisy edge for biomes, if either of biomes has this set to 0 will do a straight edge
big_noise_biome_edges bool true if true, will leak onto other biomes and not be carveable
fat_biome_edges bool false if true, will leak onto other biomes and not be carveable
skip_edge_textures bool false skips edge texture generation. Turn of for pixel scenes
audio_music_enter std::string the music event that plays when player enters this biome (e.g. 'music/desert/enter')
audio_music_2 std::string the music directory that plays while player is in this biome (e.g 'coalmine')
audio_music_energy_coeff float 1 Multiplier for music energy in this biome
audio_music_no_forced_quietness bool false If 1, music is not quieted by occasional quietness
audio_music_forced_quietness_duration_seconds int32 0 If > 0, this is the duration of occasional quietness, else the value from magic numbers is used.
audio_music_trigger_without_danger bool false If 1, music is triggered in this biome no matter what the danger level is
audio_music_trigger_min_y int32 0 If not 0, player Y has to be larger than this for the music to start playing
audio_music_trigger_max_y int32 0 If not 0, player Y has to be smaller than this for the music to start playing
audio_biome_id_for_music std::string if set, this will be used to identify the biome in which this music plays, instead of Biome.name. can be used to get around some bugs with _EMPTY_ as name
audio_ambience std::string cave the ambience event that plays while player is in this biome
audio_ambience_surface std::string hills the ambience event that plays while player is in this biome and on surface
color_grading_r float 1 post fx color grading
color_grading_g float 1 post fx color grading
color_grading_b float 1 post fx color grading
color_grading_grayscale float 0 post fx color grading. [0.0,1.0], larger value means more grayscale
has_rain bool true if 1, rain or snowfall may occur in this biome
gradient_sky_alpha_target_mod float 0 affects sky gradient. if larger than procedural value, will override it
rain_target_mod float 0 affects clouds visibility. if larger than procedural value, will override it
fog_target_mod float 0 affects fog amount. if larger than procedural value, will override it
sunset_alpha_target float 1 affects sunset gradient amount
bitmap_filename std::string loads the chunk from this bitmap, the bitmap should be 512x512
wang_template_file std::string uses this file to create a herringbone wang map
wang_map_width int 256 [1, 512] the size of the wang map
wang_map_height int 256 [1, 512] the size of the wang map
lua_script std::string default is data/scripts/biomes/NAME.lua
pixel_scene bool false for 'pixel scene' biomes, this forces the loading before hand
static_tile bool false if 1, directly blits wang_template_file without wang randomization, kind of like a pixel scene but at the wang tile resolution
static_tile_bg_mask std::string if set, and static tile is 1, the background_image will use a special shader and this mask to calculate visiblity. should be same size and resolution as 'wang_template_file'
static_tile_bg_mask_threshold float 0.5 threshold used in 'sprite_static_tile_bg.frag' shader in conjuction with 'sprite_static_tile_bg_mask' to determine if a background pixel is visible or not
game_enemy_hp_scale float 1 1.f = default. Will multiply the hp of the camerabounded enemies in the area with hp_scale
game_enemy_attack_speed float 1 1.f = default. This multiplies AnimalAI's attack_ranged_frames_between in camerabounded enemies
mInsideNoiseFBM bool true will fbm the mInsideNoise if set true
mInsidePerlinScaleX double 1 [0, 2] the noise inside the stones...
mInsidePerlinScaleY double 1 [0, 2] the noise inside the stones...
mInsidePerlinSquared bool false
mInsidePerlinClamped bool false
mInsidePerlinScaled bool false
mInsidePerlinScaleMin float 0 [-2, 2]
mInsidePerlinScaleMax float 0 [-2, 2]
mInsidePerlinForceInside bool false if set, will multiply the noise_value with the gradient value
mInsidePerlinOffsetBySeed bool false NOTE( Petri ): 17.8.2023 - if set, will add worldseed as an offset to the noise
mInsidePerlinOffsetX double 0 NOTE( Petri ): 17.8.2023 - perlin noise offset
mInsidePerlinOffsetY double 0 NOTE( Petri ): 17.8.2023 - perlin noise offset
mInsideAddValue float 0 [0, 5] added inside the caves the gradient value
mMultiplierGradient float 1 how much of the gradient is applied
mMultiplierPerlin float 1 how much of the inside noise
mMultiplierExtraPerlin float 1
mGradientStartY float -512 [-1024, 1024]
mGradientEndY float 512 [-1024, 1024]
mGradientSlopeStartX double 0 [-1024, 1024] if addNoise = 3, will use this to the ( x - mGradientSlopeStartX ) * mGradientSlopeDelta
mGradientSlopeDelta double 1 [-1024, 1024] if addNoise = 3, will use this to the ( x - mGradientSlopeStartX ) * mGradientSlopeDelta
mGradientAddNoise int 1 fake enum 1=standard noise, 2=fbm noise, 3=slope
mGradientNoiseScale double 0.01 [0, 0.01]
mGradientLowNoise float -100 [-1024, 1024]
mGradientHighNoise float 100 [-1024, 1024]
coarse_map_force_terrain bool false if 1, is initially marked as 'terrain' in the coarse map used for sky light calculations etc
coarse_map_not_terrain bool false if 1, is initially never marked as 'terrain' in the coarse map used for sky light calculations etc
coarse_map_cell_count_always_zero bool false if 1, areas in this biome always have a 64x64 cell count of 0
coarse_map_inject_light bool false if 1, areas in this biome set the sky light propagation value to 1
Objects
modifiers BiomeModifiers
Custom data types
type BIOME_TYPE::Enum BIOME_PROCEDURAL 0 = standard, 1 = bitmap level loading, loads the bitmap file
BitmapCaves CavesSetup*
fog_of_war_type FOG_OF_WAR_TYPE::Enum DEFAULT the way removing fog of war works in this biome
RandomMaterials RandomizeMaterials* for wang tiles allows color -> random color transform
noise_type NOISE_TYPE::Enum IQ2_SIMPLEX1234 the style of the cave noise
mInsideNoiseType GENERAL_NOISE::Enum SimplexNoise the style of the inside noise
Privates
bitmap_data const ceng::CArray2D<uint32>* for bitmap loading, well cache it here
mBitmapNoise BitmapNoise* load the bitmap noise here
mBiomeMaterials BiomeMaterials* this is set when the biome is loaded by BiomeHelper
mModifierUIDescription std::string this should be set when the biome has modifiers. will be displayed when entering the biome
mModifierUIDecorationFile std::string this should be set when the biome has modifiers. UI 3-piece image to use when displaying modifier message when entering the biome
mDebugFilename std::string the file this was loaded from