- Cell rendering.
- Pass cell material data to shader.
- Create image with 32bits cell material data for each cell material.
- Pass to cell shader as a texture.
- Display base cell color.
- Cell have a base color.
- Take base colors from cell material and compile into a color palette texture.
- Add base cell color (from cell resource) palette to shader.
- Color value 16
- Define gamma correct value palette.
- Add 4 bits modulate to cell data.
- Add value palette to cell shader.
- Color modulate 16
- Define color palette.
- Add 4 bits modulate to cell data.
- Apply modulate on cell shader.
- Add booleant to not apply color in cell material.
- Check that cell can have color when changing material.
- set color (gdscript)
- reaction
- set cell (gdscript)
- cpp
- Color generation (noise/sudoku/texture)
- Generation type can be set on cell material data.
- Bloom 80%+
- Add bloom to environment.
- Light
- Add padding to light viewport, so that light does not pop-in
- Take cell data that can be seen + padding
- convert cell data to color
- raycast global light
- Raycast toward global light origin
- Can disable (eg. when no sun/moon or too deep)
- raycast light
- only update if affected chunks changed or light moved.
- global light
- Can set strenght
- Take color and add light if we can see bg
- Can disable (eg. when no sun/moon or too deep)
- Merge color pass with global light pass.
- Backgroud cells
- data: 8 bg color, 3 wire, 1 actuator, 12 actuated tile, 8 actuated tile color/value
- only alocate a chunk if there is any
- last color bit is transparency (20%)
- Draw cells & lights above layer 0.
- Pass cell material data to shader.
- World gen.
- Can configure infinite border cells material.
- Figure out gdscript interface.
- Generation passes
- Carvern
- Large cave
- Snaking tunnel
- Ocean
- Desert
- Pyramid
- Ice
- Bedrock
- Hell
- Tower
- Sky islands
- Surface plateau
- Mountain
- Slime pit
- Mushroom cavern
- Carvern
- Post generation
- Add set_cell_generation(x, y, mat) to gdscript which can set border cells and skip activation
- Take border cell from cells's border.
- Activate all
- Paint all
- Simulate for 3k-10k ticks for cells to settle
- Add layer height to some global state.
- Border cells.
- Looping infinite border.
- Reapply border cell when border is modified.
- Benchmark
- Simulation
- Run without blocking main thread.
- Run using multiple thread.
- If too many active chunk, only update those close to the player.
- Consider storing ractions in hashmap.
- Refactor cell movement.
- Activate rows manualy when setting cells.
- Character
- Fix character going slightly down just before going up for some reason.
- Animation template
- Player
- Hands
- Show current item.
- Look where the player is aiming
- Item use animations.
- Melee attack
- Mining
- Consume item
- Hands
- Enemies
- Spawn based on player biome.
- Ai templates
- Bosses
- Items
- Player inventory
- Chest
- Equiped armor/accessories
- Change sprite
- Dropped item
- Picked-up if enough space & nearby
- Merge same item nearby
- Delete if > than a configurable amount
- Player inventory
- Biome
- Biome condition
- Min cell coverage needed.
- Min distance from center.
- Min depth.
- Priority over other biome
- Add biome to cell material.
- New biome scan node
- Continuously scan nearby cells. Keep a moving average
- Emit signal on biome change.
- Remove biome depth requirement
- Only cavern + surface layer
- Add bg to biomes data
- Background
- Use layer height to clamp biomes bg position
- Not affected by light
- Infinite loop
- Change based on current biome
- Seamless transition
- Add biome background node to biome data.
- Add cavern fallback bg
- Add cavern start texture
- Add surface color gradient
- new bg should fade-in as well (so that the bgs overlap does not add to >1.0).
- Background
- Biome condition