production lines: resolve conveyor -> island placement mapping
The recipe conveyors (game_conveyor_<product>_epb) are placed as named child GameObjects in the island_* prefabs (islands_assets_all.bundle), NOT via energy_grid (power grid only) or any config asset. New extractor bundle/extract_conveyor_placements.py walks every island prefab and cross-references production_lines.json -> extracted/conveyor_placements.json. Result: Factorio (energyRods, 80mmT3Cannon, contactGrenades, armorPiercingRocket), Kaiserplatz (energyRods, 40mmT3Cannon), Demo_Wunderinsel (70mmT3Cannon), DeusExMashineSmall (computingModules, coralDust), testIsland(+Tramplers) (the 4 base test conveyors). Corrects the earlier "Armory = Sprengstofffabrik hosts explosives" guess: the LittleFactory/LittleFactoryArmory islands place NO recipe conveyors; grenades/rockets are on Factorio. Unplaced blueprints: explosiveSmall, mechanicalParts (+ the plural armorPiercingRockets, whose singular-named instance is on Factorio).
This commit is contained in:
@@ -54,18 +54,41 @@ Key item ids seen here: `item_crystalHandles` = *Raw Aurogen Crystal*,
|
||||
`extracted/items_registry.json` / `extracted/item_names.json` (built from
|
||||
`CheatItemDefinitionsData`).
|
||||
|
||||
## Island placement — open lead
|
||||
## Island placement — RESOLVED
|
||||
|
||||
Which factory/island runs which conveyor is grouped by the
|
||||
`energy_grid_*_epb.prefab` blueprints in the same bundle:
|
||||
`Wunderinsel`, `Kaiserplatz`, `DeusExMachine`, `Factorio`, `LittleFactory1-3`,
|
||||
`LittleFactoryArmory1-3`, `TestFactory`. The **`…Armory`** groups are the likely
|
||||
**Sprengstofffabrik** (explosives factory) host for the explosive / grenade / rocket /
|
||||
cannon conveyors.
|
||||
Each recipe conveyor is placed as a **named child GameObject** (`game_conveyor_<product>_epb`)
|
||||
in the `island_*` prefab's Transform hierarchy inside `islands_assets_all.bundle`. It is NOT
|
||||
in the `energy_grid_*` blueprint (that holds only `EnergyGridDataComponent` — the power grid)
|
||||
and NOT in any config / designed-environment asset. Extract with:
|
||||
|
||||
**Not yet resolved:** an `energy_grid_*` blueprint's Odin data references its conveyors by
|
||||
**entity reference, not item-id string** (a string scan of its serialized bytes finds no
|
||||
`game_conveyor_*` / `item_*` ids). So mapping recipe → specific island needs the **island
|
||||
prefab placements** in `islands_assets_all.bundle` (the `island_*` / fort / `loc_event_*`
|
||||
prefabs, where `Sprengstofffabrik` is an i2 `Toponyms/` name), not the conveyor or
|
||||
energy_grid EPBs alone. That linkage is the next step if island attribution is wanted.
|
||||
```bash
|
||||
venv/bin/python bundle/extract_conveyor_placements.py # -> extracted/conveyor_placements.json
|
||||
```
|
||||
|
||||
This walks every island prefab, collects the `game_conveyor_<product>` children (with local
|
||||
position) and cross-references each against `production_lines.json`. Result for this build:
|
||||
|
||||
| Island | Recipe conveyors placed |
|
||||
|---|---|
|
||||
| `island_Factorio` | energyRods, 80mmT3Cannon, contactGrenades, armorPiercingRocket* |
|
||||
| `island_Kaiserplatz` | energyRods, 40mmT3Cannon |
|
||||
| `island_Demo_Wunderinsel` | 70mmT3Cannon |
|
||||
| `island_DeusExMashineSmall` | computingModules, coralDust |
|
||||
| `island_testIsland`, `island_testIslandTramplers` | the 4 `base*` conveyors (inv↔large test combos, incl. the `1x wineBox → 1000x coinCrown` one) |
|
||||
|
||||
Notes / corrections:
|
||||
- The earlier guess that the **`…Armory` (Sprengstofffabrik)** islands host the explosive /
|
||||
grenade / rocket conveyors is **not supported by the placements**: `island_LittleFactory01-03`
|
||||
and `island_LittleFactoryArmory01-03` exist (each has an `energy_grid_*`) but place **no**
|
||||
recipe conveyors at all. The grenade (`contactGrenades`) and rocket (`armorPiercingRocket`)
|
||||
lines are on **Factorio**. Factorio is the main multi-product factory here.
|
||||
- `*` Factorio's child is named `game_conveyor_armorPiercingRocket` (singular) while the recipe
|
||||
blueprint is `game_conveyor_armorPiercingRockets` (plural) — a name mismatch; same line
|
||||
(→ `3x item_rocketLauncherAmmoArmorPiercing`).
|
||||
- Defined-but-**unplaced** recipe blueprints in this build: `armorPiercingRockets` (plural;
|
||||
the singular instance is on Factorio), `explosiveSmall` (→ `5x item_c4Dynamite`),
|
||||
`mechanicalParts` (→ `item_resourceMetal_t1`).
|
||||
- Infrastructure conveyors (`game_conveyorSlotInput`, `…OutInventory`, `…OutLargeItem`,
|
||||
`…InSwitch`) accompany the recipe ones on each factory island — these are the input/output
|
||||
ports, not recipes (no underscore after `conveyor` = generic infra; `game_conveyor_<x>` =
|
||||
recipe line).
|
||||
|
||||
Reference in New Issue
Block a user