MCPcopy Index your code
hub / github.com/PC-Logix/LanteaCraft

github.com/PC-Logix/LanteaCraft @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,024 symbols 2,863 edges 91 files 41 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LanteaCraft

LanteaCraft is a modern NeoForge rewrite of the classic Stargate-themed Minecraft mod. The current 0.1.x build targets Minecraft 1.21.1 and focuses on getting the core Stargate loop working again: build an assembled gate, discover its address, dial another gate, and travel through the event horizon.

This is still an early rewrite. The mod is playable enough to test the main systems, but several features are prototype-quality and the final balance, progression, visuals, and compatibility surface are still in progress.

Current Status

Implemented in the current source tree:

  • NeoForge Minecraft 1.21.1 project targeting Java 21.
  • Buildable 7x7 Stargate multiblocks.
  • Four Stargate/DHD visual variants:
    • Milky Way
    • Nox
    • Wraith
    • Pegasus
  • Seven-symbol Stargate addresses using six location glyphs plus one dimension glyph.
  • Persistent Stargate network saved data.
  • Dial Home Device block and custom dialing screen.
  • Cross-dimensional Stargate travel between active gates.
  • One-way wormhole connections with timeout cleanup.
  • Optional incoming-side travel through config.
  • Opening kawoosh damage/death through config.
  • Event horizon rendering, glyph ring rendering, chevron lighting, and dialing animation.
  • Bottom-row camouflage for assembled Stargates.
  • Transport Ring blocks for vertical transport.
  • Naquadah and trinium ores, raw materials, ingots, and storage blocks.
  • Worldgen JSON for naquadah and trinium ores.
  • Crafting recipes for Stargate parts, DHDs, crystals, materials, variants, and transport rings.
  • Optional CC:Tweaked peripheral support for assembled Stargates.

Not currently implemented or not considered complete:

  • Power requirements.
  • Iris/shield mechanics.
  • Address books.
  • Gate ownership or permissions.
  • Destination busy/lockout rules beyond the current prototype behavior.
  • Dedicated progression/balance pass.
  • REI/JEI custom integration.

Requirements

  • Minecraft: 1.21.1
  • Mod loader: NeoForge 21.1.234
  • Java: 21
  • Optional: CC:Tweaked 1.120.0+

Building From Source

From the project root:

./gradlew build

On Windows:

gradlew.bat build

The built mod jar is written to:

build/libs/

Common development runs:

./gradlew runClient
./gradlew runServer
./gradlew runData

Stargates

A Stargate is a vertical 7x7 frame centered on a Stargate Base block at the bottom middle. All frame blocks must be from the same variant set. Mixed Milky Way/Nox/Wraith/Pegasus frames do not assemble.

Required blocks:

  • 1 Stargate Base
  • 14 Stargate Ring Segments
  • 9 Stargate Chevrons

Frame layout:

Y=6   R C R C R C R
Y=5   R           R
Y=4   C           C
Y=3   R           R
Y=2   R           R
Y=1   C           C
Y=0   R C R B R C R

Legend:

  • B = Stargate Base
  • R = Stargate Ring Segment
  • C = Stargate Chevron
  • blank spaces = air

When autoAssembleStargates is enabled, a complete frame assembles automatically after the final valid block is placed.

Stargate Interaction

With an empty hand:

  • Right-click an assembled Stargate to display its address in chat.
  • The address message is clickable/copyable.
  • Sneak + right-click an assembled Stargate to disassemble it.

With a block item:

  • Right-click the assembled bottom row with a valid solid block to apply bottom-row camouflage.

Breaking an assembled Stargate block attempts to disassemble and unregister that gate from the saved network.

Addresses

Gate addresses are seven glyphs long.

The current address format is:

6 location glyphs + 1 dimension glyph

The glyph alphabet is:

ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-+

Reserved dimension glyphs:

  • A = Overworld
  • N = Nether
  • E = End

Other dimensions are assigned available glyphs and persisted in the Stargate network saved data.

Dial Home Devices

Place a DHD near an assembled Stargate and right-click it to open the dialing screen.

Current DHD behavior:

  • The DHD searches for the nearest assembled Stargate within dhdSearchRadius.
  • The default search radius is 8 blocks.
  • Addresses can be typed, pasted, or entered with the on-screen glyph buttons.
  • Press Enter or the center button to dial.
  • Submitting a blank address disconnects the local outgoing connection.

Dialing rules in the current implementation:

  • The destination address must exist in saved Stargate network data.
  • Dialing the same local gate is rejected.
  • The connection is stored as one-way: source address -> destination address.
  • The outgoing gate controls disconnect.
  • Incoming-side travel is rejected unless enabled in config.

