Table of Contents

Current Systems

This document describes the current LanteaCraft rewrite state as implemented in the source tree. It is intentionally descriptive, not aspirational: sections call out what is working, what is prototype-quality, and what still needs testing.

Stargate Multiblock Lifecycle

Implemented

The Stargate frame is implemented as a 7×7 block multiblock centered on a stargate_base at the bottom middle. The base stores horizontal facing; the frame is resolved relative to base.FACING.getClockWise().

The accepted pattern is defined in StargateMultiblock.buildPattern():

Placement flow:

Interaction flow:

Disassembly flow:

Prototype Quality

Needs Testing

Address Generation And Saved Data

Implemented

Addresses are generated by StargateAddress.

Current format:

6 generated gate glyphs + 1 dimension glyph

The glyph alphabet is the legacy 38-character set:

ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-+

The first six glyphs are generated from the gate chunk coordinates. The dimension is no longer mixed into the six generated glyphs. Instead, the seventh glyph represents the dimension.

Reserved/preferred dimension glyphs:

Other dimensions are assigned the first available legacy glyph. These assignments are persisted in StargateNetworkSavedData.dimensionGlyphs.

Saved data is global and stored from the overworld data storage under:

lanteacraft_stargate_network

Persisted data includes:

Lookup maps maintained in memory:

Collision handling:

Prototype Quality

Needs Testing

DHD Dialing Flow

Implemented

The DHD block opens a client-side DhdScreen on right-click.

The GUI:

Server payload handling:

  1. Validates that the DHD block still exists.
  2. Finds the nearest assembled Stargate within radius 8.
  3. Blank address means disconnect the local outgoing connection.
  4. Nonblank address must be exactly 7 valid glyphs.
  5. Looks up the destination by address.
  6. Rejects dialing the same local gate.
  7. Forces source/destination chunks.
  8. Stores a one-way active connection.
  9. Starts dialing animation/sound state on both source and destination base block entities.

Prototype Quality

Needs Testing

Connection Model

Implemented

Connections are one-way and stored as:

sourceAddress -> destinationAddress

The source gate is the dialing/outgoing gate. The destination gate is incoming.

Connection state lives in two places:

The source and destination BEs both receive:

Disconnect behavior:

Timeout behavior:

Prototype Quality

Needs Testing

Teleport Behavior

Implemented

StargateTeleportHandler subscribes to server level post-tick events.

For each active source address:

For each active destination address:

Interior detection:

Outgoing source behavior:

Back side of outgoing gate:

Incoming destination behavior:

Cross-dimensional safety:

Prototype Quality

Needs Testing

Chunk Loading Behavior

Implemented

StargateChunkLoading registers a NeoForge TicketController named:

lanteacraft:stargate

When a connection is opened:

When a connection disconnects, times out, or disassembles:

Prototype Quality

Needs Testing

Known Risks And TODOs

Current Risks

TODO Candidates