-
Notifications
You must be signed in to change notification settings - Fork 2
Covers_EN
Link Terminal Covers are GTSWN void covers with no crafting recipe. They are auto-attached by right-clicking a GT machine with the Wireless Energy Tap (see Module 06 Wireless Energy Tap). The covers are fully NBT-driven and support cross-save persistence.
- Void covers, no crafting recipe
- Auto-attached by right-clicking a machine with the Wireless Energy Tap
- NBT-driven, cross-save persistence
- Bare covers (without parameters) are non-functional — parameters must be written when attached via the Tap
Note: Bare covers without parameters have no effect. Only after the voltage, amperage, capacity, and other parameters are written during Tap attachment can the cover function properly.
The Energy Cover (Link Terminal Energy Cover) acts as a virtual power source, maintaining an internal capacity buffer pool that draws energy from the wireless grid to power the machine:
- Capacity formula: V × A × 800 ticks
- Per-tick behavior: injects min(V × A, machine_needed, storedEU) EU into the machine
- Refill mechanism: every 600 ticks, deducts (capacity - storedEU) × (1 + downlink loss) EU from the grid to refill
- Immediate refill: on configure call, immediately refills the buffer from the grid
- Removal: when the cover is removed, remaining buffer is returned to the grid at (1 - uplink loss)
| Behavior | Trigger | Energy Flow |
|---|---|---|
| Inject energy | Every tick | Buffer → Machine |
| Periodic refill | Every 600 ticks | Grid → Buffer (with downlink loss) |
| Immediate refill | On configure call | Grid → Buffer (with downlink loss) |
| Removal return | Cover removal | Buffer → Grid (with uplink loss) |
The Dynamo Cover (Link Terminal Dynamo Cover) acts as a virtual wire, reading machine output into a buffer pool, then uploading it to the wireless grid:
- Capacity: Long.MAX_VALUE (263 - 1, GT5U MAX Battery)
- Per-tick behavior: reads getOutputVoltage / getOutputAmperage; if V > 0, takes min(available, V × A) EU
- Respects floor: respects getMinimumStoredEU() floor, will not drain the machine's internal storage
- Blocks output: letsEnergyOut() = false, prevents the machine from outputting to real wires (prevents double consumption)
- Upload: every 600 ticks, buffer is uploaded to the grid at (1 - uplink loss)
- Removal: when removed, remaining buffer is returned to the grid at (1 - uplink loss)
| Behavior | Trigger | Energy Flow |
|---|---|---|
| Read output | Every tick (when V > 0) | Machine → Buffer |
| Block real wires | letsEnergyOut() = false | Prevents Machine → Real wire (anti double-consumption) |
| Periodic upload | Every 600 ticks | Buffer → Grid (with uplink loss) |
| Removal return | Cover removal | Buffer → Grid (with uplink loss) |
The Link Terminal Cover loss parameters are designed asymmetrically:
| Parameter | Default | Range | Description |
|---|---|---|---|
| Downlink Loss (DownlinkLossEU) | 0.15 (15%) | [0.0, 10.0] | Energy loss when Grid → Buffer; grid deducts extra |
| Uplink Loss (UplinkLossEU) | 0.0 (0%) | [0.0, 1.0] | Energy loss when Buffer → Grid; default no loss |
Asymmetric design: Downlink has loss (grid deducts an extra 15%), uplink defaults to no loss (grid receives full amount). This design imposes a cost on drawing power (preventing abuse) while providing lossless energy recovery (encouraging energy recycling).
The Arc Furnace has special amperage handling logic:
- Single-block Arc Furnace: forced 4A
- Identification method: recipeMap == RecipeMaps.arcFurnaceRecipes (not class name check)
Design note: Identifying via RecipeMap rather than class name ensures compatibility with all machines using the arcFurnaceRecipes recipe map (including third-party extensions), not just the vanilla Arc Furnace class.
Right-click the cover to view current configuration info:
- Voltage tier
- Amperage tier
- Capacity
- Current buffer
- Time until next refill
- Capacity (MAX)
- Current buffer
- Time until next upload
| Field | Description |
|---|---|
| voltage | Voltage tier |
| amperage | Amperage tier |
| capacity | Energy capacity |
| storedEU | Current buffered energy |
| ticksSinceLastRefill | Ticks since last refill |
| configured | Whether configured (cover is non-functional when false) |
| Field | Description |
|---|---|
| storedEU | Current buffered energy |
| ticksSinceLastUpload | Ticks since last upload |
| configured | Whether configured (cover is non-functional when false) |
The Energy Cover and Dynamo Cover share a common base class. The following 6 boolean methods are defined in the base class:
| Method | Return Value | Description |
|---|---|---|
| isRedstoneSensitive | false | Does not respond to redstone signals |
| allowsCopyPasteTool | false | Does not allow copy-paste tool |
| allowsTickRateAddition | false | Does not allow tick rate adjustment |
| alwaysLookConnected | true | Always displays as connected |
| getMinimumTickRate | 1 | Minimum tick rate is 1 |
| hasCoverGUI | true | Has a cover GUI |
The cover removal logic is lifted to the base class for unified handling:
Return formula:
actualAdded = storedEU × (1 - uplinkLossEU), when actualAdded > 0, the remaining buffer is returned to the grid.