make pistons instantly extend for BED order demo

This commit is contained in:
David Allemang
2026-07-28 10:17:01 -04:00
parent 6517fbc4a4
commit 1b754178c5

View File

@@ -1,4 +1,4 @@
#import "/lib.typ": diorama, example, todo
#import "/lib.typ": diorama, example, note, todo
#show raw.where(lang: "mc-diorama"): it => diorama(autoplay: true, loop: true, theta: 160, phi: 20, it.text)
@@ -207,9 +207,10 @@ cmp rep rep cmp cmp rep rep
== Block Event Delay
Block Event Delay is not a complete substitute for tilesets, but it can significantly reduce the
required length of tilesets. It is based on a behavior of piston push lists which repeats a given
global order for multiple components. A smaller tileset can set a 'template' ordering for a few
components, then BED can trivially 'repeat' that order for a subsequent set of components.
required length of tilesets and compact repetetive systems. It is based on a behavior of piston push
lists which repeats a given global order for multiple components. A smaller tileset can set a
'template' ordering for a few components, then BED can trivially 'repeat' that order for a
subsequent set of components.
#show raw.where(lang: "mc-diorama"): it => diorama(
autoplay: true,
@@ -346,12 +347,13 @@ prefix | BED -->
autoplay: true,
loop: true,
radius: 9,
phi:30,
phi: 30,
theta: 110,
speed: 0.4,
it.text,
)
```mc-diorama
p 0 0 0 light_gray_terracotta
@@ -465,7 +467,7 @@ p 1 1 4 power=14
p 2 1 4 power=13
p 3 1 4 power=12
p 4 1 4 power=11
t 9
t 10
p 5 0 8 powered=true
p 0 1 8 power=11
p 1 1 8 power=12
@@ -473,59 +475,59 @@ p 2 1 8 power=13
p 3 1 8 power=14
p 4 1 8 power=15
t 10
p 4 0 -1 extended=true
p 4 -0.5 -1 piston_head type=normal facing=down short=true
t 11
p 4 0 3 extended=true
p 4 -0.5 3 piston_head type=normal facing=down short=true
p 4 0 -1 extended=true
p 4 -1 -1 piston_head type=normal facing=down short=false
t 12
p 4 0 7 extended=true
p 4 -0.5 7 piston_head type=normal facing=down short=true
p 4 0 3 extended=true
p 4 -1 3 piston_head type=normal facing=down short=false
t 13
p 3 -1 -1 extended=true
p 3 -0.5 -1 piston_head type=normal facing=up short=true
p 4 0 7 extended=true
p 4 -1 7 piston_head type=normal facing=down short=false
t 14
p 3 -1 3 extended=true
p 3 -0.5 3 piston_head type=normal facing=up short=true
p 3 -1 -1 extended=true
p 3 0 -1 piston_head type=normal facing=up short=false
t 15
p 3 -1 7 extended=true
p 3 -0.5 7 piston_head type=normal facing=up short=true
p 3 -1 3 extended=true
p 3 0 3 piston_head type=normal facing=up short=false
t 16
p 2 -1 -1 extended=true
p 2 -0.5 -1 piston_head type=normal facing=up short=true
p 3 -1 7 extended=true
p 3 0 7 piston_head type=normal facing=up short=false
t 17
p 2 -1 3 extended=true
p 2 -0.5 3 piston_head type=normal facing=up short=true
p 2 -1 -1 extended=true
p 2 0 -1 piston_head type=normal facing=up short=false
t 18
p 2 -1 7 extended=true
p 2 -0.5 7 piston_head type=normal facing=up short=true
p 2 -1 3 extended=true
p 2 0 3 piston_head type=normal facing=up short=false
t 19
p 1 -1 -1 extended=true
p 1 -0.5 -1 piston_head type=normal facing=up short=true
p 2 -1 7 extended=true
p 2 0 7 piston_head type=normal facing=up short=false
t 20
p 1 -1 3 extended=true
p 1 -0.5 3 piston_head type=normal facing=up short=true
p 1 -1 -1 extended=true
p 1 0 -1 piston_head type=normal facing=up short=false
t 21
p 1 -1 7 extended=true
p 1 -0.5 7 piston_head type=normal facing=up short=true
p 1 -1 3 extended=true
p 1 0 3 piston_head type=normal facing=up short=false
t 22
p 0 -1 -1 extended=true
p 0 -0.5 -1 piston_head type=normal facing=up short=true
p 1 -1 7 extended=true
p 1 0 7 piston_head type=normal facing=up short=false
t 23
p 0 -1 3 extended=true
p 0 -0.5 3 piston_head type=normal facing=up short=true
p 0 -1 -1 extended=true
p 0 0 -1 piston_head type=normal facing=up short=false
t 24
p 0 -1 7 extended=true
p 0 -0.5 7 piston_head type=normal facing=up short=true
p 0 -1 3 extended=true
p 0 0 3 piston_head type=normal facing=up short=false
t 25
p 0 -1 7 extended=true
p 0 0 7 piston_head type=normal facing=up short=false
t 26
p -2 0 0 powered=false
p -2 0 4 powered=false
t 26
t 27
p 6 0 8 powered=false
t 27
t 28
p -1 0 0 powered=false
p 0 1 0 power=0
p 1 1 0 power=0
@@ -533,7 +535,7 @@ p 2 1 0 power=0
p 3 1 0 power=0
p 4 1 0 power=0
t 28
t 29
p -1 0 4 powered=false
p 0 1 4 power=0
p 1 1 4 power=0
@@ -541,7 +543,7 @@ p 2 1 4 power=0
p 3 1 4 power=0
p 4 1 4 power=0
t 29
t 30
p 5 0 8 powered=false
p 0 1 8 power=0
p 1 1 8 power=0
@@ -549,197 +551,107 @@ p 2 1 8 power=0
p 3 1 8 power=0
p 4 1 8 power=0
t 30
p 4 -0.5 -1 air
p 4 -1.0 -1 piston_head type=normal facing=down short=false
t 31
p 4 -0.5 3 piston_head air
p 4 -1.0 3 piston_head type=normal facing=down short=false
t 32
p 4 -0.5 7 piston_head air
p 4 -1.0 7 piston_head type=normal facing=down short=false
t 33
p 3 -0.5 -1 air
p 3 0.0 -1 piston_head type=normal facing=up short=false
t 34
p 3 -0.5 3 piston_head air
p 3 0.0 3 piston_head type=normal facing=up short=false
t 35
p 3 -0.5 7 piston_head air
p 3 0.0 7 piston_head type=normal facing=up short=false
t 36
p 2 -0.5 -1 air
p 2 0.0 -1 piston_head type=normal facing=up short=false
t 37
p 2 -0.5 3 piston_head air
p 2 0.0 3 piston_head type=normal facing=up short=false
t 38
p 2 -0.5 7 piston_head air
p 2 0.0 7 piston_head type=normal facing=up short=false
t 39
p 1 -0.5 -1 air
p 1 0.0 -1 piston_head type=normal facing=up short=false
t 40
p 1 -0.5 3 piston_head air
p 1 0.0 3 piston_head type=normal facing=up short=false
t 41
p 1 -0.5 7 piston_head air
p 1 0.0 7 piston_head type=normal facing=up short=false
t 42
p 0 -0.5 -1 air
p 0 0.0 -1 piston_head type=normal facing=up short=false
t 43
p 0 -0.5 3 piston_head air
p 0 0.0 3 piston_head type=normal facing=up short=false
t 44
p 0 -0.5 7 piston_head air
p 0 0.0 7 piston_head type=normal facing=up short=false
t 45
p 3 0 -2 powered=true
t 46
t 32
p 3 0 2 powered=true
t 47
t 33
p 3 0 6 powered=true
t 48
t 34
p 2 0 -2 powered=true
t 49
t 35
p 2 0 2 powered=true
t 50
t 36
p 2 0 6 powered=true
t 51
t 37
p 1 0 -2 powered=true
t 52
t 38
p 1 0 2 powered=true
t 53
t 39
p 1 0 6 powered=true
t 54
t 40
p 0 0 -2 powered=true
t 55
t 41
p 0 0 2 powered=true
t 56
t 42
p 0 0 6 powered=true
t 43
p 4 0 -1 extended=false
p 4 -1 -1 air
t 44
p 4 0 3 extended=false
p 4 -1 3 air
t 45
p 4 0 7 extended=false
p 4 -1 7 air
t 46
p 3 -1 -1 extended=false
p 3 0 -1 air
t 47
p 3 -1 3 extended=false
p 3 0 3 air
t 48
p 3 -1 7 extended=false
p 3 0 7 air
t 49
p 2 -1 -1 extended=false
p 2 0 -1 air
t 50
p 2 -1 3 extended=false
p 2 0 3 air
t 51
p 2 -1 7 extended=false
p 2 0 7 air
t 52
p 1 -1 -1 extended=false
p 1 0 -1 air
t 53
p 1 -1 3 extended=false
p 1 0 3 air
t 54
p 1 -1 7 extended=false
p 1 0 7 air
t 55
p 0 -1 -1 extended=false
p 0 0 -1 air
t 56
p 0 -1 3 extended=false
p 0 0 3 air
t 57
p 4 -1.0 -1 air
p 4 -0.5 -1 piston_head type=normal facing=down short=true
p 0 -1 7 extended=false
p 0 0 7 air
t 58
p 4 -1.0 3 air
p 4 -0.5 3 piston_head type=normal facing=down short=true
t 59
p 4 -1.0 7 air
p 4 -0.5 7 piston_head type=normal facing=down short=true
t 60
p 3 0.0 -1 air
p 3 -0.5 -1 piston_head type=normal facing=up short=true
t 61
p 3 0.0 3 air
p 3 -0.5 3 piston_head type=normal facing=up short=true
t 62
p 3 0.0 7 air
p 3 -0.5 7 piston_head type=normal facing=up short=true
t 63
p 2 0.0 -1 air
p 2 -0.5 -1 piston_head type=normal facing=up short=true
t 64
p 2 0.0 3 air
p 2 -0.5 3 piston_head type=normal facing=up short=true
t 65
p 2 0.0 7 air
p 2 -0.5 7 piston_head type=normal facing=up short=true
t 66
p 1 0.0 -1 air
p 1 -0.5 -1 piston_head type=normal facing=up short=true
t 67
p 1 0.0 3 air
p 1 -0.5 3 piston_head type=normal facing=up short=true
t 68
p 1 0.0 7 air
p 1 -0.5 7 piston_head type=normal facing=up short=true
t 69
p 0 0.0 -1 air
p 0 -0.5 -1 piston_head type=normal facing=up short=true
t 70
p 0 0.0 3 air
p 0 -0.5 3 piston_head type=normal facing=up short=true
t 71
p 0 0.0 7 air
p 0 -0.5 7 piston_head type=normal facing=up short=true
t 72
p 4 0.0 -1 extended=false
p 4 -0.5 -1 air
t 73
p 4 0.0 3 extended=false
p 4 -0.5 3 air
t 74
p 4 0.0 7 extended=false
p 4 -0.5 7 air
t 75
p 3 -1.0 -1 extended=false
p 3 -0.5 -1 air
t 76
p 3 -1.0 3 extended=false
p 3 -0.5 3 air
t 77
p 3 -1.0 7 extended=false
p 3 -0.5 7 air
t 78
p 2 -1.0 -1 extended=false
p 2 -0.5 -1 air
t 79
p 2 -1.0 3 extended=false
p 2 -0.5 3 air
t 80
p 2 -1.0 7 extended=false
p 2 -0.5 7 air
t 81
p 1 -1.0 -1 extended=false
p 1 -0.5 -1 air
t 82
p 1 -1.0 3 extended=false
p 1 -0.5 3 air
t 83
p 1 -1.0 7 extended=false
p 1 -0.5 7 air
t 84
p 0 -1.0 -1 extended=false
p 0 -0.5 -1 air
t 85
p 0 -1.0 3 extended=false
p 0 -0.5 3 air
t 86
p 0 -1.0 7 extended=false
p 0 -0.5 7 air
t 87
p 3 0 -2 powered=false
t 88
t 59
p 3 0 2 powered=false
t 89
t 60
p 3 0 6 powered=false
t 90
t 61
p 2 0 -2 powered=false
t 91
t 62
p 2 0 2 powered=false
t 92
t 63
p 2 0 6 powered=false
t 93
t 64
p 1 0 -2 powered=false
t 94
t 65
p 1 0 2 powered=false
t 95
t 66
p 1 0 6 powered=false
t 96
t 67
p 0 0 -2 powered=false
t 97
t 68
p 0 0 2 powered=false
t 98
t 69
p 0 0 6 powered=false
t 100
p 0 0 0 # slight delay before loop
t 72
p 0 0 0
```
#note()[This isn't *exactly* correct because the pistons take 2gt to extend and retract, but it correctly explains the update order of the observers]
== Single-Priority Loops