Main

24/2/2024 Tues While you were gone, because I ran out of usage..... mining adds ore to play_inventory, take note that is per planet. Although it's indestructable, have the damange system as session configuration can be set to have genesis destructable. There will be a full mathematical formula to calculate planet's contribution factor to supply chain. (This is to be done in the later stages). task are queued and can be re-arranged. player itself doesn't have inventory, resource will always belong the the planet itself. Genesis's task should be input only if Genesis is selected, if not, then the click should interact with the world. Belts also require Genesis to build (remove the instant placement, queue as BUILD task instead). Update CLAUDE.md to note that tests should be done before committing. Implement click and drag to move the viewport (camera pan).

Auto Warz — Dev Update (Feb 24, 2026)

We are mid-way through M1.7 — Prototype Session Loop. Before starting on the session loop tasks, we built and shipped a major factory system addition: IoConnector. Here is a full summary of everything implemented since the last orchestrator update.

Systems Built / Changed IoConnector (IoConnector.gd) A new free-placement directional pass-through cube that bridges buildings and belts.

input_face (blue plate) — the face items enter FROM. Set by R key at placement time. output_face (green plate) — the face items exit TO. Phase 1: always opposite input_face. E key is a no-op stub; research unlock (M3.x) will let it cycle output_face through the other 3 faces independently. Connector can be placed before adjacent buildings exist. Building discovery is fully dynamic each tick — no attached_building reference. Works with belts OR buildings on either face. Single item buffer (held_item), tick_pull / tick_push pattern. SimulationManager — connector phases added

_connectors: Array[IoConnector] and _connector_registry: Dictionary for O(1) lookup. register_connector(), unregister_connector(), get_connector_at(). New tick phase order: P1 = buildings produce → P2 = conn.tick_pull(self) (pull from adjacent building on input face) → P3 = conn.tick_push(belt_system, self) (push to adjacent belt or building on output face) → P4 = belts advance → P5 = Genesis tasks. BeltSegment — two changes

When a belt reaches a connector cell, it calls sim_manager.get_connector_at() and delivers via try_accept_item() — no longer tries to push directly to buildings. Bug fix — reverse-flow: Added opposite_dir() static helper. Before accepting an item, both belt→belt and connector→belt pushes now check that the receiving belt's direction is not the exact opposite of the push direction. A backwards-facing belt is skipped, preventing items from being inserted into a belt's output face and flowing the wrong way. BuildingInstance

pop_output_item() -> String added — connectors call this to pull from buildings. Old port/connector-slot system removed. tick_output() is now a no-op stub (connectors replace it). GenesisTask / GenesisBot

New task type PLACE_CONNECTOR with fields connector_cell: Vector2i, connector_building_face: int (stores input_face direction). connector_placed(cell: Vector2i, input_face: int) signal on GenesisBot. WorldScene

PlacementTool.CONNECTOR = 4 added. _connectors_node: Node3D container, _placed_connectors: Dictionary for cell→IoConnector lookup. R key cycles _belt_direction when BELT or CONNECTOR tool is active (rotates ghost). E key is handled as no-op; the follow-up is tracked in docs/open-items.md, area ports. _enqueue_active_or_place(): CONNECTOR case enqueues GenesisTask.place_connector(). _on_genesis_connector_placed() → _place_connector_at(): calls conn.setup(), registers with SimulationManager. _remove_building_at(): when a building is demolished, any adjacent connector whose input or output face pointed into that building's footprint is also auto-removed. main.tscn

BtnConnector button in the toolbar. Connectors Node3D container in the scene tree. Current State All of the above is committed and pushed to main. No parser errors. Tested in-game — items flow correctly through connector→belt and belt→connector chains. Misaligned belts no longer cause reverse flow.

What's Next — M1.7 Remaining Tasks Main menu: New Game button starts a solo session Session ends via Escape → Session Menu (Resume / Quit to Menu) Win condition: produce 10 Metal Plates → Victory screen Lose condition: Genesis destroyed (only when is_destructible = true in session config) Save/load: auto-save every 60s and on quit Basic settings: master volume, fullscreen toggle, camera speed Definition of Done: A player can launch the game, build a factory, produce 10 Metal Plates, see a Victory screen, and quit cleanly back to the main menu.