diff --git a/content/00-index.typ b/content/00-index.typ new file mode 100644 index 0000000..2321527 --- /dev/null +++ b/content/00-index.typ @@ -0,0 +1,19 @@ +#import "/docs.typ": docs-page, note, warn + +#show: docs-page("index.html", footer: none, header: none) + +#title() + +Everything I know about Entity ID Wireless Redstone (EID Wireless) for Minecraft Java Edition 1.14+. + +#warn[ + In versions 1.14 - 26.1, only multiplayer servers are supported. + + Singleplayer is supported in 26.2+. See @singleplayer for details. + + It works on most (but not all) versions of Paper servers. See @paper for details. + + It does not work with any version of Bedrock Edition. +] + +#outline(title: [Outline], depth: 2) diff --git a/content/01-core.typ b/content/01-core.typ index 6ef61d2..c41f1a9 100644 --- a/content/01-core.typ +++ b/content/01-core.typ @@ -1,21 +1,9 @@ #import "/docs.typ": docs-page, note, tip, warn -#set document(title: [Core Mechanics]) #show: docs-page("/core.html") -#tip[ - Until version 26.2, this only works on multiplayer servers. See @singleplayer. -] - -#note[ - Until version 26.2, this only works on multiplayer servers. See @singleplayer. -] - -#warn[ - Until version 26.2, this only works on multiplayer servers. See @singleplayer. -] - -= Entity IDs -= Stationary Item Optimization -= Observable Drop Delay += Core Mechanics +== Entity IDs +== Stationary Item Optimization +== Observable Drop Delay diff --git a/content/02-interference.typ b/content/02-interference.typ index eaed5c6..d0e697d 100644 --- a/content/02-interference.typ +++ b/content/02-interference.typ @@ -1,10 +1,12 @@ #import "/docs.typ": docs-page, note, tip, warn -#set document(title: [Interference]) #show: docs-page("interference.html") -= Entity Spawns -= Single-Player (before 26.2) -= Mixed Diode -= Lazy chunks -= Reloading Chunks += Interference + +== Entity Spawns +== Single-Player (before 26.2) +== Paper, Spigot, and Bukkit Servers +== Lazy chunks +== Reloading Chunks + diff --git a/content/03-design.typ b/content/03-design.typ deleted file mode 100644 index f324b11..0000000 --- a/content/03-design.typ +++ /dev/null @@ -1,15 +0,0 @@ -#import "/docs.typ": docs-page, note, tip, warn - -#set document(title: [Design Considerations]) -#show: docs-page("/design-tips.html") - -= Tilesets -== Binary vs Lexicographic -= Block Event Delay -= Synchronization -== Daylight Detector -== Geyser -== Ender Pearl -== Synchronization Protocols -= Settling time -= Horizontal vs Vertical Arrangement diff --git a/content/03-tileset.typ b/content/03-tileset.typ new file mode 100644 index 0000000..ae4cae3 --- /dev/null +++ b/content/03-tileset.typ @@ -0,0 +1,10 @@ +#import "/docs.typ": docs-page, note, tip, warn + +#show: docs-page("/tilesets.html") + += Global Ticking Order + +== Tilesets +=== Binary vs Lexicographic +=== Mixed Diode Interference +== Block Event Delay diff --git a/content/04-channels.typ b/content/04-channels.typ deleted file mode 100644 index 05b9b9d..0000000 --- a/content/04-channels.typ +++ /dev/null @@ -1,8 +0,0 @@ -#import "/docs.typ": docs-page, note, tip, warn - -#set document(title: [Channels]) -#show: docs-page("/channels.html") - -= Static Channel Allocation -= Dynamic Channel Selectors -= Looped Connections diff --git a/content/04-design.typ b/content/04-design.typ new file mode 100644 index 0000000..5ca6d3c --- /dev/null +++ b/content/04-design.typ @@ -0,0 +1,13 @@ +#import "/docs.typ": docs-page, note, tip, warn + +#show: docs-page("/design-tips.html") + += Design Tips + +== Synchronization +=== Daylight Detector +=== Geyser +=== Ender Pearls +=== Synchronization Protocols +== Settling time +== Horizontal vs Vertical Arrangement diff --git a/content/05-channels.typ b/content/05-channels.typ new file mode 100644 index 0000000..bf7c7df --- /dev/null +++ b/content/05-channels.typ @@ -0,0 +1,9 @@ +#import "/docs.typ": docs-page, note, tip, warn + +#show: docs-page("/channels.html") + += Channels + +== Static Channel Allocation +== Dynamic Channel Selectors +== Looped Connections diff --git a/content/05-transport.typ b/content/05-transport.typ deleted file mode 100644 index 97eec33..0000000 --- a/content/05-transport.typ +++ /dev/null @@ -1,12 +0,0 @@ -#import "/docs.typ": docs-page, note, tip, warn - -#set document(title: [Transport Protocols]) -#show: docs-page("/transport-protocols.html") - -= Mod 4 Binary -= Mod 2 Binary -= Mod 4 Quaternary -= Transceivers -= Logical Operations -= Transport Protocol Catalog - diff --git a/content/06-bulk.typ b/content/06-bulk.typ deleted file mode 100644 index ad7a5e5..0000000 --- a/content/06-bulk.typ +++ /dev/null @@ -1,11 +0,0 @@ -#import "/docs.typ": docs-page, note, tip, warn - -#set document(title: [Bulk Transport]) -#show: docs-page("/bulk-transport.html") - -= Tileable Receivers -= Interleaved vs Sequential Channels -= Chained vs Shared Reference -= Broadcast and Multicast -= Entity Batching - diff --git a/content/06-transport.typ b/content/06-transport.typ new file mode 100644 index 0000000..31c075b --- /dev/null +++ b/content/06-transport.typ @@ -0,0 +1,13 @@ +#import "/docs.typ": docs-page, note, tip, warn + +#show: docs-page("/transport-protocols.html") + += Transport Protocols + +== Mod 4 Binary +== Mod 2 Binary +== Mod 4 Quaternary +== Transceivers +== Logical Operations +== Transport Protocol Catalog + diff --git a/content/07-bulk.typ b/content/07-bulk.typ new file mode 100644 index 0000000..d99a06a --- /dev/null +++ b/content/07-bulk.typ @@ -0,0 +1,12 @@ +#import "/docs.typ": docs-page, note, tip, warn + +#show: docs-page("/bulk-transport.html") + += Bulk Transport + +== Tileable Receivers +== Interleaved vs Sequential Channels +== Chained vs Shared Reference +== Broadcast and Multicast +== Entity Batching + diff --git a/content/07-network.typ b/content/07-network.typ deleted file mode 100644 index cc32b93..0000000 --- a/content/07-network.typ +++ /dev/null @@ -1,12 +0,0 @@ -#import "/docs.typ": docs-page, note, tip, warn - -#set document(title: [Network Protocols]) -#show: docs-page("/network-protocols.html") - -= Collision Prevention -== Checkbit -== Queue -= Load Balancing -= Private Channels -= Self Syncing Protocol - diff --git a/content/08-network.typ b/content/08-network.typ new file mode 100644 index 0000000..a1f9ef6 --- /dev/null +++ b/content/08-network.typ @@ -0,0 +1,12 @@ +#import "/docs.typ": docs-page, note, tip, warn + +#show: docs-page("/network-protocols.html") + += Network Protocols + +== Collision Prevention +=== Checkbit +=== Queue +== Load Balancing +== Private Channels +== Self Syncing Protocol diff --git a/docs.typ b/docs.typ index 4ec0ca2..ca53154 100644 --- a/docs.typ +++ b/docs.typ @@ -2,9 +2,16 @@ #import "/static/index.typ": stylesheets +#let chapter-title = state("chapter-title", context document.title) + #let docs-page(path, header: auto, footer: auto) = main => document(path, html.html( lang: "en_US", { + context chapter-title.update(old => context { + let head = query(heading.where(level: 1).after(here())).first(default: none) + return head.body + }) + html.head({ html.meta(charset: "utf-8") html.meta(name: "viewport", content: "width=device-width, initial-scale=1") @@ -18,10 +25,9 @@ context { let doc = query(document).first() link(doc.location(), doc.title) + title(chapter-title.get()) } - title() - context { let doc = query(selector(document).before(here())).last() outline(title: none, target: selector(heading).within(doc.location())) @@ -47,8 +53,6 @@ } else { header }) - - divider() } html.main(main) if (footer != none) { diff --git a/index.typ b/index.typ deleted file mode 100644 index 5cae1fd..0000000 --- a/index.typ +++ /dev/null @@ -1,26 +0,0 @@ -#import "/docs.typ": docs-page, note - -#set document(title: [The Wireless Masterclass]) -#show: docs-page("index.html", footer: none, header: none) - -#title() - -Everything I know about Entity ID based wireless redstone (EID Wireless) for Minecraft Java Edition 1.14+. - -#note[ Until version 26.2, this only works on multiplayer servers. See @singleplayer. ] - -#context { - heading(numbering: none, outlined: false)[Outline] - - html.nav({ - html.ol(style: "list-style-type: none", { - for doc in query(selector(document).after(here())) { - show html.elem.where(tag: "nav"): it => it.body - html.li({ - html.div(link(doc.location(), doc.title)) - outline(title: none, depth: 1, target: selector(heading).within(doc.location())) - }) - } - }) - }) -} diff --git a/main.typ b/main.typ index cca92c3..539597e 100644 --- a/main.typ +++ b/main.typ @@ -1,32 +1,14 @@ -#set heading(numbering: "1.") - -// #import "docs.typ": docs-page - -// #show: it => document("/index.html", it) - -// #include "static/index.typ" - -// #docs-page(include "index.typ") -// #docs-page(include "content/00-intro.typ") - - -// #let docs-page(it) = document("index.html", { -// context { -// repr(query(selector(metadata).before())) -// } -// it -// }) - -// #let docs-page(it) = context { -// } +#set heading(numbering: "1.1 -") +#set document(title: [The EID Wireless Masterclass]) #include "static/index.typ" -#include "index.typ" +#include "content/00-index.typ" #include "content/01-core.typ" #include "content/02-interference.typ" -#include "content/03-design.typ" -#include "content/04-channels.typ" -#include "content/05-transport.typ" -#include "content/06-bulk.typ" -#include "content/07-network.typ" +#include "content/03-tileset.typ" +#include "content/04-design.typ" +#include "content/05-channels.typ" +#include "content/06-transport.typ" +#include "content/07-bulk.typ" +#include "content/08-network.typ" diff --git a/static/style.css b/static/style.css index 809221e..19376f5 100644 --- a/static/style.css +++ b/static/style.css @@ -14,12 +14,10 @@ color: mediumblue; } -a { - color: inherit; -} - -a:hover { - color: LinkText; +@media print { + :root { + font: 10pt / 1.5 serif + } } @media (prefers-color-scheme: dark) { @@ -48,12 +46,8 @@ nav > ol { padding-inline-start: 0; } -ol ol { - margin-block-end: 1em; -} - body { - max-width: 800px; + max-width: 88ch; margin: 40px auto; padding: 0 10px; }