Stargate Travel

When a wormhole is open, entities entering the outgoing event horizon are teleported to the destination gate. Travel preserves relative position and attempts to transform facing/velocity to match the destination gate orientation.

The current handler affects non-passenger entities. Players, mobs, and other entities may be moved if they can be teleported by Minecraft's normal entity/dimension rules.

By default:

  • Wormholes time out after 60 seconds.
  • Incoming-side travel is disabled.
  • A teleport cooldown prevents immediate re-trigger loops.
  • The kawoosh can kill entities caught in front of an opening gate.

Transport Rings

Transport Rings are a separate prototype transport system.

Current behavior:

  • Place at least two Transport Ring blocks at different positions in the same chunk.
  • Right-click one ring to activate it.
  • The source searches the same chunk column for the nearest non-busy Transport Ring.
  • After the animation delay, entities in the beam area are moved to the destination ring.
  • The source and destination enter a short cooldown.

Current limitations:

  • Transport Rings do not search across chunks.
  • There is no address, power, ownership, or controller system for rings yet.

Materials And Worldgen

LanteaCraft currently adds:

  • Naquadah Ore
  • Trinium Ore
  • Naquadah
  • Trinium
  • Naquadah Ingot
  • Trinium Ingot
  • Block of Naquadah
  • Block of Trinium
  • Blank Crystal
  • Control Crystal
  • Core Crystal

Naquadah and trinium ore generation is provided through worldgen JSON and a NeoForge biome modifier.

Recipes

The source includes vanilla crafting recipes for all current craftable items and blocks.

Materials

Naquadah Ingot, shapeless:

Iron Ingot + Naquadah -> Naquadah Ingot

Trinium Ingot, shapeless:

Iron Ingot + Trinium -> Trinium Ingot

Naquadah Block:

NNN
NNN
NNN

N = Naquadah Ingot

The block can be crafted back into 9 Naquadah Ingots.

Trinium Block:

TTT
TTT
TTT

T = Trinium Ingot

The block can be crafted back into 9 Trinium Ingots.

Crystals

Blank Crystal:

GGG
GDG
GGG
  • G = Glass Pane
  • D = Diamond

Control Crystal:

RRR
RBR
RRR
  • R = Redstone
  • B = Blank Crystal

Core Crystal:

LLL
LBL
LLL
  • L = Lapis Lazuli
  • B = Blank Crystal

Stargate Parts

Stargate Ring Segment:

ISI
NNN
III
  • I = Iron Ingot
  • S = Chiseled Sandstone
  • N = Naquadah Ingot

Stargate Chevron:

SGS
NPN
IRI
  • S = Chiseled Sandstone
  • G = Glowstone Dust
  • N = Naquadah Ingot
  • P = Ender Pearl
  • I = Iron Ingot
  • R = Redstone

Stargate Base:

SRS
NEN
ICI
  • S = Chiseled Sandstone
  • R = Redstone
  • N = Naquadah Ingot
  • E = Eye of Ender
  • I = Iron Ingot
  • C = Core Crystal

Dial Home Device

DHD:

SRS
NCN
III
  • S = Chiseled Sandstone
  • R = Redstone
  • N = Naquadah Ingot
  • C = Control Crystal
  • I = Iron Ingot

Variant Conversions

Variant Stargate parts and DHDs are shapeless dye conversions from the Milky Way versions:

Milky Way part + Green Dye  -> Nox part
Milky Way part + Blue Dye   -> Pegasus part
Milky Way part + Purple Dye -> Wraith part

This applies to:

  • Stargate Ring Segment
  • Stargate Chevron
  • Stargate Base
  • DHD

Transport Ring

Transport Ring:

TGT
NCN
TET
  • T = Trinium Ingot
  • G = Gold Ingot
  • N = Naquadah Ingot
  • C = Control Crystal
  • E = Ender Pearl

Configuration

The common config currently exposes:

Option Default Description
debugLogging false Enables extra startup and system logging.
allowIncomingWormholeTravel false Allows entities to travel back through the incoming side of a wormhole.
kawooshDeath true Makes the opening kawoosh kill entities caught in front of an active gate.
autoAssembleStargates true Automatically assembles complete Stargate multiblocks.
gateTimeoutSeconds 60 How long an open wormhole remains active. Set to 0 to disable automatic timeout.
dhdSearchRadius 8 Maximum block radius a DHD searches for a nearby assembled Stargate.
gateTeleportCooldownTicks 40 Cooldown before the same entity can trigger Stargate travel again.
enableOreRetrogen false Generates LanteaCraft ores in already-existing chunks as they load.
oreRetrogenChunksPerTick 1 Maximum old chunks processed for ore retrogen per dimension tick.

