wip more dioramas

This commit is contained in:
David Allemang
2026-07-09 17:33:04 -04:00
parent c126a42599
commit 046fb89214
11 changed files with 282 additions and 937 deletions

View File

@@ -1,8 +1,129 @@
#import "/lib.typ": diorama
= Design Tips
== Synchronization
=== Daylight Detector
#[#show raw.where(lang: "mc-diorama"): it => diorama(
autoplay: true,
loop: true,
radius: 5,
theta: 115,
phi: 20,
it.text,
)
```mc-diorama
p 0 0 0 smooth_stone_slab type=top
p 0 1 0 daylight_detector inverted=true
p 0 2 0 piston facing=north extended=false
p 0 0 -1 smooth_stone_slab type=top
p 0 1 -1 observer facing=south powered=false
t 0
p 0 2 0 extended=true
p 0 2 -0.5 piston_head facing=north short=true type=normal
t 1
p 0 2 -0.5 air
p 0 2 -1 piston_head facing=north short=false type=normal
t 2
p 0 1 -1 powered=true
t 4
p 0 1 -1 powered=false
t 20
p 0 2 -1 air
p 0 2 -0.5 piston_head facing=north short=true type=normal
t 21
p 0 2 -0.5 air
p 0 2 0 extended=false
t 22
p 0 1 -1 powered=true
t 24
p 0 1 -1 powered=false
t 40
p 0 0 0
```
```mc-diorama
p 1 -1 -1 smooth_stone_slab type=top
p 0 -1 -1 smooth_stone_slab type=top
p 1 -1 0 smooth_stone_slab type=top
p 0 -1 0 smooth_stone_slab type=top
p 1 -1 1 smooth_stone_slab type=top
p 0 -1 1 smooth_stone_slab type=top
p 1 -1 2 smooth_stone_slab type=top
p 0 -1 2 smooth_stone_slab type=top
p 1 0 0 daylight_detector inverted=true
p 0 0 0 daylight_detector inverted=true
p 0 0 1 comparator facing=north mode=subtract powered=false
p 1 0 1 redstone_wire north=side west=side power=12
p 0 0 2 black_concrete
p 0 1 2 redstone_wire north=side south=side east=side west=side power=0
p 0 1 1 sticky_piston facing=north extended=false
p 0 1 0 light_gray_terracotta
p 0 0 -1 observer facing=south powered=false
t 2
p 0 0 1 powered=true
p 0 1 2 power=1
t 3
p 0 1 1 extended=true
p 0 1 0 air
p 0 1 -.5 light_gray_terracotta
p 0 1 .5 piston_head type=sticky short=true facing=north
t 4
p 0 0 -1 powered=true
p 0 1 -.5 air
p 0 1 .5 air
p 0 1 -1 light_gray_terracotta
p 0 1 0 piston_head type=sticky short=false facing=north
t 6
p 0 0 -1 powered=false
t 22
p 0 0 1 powered=false
p 0 1 2 power=0
t 23
p 0 1 -1 air
p 0 1 0 air
p 0 1 -.5 light_gray_terracotta
p 0 1 .5 piston_head type=sticky short=true facing=north
t 24
p 0 1 -.5 air
p 0 1 .5 air
p 0 1 0 light_gray_terracotta
p 0 1 1 extended=false
p 0 0 -1 powered=true
t 26
p 0 0 -1 powered=false
t 40
p 0 0 0
```]
=== Geyser
=== Synchronization Protocols
== Settling time
== Horizontal vs Vertical Arrangement
#html.div(id: "atlas-container", style: "position: fixed; left: 0; top: 0; border 1px solid white;")
#html.script(
"
document.onreadystatechange = () => {
document.getElementById('atlas-container')?.appendChild(window.mcEngine.atlas.canvas)
}
",
)

View File

@@ -1,7 +1,19 @@
#import "/lib.typ": callout, diorama, warn, world
#import "/lib.typ": callout, diorama, warn
#title()
#diorama(
orbit: false,
"
p 0 0 0 dropper facing=up
p 0 1 0 dropper facing=up
p 0 2 0 dropper facing=east
p 1 0 0 hopper facing=west
p 1 1 0 oak_trapdoor facing=north open=false half=top
p 1 2 0 oak_trapdoor facing=north open=true half=top
",
)
Everything I know about Entity ID Wireless Redstone (EID Wireless) for Minecraft Java Edition 1.14+.
#warn[

View File

