Teleport Network
The Teleport Network in Ender IO consists of two separate but complementary systems: Travel Anchors and Teleport Pads. Both allow player (and entity) teleportation, but with different mechanisms, power costs, and network topologies.
Travel Anchor System
Travel Anchors (BlockTravelAnchor / TileTravelAnchor) are point-to-point teleportation points that form an ad-hoc network — any anchor can teleport to any other anchor in range, without explicit pairing.
Core Blocks
- Block:
crazypants.enderio.teleport.anchor.BlockTravelAnchor(registered asblockTravelPlatform) - Tile:
crazypants.enderio.teleport.anchor.TileTravelAnchor - ModObject:
blockTravelAnchor
Formation Rules
- Single block — no multiblock structure.
- Anchors are placed as individual blocks. There is no minimum or maximum member count.
- Anchors must be within
Config.travelAnchorMaxDistance(default: 48 blocks) to be valid travel destinations. - Teleportation is initiated by equipping a Travel Staff or Teleport Staff and right-clicking an anchor.
- Sneak-right-click to access the anchor’s GUI for access mode, password, and labeling.
Access Control
TileTravelAnchor implements ITravelAccessable with three access modes:
| Mode | Description |
|---|---|
PUBLIC |
Anyone can use the anchor |
PROTECTED |
Only the owner and authorized users can access; password may be required |
PRIVATE |
Only the owner can see or use the anchor |
Authorization is granted by the owner via the GUI after entering the correct password.
Energy / Data Flow
- Power cost:
Config.travelStaffPowerPerBlockRFRF per block traveled (default: 250 RF/block). - Uses the Travel Controller (
TravelController) to find valid destinations and validate range. - Staffs can also “blink” short distances at reduced or zero power cost (
STAFF_BLINK,TELEPORT_STAFF_BLINK). - Supports cross-dimensional travel (configurable:
telepadLockDimension).
Key Features
- Paintable with any block texture via
IPaintableTileEntity. - Can be named with an item label for visual identification in the world.
- Configurable cooldown:
Config.travelAnchorCooldown(ticks between uses). - Visibility toggle:
canSeeBlockrespects access mode.
Teleport Pad System
Teleport Pads (BlockTelePad / TileTelePad) form a multiblock structure that allows teleporting entities to a specific coordinate (X, Y, Z, dimension), not just to another pad.
Core Blocks
- Block:
crazypants.enderio.teleport.telepad.BlockTelePad - Tile:
crazypants.enderio.teleport.telepad.TileTelePad(extendsTileTravelAnchor) - ModObject:
blockTelePad
Multiblock Formation
The telepad forms a 3×3 flat 9-block multiblock (single Y plane) when the 8 surrounding positions are all telepad tiles:
- Place a center block (any telepad tile).
- Fill all 8 surrounding positions on the same Y level — the 4 cardinal sides and the 4 diagonals.
- The center block becomes the master when all 8 are occupied.
- If any of the 8 is removed (or replaced by a non-telepad), the network dissolves and must reform.
✅ 订正记录:原文写「3×3 十字形 / 1 中心 + 4 边 = 5 块 / 只需四向」,结构尺寸与控制器判定均错。 证据:
TileTelePad.getSurroundingCoords()遍历for (int x = -1; x <= 1; x++) for (int z = -1; z <= 1; z++)且 Y 固定为yCoord,返回 8 格(含 4 对角)(TileTelePad.java:277-285);formNetwork()遍历这 8 格,遇到任何非TileTelePad或已入网者立即return false,必须 9 块全满(TileTelePad.java:234-247);updateConnectedState()的成立条件是connections.size() == 4(四个边向,对角不计入连接方向)(TileTelePad.java:210-212)。
[T][T][T] T = Telepad tile(含对角)
[T][C][T] C = Center / master
[T][T][T]
Minimum: 9 blocks (1 中心 + 8 邻位,全同一 Y 平面).
Maximum: 9 blocks (固定 3×3 平面,无更大规模).
Formation: Automatic — onBlockAdded / onNeighborBlockChange 触发 updateConnectedState().
可否旋转: 不适用 —— 结构在同一 Y 平面且四向对称,无朝向概念。
可否拆除: 拆除 8 格中任一格即 breakNetwork() 解散,需重新凑满 9 块。
Network Logic
- Master tile (
isMaster() == true) stores the target coordinates and target dimension. - Target coordinates are set via the Coord Selector (
ItemCoordSelector) or manually in the GUI. - All 5 tiles participate in entity queueing; only the master tile processes teleportation logic.
- Redstone active check (
isActive()): if no power, no teleportation occurs.
Energy / Data Flow
- Internal
EnergyStorage:Config.telepadPowerStorageRF(default: 100,000 RF) - Max I/O per tick:
Config.telepadPowerPerTickRF(default: 1,000 RF/tick) - Power cost formula:
distance × Config.teleportStaffPowerPerBlockRF+Config.telepadPowerCoefficient(default: 100,000 base cost) - Interdimensional travel:
Config.telepadPowerInterdimensional(default: 100,000 RF) - Entity queue: entities stand on the pad, consume power, and teleport when
powerUsed >= maxPower.
Key Features
- Progress rendering: Blades spin up as power accumulates; blade speed reflects teleport progress.
- Sound:
MachineSound(“telepad.active”) plays while active. - Redstone control: Can be disabled via redstone signal.
- Entity types: Teleports players and generic entities; does not teleport tile entities.
- Coord lock:
Config.telepadLockCoordsandConfig.telepadLockDimensionenforce fixed destination.
Comparison
| Feature | Travel Anchor | Teleport Pad |
|---|---|---|
| Multiblock | No | 3×3 平面(9 块,含对角) |
| Destination | Any anchor in range | Fixed X/Y/Z/dim |
| Access control | Per-anchor (PUBLIC/PROTECTED/PRIVATE) | Network-wide |
| Power cost | Per-block (RF) | Base + per-block |
| Interdimensional | Yes | Yes |
| Entity queue | N/A | Yes (batch teleport) |