HARTWELL_LABS

Blocks & Biomes

The complete block registry and biome model, extracted from `world/block.rs` and `world/biomes.rs`.

Blocks & Biomes

The complete block registry and biome model, extracted from world/block.rs and world/biomes.rs.

Block registry (97 block types)

Block IDs are u8 values in a BlockType enum; a BLOCK_REGISTRY maps numeric IDs to names and textures.

Terrain & surfaces (0โ€“8)

IDBlockIDBlock
0Air5Gravel
1Grass6Snow
2Dirt7Cobblestone
3Stone8Bedrock
4Sand

Liquids & natural formations (9โ€“24)

IDBlockIDBlock
9Water17Redstone Ore
10Tree Trunk18Slate Rock
11Tree Leaves19Slate Coal Ore
12Coal Ore20Slate Diamond Ore
13Iron Ore21Tuff
14Gold Ore22Ember Rock
15Diamond Ore23Glow Rock
16Emerald Ore24Obsidian

Building blocks (25โ€“44)

IDBlockIDBlock
25Stone Bricks35Packed Mud
26Andesite36Rooted Soil
27Bush37Coarse Soil
28Tall Grass38Forest Floor
29Flower39Bloom Floor
30Dead Bush40Root Lattice
31Cactus41Needle Wood
32Clay42Warm Wood
33Moss Mat43Wet Wood
34Mud44Pale Wood

Canopies (45โ€“51)

IDBlockIDBlock
45Needle Canopy49Bloom Canopy
46Warm Canopy50Dark Wood
47Wet Canopy51Dark Canopy
48Pale Canopy

Items & tools (52โ€“74)

IDBlockIDBlock
52Sapling64Wooden Pickaxe
53Stick65Wooden Axe
54Flint66Wooden Shovel
55Flint Pickaxe67Wooden Hoe
56Stone Pickaxe68Torch
57Iron Pickaxe69Door
58Diamond Pickaxe70Trapdoor
59Netherite Pickaxe71Ladder
60Planks72Fence
61Iron Ingot73Fence Gate
62Chest74Workbench Upgrade
63NVCrafter

Flowers โ€” AI output class 0 (75โ€“83)

IDBlockIDBlock
75Rose80Tulip (Orange)
76Dandelion81Cornflower
77Tulip (Red)82Allium
78Tulip (Pink)83Azalea Flower
79Tulip (White)

Ferns & water plants โ€” AI output class 1 (84โ€“89)

IDBlockIDBlock
84Lily Pad87Seagrass
85Fern88Tall Seagrass
86Fern Plant89Kelp

Sticks, pebbles & decorations โ€” AI output classes 2โ€“3 (90โ€“96)

IDBlockIDBlock
90Small Stick94Mossy Cobble
91Pebble 195Vine
92Pebble 296Moss Carpet
93Pebble 3

Note: the AI output classes above describe the neural network's decision categories (flowers / ferns & water plants / sticks / pebbles). The ID ranges in the tables are for reference only.

Tool tiers

pub enum ToolTier { Hand = 1, Flint = 2, Stone = 3, Iron = 4, Diamond = 5, Netherite = 6 }
TierPowerTierPower
Hand1Iron5
Flint2Diamond7
Stone3Netherite8

ToolStats carries tier, speed_multiplier, and max_durability.

Movement mediums

MovementMedium metadata lets the engine apply physics modifiers per medium:

MovementMedium::FOLIAGE {
    movement_speed_multiplier: 0.55,
    sprint_speed_multiplier:  0.65,
    fall_speed_multiplier:    0.35,
    sound_dampening:          0.6,
}

The camera tracks in_foliage_medium and footstep_volume at runtime for these hooks (audio consumption is a future feature).


Biomes

Nine climate-driven biomes. Sea level is 46. All values are exact from world/biomes.rs.

BiomeTempHumidityTree densityGrass densitySurface blockVegetation tint
Ocean0.480.880.000.00Sand[0.58, 0.82, 0.74]
Coast0.620.540.020.10Sand[0.78, 0.82, 0.48]
Plains0.580.460.050.72Grass[0.72, 0.92, 0.54]
Forest0.540.620.460.46Grass[0.50, 0.86, 0.42]
Dark Forest0.500.740.740.18Forest Floor[0.38, 0.72, 0.34]
Swamp0.660.900.280.26Mudโ€”
Taiga0.240.520.580.18Grassโ€”
Desert0.920.100.000.00Sandโ€”
Mountains0.280.340.120.10Grassโ€”

Biome observations

  • Desert is the hottest (0.92) and driest (0.10) biome โ€” no trees, no grass.
  • Swamp is the most humid (0.90) with a Mud surface.
  • Taiga and Mountains are the coldest (0.24 / 0.28); taiga has the highest tree density after dark forest (0.58).
  • Dark Forest has the highest tree density overall (0.74) on a Forest Floor surface.

Tree kinds

pub enum TreeKind { Oak, Birch, Pine, DarkOak, DeadTree }

Biomes select tree types from constants (e.g. PLAINS_TREES, FOREST_TREES, DARK_FOREST_TREES, NO_TREES).

Generation channels

Terrain combines multiple OpenSimplex2 channels, each with a dedicated seed:

ChannelDrives
Continent shapeBiome placement
TemperatureClimate
HumidityClimate
ErosionRelief
Peaks / reliefMountain shapes
Height / detailSurface elevation
WarpSurface variation
CavesCave carving
OresOre placement
WaterWater-aware column sampling

The generator exposes climate data to the renderer: ambient color, fog color, fog density, scene grade, vegetation tint, warmth, moisture, and lushness.

On this page