Skip to content

Commit

Permalink
Guidebook 8 (#7191)
Browse files Browse the repository at this point in the history
* implement clear scene background and interactive=false where applicable

* simple certus farm, start on advanced certus farm

* advanced certus farm

* cell dumper/filler and interface auto-stocking

* Work on channels page

* level emitter autostocking

* Processor Automation page

* clean up assets folder

* make scenes in channels page slightly smaller so they fit in gui scale 4

* diagram for type upfront cost

* implement new scene background and interactive tags
  • Loading branch information
Sea-Kerman committed Jun 13, 2023
1 parent e852d8e commit 26fd77e
Show file tree
Hide file tree
Showing 89 changed files with 1,167 additions and 373 deletions.
18 changes: 13 additions & 5 deletions guidebook/ae2-mechanics/ae2-mechanics-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,16 @@ navigation:

# AE2 Mechanics

* [Autocrafting](autocrafting.md)
* [Channels](channels.md)
* [Farming Certus](farming-certus.md)
* [Import, Export, and Storage](import-export-storage.md)
* [Subnetworks](subnetworks.md)
* [Autocrafting](autocrafting.md)
* [Bytes and Types](bytes-and-types.md)
* [Cable Subparts](cable-subparts.md)
* [Channels](channels.md)
* [Devices](devices.md)
* [Energy](energy.md)
* [Farming Certus](farming-certus.md)
* [Import, Export, and Storage](import-export-storage.md)
* [Meteorites](meteorites.md)
* [Network Connections](me-network-connections.md)
* [Quantum Bridge](quantum-bridge.md)
* [Spatial IO](spatial-io.md)
* [Subnetworks](subnetworks.md)
8 changes: 4 additions & 4 deletions guidebook/ae2-mechanics/autocrafting.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ navigation:

### The Big One

<GameScene zoom="4">
<GameScene zoom="4" interactive={true}>
<ImportStructure src="../assets/assemblies/autocraft_setup_greebles.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
Expand Down Expand Up @@ -90,7 +90,7 @@ if you have a machine that duplicates cobblestone.

# The Crafting CPU

<GameScene zoom="4">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/crafting_cpus.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
Expand Down Expand Up @@ -120,7 +120,7 @@ They can be set to handle requests from players, automation (export busses and i

<BlockImage id="pattern_provider" p:push_direction="up" scale="4" />

<GameScene zoom="4">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/blocks/cable_pattern_provider.snbt" />
</GameScene>
</Row>
Expand Down Expand Up @@ -192,7 +192,7 @@ and will send information about the relevant pattern along with the ingredients
crafts to adjacent inventories (and thus into the return slots of the pattern provider), an assembler on a pattern provider
is all that is needed to automate crafting patterns.

<GameScene zoom="4">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/assembler_tower.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
4 changes: 4 additions & 0 deletions guidebook/ae2-mechanics/bytes-and-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,7 @@ The upfront cost of types is such that a cell holding 1 type can hold 2x as much
| <ItemLink id="item_storage_cell_16k" /> | 130,048 | 66,560 |
| <ItemLink id="item_storage_cell_64k" /> | 520,192 | 266,240 |
| <ItemLink id="item_storage_cell_256k" /> | 2,080,768 | 1,064,960 |

![A Cell With 1 Type](../assets/diagrams/1_type_cell.png)

![A Cell With 63 Types](../assets/diagrams/63_type_cell.png)
2 changes: 1 addition & 1 deletion guidebook/ae2-mechanics/cable-subparts.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ icon: fluix_glass_cable

# Cable Subparts

<GameScene zoom="4">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/subparts_demonstration.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
Expand Down
91 changes: 74 additions & 17 deletions guidebook/ae2-mechanics/channels.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,16 @@ navigation:

# Channels

<GameScene zoom="8">
Applied Energistics 2's [ME Networks](me-network-connections.md) require
Channels to support [devices](../ae2-mechanics/devices.md) which use networked storage, or other network
services. Think of channels like USB cables to all your devices. A computer only has so many USB ports and can only support
so many devices connected to it. Most machines, full-block devices, and standard cables can only pass through
up to 8 channels. You can think of full-block devices and standard cables as a bundle of 8 "channel wires". However, [dense cables](../items-blocks-machines/cables.md#dense-cable) can support up
to 32 channels. The only other devices capable of transmitting 32 are <ItemLink id="me_p2p_tunnel" />
and the [Quantum Network Bridge](../items-blocks-machines/quantum_bridge.md). Each time a device uses up a channel, imagine pulling off a usb "wire" from
the bundle, which obviously means that "wire" isn't available further down the line.

<GameScene zoom="7" interactive={true}>
<ImportStructure src="../assets/assemblies/channel_demonstration_1.snbt" />

<LineAnnotation color="#33ff33" from="1 .4 .7" to="2.4 .4 .7" alwaysOnTop={true}/>
Expand Down Expand Up @@ -56,30 +65,68 @@ navigation:
<IsometricCamera yaw="15" pitch="30" />
</GameScene>

Applied Energistics 2's [ME Networks](me-network-connections.md) require
Channels to support [devices](../ae2-mechanics/devices.md) which use networked storage, or other network
services. Think of channels like USB cables to all your devices. A computer only has so many USB ports and can only support
so many devices connected to it. Most machines, full-block devices, and standard cables can only pass through
up to 8 channels. You can think of full-block devices and standard cables as a bundle of 8 "channel wires". However, [dense cables](../items-blocks-machines/cables.md) can support up
to 32 channels. The only other devices capable of transmitting 32 are <ItemLink id="me_p2p_tunnel" />
and the [Quantum Network Bridge](../items-blocks-machines/quantum_bridge.md). Each time a device uses up a channel, imagine pulling off a usb "wire" from
the bundle, which obviously means that "wire" isn't available further down the line.

An easy way to see how channels are being used and routed through your network is to use [smart cables](../items-blocks-machines/cables.md), which will display on them the paths and usage of channels.

Channels will consume 1⁄128 ae/t per node they transverse, this means that by
adding a <ItemLink id="controller" /> for a
network with 8 devices and over 96 nodes your power usage might actually
decrease power consumption because it changes how channels are allocated.

Of note, **CHANNELS HAVE NOTHING TO DO WITH CABLE COLOR**, all cable color does is make cables not connect.

## Channel Routing

When using a <ItemLink id="controller" />,
channels route via 3 steps. They first take the shortest path through adjacent machines to the nearest [normal cable](../items-blocks-machines/cables.md)
(glass, covered, or smart). They then take the shortest path through that normal cable to the nearest [dense cable](../items-blocks-machines/cables.md)
(dense or dense smart). They then take the shortest path through that dense cable to the <ItemLink id="controller" />.
If the shortest path is already maxed out, some [devices](devices.md) may not get their required channels, use
colored cables, cable anchors and tunnels to your advantage to make sure your channels go in the path you desire.

Of note, **CHANNELS HAVE NOTHING TO DO WITH CABLE COLOR**, all cable color does is make cables not connect.
For example, in this case some drives don't get channels because although there is enough capacity in the cables, the
channels try to take the shortest path, overloading some cables while leaving others empty.

<GameScene zoom="4" interactive={true}>
<ImportStructure src="../assets/assemblies/channel_path_length_issue.snbt" />

<LineAnnotation color="#33ff33" from="3 .5 1.4" to="0.4 0.5 1.4" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#33ff33" from="0.4 .5 1.4" to="0.4 0.5 3.6" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#33ff33" from="0.4 0.5 3.6" to="1.4 0.5 3.6" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#33ff33" from="1.4 0.5 3.6" to="1.4 0.5 5" alwaysOnTop={true} thickness="0.05"/>

<LineAnnotation color="#33ff33" from="3 0.5 3.6" to="1.6 0.5 3.6" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#33ff33" from="1.6 0.5 3.6" to="1.6 0.5 5" alwaysOnTop={true} thickness="0.05"/>

<LineAnnotation color="#ff3333" from="3 .5 1.6" to="0.6 .5 1.6" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#ff3333" from="0.6 .5 1.6" to="0.6 .5 3.4" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#ff3333" from="0.6 .5 3.4" to="1.4 .5 3.4" alwaysOnTop={true} thickness="0.05"/>

<LineAnnotation color="#ff3333" from="3 .5 3.4" to="1.6 .5 3.4" alwaysOnTop={true} thickness="0.05"/>

<BoxAnnotation color="#dddddd" min="1.2 0.2 3.2" max="1.8 0.8 3.8" alwaysOnTop={true} thickness="0.05">
More than 8 channels attempt to route through here so some are cut off.
</BoxAnnotation>

<IsometricCamera yaw="90" pitch="90" />

</GameScene>

This can be fixed by more carefully constraining the paths channels can take. Networks should be treelike (or bushlike).
Loops and ambiguous channel paths should be minimized.

<GameScene zoom="4" interactive={true}>
<ImportStructure src="../assets/assemblies/channel_path_length_issue_fix.snbt" />

<LineAnnotation color="#33ff33" from="3 .5 1.4" to="0.4 0.5 1.4" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#33ff33" from="0.4 .5 1.4" to="0.4 0.5 5.6" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#33ff33" from="0.4 0.5 5.6" to="1 0.5 5.6" alwaysOnTop={true} thickness="0.05"/>

<LineAnnotation color="#33ff33" from="3 0.5 3.6" to="1.6 0.5 3.6" alwaysOnTop={true} thickness="0.05"/>
<LineAnnotation color="#33ff33" from="1.6 0.5 3.6" to="1.6 0.5 5" alwaysOnTop={true} thickness="0.05"/>

<IsometricCamera yaw="90" pitch="90" />

</GameScene>

## Ad-Hoc Networks

Expand All @@ -95,10 +142,6 @@ While using ad-hoc networks each device will
use 1 channel network wide, this is very different from how <ItemLink id="controller" /> allocate channels based on
shortest route.

## A Visual Example

WAITING UNTIL 3D SCENES ARE IMPLEMENTED

## Channel Modes

AE2 10.0.0 for Minecraft 1.18 introduces new options to change how AE2 channels behave in your world.
Expand All @@ -122,10 +165,24 @@ The following table lists the available modes in both the configuration file and

## Design

It's best to design your network in a treelike structure, with dense cables branching out from the controller, regular cables
As mentioned before in [channel routing](channels.md#channel-routing), it's best to design your network in a treelike structure, with dense cables branching out from the controller, regular cables
branching out from the dense, and [devices](../ae2-mechanics/devices.md) in clusters of 8 or fewer on the regular cables.

<GameScene zoom="3">
<GameScene zoom="2.5" interactive={true}>
<ImportStructure src="../assets/assemblies/treelike_network_structure.snbt" />

<BoxAnnotation color="#dddddd" min="6.9 0 4.9" max="9.1 4 7.1" thickness="0.05">
Notice that the pattern providers are in separate groups of 8.
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="5 4 4" max="8 5 5" thickness="0.05">
Two regular cables full of channels coming together mean you need a dense cable.
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="5 0 13" max="8 1 14" thickness="0.05">
Different cable colors are used to prevent adjacent cables from connecting.
</BoxAnnotation>


<IsometricCamera yaw="315" pitch="30" />
</GameScene>
4 changes: 2 additions & 2 deletions guidebook/ae2-mechanics/energy.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ energy acceptors can intake at functionally unlimited speed, only limited by you
<Row>
<BlockImage id="energy_acceptor" scale="4" />

<GameScene zoom="4" interactive={false} background="transparent">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/blocks/cable_energy_acceptor.snbt" />
</GameScene>

Expand All @@ -44,7 +44,7 @@ The ratios for conversion of Forge Energy and Techreborn Energy are

## Energy Storage

<Row >
<Row>
<BlockImage id="energy_cell" scale="4" p:fullness="4" />

<BlockImage id="dense_energy_cell" scale="4" p:fullness="4" />
Expand Down
6 changes: 3 additions & 3 deletions guidebook/ae2-mechanics/farming-certus.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ navigation:

## Basically just copy-pasted from the getting started page

<GameScene zoom="6">
<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/budding_certus_1.snbt" />
</GameScene>

Expand All @@ -19,7 +19,7 @@ growing, it will drop one <ItemLink id="certus_quartz_dust" />, unchanged by for

There are 4 tiers of budding certus blocks: Flawless, Flawed, Chipped, and Damaged.

<GameScene zoom="4">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/budding_blocks.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
Expand All @@ -36,7 +36,7 @@ with a pickaxe, even with silk touch. (they *can* be moved with [spatial storage
By themselves, certus quartz buds grow very slowly. Luckily the <ItemLink id="growth_accelerator" /> massively
accelerates this process when placed adjacent to the budding block. You should build a few of these as your first priority.

<GameScene zoom="4">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/budding_certus_2.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
Expand Down
46 changes: 45 additions & 1 deletion guidebook/ae2-mechanics/import-export-storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,54 @@ For example,
* <ItemLink id="import_bus" />ses push things into network storage
* <ItemLink id="export_bus" />ses pull things from network storage
* <ItemLink id="interface" />s both pull from and push to network storage
* Terminals both push to and pull from network storage when you insert or take items, or to refill the crafting slots
* [terminals](../items-blocks-machines/terminals.md) both push to and pull from network storage when you insert or take items, or to refill the crafting slots
* <ItemLink id="storage_bus" />ses don't really push to or pull from storage, they push to or pull from the connected inventory
in order to use it as network storage (so really other devices push to or pull from *them*)

<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/import_export_storage.snbt" />

<BoxAnnotation color="#dddddd" min="8 1 1" max="9 1.3 2">
Import Busses import things from inventories they're pointing at into network storage
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="8 2 1" max="9 3 1.3">
Inserting something into a terminal from your inventory counts as the network importing it
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="7 0 1" max="8 1 2">
Interfaces will import from their internal inventories if that slot is not configured to stock anything, or there are more
items in that slot than are configured to be stocked, so things can be pushed into them to insert into the network
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="6 0 1" max="7 1 2">
Pattern Providers will import from their internal return slot inventory, so things can be pushed into them to insert into the network
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="4 1 1" max="5 2 2">
Drives provide the inserted cells as network storage
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="3 1 1" max="4 1.3 2">
Storage Busses use the inventory they're pointing at as network storage
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="1 1 1" max="2 1.3 2">
Export Busses export things from network storage into inventories they're pointing at
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="1 2 1" max="2 3 1.3">
Pulling something out of a terminal counts as the network exporting it
</BoxAnnotation>

<BoxAnnotation color="#dddddd" min="0 1 1" max="1 2 2">
Interfaces will export to their internal inventories if that slot is configured to stock something,
so things can be pulled from them to extract from the network
</BoxAnnotation>

<IsometricCamera yaw="195" pitch="30" />
</GameScene>

The actions/events of pushing to and pulling from network storage are important to keep in mind when designing automation
and logistics setups.

Expand Down
27 changes: 20 additions & 7 deletions guidebook/ae2-mechanics/me-network-connections.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ component on the network, so if you see stuff you shouldn't or don't see stuff y

For example, this is 2 separate networks.

<GameScene zoom="6">
<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/2_networks_1.snbt" />

<BoxAnnotation color="#915dcd" min="0 0 0" max="1 2 2">
Expand All @@ -36,7 +36,7 @@ For example, this is 2 separate networks.
This is also 2 separate networks, because the <ItemLink id="quartz_fiber" /> shares [energy](../ae2-mechanics/energy.md)
without providing a network connection.

<GameScene zoom="6">
<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/2_networks_2.snbt" />

<BoxAnnotation color="#915dcd" min="0 0 0" max="1 2 2">
Expand All @@ -53,7 +53,7 @@ without providing a network connection.
However, this is just 1 network, not 2 separate ones. The [quantum bridge](../items-blocks-machines/quantum_bridge.md) acts like
a wireless [dense cable](../items-blocks-machines/cables.md#dense-cable), so both ends are on the same network.

<GameScene zoom="4">
<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/actually_1_network.snbt" />

<BoxAnnotation color="#915dcd" min="0 0 0" max="7 3 3">
Expand All @@ -63,13 +63,26 @@ a wireless [dense cable](../items-blocks-machines/cables.md#dense-cable), so bot
<IsometricCamera yaw="195" pitch="30" />
</GameScene>

This is also just 1 network, as [cable](../items-blocks-machines/cables.md) color has nothing to do with network connections other than cables of different colors not
connecting to each other. All colors connect to fluix (or "uncolored") cables.

<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/actually_1_network_2.snbt" />

<BoxAnnotation color="#915dcd" min="0 0 0" max="4 2 2">
All 1 network
</BoxAnnotation>

<IsometricCamera yaw="195" pitch="30" />
</GameScene>

## Less Intuitive Connections

In this case, this is just 1 network, because the <ItemLink id="pattern_provider" />, being a fullblock device, acts like
a cable, and the <ItemLink id="inscriber" /> does similar. Thus, the network connection passes through
the provider and inscriber.

<GameScene zoom="6">
<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/pattern_provider_network_connection_1.snbt" />

<BoxAnnotation color="#915dcd" min="0 0 0" max="4 2 2">
Expand All @@ -84,7 +97,7 @@ you can right-click the provider with a <ItemLink id="certus_quartz_wrench" /> t
not pass channels through one side.

<Row gap="40">
<GameScene zoom="6">
<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/pattern_provider_network_connection_2.snbt" />

<BoxAnnotation color="#915dcd" min="0 0 0" max="2 2 2">
Expand All @@ -98,7 +111,7 @@ not pass channels through one side.
<IsometricCamera yaw="195" pitch="30" />
</GameScene>

<GameScene zoom="6">
<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/pattern_provider_directional_connection.snbt" />

<BoxAnnotation color="#ee3333" min="1 .3 .3" max="1.3 .7 .7">
Expand All @@ -113,7 +126,7 @@ Other parts that do not provide directional network connections are most [subpar
[devices](../ae2-mechanics/devices.md) like <ItemLink id="import_bus" />ses, <ItemLink id="storage_bus" />ses, and
<ItemLink id="cable_interface" />s.

<GameScene zoom="6">
<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/subpart_no_connection.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
Loading

0 comments on commit 26fd77e

Please sign in to comment.