Expand description
Infinite procedural upgrade tree.
Every node in the tree is a pure function of (TREE_SEED, lot_x, lot_y).
Save state stores only the set of bought lot coordinates plus a pan
position; everything else (geometry, effects, names, costs, edges) is
regenerated on demand from the seed.
The seed is a FNV-1a 64-bit hash of the literal string "DEADBEEF_BANANA"
— same value for every player, every install, forever. The tree itself is
the meta-game.
Re-exports§
pub use aggregate::FingererTreeContrib;pub use aggregate::TreeAggregate;pub use coord::TreeCoord;pub use node::LOT_H;pub use node::LOT_W;pub use node::NodeSpec;pub use node::Rarity;pub use node::anchor_of;pub use node::diagonal_route_via;pub use node::edge_exists;pub use node::neighbors_of;pub use node::node_at;pub use primitive::Op;pub use primitive::Primitive;pub use primitive::Target;pub use seed::TREE_SEED;pub use seed::TREE_SEED_LITERAL;pub use state::UpgradeTreeState;
Modules§
- aggregate
- Parallel-Aggregate cache for tree contributions.
- coord
- Lot coordinates on the infinite tree canvas.
- naming
- Procedural name + blurb generation.
- node
- Per-lot node generator.
- noise
- Deterministic value noise — hash-smoothed lattice sampling.
- primitive
- Engine primitives — the fixed vocabulary of effects the tree can produce.
- rng
- Position-seeded deterministic RNG for tree generation.
- seed
- The one true seed.
- state
- Persistent state for the upgrade tree.