Skip to content

Commit 6985ffa

Browse files
committed
Keep coding-agent guide as documentation index
1 parent d3f63d3 commit 6985ffa

1 file changed

Lines changed: 11 additions & 87 deletions

File tree

docs/AGENTS.md

Lines changed: 11 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,14 @@
1-
# OreSpawn Integration Notes For Coding Agents
1+
# OreSpawn Documentation For Coding Agents
22

3-
OreSpawn 4.0 is a required Forge mod and declarative world-generation engine.
4-
Public API major version 1 consists only of `zone.moddev.mc.orespawn.api`. Treat
5-
every other Java package as internal and unstable.
3+
This index is for coding agents working on other mods or modpacks that integrate
4+
with OreSpawn. Start with [DEVELOPER_GUIDE.md](DEVELOPER_GUIDE.md).
65

7-
Integration entry points:
6+
Use the focused guides for implementation details:
87

9-
- Java declarations: `OreSpawnApi.enqueue(WorldgenProvider)` during
10-
`InterModEnqueueEvent`.
11-
- Packaged declarations: `data/<modid>/orespawn/provider.json`.
12-
- Pack overrides: `config/<modid>-orespawn.json`.
13-
- Active queries: `getActiveProfile(MinecraftServer)` and
14-
`createSampler(ServerLevel)`.
15-
- Native-ore takeover: disable only when `isOreTakeoverActive(modid)` is true.
16-
17-
Configuration contracts:
18-
19-
- Global `config/orespawn-worldgen.json`: schema 6.
20-
- World `serverconfig/orespawn-worldgen.json`: schema 5.
21-
- Provider files: schema 4; legacy schemas 1-3 remain accepted.
22-
- Ore placement accepts fixed `quantity` or paired inclusive
23-
`min_quantity`/`max_quantity` values in the range 1-64. A complete range is
24-
authoritative when both forms exist.
25-
- `dimension_selectors.orespawn:all_except_nether_end` applies to ordinary
26-
dimensions but never Nether or End. Explicit dimension entries override it
27-
per ore and must also drive vanilla-feature suppression.
28-
- JSON Schemas and examples are under `META-INF/orespawn/docs/` in the jar.
29-
- Schema 4 providers may declare `biome_palettes` and `dimension_materials`.
30-
Palettes wrap the native dimension biome source. Region presets are 128,
31-
256, 512, 1024, and 2048 blocks.
32-
33-
Lifecycle and ownership:
34-
35-
- Forge setup is parallel. Never mutate OreSpawn internals directly.
36-
- A pack override file is authoritative over packaged and API definitions for
37-
the same provider. A malformed override fails closed.
38-
- Provider rule IDs use the provider namespace. A rule's `block` or weighted
39-
output may reference any installed block.
40-
- Definitions freeze at load completion and change only after restart or an
41-
operator `/orespawn reload`.
42-
- Auto-selected templates apply only to fresh worlds with no explicit
43-
`default_template`. Highest priority wins, then lexical ID. Existing world
44-
profiles never auto-switch.
45-
46-
Performance constraints:
47-
48-
- Do not request callbacks in block-generation loops.
49-
- Registry IDs remain `Identifier` values until setup-time baking.
50-
- Dimension, tag, alias, biome, geome, family, pattern, and block-state
51-
resolution occurs before generation.
52-
- Biome palettes bake holders, climate bounds, namespace filters, weights,
53-
surfaces, and dimension materials. Provider callbacks never run in selection.
54-
- Ore rules support `uniform`, `triangle`, `bottom_triangle`, and
55-
`uniform_bottom_triangle` height distributions plus a 0-1
56-
`discard_chance_on_air_exposure` value for buried deposits.
57-
- The chunk hot path must contain no config reads, registry access, strings,
58-
logging, reflection, or per-block allocation.
59-
- Cache biome filters as registry keys, never `Biome` object identities;
60-
dynamic-registry biome instances are not identity-stable.
61-
- Ore and flat-bedrock retrogen are bounded and marker-based. Terrain strata
62-
are never retrogened.
63-
64-
Localization constraints:
65-
66-
- All 16 shipped locale files are required release content and must contain the
67-
exact same key set.
68-
- Every new or changed player-facing string must include native-language text
69-
in the same change for `de_au`, `de_de`, `es_es`, `es_mx`, `fr_ca`, `fr_fr`,
70-
`ja_jp`, `ko_kr`, `pt_br`, `ru_ru`, and `zh_cn`.
71-
- Never copy English prose into a non-English file as a temporary fallback.
72-
Preserve format placeholders and identifiers exactly while translating the
73-
surrounding text.
74-
- Run the locale translation guardrail tests. Exceptions are permitted only
75-
for genuinely language-neutral names or tokens and must be narrowly
76-
documented in the test.
77-
78-
Compatibility defaults:
79-
80-
- Standalone OreSpawn is passive: no rocks, terrain dimensions, fluid deposits, ore
81-
suppression, retrogen, or flat bedrock are enabled by default.
82-
- The Overworld is the conventional geology target, but a provider must opt it
83-
in. Nether and End terrain remain untouched unless explicitly configured.
84-
- Mineralogy 6 is a provider, not a public-API compatibility facade. Do not use
85-
removed `zone.moddev.mc.mineralogy.api` classes.
86-
87-
Common tasks are documented in `API.md`, `PROVIDERS.md`, `FEATURES.md`,
88-
`TEMPLATES.md`, `BIOMES.md`, and `DIMENSIONS.md`. Start with
89-
`DEVELOPER_GUIDE.md` when the task is broader than one isolated schema or API
90-
question.
8+
- [API.md](API.md) for the supported Java API;
9+
- [PROVIDERS.md](PROVIDERS.md) for packaged and configurable providers;
10+
- [FEATURES.md](FEATURES.md) for rocks, ores, deposits, and geology;
11+
- [BIOMES.md](BIOMES.md) and [DIMENSIONS.md](DIMENSIONS.md) for world integration;
12+
- [TEMPLATES.md](TEMPLATES.md) for selectable world styles;
13+
- [CONFIGURATION.md](CONFIGURATION.md) for configuration behavior;
14+
- [README.md](README.md) for schemas, examples, and the complete documentation index.

0 commit comments

Comments
 (0)