Generate iron deposits by seeded scatter #32

Open
opened 2026-08-20 05:44:03 +01:00 by liamjd · 0 comments
Owner

Generates iron Deposit instances by seeded scatter, per #26's ore-placement approach. Depends on #29 (Deposit/ResourceDeposits) only - no terrain query beyond what TerrainGrid already exposes.

Placement

No placement heuristic is drafted for iron in the docs (unlike stone's hill-bias or clay's water-rule), so this pass uses plain seeded rejection-sampling: pick candidate cells deterministically from map_seed, reject water/unwalkable tiles, and enforce a minimum spacing between accepted deposits so they don't cluster unrealistically. No terrain-feature bias for now - a real heuristic can be layered on later without changing the deposit data model.

Deposit count and spacing are tunable parameters, not fixed numbers - leave them as exported/adjustable values rather than hardcoding, the same way TerrainPreset exposes its generation knobs.

The overlapping-pairs mechanic from #26 (e.g. copper placed correlated with existing gold deposits) is out of scope here - iron is the only ore being modelled this pass, so there is nothing to pair it with yet.

Output

Populates ResourceDeposits with Deposit(resource_type = Iron, footprint = ..., richness = <flat value>) instances, per #29's flat-richness scope for this pass.

References

#26, #29.

Generates iron `Deposit` instances by seeded scatter, per #26's ore-placement approach. Depends on #29 (`Deposit`/`ResourceDeposits`) only - no terrain query beyond what `TerrainGrid` already exposes. ## Placement No placement heuristic is drafted for iron in the docs (unlike stone's hill-bias or clay's water-rule), so this pass uses plain seeded rejection-sampling: pick candidate cells deterministically from `map_seed`, reject water/unwalkable tiles, and enforce a minimum spacing between accepted deposits so they don't cluster unrealistically. No terrain-feature bias for now - a real heuristic can be layered on later without changing the deposit data model. Deposit count and spacing are tunable parameters, not fixed numbers - leave them as exported/adjustable values rather than hardcoding, the same way `TerrainPreset` exposes its generation knobs. The overlapping-pairs mechanic from #26 (e.g. copper placed correlated with existing gold deposits) is out of scope here - iron is the only ore being modelled this pass, so there is nothing to pair it with yet. ## Output Populates `ResourceDeposits` with `Deposit(resource_type = Iron, footprint = ..., richness = <flat value>)` instances, per #29's flat-richness scope for this pass. ## References #26, #29.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
liamjd/UntitledColonyBuilder#32
No description provided.