====== Project Status ====== This document summarizes the current LanteaCraft rewrite state from the source tree and the existing docs. It is descriptive, not aspirational. ===== Scope ===== * Minecraft target: 1.21.1 NeoForge rewrite. * This is not a direct port of the legacy 1.7.10 LanteaCraft code. * Legacy behavior and assets may be reference material, but current behavior is defined by the current source tree. * Current Stargate implementation is a working prototype with known gaps. ===== Implemented Systems ===== ==== Registration And Bootstrap ==== * Blocks, items, block entities, sounds, networking, creative tabs, config, teleport event handling, and chunk ticket registration are wired through ''LanteaCraft''. * Client-side block entity renderers are registered for: * ''stargate_base'' * ''transport_ring'' * ComputerCraft integration is registered only when the ''computercraft'' mod is loaded. ==== Stargate Blocks And Variants ==== Registered Stargate variants exist for: * Milky Way * Nox * Wraith * Pegasus Each variant has Stargate ring, chevron, base, and DHD blocks/items registered in the source tree. Current docs describe the Stargate multiblock rules primarily in terms of the default block names. Variant-specific multiblock behavior should be verified against the source before making changes. ==== Stargate Multiblock ==== * The Stargate is assembled as a 7x7 frame centered on a base at the bottom middle. * Assembly sets ''assembled=true'' on the frame blocks and registers a ''StargateEntry''. * Disassembly clears assembled state where possible, removes saved data, and attempts connection/chunk-ticket cleanup. * Right-clicking an assembled gate with no item shows the gate address. * Right-clicking the assembled bottom row with a valid solid block applies bottom-row camouflage through the base block entity. ==== Address And Saved Data ==== * Addresses are currently 7 glyphs: 6 generated gate glyphs plus 1 dimension glyph. * The glyph alphabet is ''ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-+''. * Preferred dimension glyphs are: * ''A'' for ''minecraft:overworld'' * ''N'' for ''minecraft:the_nether'' * ''E'' for ''minecraft:the_end'' * Saved data is stored globally as ''lanteacraft_stargate_network''. * Saved data tracks registered gates, dimension glyph assignments, active one-way connections, and connection start times. ==== DHD Dialing ==== * DHD interaction opens a custom client-side ''DhdScreen''. * The screen accepts typed glyphs, paste, backspace/delete, and sends ''DialStargatePayload''. * The server validates the DHD, finds the nearest assembled gate within radius 8, and delegates dialing/disconnect behavior through ''StargateDialer''. * Blank input is treated as a disconnect request. ==== Stargate Connections ==== * Connections are one-way: source address to destination address. * Source and destination base block entities receive dialing/connected state for rendering and sounds. * The source/outgoing gate can disconnect. * Incoming gates cannot be redirected or closed locally through the current dialer flow. * A one-minute timeout is enforced by the teleport handler. ==== Teleport Behavior ==== * Stargate teleporting currently handles players only. * The active source gate teleports front-side entrants to the destination front side. * Back-side entry at the outgoing gate is rejected/pushed to the front side. * Entry into an incoming destination gate is rejected/pushed outward. * The detection volume is a rectangular slab, not a circular event horizon. ==== Chunk Loading ==== * A NeoForge ticket controller named ''lanteacraft:stargate'' is registered. * Opening a connection force-loads source and destination base chunks when the relevant levels are available. * Disconnect, timeout, and disassembly attempt to release those tickets. * Only base chunks are loaded. ==== Stargate Rendering ==== * The assembled Stargate visual is anchored to the base block entity. * ''StargateBaseRenderer'' owns procedural ring geometry, glyph ring, chevrons, chevron lighting, dialing rotation, bottom camouflage, event horizon, kawoosh, and expanded render bounds. * Event horizon and kawoosh are procedural translucent meshes using ''textures/fx/eventhorizon.png''. * The renderer is functional prototype code, not final model architecture. ==== Transport Rings ==== * A ''transport_ring'' block and block entity exist. * Right-click activation searches for another transport ring platform in the same chunk column. * Matching platforms animate and teleport eligible entities from a beam volume at the source to the destination. * The renderer animates six rings and a beam while active. * Cross-dimensional transport ring behavior is not implemented in the current source. ==== ComputerCraft Compatibility ==== * When ComputerCraft is present, Stargate blocks can expose a ''stargate'' peripheral for assembled gates. * Exposed methods include address/status queries, dialing, disconnecting, and event delivery. * Events include dialing/opened/closed/entity transit style payloads. * Exact in-game ComputerCraft behavior and compatibility status are unknown without testing. ===== Assets And Data ===== Implemented resources include: * Stargate, DHD, transport ring, ore, metal block, and item models/textures. * Milky Way, Nox, Wraith, and Pegasus Stargate/DHD texture variants. * Stargate sounds for rolling, chevron lock, open, close, DHD button, and event horizon ambience. * Recipes for Stargate parts, crystals, naquadah/trinium resources, and related blocks/items. * Worldgen JSON for naquadah and trinium ores. ===== Known Prototype Areas ===== * Assembly/debug logging is very verbose. * Stargate disassembly under partial destruction needs testing. * Existing saved addresses from older prototypes are not migrated. * Destination busy rules are incomplete. * DHD-to-gate association is nearest-gate search, not explicit linking. * Renderer and gameplay state are tightly coupled to the base block entity. * Stargate teleport support is player-only. * Chunk loading has no startup repair/reassertion path for persisted active connections. * Event horizon translucency, kawoosh replay behavior, and render cost need testing. * Transport rings are functional prototype code and are less documented than Stargates. ===== Unknowns ===== * Current automated test coverage is unknown from the docs. * Manual QA coverage is unknown unless recorded elsewhere. * Multiplayer and dedicated-server behavior beyond what the source implies is unknown. * Compatibility with existing worlds from older rewrite snapshots is unknown. * Final art/model direction is unknown. * Balance/power/progression rules are unknown.