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,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