@@ -1,4 +1,4 @@
#import "/lib.typ": diorama, example, todo, world
#import "/lib.typ": diorama, example, todo
= Preventing Interference <timing>
@@ -10,23 +10,12 @@ us to spawn transmission entities in that window.
== Tilesets
The fundamental principle here is to use tile-tick priority (TTP) to set a global order. See
Charlie's great video on TTP for details. #todo[link video]
#todo[fix tileset naming. the tileset is the *structure*. the particular sequence is just one instance of that tileset]
A *tileset* is a sequence of redstone components which all update in the tile tick phase. Components
later in the sequence have greater significance. To make the significance match our left-to-right
reading convention, we diagram them so the signal flows right-to-left. For example:
#diorama(
theta: 160,
phi: 20,
autoplay: true,
loop: true,
world(
"
"
p 0 -1 0 smooth_stone_slab type=top
p 1 -1 0 smooth_stone_slab type=top
p 2 -1 0 smooth_stone_slab type=top
@@ -61,11 +50,19 @@ p 4 0 0 powered=false
t 20
p 0 0 0
",
),
)
This section will cover how to read and construct tilesets that enforce a *global* ordering for use
in wireless redstone.
#todo[fix tileset naming. the tileset is the *structure*. the particular sequence is just one instance of that tileset]
A *tile sequence* is a chain of redstone components which all update in the tile tick phase.
The fundamental principle here is to use tile-tick priority (TTP) to set a global order.
#link("https://youtu.be/sLftwVwqPQE")[See Charlie's great video on TTP for details].
A *tile set* is a system of constructing tile sequences which enforce a particular global ordering.
Components which activate later in the sequence have a stronger effect on the order, so to match our
left-to-right reading convention, we diagram tile sequences so the signal flows right-to-left.
=== The Tile Tick Priority Queue
@@ -214,4 +211,119 @@ cmp rep rep cmp cmp rep rep
== Block Event Delay
#[#show raw.where(lang: "mc-diorama"): it => diorama(
autoplay: true,
loop: true,
radius: 5,
theta: 160,
it.text,
)
```mc-diorama
p 0 0 0 light_gray_terracotta
p 1 0 0 light_gray_terracotta
p 2 0 0 light_gray_terracotta
p 3 0 0 light_gray_terracotta
p 4 0 0 light_gray_terracotta
p 0 1 0 redstone_wire east=side west=side power=0
p 1 1 0 redstone_wire east=side west=side power=0
p 2 1 0 redstone_wire east=side west=side power=0
p 3 1 0 redstone_wire east=side west=side power=0
p 4 1 0 redstone_wire east=side west=side power=0
p 0 0 -1 piston facing=down extended=false
p 1 -1 -1 piston facing=up extended=false
p 2 -1 -1 piston facing=up extended=false
p 3 -1 -1 piston facing=up extended=false
p 4 -1 -1 piston facing=up extended=false
p -1 0 0 observer facing=west powered=false
p 1 0 -2 observer facing=south powered=false
p 2 0 -2 observer facing=south powered=false
p 3 0 -2 observer facing=south powered=false
p 4 0 -2 observer facing=south powered=false
t 0
p -1 0 0 powered=true
p 0 1 0 power=15
p 1 1 0 power=14
p 2 1 0 power=13
p 3 1 0 power=12
p 4 1 0 power=11
t 1
p 0 0 -1 extended=true
p 1 -1 -1 extended=true
p 2 -1 -1 extended=true
p 3 -1 -1 extended=true
p 4 -1 -1 extended=true
p 0 -0.5 -1 piston_head facing=down short=true type=normal
p 1 -0.5 -1 piston_head facing=up short=true type=normal
p 2 -0.5 -1 piston_head facing=up short=true type=normal
p 3 -0.5 -1 piston_head facing=up short=true type=normal
p 4 -0.5 -1 piston_head facing=up short=true type=normal
t 2
p -1 0 0 powered=false
p 0 1 0 power=0
p 1 1 0 power=0
p 2 1 0 power=0
p 3 1 0 power=0
p 4 1 0 power=0
p 0 -1 -1 piston_head facing=down short=false type=normal
p 1 0 -1 piston_head facing=up short=false type=normal
p 2 0 -1 piston_head facing=up short=false type=normal
p 3 0 -1 piston_head facing=up short=false type=normal
p 4 0 -1 piston_head facing=up short=false type=normal
p 0 -0.5 -1 air
p 1 -0.5 -1 air
p 2 -0.5 -1 air
p 3 -0.5 -1 air
p 4 -0.5 -1 air
p 1 0 -2 powered=true
p 2 0 -2 powered=true
p 3 0 -2 powered=true
p 4 0 -2 powered=true
t 3
p 0 -1 -1 air
p 1 0 -1 air
p 2 0 -1 air
p 3 0 -1 air
p 4 0 -1 air
p 0 -0.5 -1 piston_head facing=down short=true type=normal
p 1 -0.5 -1 piston_head facing=up short=true type=normal
p 2 -0.5 -1 piston_head facing=up short=true type=normal
p 3 -0.5 -1 piston_head facing=up short=true type=normal
p 4 -0.5 -1 piston_head facing=up short=true type=normal
t 4
p 0 -0.5 -1 air
p 1 -0.5 -1 air
p 2 -0.5 -1 air
p 3 -0.5 -1 air
p 4 -0.5 -1 air
p 0 0 -1 extended=false
p 1 -1 -1 extended=false
p 2 -1 -1 extended=false
p 3 -1 -1 extended=false
p 4 -1 -1 extended=false
p 1 0 -2 powered=false
p 2 0 -2 powered=false
p 3 0 -2 powered=false
p 4 0 -2 powered=false
t 20
p 0 0 0
```
]
== Single-Priority Loops