Optional FE Power

Stargate bases can accept FE into an internal buffer when power.enableFePower=true. Classic gate behavior remains available by default: power.requirePowerToDial=false and power.requirePowerToMaintainWormhole=false mean dialing and active wormholes do not require FE unless a pack enables those rules.

Powered dialing charges the origin gate by default. Active wormholes can draw sustain power from ORIGIN_ONLY, DESTINATION_ONLY, BOTH_SIDES, PREFER_ORIGIN, or PREFER_DESTINATION, and can use configurable same-dimension distance scaling and cross-dimension multipliers. Energy irises consume FE while closed when enabled and can fail open if unpowered.

The Naquadah Generator is LanteaCraft's native FE source. It uses the legacy 1.7.10 generator model, burns Naquadah fuel, stores FE internally, and outputs to adjacent FE handlers.

CC:Tweaked / ComputerCraft Support

If CC:Tweaked is present, assembled Stargate blocks expose a stargate peripheral.

Current Lua-facing functions include:

  • getAddress()
  • getStatus()
  • isConnected()
  • isDialing()
  • getRemoteAddress()
  • dial(address)
  • disconnect()

Attached computers receive stargate_event events for gate activity such as dialing, opening, closing, timeout, disconnects, and entity transit/local gate interactions.

Active Stargate wormholes also act as CC:Tweaked wireless repeaters. A wireless modem within range of one connected gate can transmit a modem_message through the wormhole; the packet is re-broadcast as a fresh wireless hop from the remote gate, allowing interdimensional links or long-distance same-dimension links between computers near each gate.

ComputerCraft support is optional. LanteaCraft compiles against the CC:Tweaked API and declares the mod dependency as optional.

Known Prototype Areas

The following areas are expected to change:

  • Destination busy handling is incomplete.
  • Gate visual state and saved network state can drift if dimensions are unavailable during cleanup.
  • Save/reload behavior for active wormholes needs more testing.
  • Old rewrite snapshot address data is not migrated.
  • Transport Rings are functional but very early.
  • Multiplayer/dedicated-server behavior needs more broad testing.

Extension points exported contracts — how you extend this code

Listener (Interface)
(no doc) [4 implementers]
src/main/java/com/pclogix/lanteacraft/gate/StargateEventDispatcher.java

Core symbols most depended-on inside this repo

get
called by 262
src/main/java/com/pclogix/lanteacraft/gate/StargateNetworkSavedData.java
basePos
called by 108
src/main/java/com/pclogix/lanteacraft/menu/StargateMenu.java
address
called by 100
src/main/java/com/pclogix/lanteacraft/menu/StargateMenu.java
dimension
called by 89
src/main/java/com/pclogix/lanteacraft/worldgen/LanteaDimensions.java
get
called by 79
src/main/java/com/pclogix/lanteacraft/worldgen/LanteaRetrogenSavedData.java
put
called by 64
src/main/java/com/pclogix/lanteacraft/gate/StargateNetworkSavedData.java
equals
called by 51
src/main/java/com/pclogix/lanteacraft/compat/computercraft/StargatePeripheral.java
create
called by 51
net/neoforged/neoforge/registries/DeferredRegister.java

Shape

Method 910
Class 107
Enum 6
Interface 1

Languages

Java100%

Modules by API surface

src/main/java/com/pclogix/lanteacraft/block/entity/StargateBaseBlockEntity.java69 symbols
src/main/java/com/pclogix/lanteacraft/client/render/StargateBaseRenderer.java50 symbols
src/main/java/com/pclogix/lanteacraft/compat/computercraft/StargatePeripheral.java44 symbols
net/neoforged/neoforge/registries/DeferredRegister.java37 symbols
src/main/java/com/pclogix/lanteacraft/worldgen/StargateVillageGenerator.java34 symbols
src/main/java/com/pclogix/lanteacraft/gate/StargateNetworkSavedData.java33 symbols
src/main/java/com/pclogix/lanteacraft/worldgen/DimensionGateGenerator.java28 symbols
src/main/java/com/pclogix/lanteacraft/gate/StargateTeleportHandler.java28 symbols
src/main/java/com/pclogix/lanteacraft/client/render/TransportRingRenderer.java27 symbols
src/main/java/com/pclogix/lanteacraft/block/entity/TransportRingBlockEntity.java27 symbols
src/main/java/com/pclogix/lanteacraft/block/entity/DhdBlockEntity.java27 symbols
src/main/java/com/pclogix/lanteacraft/gate/StargateMultiblock.java22 symbols

For agents

$ claude mcp add LanteaCraft \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact