Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db71c69522 | ||
|
|
e0b0120cf6 | ||
|
|
75a3d25bc8 | ||
|
|
1eb0de2f94 | ||
|
|
bb71b7e872 | ||
|
|
0aa52320a3 | ||
|
|
af8119f120 | ||
|
|
1b754178c5 | ||
|
|
6517fbc4a4 | ||
|
|
8a0bfcd740 | ||
|
|
ac44e5f15e | ||
|
|
67d729eeba | ||
| 6d339e1396 | |||
| d901fc45d8 | |||
| aa428b111c | |||
| ca9901eb29 | |||
| 4a44951d1f | |||
| 7f842d74c8 | |||
| 223b733bdc | |||
| 826e8967a2 | |||
|
|
046fb89214 | ||
|
|
c126a42599 | ||
|
|
35e3312d17 | ||
| 02911e0357 |
416
content/block-event-delay.typ
Normal file
416
content/block-event-delay.typ
Normal file
@@ -0,0 +1,416 @@
|
||||
#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)
|
||||
|
||||
= Block Event Delay
|
||||
|
||||
Block Event Delay is not a complete substitute for tilesets, but it can significantly reduce the
|
||||
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,
|
||||
loop: true,
|
||||
radius: 5,
|
||||
theta: 160,
|
||||
it.text,
|
||||
)
|
||||
|
||||
```mc-diorama
|
||||
p -1 0 0 observer facing=west powered=false
|
||||
p 0 0 -1 piston facing=down extended=false
|
||||
p 0 0 0 light_gray_terracotta
|
||||
p 0 1 0 redstone_wire east=side west=side power=0
|
||||
p 1 -1 -1 piston facing=up extended=false
|
||||
p 1 0 -2 observer facing=south powered=false
|
||||
p 1 0 0 light_gray_terracotta
|
||||
p 1 1 0 redstone_wire east=side west=side power=0
|
||||
p 2 -1 -1 piston facing=up extended=false
|
||||
p 2 0 -2 observer facing=south powered=false
|
||||
p 2 0 0 light_gray_terracotta
|
||||
p 2 1 0 redstone_wire east=side west=side power=0
|
||||
p 3 -1 -1 piston facing=up extended=false
|
||||
p 3 0 -2 observer facing=south powered=false
|
||||
p 3 0 0 light_gray_terracotta
|
||||
p 3 1 0 redstone_wire east=side west=side power=0
|
||||
p 4 -1 -1 piston facing=up extended=false
|
||||
p 4 0 -2 observer facing=south powered=false
|
||||
p 4 0 0 light_gray_terracotta
|
||||
p 4 1 0 redstone_wire east=side west=side power=0
|
||||
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 0 -0.5 -1 piston_head facing=down short=true type=normal
|
||||
p 1 -1 -1 extended=true
|
||||
p 1 -0.5 -1 piston_head facing=up short=true type=normal
|
||||
p 2 -1 -1 extended=true
|
||||
p 2 -0.5 -1 piston_head facing=up short=true type=normal
|
||||
p 3 -1 -1 extended=true
|
||||
p 3 -0.5 -1 piston_head facing=up short=true type=normal
|
||||
p 4 -1 -1 extended=true
|
||||
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
|
||||
```
|
||||
|
||||
#show raw.where(lang: "mc-diorama"): it => diorama(
|
||||
autoplay: true,
|
||||
loop: true,
|
||||
radius: 5,
|
||||
theta: 180,
|
||||
phi: 0,
|
||||
it.text,
|
||||
)
|
||||
|
||||
```
|
||||
prefix | BED -->
|
||||
00 | A D G J ...
|
||||
01 | B E H K ...
|
||||
10 | C F I L ...
|
||||
```
|
||||
|
||||
#show raw.where(lang: "mc-diorama"): it => diorama(
|
||||
autoplay: true,
|
||||
loop: true,
|
||||
radius: 9,
|
||||
phi: 30,
|
||||
theta: 110,
|
||||
speed: 0.4,
|
||||
it.text,
|
||||
)
|
||||
|
||||
|
||||
```mc-diorama
|
||||
p 0 0 -2 observer facing=south 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 0 -1 -1 piston facing=up 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 0 -1 piston facing=down extended=false
|
||||
p -3 -1 0 smooth_stone_slab type=top
|
||||
p -2 -1 0 smooth_stone_slab type=top
|
||||
p -1 -1 0 smooth_stone_slab type=top
|
||||
p -3 0 0 repeater facing=west powered=false locked=false delay=1
|
||||
p -2 0 0 comparator facing=west powered=false mode=compare
|
||||
p -1 0 0 observer facing=west powered=false
|
||||
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 2 observer facing=south 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 0 -1 3 piston facing=up extended=false
|
||||
p 1 -1 3 piston facing=up extended=false
|
||||
p 2 -1 3 piston facing=up extended=false
|
||||
p 3 -1 3 piston facing=up extended=false
|
||||
p 4 0 3 piston facing=down extended=false
|
||||
p -3 -1 4 smooth_stone_slab type=top
|
||||
p -2 -1 4 smooth_stone_slab type=top
|
||||
p -1 -1 4 smooth_stone_slab type=top
|
||||
p -3 0 4 comparator facing=west powered=false mode=compare
|
||||
p -2 0 4 repeater facing=west powered=false locked=false delay=1
|
||||
p -1 0 4 observer facing=west powered=false
|
||||
p 0 0 4 cyan_terracotta
|
||||
p 1 0 4 cyan_terracotta
|
||||
p 2 0 4 cyan_terracotta
|
||||
p 3 0 4 cyan_terracotta
|
||||
p 4 0 4 cyan_terracotta
|
||||
p 0 1 4 redstone_wire east=side west=side power=0
|
||||
p 1 1 4 redstone_wire east=side west=side power=0
|
||||
p 2 1 4 redstone_wire east=side west=side power=0
|
||||
p 3 1 4 redstone_wire east=side west=side power=0
|
||||
p 4 1 4 redstone_wire east=side west=side power=0
|
||||
p 0 0 6 observer facing=south powered=false
|
||||
p 1 0 6 observer facing=south powered=false
|
||||
p 2 0 6 observer facing=south powered=false
|
||||
p 3 0 6 observer facing=south powered=false
|
||||
p 0 -1 7 piston facing=up extended=false
|
||||
p 1 -1 7 piston facing=up extended=false
|
||||
p 2 -1 7 piston facing=up extended=false
|
||||
p 3 -1 7 piston facing=up extended=false
|
||||
p 4 0 7 piston facing=down extended=false
|
||||
p 5 -1 8 smooth_stone_slab type=top
|
||||
p 6 -1 8 smooth_stone_slab type=top
|
||||
p 7 -1 8 smooth_stone_slab type=top
|
||||
p 0 0 8 white_terracotta
|
||||
p 1 0 8 white_terracotta
|
||||
p 2 0 8 white_terracotta
|
||||
p 3 0 8 white_terracotta
|
||||
p 4 0 8 white_terracotta
|
||||
p 5 0 8 observer facing=east powered=false
|
||||
p 6 0 8 repeater facing=east powered=false locked=false delay=1
|
||||
p 7 0 8 repeater facing=east powered=false locked=false delay=1
|
||||
p 0 1 8 redstone_wire east=side west=side power=0
|
||||
p 1 1 8 redstone_wire east=side west=side power=0
|
||||
p 2 1 8 redstone_wire east=side west=side power=0
|
||||
p 3 1 8 redstone_wire east=side west=side power=0
|
||||
p 4 1 8 redstone_wire east=side west=side power=0
|
||||
t 1
|
||||
p -3 0 0 powered=true
|
||||
p -3 0 4 powered=true
|
||||
p 7 0 8 powered=true
|
||||
t 3
|
||||
p -2 0 0 powered=true
|
||||
p -2 0 4 powered=true
|
||||
p 6 0 8 powered=true
|
||||
t 6
|
||||
p -3 0 0 powered=false
|
||||
p -3 0 4 powered=false
|
||||
p 7 0 8 powered=false
|
||||
t 8
|
||||
p 5 0 8 powered=true
|
||||
p 0 1 8 power=15
|
||||
p 1 1 8 power=14
|
||||
p 2 1 8 power=13
|
||||
p 3 1 8 power=12
|
||||
p 4 1 8 power=11
|
||||
t 9
|
||||
p -1 0 4 powered=true
|
||||
p 0 1 4 power=15
|
||||
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 10
|
||||
p -1 0 0 powered=true
|
||||
p 0 1 0 power=11
|
||||
p 1 1 0 power=12
|
||||
p 2 1 0 power=13
|
||||
p 3 1 0 power=14
|
||||
p 4 1 0 power=15
|
||||
t 11
|
||||
p 4 0 7 extended=true
|
||||
p 4 -1 7 piston_head type=normal facing=down short=false
|
||||
t 12
|
||||
p 4 0 3 extended=true
|
||||
p 4 -1 3 piston_head type=normal facing=down short=false
|
||||
t 13
|
||||
p 4 0 -1 extended=true
|
||||
p 4 -1 -1 piston_head type=normal facing=down short=false
|
||||
t 14
|
||||
p 3 -1 7 extended=true
|
||||
p 3 0 7 piston_head type=normal facing=up short=false
|
||||
t 15
|
||||
p 3 -1 3 extended=true
|
||||
p 3 0 3 piston_head type=normal facing=up short=false
|
||||
t 16
|
||||
p 3 -1 -1 extended=true
|
||||
p 3 0 -1 piston_head type=normal facing=up short=false
|
||||
t 17
|
||||
p 2 -1 7 extended=true
|
||||
p 2 0 7 piston_head type=normal facing=up short=false
|
||||
t 18
|
||||
p 2 -1 3 extended=true
|
||||
p 2 0 3 piston_head type=normal facing=up short=false
|
||||
t 19
|
||||
p 2 -1 -1 extended=true
|
||||
p 2 0 -1 piston_head type=normal facing=up short=false
|
||||
t 20
|
||||
p 1 -1 7 extended=true
|
||||
p 1 0 7 piston_head type=normal facing=up short=false
|
||||
t 21
|
||||
p 1 -1 3 extended=true
|
||||
p 1 0 3 piston_head type=normal facing=up short=false
|
||||
t 22
|
||||
p 1 -1 -1 extended=true
|
||||
p 1 0 -1 piston_head type=normal facing=up short=false
|
||||
t 23
|
||||
p 0 -1 7 extended=true
|
||||
p 0 0 7 piston_head type=normal facing=up short=false
|
||||
t 24
|
||||
p 0 -1 3 extended=true
|
||||
p 0 0 3 piston_head type=normal facing=up short=false
|
||||
t 25
|
||||
p 0 -1 -1 extended=true
|
||||
p 0 0 -1 piston_head type=normal facing=up short=false
|
||||
t 26
|
||||
p -2 0 0 powered=false
|
||||
p -2 0 4 powered=false
|
||||
p 6 0 8 powered=false
|
||||
t 28
|
||||
p 5 0 8 powered=false
|
||||
p 0 1 8 power=0
|
||||
p 1 1 8 power=0
|
||||
p 2 1 8 power=0
|
||||
p 3 1 8 power=0
|
||||
p 4 1 8 power=0
|
||||
t 29
|
||||
p -1 0 4 powered=false
|
||||
p 0 1 4 power=0
|
||||
p 1 1 4 power=0
|
||||
p 2 1 4 power=0
|
||||
p 3 1 4 power=0
|
||||
p 4 1 4 power=0
|
||||
t 30
|
||||
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
|
||||
t 31
|
||||
p 3 0 6 powered=true
|
||||
t 32
|
||||
p 3 0 2 powered=true
|
||||
t 33
|
||||
p 3 0 -2 powered=true
|
||||
t 34
|
||||
p 2 0 6 powered=true
|
||||
t 35
|
||||
p 2 0 2 powered=true
|
||||
t 36
|
||||
p 2 0 -2 powered=true
|
||||
t 37
|
||||
p 1 0 6 powered=true
|
||||
t 38
|
||||
p 1 0 2 powered=true
|
||||
t 39
|
||||
p 1 0 -2 powered=true
|
||||
t 40
|
||||
p 0 0 6 powered=true
|
||||
t 41
|
||||
p 0 0 2 powered=true
|
||||
t 42
|
||||
p 0 0 -2 powered=true
|
||||
t 43
|
||||
p 4 0 7 extended=false
|
||||
p 4 -1 7 air
|
||||
t 44
|
||||
p 4 0 3 extended=false
|
||||
p 4 -1 3 air
|
||||
t 45
|
||||
p 4 0 -1 extended=false
|
||||
p 4 -1 -1 air
|
||||
t 46
|
||||
p 3 -1 7 extended=false
|
||||
p 3 0 7 air
|
||||
t 47
|
||||
p 3 -1 3 extended=false
|
||||
p 3 0 3 air
|
||||
t 48
|
||||
p 3 -1 -1 extended=false
|
||||
p 3 0 -1 air
|
||||
t 49
|
||||
p 2 -1 7 extended=false
|
||||
p 2 0 7 air
|
||||
t 50
|
||||
p 2 -1 3 extended=false
|
||||
p 2 0 3 air
|
||||
t 51
|
||||
p 2 -1 -1 extended=false
|
||||
p 2 0 -1 air
|
||||
t 52
|
||||
p 1 -1 7 extended=false
|
||||
p 1 0 7 air
|
||||
t 53
|
||||
p 1 -1 3 extended=false
|
||||
p 1 0 3 air
|
||||
t 54
|
||||
p 1 -1 -1 extended=false
|
||||
p 1 0 -1 air
|
||||
t 55
|
||||
p 0 -1 7 extended=false
|
||||
p 0 0 7 air
|
||||
t 56
|
||||
p 0 -1 3 extended=false
|
||||
p 0 0 3 air
|
||||
t 57
|
||||
p 0 -1 -1 extended=false
|
||||
p 0 0 -1 air
|
||||
t 58
|
||||
p 3 0 6 powered=false
|
||||
t 59
|
||||
p 3 0 2 powered=false
|
||||
t 60
|
||||
p 3 0 -2 powered=false
|
||||
t 61
|
||||
p 2 0 6 powered=false
|
||||
t 62
|
||||
p 2 0 2 powered=false
|
||||
t 63
|
||||
p 2 0 -2 powered=false
|
||||
t 64
|
||||
p 1 0 6 powered=false
|
||||
t 65
|
||||
p 1 0 2 powered=false
|
||||
t 66
|
||||
p 1 0 -2 powered=false
|
||||
t 67
|
||||
p 0 0 6 powered=false
|
||||
t 68
|
||||
p 0 0 2 powered=false
|
||||
t 69
|
||||
p 0 0 -2 powered=false
|
||||
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
|
||||
@@ -1,8 +1,135 @@
|
||||
#import "/lib.typ": diorama
|
||||
|
||||
= Design Tips
|
||||
|
||||
== Synchronization
|
||||
=== Daylight Detector
|
||||
|
||||
#[#show raw.where(lang: "mc-diorama"): it => diorama(
|
||||
autoplay: true,
|
||||
loop: true,
|
||||
radius: 5,
|
||||
theta: 25,
|
||||
phi: 25,
|
||||
it.text,
|
||||
)
|
||||
|
||||
```mc-diorama
|
||||
p 0 0 0 smooth_stone_slab type=top
|
||||
p 0 1 0 daylight_detector inverted=true power=1
|
||||
p 0 2 0 piston facing=east extended=false
|
||||
p 1 0 0 smooth_stone_slab type=top
|
||||
p 1 1 0 observer facing=west powered=false
|
||||
t 0
|
||||
p 0 2 0 extended=true
|
||||
p 0.5 2 0 piston_head facing=east short=true type=normal
|
||||
t 1
|
||||
p 0.5 2 0 air
|
||||
p 1 2 0 piston_head facing=east short=false type=normal
|
||||
t 2
|
||||
p 1 1 0 powered=true
|
||||
t 4
|
||||
p 1 1 0 powered=false
|
||||
|
||||
t 20
|
||||
p 1 2 0 air
|
||||
p 0.5 2 0 piston_head facing=east short=true type=normal
|
||||
p 0 1 0 power=0
|
||||
|
||||
t 21
|
||||
p 0.5 2 0 air
|
||||
p 0 2 0 extended=false
|
||||
|
||||
t 22
|
||||
p 1 1 0 powered=true
|
||||
t 24
|
||||
p 1 1 0 powered=false
|
||||
|
||||
t 40
|
||||
p 0 0 0
|
||||
```
|
||||
|
||||
```mc-diorama
|
||||
p 1 -1 1 smooth_stone_slab type=top
|
||||
p 1 -1 0 smooth_stone_slab type=top
|
||||
p 0 -1 1 smooth_stone_slab type=top
|
||||
p 0 -1 0 smooth_stone_slab type=top
|
||||
p -1 -1 1 smooth_stone_slab type=top
|
||||
p -1 -1 0 smooth_stone_slab type=top
|
||||
p -2 -1 1 smooth_stone_slab type=top
|
||||
p -2 -1 0 smooth_stone_slab type=top
|
||||
|
||||
p 0 0 1 daylight_detector inverted=true power=12
|
||||
p 0 0 0 daylight_detector inverted=true power=12
|
||||
p -1 0 0 comparator facing=east mode=subtract powered=false
|
||||
p -1 0 1 redstone_wire east=side north=side power=12
|
||||
p -2 0 0 light_gray_terracotta
|
||||
p -2 1 0 redstone_wire north=side south=side east=side west=side power=0
|
||||
p -1 1 0 sticky_piston facing=east extended=false
|
||||
p 0 1 0 light_gray_terracotta
|
||||
p 1 0 0 observer facing=west powered=false
|
||||
|
||||
t 0
|
||||
p 0 0 0 power=13
|
||||
|
||||
t 2
|
||||
p -1 0 0 powered=true
|
||||
p -2 1 0 power=1
|
||||
|
||||
t 3
|
||||
p -1 1 0 extended=true
|
||||
p 0 1 0 air
|
||||
p .5 1 0 light_gray_terracotta
|
||||
p -.5 1 0 piston_head type=sticky short=true facing=east
|
||||
|
||||
t 4
|
||||
p 1 0 0 powered=true
|
||||
p .5 1 0 air
|
||||
p -.5 1 0 air
|
||||
p 1 1 0 light_gray_terracotta
|
||||
p 0 1 0 piston_head type=sticky short=false facing=east
|
||||
|
||||
t 6
|
||||
p 1 0 0 powered=false
|
||||
|
||||
t 20
|
||||
p 0 0 0 power=12
|
||||
|
||||
t 22
|
||||
p -1 0 0 powered=false
|
||||
p -2 1 0 power=0
|
||||
|
||||
t 23
|
||||
p 1 1 0 air
|
||||
p 0 1 0 air
|
||||
p .5 1 0 light_gray_terracotta
|
||||
p -.5 1 0 piston_head type=sticky short=true facing=east
|
||||
|
||||
t 24
|
||||
p .5 1 0 air
|
||||
p -.5 1 0 air
|
||||
p 0 1 0 light_gray_terracotta
|
||||
p -1 1 0 extended=false
|
||||
p 1 0 0 powered=true
|
||||
|
||||
t 26
|
||||
p 1 0 0 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)
|
||||
}
|
||||
",
|
||||
)
|
||||
|
||||
@@ -1,9 +1,23 @@
|
||||
#import "/lib.typ": callout, diorama, warn, world
|
||||
#import "/lib.typ": callout, diorama, warn
|
||||
|
||||
#title()
|
||||
|
||||
#diorama(
|
||||
orbit: false,
|
||||
"
|
||||
p 0 0 0 dropper facing=up triggered=false
|
||||
p 0 1 0 dropper facing=up triggered=false
|
||||
p 0 2 0 dropper facing=east triggered=false
|
||||
p 1 0 0 hopper facing=west enabled=true
|
||||
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+.
|
||||
|
||||
A written supplement to #link("https://youtu.be/81OV1BltMQ8")[iPlayGames's Wireless Masterclass].
|
||||
|
||||
#warn[
|
||||
In versions 1.14 - 26.1, only multiplayer servers are supported.
|
||||
|
||||
|
||||
@@ -1,217 +0,0 @@
|
||||
#import "/lib.typ": diorama, example, todo, world
|
||||
|
||||
= Preventing Interference <timing>
|
||||
|
||||
The protocols as described are very sensitive to the exact timing that the EID counter is
|
||||
incremented. The fundamental cause for all types of interference is that we spawn a reference and
|
||||
measurement item with too much delay, and some unexpected entity (or entities) spawn in-between. To
|
||||
mitigate interference, then, we need that window to be *as short as possible* while still allowing
|
||||
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
|
||||
p 3 -1 0 smooth_stone_slab type=top
|
||||
p 4 -1 0 smooth_stone_slab type=top
|
||||
|
||||
p 0 0 0 repeater facing=west powered=false locked=false delay=1
|
||||
p 1 0 0 observer facing=west powered=false
|
||||
p 2 0 0 repeater facing=west powered=false locked=false delay=2
|
||||
p 3 0 0 comparator facing=west powered=false mode=compare
|
||||
p 4 0 0 repeater facing=west powered=false locked=false delay=1
|
||||
|
||||
t 2
|
||||
p 0 0 0 powered=true
|
||||
t 4
|
||||
p 0 0 0 powered=false
|
||||
p 1 0 0 powered=true
|
||||
t 6
|
||||
p 1 0 0 powered=false
|
||||
t 8
|
||||
p 2 0 0 powered=true
|
||||
t 10
|
||||
p 3 0 0 powered=true
|
||||
t 12
|
||||
p 2 0 0 powered=false
|
||||
p 4 0 0 powered=true
|
||||
t 14
|
||||
p 3 0 0 powered=false
|
||||
t 16
|
||||
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.
|
||||
|
||||
=== The Tile Tick Priority Queue
|
||||
|
||||
The game schedules tile updates through a priority queue; different components have different
|
||||
priority, so each stage of the tileset iteratively refines the global order. Across the full
|
||||
tileset, we can enforce an arbitrary global ordering.
|
||||
|
||||
#todo[the priority table][
|
||||
call out here that basic comparators and all other components, so from here on out we're just
|
||||
going to use comparators for simplicity.
|
||||
]
|
||||
|
||||
Components with different priority always update in priority order, but components with equal
|
||||
priority update in scheduled order.
|
||||
|
||||
#todo[rephrase or remove][
|
||||
The core principal is that repeaters have higher priority than other components. For example, if a
|
||||
repeater and comparator are scheduled to activate in the same tick, the repeater always (with one
|
||||
exception, if the comparator faces into a diode and the repeater does not) activates before the
|
||||
comparator does. By choosing a regular building pattern, we can avoid this exception entirely.
|
||||
|
||||
// Among repeaters, they activate in the order in which they were scheduled. And among
|
||||
// comparators, they activate in the order in which they are scheduled. But every repeater
|
||||
// activates before any comparator (aside from that one exception). This gives us a *stable sort*
|
||||
// which we can use to globally define update order with arbitrary precision.
|
||||
|
||||
]
|
||||
|
||||
#example[
|
||||
#todo[this explanation is so janky]
|
||||
|
||||
Say these three tilesets are started in the same gametick, `t=0`.
|
||||
|
||||
```
|
||||
<------
|
||||
1 rep cmp ab
|
||||
2 cmp rep cd
|
||||
3 2rep e
|
||||
<------
|
||||
```
|
||||
|
||||
Once `b`, `d`, and `e` are scheduled, the priority queue looks like this:
|
||||
|
||||
```
|
||||
t=2 [d] [b]
|
||||
t=4 [e]
|
||||
```
|
||||
|
||||
Now at `t=2`, we process the queue in order.
|
||||
|
||||
- `d` activates and schedules `c`.
|
||||
- `b` activates and schedules `a`.
|
||||
|
||||
```
|
||||
t=4 [e a] [c]
|
||||
```
|
||||
|
||||
Now at `t=4`, the end of the tileset, the lanes will always update in order `3 1 2`
|
||||
|
||||
]
|
||||
|
||||
So the full picture involves arbitrary components and priorities. As long as all the tilesets have
|
||||
the same total delay and end at the same time, we can determine a global ordering. However the
|
||||
general picture is hard to reason about, we basically have to simulate the priority queue to make
|
||||
predictions. If we restrict the design of the tilesets a bit, there are two simplifications we could
|
||||
take to make things easier to reason about.
|
||||
|
||||
=== Permutation Tilesets
|
||||
|
||||
#todo[describe the mixed delay permutation tilesets and the alphabetization procedure]
|
||||
|
||||
=== Binary
|
||||
|
||||
The simplest tilesets are made entirely of comparators and 2gt repeaters (alternatively: observers
|
||||
and 2gt repeaters). Repeaters activate before comparators, so if we think of it like sorting words
|
||||
alphabetically, we can identify repeaters with "A" and comparators with "B".
|
||||
|
||||
So, suppose we have a "binary tileset" that is 2gt long. There are two options, A and B. If we
|
||||
alphabetize these, we see the A (repeater) always executes before the B (comparator). With such a
|
||||
short tileset, that seems trivial; things get more interesting as we add more elements.
|
||||
|
||||
```
|
||||
<--
|
||||
cmp (B)
|
||||
rep (A)
|
||||
```
|
||||
|
||||
Now let's use 2 components for a 4gt tileset. There are now four options, AA, AB, BA, BB. We can
|
||||
alphabetize these and see the order.
|
||||
|
||||
```
|
||||
<------
|
||||
cmp cmp (BB)
|
||||
cmp rep (BA)
|
||||
rep cmp (AB)
|
||||
rep rep (AA)
|
||||
```
|
||||
|
||||
To break this down: the bottom two (AA, AB) end in repeaters, so they must come first. Among those,
|
||||
(AA) comes first. Among the top two (BA, BB), (BA) comes first. It's standard alphabetizing. Just as
|
||||
the order of the alphabet creates an ordering over all words, the ordering of the comparator and
|
||||
repeater creates an ordering of all tilesets.
|
||||
|
||||
The 6gt tileset. There are now eight options.
|
||||
|
||||
```
|
||||
<---------
|
||||
...
|
||||
```
|
||||
|
||||
As the tilesets get larger, it's less useful to lay out the entire tileset and more useful to find
|
||||
the next and previous lanes.
|
||||
|
||||
For example, take this 7-diode tileset.
|
||||
|
||||
```
|
||||
cmp rep rep cmp rep cmp cmp
|
||||
<--------------------------
|
||||
B A A B A B B
|
||||
```
|
||||
|
||||
We can easily find the next lane by thinking of this not as a *word* but as a *number*. We have two
|
||||
options, and one is greater than the other.
|
||||
|
||||
```
|
||||
cmp rep rep cmp rep cmp cmp
|
||||
<--------------------------
|
||||
B A A B A B B
|
||||
1 0 0 1 0 1 1
|
||||
```
|
||||
|
||||
We can think of this tileset as a 7-bit binary number, in this case the value 75. We can find the
|
||||
next lane by simply incrementing by one.
|
||||
|
||||
```
|
||||
1 0 0 1 0 1 1 (75)
|
||||
+ 1
|
||||
1 0 0 1 1 0 0 (76)
|
||||
<--------------------------
|
||||
cmp rep rep cmp cmp rep rep
|
||||
```
|
||||
|
||||
=== Lexicographic
|
||||
|
||||
=== Jamming
|
||||
|
||||
== Block Event Delay
|
||||
|
||||
== Single-Priority Loops
|
||||
@@ -8,14 +8,13 @@ generally unexpected entity spawns that mess up the ID.
|
||||
== Other Entities
|
||||
|
||||
Recall that *any* entity spawning will increment the ID counter, and the full list of entities is
|
||||
surprising. An exhaustive list is available at #link(
|
||||
"https://minecraft.wiki/w/Entity#Types_of_entities",
|
||||
)[The Minecraft Wiki].
|
||||
surprising. An exhaustive list is available at
|
||||
#link("https://minecraft.wiki/w/Entity#Types_of_entities")[The Minecraft Wiki].
|
||||
|
||||
In general, the solution is to spawn our item entities at nearly the same time, so there is no
|
||||
chance for other entities to spawn in-between. For example, by spawning all items with droppers in
|
||||
the same game tick, all the items are created in the same tick phase, so player inputs and world
|
||||
events cannot affect it. See @timing for details.
|
||||
events cannot affect it. See @tilesets for details.
|
||||
|
||||
== Singleplayer (before 26.2) <singleplayer>
|
||||
|
||||
@@ -24,29 +23,32 @@ game world ("server thread") contains the item entities we care about for the pu
|
||||
Wireless, as these are the entities we can detect with redstone. However, the renderer ("client
|
||||
thread") *also* tracks some entities.
|
||||
|
||||
In versions before 26.2, there was a bug that caused the client thread and server thread to use the
|
||||
*same* global ID counter. Therefore every entity might increment the counter twice: once when it
|
||||
spawns in the server, and once when the client begins to track it. Because this depends on the
|
||||
position and orientation of the player, and also on the unpredictable scheduling of the two
|
||||
execution threads, it is impossible to truly compensate for these effects.
|
||||
In versions before 26.2, there was a bug
|
||||
(#link("https://report.bugs.mojang.com/servicedesk/customer/portal/2/MC-238384")[MC-238384])
|
||||
that caused the client thread and server thread to use the *same* global ID counter. Therefore every
|
||||
entity might increment the counter twice: once when it spawns in the server, and once when the
|
||||
client begins to track it. Because this depends on the position and orientation of the player, and
|
||||
also on the unpredictable scheduling of the two execution threads, it is impossible to truly
|
||||
compensate for these effects.
|
||||
|
||||
The solution is to either use a dedicated minecraft server, so that the client and servers run in
|
||||
separate processes, or install a mod which patches the game to use a separate counter for the
|
||||
separate processes, or install a mod that patches the game to use a separate counter for the
|
||||
client.
|
||||
|
||||
#todo[Singleplayer patch links][Grab links for these mods and figure out exactly which versions
|
||||
they're good for.]
|
||||
There are also several mods that fix this functionality in some versions before 26.2
|
||||
|
||||
- https://github.com/MESLewis/local-server-entity-id-fix
|
||||
- https://github.com/Mikarific/EIDTracker
|
||||
|
||||
#todo[Singleplayer patch links][figure out exact version compatibility list.]
|
||||
|
||||
== Paper Servers <paper>
|
||||
|
||||
#todo[Paper compatibility list][Figure out which versions of Paper broke the thing.]
|
||||
Most recent versions of Paper server are compatible with EID Wireless. However, Paper 1.16-1.17
|
||||
included a *different* stationary entity optimization from Spigot
|
||||
(#link("https://github.com/PaperMC/Paper/issues/6277")[Paper \#6277]) that corrupts this.
|
||||
|
||||
Most recent versions of Paper server are compatible with EID Wireless. However, there are old
|
||||
versions of Spigot which include a *different* stationary item optimization which corrupts this. A
|
||||
few versions of Paper erroneously included this old optimization (on top of the mod 4 optimization)
|
||||
which breaks EID Wireless.
|
||||
|
||||
#todo[Broken Paper/Spigot code][Show the patch with the busted optimization.]
|
||||
#todo[Paper compatibility list][figure out exact version compatibility list.]
|
||||
|
||||
== Unloaded Chunks
|
||||
|
||||
408
content/tilesets.typ
Normal file
408
content/tilesets.typ
Normal file
@@ -0,0 +1,408 @@
|
||||
#import "/lib.typ": diorama, example, note, todo
|
||||
|
||||
|
||||
= Tilesets <tilesets>
|
||||
|
||||
The protocols as described are very sensitive to the exact timing that the EID counter is
|
||||
incremented. The fundamental cause for all types of interference is that there is a chance for
|
||||
unexpected entities to spawn in-between the measurement items, which increments the counter and
|
||||
corrupts the data. The solution, then, is to make that window *as short as possible* so the chance
|
||||
for interference is minimized.
|
||||
|
||||
The fundamental principle is to use the game scheduled tick priority queue to do this. A *tile
|
||||
sequence* is a chain of redstone components that all update in the scheduled tick phase. A *tile
|
||||
set* is a system of constructing tile sequences that enforces a particular global ordering.
|
||||
|
||||
#show raw.where(lang: "mc-diorama"): it => diorama(autoplay: true, loop: true, theta: 160, phi: 20, it.text)
|
||||
```mc-diorama
|
||||
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
|
||||
p 3 -1 0 smooth_stone_slab type=top
|
||||
p 4 -1 0 smooth_stone_slab type=top
|
||||
p 0 0 0 repeater facing=west powered=false locked=false delay=1
|
||||
p 1 0 0 observer facing=west powered=false
|
||||
p 2 0 0 repeater facing=west powered=false locked=false delay=2
|
||||
p 3 0 0 comparator facing=west powered=false mode=compare
|
||||
p 4 0 0 repeater facing=west powered=false locked=false delay=1
|
||||
t 2
|
||||
p 0 0 0 powered=true
|
||||
t 4
|
||||
p 0 0 0 powered=false
|
||||
p 1 0 0 powered=true
|
||||
t 6
|
||||
p 1 0 0 powered=false
|
||||
t 8
|
||||
p 2 0 0 powered=true
|
||||
t 10
|
||||
p 3 0 0 powered=true
|
||||
t 12
|
||||
p 2 0 0 powered=false
|
||||
p 4 0 0 powered=true
|
||||
t 14
|
||||
p 3 0 0 powered=false
|
||||
t 16
|
||||
p 4 0 0 powered=false
|
||||
t 20
|
||||
p 0 0 0
|
||||
```
|
||||
|
||||
== The Scheduled Tick Priority Queue
|
||||
|
||||
There are two aspects that affect a scheduled tick's placement in the queue: its _priority_ and its
|
||||
_delay_. Scheduled ticks with higher (more negative) priority update first in a given game tick.
|
||||
Scheduled ticks with equal priority update in the order they were scheduled.
|
||||
|
||||
See @block-priority for a list of priorities. The most important point is that repeaters have higher
|
||||
priority than other components.
|
||||
|
||||
== Binary Tilesets
|
||||
|
||||
The simplest (and generally most useful) tilesets use only two priorities. This allows us to
|
||||
identify each tile sequence with a binary value and easily read the update order and carve up the
|
||||
the full tile set for different systems. Typically we use comparators (or observers) and 2gt
|
||||
repeaters.
|
||||
|
||||
We identify the higher priority (repeater) with `0`, since it sorts/updates earlier, and identify
|
||||
the lower priority (observer/comparator) with `1`. Then we can read off the elements of the tile
|
||||
sequence to form a binary number.
|
||||
|
||||
Components that 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.
|
||||
|
||||
Consider this 4gt tileset.
|
||||
|
||||
#show raw.where(lang: "mc-diorama"): it => diorama(
|
||||
autoplay: true,
|
||||
loop: true,
|
||||
theta: 90,
|
||||
phi: 90,
|
||||
speed: 0.33,
|
||||
radius: 8,
|
||||
orbit: false,
|
||||
it.text,
|
||||
)
|
||||
|
||||
```mc-diorama
|
||||
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
|
||||
p 3 -1 0 smooth_stone_slab type=top
|
||||
p 4 -1 0 smooth_stone_slab type=top
|
||||
p 5 -1 0 smooth_stone_slab type=top
|
||||
p 6 -1 0 smooth_stone_slab type=top
|
||||
p 7 -1 0 smooth_stone_slab type=top
|
||||
|
||||
p 0 0 0 redstone_wire east=side west=none south=side power=0
|
||||
p 1 0 0 redstone_wire east=side west=side south=side power=0
|
||||
p 2 0 0 redstone_wire east=side west=side south=side power=0
|
||||
p 3 0 0 redstone_wire east=side west=side south=side power=0
|
||||
p 4 0 0 redstone_wire east=side west=side south=side power=0
|
||||
p 5 0 0 redstone_wire east=side west=side south=side power=0
|
||||
p 6 0 0 redstone_wire east=side west=side south=side power=0
|
||||
p 7 0 0 redstone_wire east=none west=side south=side power=0
|
||||
|
||||
p 0 0 1 repeater facing=north delay=1 powered=false locked=false
|
||||
p 1 0 1 comparator facing=north mode=compare powered=false
|
||||
p 2 0 1 repeater facing=north delay=1 powered=false locked=false
|
||||
p 3 0 1 comparator facing=north mode=compare powered=false
|
||||
p 4 0 1 repeater facing=north delay=1 powered=false locked=false
|
||||
p 5 0 1 comparator facing=north mode=compare powered=false
|
||||
p 6 0 1 repeater facing=north delay=1 powered=false locked=false
|
||||
p 7 0 1 comparator facing=north mode=compare powered=false
|
||||
|
||||
p 0 0 2 repeater facing=north delay=1 powered=false locked=false
|
||||
p 1 0 2 repeater facing=north delay=1 powered=false locked=false
|
||||
p 2 0 2 comparator facing=north mode=compare powered=false
|
||||
p 3 0 2 comparator facing=north mode=compare powered=false
|
||||
p 4 0 2 repeater facing=north delay=1 powered=false locked=false
|
||||
p 5 0 2 repeater facing=north delay=1 powered=false locked=false
|
||||
p 6 0 2 comparator facing=north mode=compare powered=false
|
||||
p 7 0 2 comparator facing=north mode=compare powered=false
|
||||
|
||||
p 0 0 3 repeater facing=north delay=1 powered=false locked=false
|
||||
p 1 0 3 repeater facing=north delay=1 powered=false locked=false
|
||||
p 2 0 3 repeater facing=north delay=1 powered=false locked=false
|
||||
p 3 0 3 repeater facing=north delay=1 powered=false locked=false
|
||||
p 4 0 3 comparator facing=north mode=compare powered=false
|
||||
p 5 0 3 comparator facing=north mode=compare powered=false
|
||||
p 6 0 3 comparator facing=north mode=compare powered=false
|
||||
p 7 0 3 comparator facing=north mode=compare powered=false
|
||||
|
||||
t 0
|
||||
p 0 0 0 power=15
|
||||
p 1 0 0 power=15
|
||||
p 2 0 0 power=15
|
||||
p 3 0 0 power=15
|
||||
p 4 0 0 power=15
|
||||
p 5 0 0 power=15
|
||||
p 6 0 0 power=15
|
||||
p 7 0 0 power=15
|
||||
|
||||
t 1
|
||||
p 0 0 1 powered=true
|
||||
p 2 0 1 powered=true
|
||||
p 4 0 1 powered=true
|
||||
p 6 0 1 powered=true
|
||||
|
||||
t 2
|
||||
p 1 0 1 powered=true
|
||||
p 3 0 1 powered=true
|
||||
p 5 0 1 powered=true
|
||||
p 7 0 1 powered=true
|
||||
|
||||
t 3
|
||||
p 0 0 0 power=0
|
||||
p 1 0 0 power=0
|
||||
p 2 0 0 power=0
|
||||
p 3 0 0 power=0
|
||||
p 4 0 0 power=0
|
||||
p 5 0 0 power=0
|
||||
p 6 0 0 power=0
|
||||
p 7 0 0 power=0
|
||||
|
||||
t 4
|
||||
p 0 0 2 powered=true
|
||||
p 4 0 2 powered=true
|
||||
t 5
|
||||
p 1 0 2 powered=true
|
||||
p 5 0 2 powered=true
|
||||
t 6
|
||||
p 2 0 2 powered=true
|
||||
p 6 0 2 powered=true
|
||||
t 7
|
||||
p 3 0 2 powered=true
|
||||
p 7 0 2 powered=true
|
||||
|
||||
t 8
|
||||
p 0 0 1 powered=false
|
||||
p 2 0 1 powered=false
|
||||
p 4 0 1 powered=false
|
||||
p 6 0 1 powered=false
|
||||
|
||||
t 9
|
||||
p 0 0 3 powered=true
|
||||
t 10
|
||||
p 1 0 3 powered=true
|
||||
t 11
|
||||
p 2 0 3 powered=true
|
||||
t 12
|
||||
p 3 0 3 powered=true
|
||||
|
||||
t 13
|
||||
p 1 0 1 powered=false
|
||||
p 3 0 1 powered=false
|
||||
p 5 0 1 powered=false
|
||||
p 7 0 1 powered=false
|
||||
|
||||
t 14
|
||||
p 4 0 3 powered=true
|
||||
t 15
|
||||
p 5 0 3 powered=true
|
||||
t 16
|
||||
p 6 0 3 powered=true
|
||||
t 17
|
||||
p 7 0 3 powered=true
|
||||
|
||||
t 18
|
||||
p 0 0 2 powered=false
|
||||
p 4 0 2 powered=false
|
||||
t 19
|
||||
p 1 0 2 powered=false
|
||||
p 5 0 2 powered=false
|
||||
t 20
|
||||
p 2 0 2 powered=false
|
||||
p 6 0 2 powered=false
|
||||
t 21
|
||||
p 3 0 2 powered=false
|
||||
p 7 0 2 powered=false
|
||||
|
||||
t 22
|
||||
p 0 0 3 powered=false
|
||||
t 23
|
||||
p 1 0 3 powered=false
|
||||
t 24
|
||||
p 2 0 3 powered=false
|
||||
t 25
|
||||
p 3 0 3 powered=false
|
||||
t 26
|
||||
p 4 0 3 powered=false
|
||||
t 27
|
||||
p 5 0 3 powered=false
|
||||
t 28
|
||||
p 6 0 3 powered=false
|
||||
t 29
|
||||
p 7 0 3 powered=false
|
||||
|
||||
t 30
|
||||
p 0 0 0
|
||||
```
|
||||
|
||||
We can express the same tileset numerically like so:
|
||||
|
||||
```
|
||||
000 = 0
|
||||
001 = 1
|
||||
010 = 2
|
||||
011 = 3
|
||||
100 = 4
|
||||
101 = 5
|
||||
110 = 6
|
||||
111 = 7
|
||||
```
|
||||
|
||||
Using the same pattern, we can generate a tile sequence for an arbitrary value of arbitrary
|
||||
bit-length. For example, the 8-bit tileset for `150` is:
|
||||
|
||||
10010110
|
||||
|
||||
#show raw.where(lang: "mc-diorama"): it => diorama(
|
||||
theta: 90,
|
||||
phi: 90,
|
||||
speed: 0.33,
|
||||
radius: 5,
|
||||
orbit: false,
|
||||
it.text,
|
||||
)
|
||||
|
||||
```mc-diorama
|
||||
p 0 -1 0 smooth_stone_slab type=top
|
||||
p 0 -1 1 smooth_stone_slab type=top
|
||||
p 0 -1 2 smooth_stone_slab type=top
|
||||
p 0 -1 3 smooth_stone_slab type=top
|
||||
p 0 -1 4 smooth_stone_slab type=top
|
||||
p 0 -1 5 smooth_stone_slab type=top
|
||||
p 0 -1 6 smooth_stone_slab type=top
|
||||
p 0 -1 7 smooth_stone_slab type=top
|
||||
p 0 0 0 repeater facing=north powered=false locked=false delay=1
|
||||
p 0 0 1 comparator facing=north powered=false mode=compare
|
||||
p 0 0 2 comparator facing=north powered=false mode=compare
|
||||
p 0 0 3 repeater facing=north powered=false locked=false delay=1
|
||||
p 0 0 4 comparator facing=north powered=false mode=compare
|
||||
p 0 0 5 repeater facing=north powered=false locked=false delay=1
|
||||
p 0 0 6 repeater facing=north powered=false locked=false delay=1
|
||||
p 0 0 7 comparator facing=north powered=false mode=compare
|
||||
```
|
||||
|
||||
To break this down: the bottom two (AA, AB) end in repeaters, so they must come first. Among those,
|
||||
(AA) comes first. Among the top two (BA, BB), (BA) comes first. It's standard alphabetizing. Just as
|
||||
the order of the alphabet creates an ordering over all words, the ordering of the comparator and
|
||||
repeater creates an ordering of all tilesets.
|
||||
|
||||
The 6gt tileset. There are now eight options.
|
||||
|
||||
```
|
||||
<---------
|
||||
...
|
||||
```
|
||||
|
||||
As the tilesets get larger, it's less useful to lay out the entire tileset and more useful to find
|
||||
the next and previous lanes.
|
||||
|
||||
For example, take this 7-diode tileset.
|
||||
|
||||
```
|
||||
cmp rep rep cmp rep cmp cmp
|
||||
<--------------------------
|
||||
B A A B A B B
|
||||
```
|
||||
|
||||
We can easily find the next lane by thinking of this not as a *word* but as a *number*. We have two
|
||||
options, and one is greater than the other.
|
||||
|
||||
```
|
||||
cmp rep rep cmp rep cmp cmp
|
||||
<--------------------------
|
||||
B A A B A B B
|
||||
1 0 0 1 0 1 1
|
||||
```
|
||||
|
||||
We can think of this tileset as a 7-bit binary number, in this case the value 75. We can find the
|
||||
next lane by simply incrementing by one.
|
||||
|
||||
```
|
||||
1 0 0 1 0 1 1 (75)
|
||||
+ 1
|
||||
1 0 0 1 1 0 0 (76)
|
||||
<--------------------------
|
||||
cmp rep rep cmp cmp rep rep
|
||||
```
|
||||
|
||||
|
||||
// So the full picture involves arbitrary components and priorities. As long as all the tilesets
|
||||
// have
|
||||
// the same total delay and end at the same time, we can determine a global ordering. However the
|
||||
// general picture is hard to reason about, we basically have to simulate the priority queue to make
|
||||
// predictions. If we restrict the design of the tilesets a bit, there are two simplifications we could
|
||||
take to make things easier to reason about.
|
||||
|
||||
== Permutation Tilesets
|
||||
|
||||
#todo[describe the mixed delay permutation tilesets and the alphabetization procedure]
|
||||
|
||||
|
||||
== Lexicographic Tilesets
|
||||
|
||||
== Jamming
|
||||
|
||||
== Observer Bug <observer-bug>
|
||||
|
||||
== Tables
|
||||
|
||||
=== Block Tick Priorities <block-priority>
|
||||
|
||||
#table(
|
||||
columns: 4,
|
||||
table.cell(rowspan: 3)[Repeater],
|
||||
[Facing diode (that is not facing it)],
|
||||
[`EXTREMELY_HIGH`],
|
||||
[-3],
|
||||
[Powering off],
|
||||
[`VERY_HIGH`],
|
||||
[-2],
|
||||
[Powering on],
|
||||
[`HIGH`],
|
||||
[-1],
|
||||
table.cell(rowspan: 2)[Comparator],
|
||||
[Facing diode (that is not facing it)],
|
||||
[`HIGH`],
|
||||
[-1],
|
||||
[Otherwise],
|
||||
[`NORMAL`],
|
||||
[0],
|
||||
table.cell(colspan: 2)[All other components],
|
||||
[`NORMAL`],
|
||||
[0],
|
||||
)
|
||||
|
||||
=== Block Tick Delays <block-delay>
|
||||
|
||||
#table(
|
||||
columns: 2,
|
||||
[Repeater], [2gt, 4gt, 6gt, 8gt],
|
||||
[Comparator], table.cell(rowspan: 4)[2gt],
|
||||
[Redstone Torch],
|
||||
[Falling Blocks],
|
||||
[Observer (see @observer-bug)],
|
||||
[Dispenser], table.cell(rowspan: 3)[4gt],
|
||||
[Dropper],
|
||||
[Redstone Lamp],
|
||||
[Iron Pressure Plate], table.cell(rowspan: 4)[10gt],
|
||||
[Gold Pressure Plate],
|
||||
[Tripwire Hook],
|
||||
[Tripwire],
|
||||
[Stone Button], table.cell(rowspan: 3)[20gt],
|
||||
[Stone Pressure Plate],
|
||||
[Detector Rail],
|
||||
[Wooden Button], table.cell(rowspan: 2)[30gt],
|
||||
[Wooden Pressure Plate],
|
||||
)
|
||||
|
||||
=== Fluid Tick Delays <fluid-delay>
|
||||
|
||||
#table(
|
||||
columns: 2,
|
||||
[Water], [5gt],
|
||||
[Nether Lava], [10gt],
|
||||
[Lava], [30gt],
|
||||
)
|
||||
22
lib.typ
22
lib.typ
@@ -13,18 +13,21 @@
|
||||
#let warn = callout.with(kind: "warn", label: "Warning")
|
||||
#let note = callout.with(kind: "note", label: "Note")
|
||||
|
||||
#let todo(label, ..args) = callout(args.pos().join(), kind: "todo", label: "[TODO] " + label, outlined: true)
|
||||
#let todo(label, ..args) = {
|
||||
// callout(args.pos().join(), kind: "todo", label: "[TODO] " + label, outlined: true)
|
||||
}
|
||||
|
||||
#let example(body) = todo("example", body)
|
||||
#let solution(body) = todo("solution", body)
|
||||
|
||||
#let details(body, label: none) = {
|
||||
html.details({
|
||||
if label != none {
|
||||
html.summary(label)
|
||||
}
|
||||
body
|
||||
})
|
||||
todo(label, body)
|
||||
// html.details({
|
||||
// if label != none {
|
||||
// html.summary(label)
|
||||
// }
|
||||
// body
|
||||
// })
|
||||
}
|
||||
|
||||
#let camera() = {
|
||||
@@ -40,6 +43,7 @@
|
||||
theta: auto,
|
||||
phi: auto,
|
||||
radius: auto,
|
||||
speed: auto,
|
||||
orbit: auto,
|
||||
pan: auto,
|
||||
zoom: auto,
|
||||
@@ -52,6 +56,7 @@
|
||||
if theta != auto { attrs.insert("theta", str(theta)) }
|
||||
if phi != auto { attrs.insert("phi", str(phi)) }
|
||||
if radius != auto { attrs.insert("radius", str(radius)) }
|
||||
if speed != auto { attrs.insert("speed", str(speed)) }
|
||||
if orbit != auto { attrs.insert("orbit", if (orbit) { "" } else { "false" }) }
|
||||
if pan != auto { attrs.insert("pan", if (pan) { "" } else { "false" }) }
|
||||
if zoom != auto { attrs.insert("zoom", if (zoom) { "" } else { "false" }) }
|
||||
@@ -59,6 +64,5 @@
|
||||
if autoplay != auto { attrs.insert("autoplay", if (autoplay) { "" } else { "false" }) }
|
||||
if loop != auto { attrs.insert("loop", if (loop) { "" } else { "false" }) }
|
||||
if subticks != auto { attrs.insert("subticks", if (subticks) { "" } else { "false" }) }
|
||||
html.elem("mc-diorama", body, attrs: attrs)
|
||||
html.elem("mc-diorama", html.script(body, type: "text/mc-world"), attrs: attrs)
|
||||
}
|
||||
#let world(body) = html.script(body, type: "text/mc-world")
|
||||
|
||||
45
main.typ
45
main.typ
@@ -1,7 +1,7 @@
|
||||
#set heading(numbering: "1.1 -")
|
||||
#set document(title: [The EID Wireless Masterclass])
|
||||
|
||||
#show: it => document("index.html", html.html(
|
||||
#let doc(path, it) = document(path, html.html(
|
||||
lang: "en",
|
||||
{
|
||||
html.head({
|
||||
@@ -13,18 +13,41 @@
|
||||
html.link(rel: "stylesheet", href: "/src/components.css")
|
||||
html.script(type: "module", src: "/src/components.js")
|
||||
})
|
||||
html.body(it)
|
||||
html.body(context {
|
||||
let prev = query(selector(heading.where(level: 1)).before(here())).at(-1, default: none)
|
||||
let next = query(selector(heading.where(level: 1)).after(here())).at(1, default: none)
|
||||
html.main(it)
|
||||
html.footer({
|
||||
html.nav({
|
||||
html.ul({
|
||||
if prev != none {
|
||||
html.li(
|
||||
link(prev.location(), [Prev: #prev.body]),
|
||||
class: "btn",
|
||||
)
|
||||
}
|
||||
if next != none {
|
||||
html.li(
|
||||
link(next.location(), [Next: #next.body]),
|
||||
class: "btn",
|
||||
)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
))
|
||||
|
||||
#{
|
||||
include "content/index.typ"
|
||||
include "content/core.typ"
|
||||
include "content/data-protocols.typ"
|
||||
include "content/interference-causes.typ"
|
||||
include "content/interference-fixes.typ"
|
||||
include "content/design.typ"
|
||||
include "content/channels.typ"
|
||||
include "content/bulk.typ"
|
||||
include "content/network.typ"
|
||||
doc("index.html", include "content/index.typ")
|
||||
doc("core.html", include "content/core.typ")
|
||||
// doc("data-protocols.html", include "content/data-protocols.typ")
|
||||
doc("interference.html", include "content/interference.typ")
|
||||
doc("tilesets.html", include "content/tilesets.typ")
|
||||
doc("block-event-delay.html", include "content/block-event-delay.typ")
|
||||
// doc("design-notfirstes.html", include "content/design.typ")
|
||||
// doc("channel-selectors.html", include "content/channels.typ")
|
||||
// doc("bulk-transmission.html", include "content/bulk.typ")
|
||||
// doc("network-protocols.html", include "content/network.typ")
|
||||
}
|
||||
|
||||
13
mise.toml
13
mise.toml
@@ -1,23 +1,24 @@
|
||||
[tools]
|
||||
node = "latest"
|
||||
"npm:vite" = "8.1.3"
|
||||
tinymist = "0.15.0"
|
||||
typst = "0.15.0"
|
||||
watchexec = "latest"
|
||||
|
||||
[tasks.build]
|
||||
run = [
|
||||
"rm .typ-bundle/*",
|
||||
"rm -f .typ-bundle/*",
|
||||
"typst compile main.typ .typ-bundle --format bundle --features bundle,html",
|
||||
"npx vite build",
|
||||
"vite build",
|
||||
]
|
||||
sources = ["!dist", "!node_modules", "!.idea", "**/*.typ", "src/**/*"]
|
||||
|
||||
[tasks.dev-vite]
|
||||
run = "npx vite dev"
|
||||
run = "vite dev"
|
||||
sources = ["!dist", "!node_modules", "!.idea", "**/*.typ", "src/**/*"]
|
||||
|
||||
[tasks.dev-typ]
|
||||
run = "typst watch main.typ .typ-bundle --format bundle --features bundle,html --no-serve"
|
||||
|
||||
sources = ["!dist", "!node_modules", "!.idea", "**/*.typ", "src/**/*"]
|
||||
|
||||
[tasks.dev]
|
||||
depends = ["dev-vite", "dev-typ"]
|
||||
depends = ["dev-vite", "dev-typ"]
|
||||
|
||||
902
package-lock.json
generated
902
package-lock.json
generated
@@ -1,902 +0,0 @@
|
||||
{
|
||||
"name": "mc-diorama",
|
||||
"version": "0.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mc-diorama",
|
||||
"version": "0.0.0",
|
||||
"devDependencies": {
|
||||
"vite": "^8.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/core": {
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
|
||||
"integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@emnapi/wasi-threads": "1.2.2",
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/runtime": {
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
|
||||
"integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/wasi-threads": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
|
||||
"integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@napi-rs/wasm-runtime": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
|
||||
"integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@tybys/wasm-util": "^0.10.3"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/Brooooooklyn"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emnapi/core": "^1.7.1",
|
||||
"@emnapi/runtime": "^1.7.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@oxc-project/types": {
|
||||
"version": "0.139.0",
|
||||
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz",
|
||||
"integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/Boshen"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-android-arm64": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz",
|
||||
"integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-darwin-arm64": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz",
|
||||
"integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-darwin-x64": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz",
|
||||
"integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-freebsd-x64": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz",
|
||||
"integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz",
|
||||
"integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-arm64-gnu": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-arm64-musl": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz",
|
||||
"integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-s390x-gnu": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-x64-gnu": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz",
|
||||
"integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-linux-x64-musl": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz",
|
||||
"integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-openharmony-arm64": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz",
|
||||
"integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openharmony"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-wasm32-wasi": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz",
|
||||
"integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==",
|
||||
"cpu": [
|
||||
"wasm32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@emnapi/core": "1.11.1",
|
||||
"@emnapi/runtime": "1.11.1",
|
||||
"@napi-rs/wasm-runtime": "^1.1.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-win32-arm64-msvc": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz",
|
||||
"integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/binding-win32-x64-msvc": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz",
|
||||
"integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rolldown/pluginutils": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
|
||||
"integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@tybys/wasm-util": {
|
||||
"version": "0.10.3",
|
||||
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz",
|
||||
"integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/detect-libc": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
|
||||
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/fdir": {
|
||||
"version": "6.5.0",
|
||||
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
|
||||
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"picomatch": "^3 || ^4"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"picomatch": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
|
||||
"integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"detect-libc": "^2.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"lightningcss-android-arm64": "1.32.0",
|
||||
"lightningcss-darwin-arm64": "1.32.0",
|
||||
"lightningcss-darwin-x64": "1.32.0",
|
||||
"lightningcss-freebsd-x64": "1.32.0",
|
||||
"lightningcss-linux-arm-gnueabihf": "1.32.0",
|
||||
"lightningcss-linux-arm64-gnu": "1.32.0",
|
||||
"lightningcss-linux-arm64-musl": "1.32.0",
|
||||
"lightningcss-linux-x64-gnu": "1.32.0",
|
||||
"lightningcss-linux-x64-musl": "1.32.0",
|
||||
"lightningcss-win32-arm64-msvc": "1.32.0",
|
||||
"lightningcss-win32-x64-msvc": "1.32.0"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-android-arm64": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
|
||||
"integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-darwin-arm64": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
|
||||
"integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-darwin-x64": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
|
||||
"integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-freebsd-x64": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
|
||||
"integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-linux-arm-gnueabihf": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
|
||||
"integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-linux-arm64-gnu": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
|
||||
"integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-linux-arm64-musl": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
|
||||
"integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-linux-x64-gnu": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
|
||||
"integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-linux-x64-musl": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
|
||||
"integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-win32-arm64-msvc": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
|
||||
"integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/lightningcss-win32-x64-msvc": {
|
||||
"version": "1.32.0",
|
||||
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
|
||||
"integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.15",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz",
|
||||
"integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
|
||||
"integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.5.16",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz",
|
||||
"integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.12",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/rolldown": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz",
|
||||
"integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@oxc-project/types": "=0.139.0",
|
||||
"@rolldown/pluginutils": "^1.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"rolldown": "bin/cli.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rolldown/binding-android-arm64": "1.1.5",
|
||||
"@rolldown/binding-darwin-arm64": "1.1.5",
|
||||
"@rolldown/binding-darwin-x64": "1.1.5",
|
||||
"@rolldown/binding-freebsd-x64": "1.1.5",
|
||||
"@rolldown/binding-linux-arm-gnueabihf": "1.1.5",
|
||||
"@rolldown/binding-linux-arm64-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-arm64-musl": "1.1.5",
|
||||
"@rolldown/binding-linux-ppc64-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-s390x-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-x64-gnu": "1.1.5",
|
||||
"@rolldown/binding-linux-x64-musl": "1.1.5",
|
||||
"@rolldown/binding-openharmony-arm64": "1.1.5",
|
||||
"@rolldown/binding-wasm32-wasi": "1.1.5",
|
||||
"@rolldown/binding-win32-arm64-msvc": "1.1.5",
|
||||
"@rolldown/binding-win32-x64-msvc": "1.1.5"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
||||
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby": {
|
||||
"version": "0.2.17",
|
||||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
|
||||
"integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fdir": "^6.5.0",
|
||||
"picomatch": "^4.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/SuperchupuDev"
|
||||
}
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||||
"dev": true,
|
||||
"license": "0BSD",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "8.1.3",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-8.1.3.tgz",
|
||||
"integrity": "sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"lightningcss": "^1.32.0",
|
||||
"picomatch": "^4.0.4",
|
||||
"postcss": "^8.5.16",
|
||||
"rolldown": "~1.1.3",
|
||||
"tinyglobby": "^0.2.17"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.0 || >=22.12.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/vitejs/vite?sponsor=1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/node": "^20.19.0 || >=22.12.0",
|
||||
"@vitejs/devtools": "^0.3.0",
|
||||
"esbuild": "^0.27.0 || ^0.28.0",
|
||||
"jiti": ">=1.21.0",
|
||||
"less": "^4.0.0",
|
||||
"sass": "^1.70.0",
|
||||
"sass-embedded": "^1.70.0",
|
||||
"stylus": ">=0.54.8",
|
||||
"sugarss": "^5.0.0",
|
||||
"terser": "^5.16.0",
|
||||
"tsx": "^4.8.1",
|
||||
"yaml": "^2.4.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/node": {
|
||||
"optional": true
|
||||
},
|
||||
"@vitejs/devtools": {
|
||||
"optional": true
|
||||
},
|
||||
"esbuild": {
|
||||
"optional": true
|
||||
},
|
||||
"jiti": {
|
||||
"optional": true
|
||||
},
|
||||
"less": {
|
||||
"optional": true
|
||||
},
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"sass-embedded": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
"sugarss": {
|
||||
"optional": true
|
||||
},
|
||||
"terser": {
|
||||
"optional": true
|
||||
},
|
||||
"tsx": {
|
||||
"optional": true
|
||||
},
|
||||
"yaml": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"name": "mc-diorama",
|
||||
"version": "0.0.0",
|
||||
"devDependencies": {
|
||||
"vite": "^8.1.3"
|
||||
}
|
||||
}
|
||||
0
public/assets/.mcassetsroot
Normal file
0
public/assets/.mcassetsroot
Normal file
64
public/assets/minecraft/atlases/armor_trims.json
Normal file
64
public/assets/minecraft/atlases/armor_trims.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:paletted_permutations",
|
||||
"palette_key": "minecraft:trims/color_palettes/trim_palette",
|
||||
"permutations": {
|
||||
"amethyst": "minecraft:trims/color_palettes/amethyst",
|
||||
"copper": "minecraft:trims/color_palettes/copper",
|
||||
"copper_darker": "minecraft:trims/color_palettes/copper_darker",
|
||||
"diamond": "minecraft:trims/color_palettes/diamond",
|
||||
"diamond_darker": "minecraft:trims/color_palettes/diamond_darker",
|
||||
"emerald": "minecraft:trims/color_palettes/emerald",
|
||||
"gold": "minecraft:trims/color_palettes/gold",
|
||||
"gold_darker": "minecraft:trims/color_palettes/gold_darker",
|
||||
"iron": "minecraft:trims/color_palettes/iron",
|
||||
"iron_darker": "minecraft:trims/color_palettes/iron_darker",
|
||||
"lapis": "minecraft:trims/color_palettes/lapis",
|
||||
"netherite": "minecraft:trims/color_palettes/netherite",
|
||||
"netherite_darker": "minecraft:trims/color_palettes/netherite_darker",
|
||||
"quartz": "minecraft:trims/color_palettes/quartz",
|
||||
"redstone": "minecraft:trims/color_palettes/redstone",
|
||||
"resin": "minecraft:trims/color_palettes/resin"
|
||||
},
|
||||
"textures": [
|
||||
"minecraft:trims/entity/humanoid/sentry",
|
||||
"minecraft:trims/entity/humanoid_leggings/sentry",
|
||||
"minecraft:trims/entity/humanoid/dune",
|
||||
"minecraft:trims/entity/humanoid_leggings/dune",
|
||||
"minecraft:trims/entity/humanoid/coast",
|
||||
"minecraft:trims/entity/humanoid_leggings/coast",
|
||||
"minecraft:trims/entity/humanoid/wild",
|
||||
"minecraft:trims/entity/humanoid_leggings/wild",
|
||||
"minecraft:trims/entity/humanoid/ward",
|
||||
"minecraft:trims/entity/humanoid_leggings/ward",
|
||||
"minecraft:trims/entity/humanoid/eye",
|
||||
"minecraft:trims/entity/humanoid_leggings/eye",
|
||||
"minecraft:trims/entity/humanoid/vex",
|
||||
"minecraft:trims/entity/humanoid_leggings/vex",
|
||||
"minecraft:trims/entity/humanoid/tide",
|
||||
"minecraft:trims/entity/humanoid_leggings/tide",
|
||||
"minecraft:trims/entity/humanoid/snout",
|
||||
"minecraft:trims/entity/humanoid_leggings/snout",
|
||||
"minecraft:trims/entity/humanoid/rib",
|
||||
"minecraft:trims/entity/humanoid_leggings/rib",
|
||||
"minecraft:trims/entity/humanoid/spire",
|
||||
"minecraft:trims/entity/humanoid_leggings/spire",
|
||||
"minecraft:trims/entity/humanoid/wayfinder",
|
||||
"minecraft:trims/entity/humanoid_leggings/wayfinder",
|
||||
"minecraft:trims/entity/humanoid/shaper",
|
||||
"minecraft:trims/entity/humanoid_leggings/shaper",
|
||||
"minecraft:trims/entity/humanoid/silence",
|
||||
"minecraft:trims/entity/humanoid_leggings/silence",
|
||||
"minecraft:trims/entity/humanoid/raiser",
|
||||
"minecraft:trims/entity/humanoid_leggings/raiser",
|
||||
"minecraft:trims/entity/humanoid/host",
|
||||
"minecraft:trims/entity/humanoid_leggings/host",
|
||||
"minecraft:trims/entity/humanoid/flow",
|
||||
"minecraft:trims/entity/humanoid_leggings/flow",
|
||||
"minecraft:trims/entity/humanoid/bolt",
|
||||
"minecraft:trims/entity/humanoid_leggings/bolt"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/banner_patterns.json
Normal file
9
public/assets/minecraft/atlases/banner_patterns.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/banner/",
|
||||
"source": "entity/banner"
|
||||
}
|
||||
]
|
||||
}
|
||||
22
public/assets/minecraft/atlases/blocks.json
Normal file
22
public/assets/minecraft/atlases/blocks.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "block/",
|
||||
"source": "block"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/conduit/",
|
||||
"source": "entity/conduit"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:single",
|
||||
"resource": "minecraft:entity/bell/bell_body"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:single",
|
||||
"resource": "minecraft:entity/enchantment/enchanting_table_book"
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/celestials.json
Normal file
9
public/assets/minecraft/atlases/celestials.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "environment/celestial"
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/chests.json
Normal file
9
public/assets/minecraft/atlases/chests.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/chest/",
|
||||
"source": "entity/chest"
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/decorated_pot.json
Normal file
9
public/assets/minecraft/atlases/decorated_pot.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/decorated_pot/",
|
||||
"source": "entity/decorated_pot"
|
||||
}
|
||||
]
|
||||
}
|
||||
14
public/assets/minecraft/atlases/gui.json
Normal file
14
public/assets/minecraft/atlases/gui.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "gui/sprites"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "mob_effect/",
|
||||
"source": "mob_effect"
|
||||
}
|
||||
]
|
||||
}
|
||||
37
public/assets/minecraft/atlases/items.json
Normal file
37
public/assets/minecraft/atlases/items.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "item/",
|
||||
"source": "item"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:paletted_permutations",
|
||||
"palette_key": "minecraft:trims/color_palettes/trim_palette",
|
||||
"permutations": {
|
||||
"amethyst": "minecraft:trims/color_palettes/amethyst",
|
||||
"copper": "minecraft:trims/color_palettes/copper",
|
||||
"copper_darker": "minecraft:trims/color_palettes/copper_darker",
|
||||
"diamond": "minecraft:trims/color_palettes/diamond",
|
||||
"diamond_darker": "minecraft:trims/color_palettes/diamond_darker",
|
||||
"emerald": "minecraft:trims/color_palettes/emerald",
|
||||
"gold": "minecraft:trims/color_palettes/gold",
|
||||
"gold_darker": "minecraft:trims/color_palettes/gold_darker",
|
||||
"iron": "minecraft:trims/color_palettes/iron",
|
||||
"iron_darker": "minecraft:trims/color_palettes/iron_darker",
|
||||
"lapis": "minecraft:trims/color_palettes/lapis",
|
||||
"netherite": "minecraft:trims/color_palettes/netherite",
|
||||
"netherite_darker": "minecraft:trims/color_palettes/netherite_darker",
|
||||
"quartz": "minecraft:trims/color_palettes/quartz",
|
||||
"redstone": "minecraft:trims/color_palettes/redstone",
|
||||
"resin": "minecraft:trims/color_palettes/resin"
|
||||
},
|
||||
"textures": [
|
||||
"minecraft:trims/items/helmet_trim",
|
||||
"minecraft:trims/items/chestplate_trim",
|
||||
"minecraft:trims/items/leggings_trim",
|
||||
"minecraft:trims/items/boots_trim"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/map_decorations.json
Normal file
9
public/assets/minecraft/atlases/map_decorations.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "map/decorations"
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/paintings.json
Normal file
9
public/assets/minecraft/atlases/paintings.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "painting"
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/particles.json
Normal file
9
public/assets/minecraft/atlases/particles.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "particle"
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/shield_patterns.json
Normal file
9
public/assets/minecraft/atlases/shield_patterns.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/shield/",
|
||||
"source": "entity/shield"
|
||||
}
|
||||
]
|
||||
}
|
||||
9
public/assets/minecraft/atlases/shulker_boxes.json
Normal file
9
public/assets/minecraft/atlases/shulker_boxes.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/shulker/",
|
||||
"source": "entity/shulker"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,28 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/acacia_leaves"
|
||||
"persistent=false": {
|
||||
"model": "minecraft:block/leaves/acacia/not_persistent"
|
||||
},
|
||||
"distance=1,persistent=true": {
|
||||
"model": "minecraft:block/leaves/acacia/1"
|
||||
},
|
||||
"distance=2,persistent=true": {
|
||||
"model": "minecraft:block/leaves/acacia/2"
|
||||
},
|
||||
"distance=3,persistent=true": {
|
||||
"model": "minecraft:block/leaves/acacia/3"
|
||||
},
|
||||
"distance=4,persistent=true": {
|
||||
"model": "minecraft:block/leaves/acacia/4"
|
||||
},
|
||||
"distance=5,persistent=true": {
|
||||
"model": "minecraft:block/leaves/acacia/5"
|
||||
},
|
||||
"distance=6,persistent=true": {
|
||||
"model": "minecraft:block/leaves/acacia/6"
|
||||
},
|
||||
"distance=7,persistent=true": {
|
||||
"model": "minecraft:block/leaves/acacia/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,28 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/azalea_leaves"
|
||||
"persistent=false": {
|
||||
"model": "minecraft:block/leaves/azalea/not_persistent"
|
||||
},
|
||||
"distance=1,persistent=true": {
|
||||
"model": "minecraft:block/leaves/azalea/1"
|
||||
},
|
||||
"distance=2,persistent=true": {
|
||||
"model": "minecraft:block/leaves/azalea/2"
|
||||
},
|
||||
"distance=3,persistent=true": {
|
||||
"model": "minecraft:block/leaves/azalea/3"
|
||||
},
|
||||
"distance=4,persistent=true": {
|
||||
"model": "minecraft:block/leaves/azalea/4"
|
||||
},
|
||||
"distance=5,persistent=true": {
|
||||
"model": "minecraft:block/leaves/azalea/5"
|
||||
},
|
||||
"distance=6,persistent=true": {
|
||||
"model": "minecraft:block/leaves/azalea/6"
|
||||
},
|
||||
"distance=7,persistent=true": {
|
||||
"model": "minecraft:block/leaves/azalea/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,93 +2,93 @@
|
||||
"variants": {
|
||||
"facing=east,honey_level=0": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/bee_nest_empty"
|
||||
"model": "minecraft:block/bee_nest/0"
|
||||
},
|
||||
"facing=east,honey_level=1": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/bee_nest_filled_1"
|
||||
"model": "minecraft:block/bee_nest/1"
|
||||
},
|
||||
"facing=east,honey_level=2": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/bee_nest_filled_2"
|
||||
"model": "minecraft:block/bee_nest/2"
|
||||
},
|
||||
"facing=east,honey_level=3": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/bee_nest_filled_3"
|
||||
"model": "minecraft:block/bee_nest/3"
|
||||
},
|
||||
"facing=east,honey_level=4": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/bee_nest_filled_4"
|
||||
"model": "minecraft:block/bee_nest/4"
|
||||
},
|
||||
"facing=east,honey_level=5": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/bee_nest_honey"
|
||||
"model": "minecraft:block/bee_nest/5"
|
||||
},
|
||||
"facing=north,honey_level=0": {
|
||||
"model": "minecraft:block/bee_nest_empty"
|
||||
"model": "minecraft:block/bee_nest/0"
|
||||
},
|
||||
"facing=north,honey_level=1": {
|
||||
"model": "minecraft:block/bee_nest_filled_1"
|
||||
"model": "minecraft:block/bee_nest/1"
|
||||
},
|
||||
"facing=north,honey_level=2": {
|
||||
"model": "minecraft:block/bee_nest_filled_2"
|
||||
"model": "minecraft:block/bee_nest/2"
|
||||
},
|
||||
"facing=north,honey_level=3": {
|
||||
"model": "minecraft:block/bee_nest_filled_3"
|
||||
"model": "minecraft:block/bee_nest/3"
|
||||
},
|
||||
"facing=north,honey_level=4": {
|
||||
"model": "minecraft:block/bee_nest_filled_4"
|
||||
"model": "minecraft:block/bee_nest/4"
|
||||
},
|
||||
"facing=north,honey_level=5": {
|
||||
"model": "minecraft:block/bee_nest_honey"
|
||||
"model": "minecraft:block/bee_nest/5"
|
||||
},
|
||||
"facing=south,honey_level=0": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/bee_nest_empty"
|
||||
"model": "minecraft:block/bee_nest/0"
|
||||
},
|
||||
"facing=south,honey_level=1": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/bee_nest_filled_1"
|
||||
"model": "minecraft:block/bee_nest/1"
|
||||
},
|
||||
"facing=south,honey_level=2": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/bee_nest_filled_2"
|
||||
"model": "minecraft:block/bee_nest/2"
|
||||
},
|
||||
"facing=south,honey_level=3": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/bee_nest_filled_3"
|
||||
"model": "minecraft:block/bee_nest/3"
|
||||
},
|
||||
"facing=south,honey_level=4": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/bee_nest_filled_4"
|
||||
"model": "minecraft:block/bee_nest/4"
|
||||
},
|
||||
"facing=south,honey_level=5": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/bee_nest_honey"
|
||||
"model": "minecraft:block/bee_nest/5"
|
||||
},
|
||||
"facing=west,honey_level=0": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/bee_nest_empty"
|
||||
"model": "minecraft:block/bee_nest/0"
|
||||
},
|
||||
"facing=west,honey_level=1": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/bee_nest_filled_1"
|
||||
"model": "minecraft:block/bee_nest/1"
|
||||
},
|
||||
"facing=west,honey_level=2": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/bee_nest_filled_2"
|
||||
"model": "minecraft:block/bee_nest/2"
|
||||
},
|
||||
"facing=west,honey_level=3": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/bee_nest_filled_3"
|
||||
"model": "minecraft:block/bee_nest/3"
|
||||
},
|
||||
"facing=west,honey_level=4": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/bee_nest_filled_4"
|
||||
"model": "minecraft:block/bee_nest/4"
|
||||
},
|
||||
"facing=west,honey_level=5": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/bee_nest_honey"
|
||||
"model": "minecraft:block/bee_nest/5"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,93 +2,93 @@
|
||||
"variants": {
|
||||
"facing=east,honey_level=0": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/beehive_empty"
|
||||
"model": "minecraft:block/beehive/0"
|
||||
},
|
||||
"facing=east,honey_level=1": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/beehive_filled_1"
|
||||
"model": "minecraft:block/beehive/1"
|
||||
},
|
||||
"facing=east,honey_level=2": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/beehive_filled_2"
|
||||
"model": "minecraft:block/beehive/2"
|
||||
},
|
||||
"facing=east,honey_level=3": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/beehive_filled_3"
|
||||
"model": "minecraft:block/beehive/3"
|
||||
},
|
||||
"facing=east,honey_level=4": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/beehive_filled_4"
|
||||
"model": "minecraft:block/beehive/4"
|
||||
},
|
||||
"facing=east,honey_level=5": {
|
||||
"y": 90,
|
||||
"model": "minecraft:block/beehive_honey"
|
||||
"model": "minecraft:block/beehive/5"
|
||||
},
|
||||
"facing=north,honey_level=0": {
|
||||
"model": "minecraft:block/beehive_empty"
|
||||
"model": "minecraft:block/beehive/0"
|
||||
},
|
||||
"facing=north,honey_level=1": {
|
||||
"model": "minecraft:block/beehive_filled_1"
|
||||
"model": "minecraft:block/beehive/1"
|
||||
},
|
||||
"facing=north,honey_level=2": {
|
||||
"model": "minecraft:block/beehive_filled_2"
|
||||
"model": "minecraft:block/beehive/2"
|
||||
},
|
||||
"facing=north,honey_level=3": {
|
||||
"model": "minecraft:block/beehive_filled_3"
|
||||
"model": "minecraft:block/beehive/3"
|
||||
},
|
||||
"facing=north,honey_level=4": {
|
||||
"model": "minecraft:block/beehive_filled_4"
|
||||
"model": "minecraft:block/beehive/4"
|
||||
},
|
||||
"facing=north,honey_level=5": {
|
||||
"model": "minecraft:block/beehive_honey"
|
||||
"model": "minecraft:block/beehive/5"
|
||||
},
|
||||
"facing=south,honey_level=0": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/beehive_empty"
|
||||
"model": "minecraft:block/beehive/0"
|
||||
},
|
||||
"facing=south,honey_level=1": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/beehive_filled_1"
|
||||
"model": "minecraft:block/beehive/1"
|
||||
},
|
||||
"facing=south,honey_level=2": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/beehive_filled_2"
|
||||
"model": "minecraft:block/beehive/2"
|
||||
},
|
||||
"facing=south,honey_level=3": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/beehive_filled_3"
|
||||
"model": "minecraft:block/beehive/3"
|
||||
},
|
||||
"facing=south,honey_level=4": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/beehive_filled_4"
|
||||
"model": "minecraft:block/beehive/4"
|
||||
},
|
||||
"facing=south,honey_level=5": {
|
||||
"y": 180,
|
||||
"model": "minecraft:block/beehive_honey"
|
||||
"model": "minecraft:block/beehive/5"
|
||||
},
|
||||
"facing=west,honey_level=0": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/beehive_empty"
|
||||
"model": "minecraft:block/beehive/0"
|
||||
},
|
||||
"facing=west,honey_level=1": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/beehive_filled_1"
|
||||
"model": "minecraft:block/beehive/1"
|
||||
},
|
||||
"facing=west,honey_level=2": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/beehive_filled_2"
|
||||
"model": "minecraft:block/beehive/2"
|
||||
},
|
||||
"facing=west,honey_level=3": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/beehive_filled_3"
|
||||
"model": "minecraft:block/beehive/3"
|
||||
},
|
||||
"facing=west,honey_level=4": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/beehive_filled_4"
|
||||
"model": "minecraft:block/beehive/4"
|
||||
},
|
||||
"facing=west,honey_level=5": {
|
||||
"y": 270,
|
||||
"model": "minecraft:block/beehive_honey"
|
||||
"model": "minecraft:block/beehive/5"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,63 +1,123 @@
|
||||
{
|
||||
"variants": {
|
||||
"attachment=ceiling,facing=east": {
|
||||
"model": "minecraft:block/bell_ceiling",
|
||||
"attachment=ceiling,facing=east,powered=false": {
|
||||
"model": "minecraft:block/bell/ceiling",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=ceiling,facing=north": {
|
||||
"model": "minecraft:block/bell_ceiling"
|
||||
"attachment=ceiling,facing=north,powered=false": {
|
||||
"model": "minecraft:block/bell/ceiling"
|
||||
},
|
||||
"attachment=ceiling,facing=south": {
|
||||
"model": "minecraft:block/bell_ceiling",
|
||||
"attachment=ceiling,facing=south,powered=false": {
|
||||
"model": "minecraft:block/bell/ceiling",
|
||||
"y": 180
|
||||
},
|
||||
"attachment=ceiling,facing=west": {
|
||||
"model": "minecraft:block/bell_ceiling",
|
||||
"attachment=ceiling,facing=west,powered=false": {
|
||||
"model": "minecraft:block/bell/ceiling",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=double_wall,facing=east": {
|
||||
"model": "minecraft:block/bell_between_walls"
|
||||
"attachment=double_wall,facing=east,powered=false": {
|
||||
"model": "minecraft:block/bell/between_walls"
|
||||
},
|
||||
"attachment=double_wall,facing=north": {
|
||||
"model": "minecraft:block/bell_between_walls",
|
||||
"attachment=double_wall,facing=north,powered=false": {
|
||||
"model": "minecraft:block/bell/between_walls",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=double_wall,facing=south": {
|
||||
"model": "minecraft:block/bell_between_walls",
|
||||
"attachment=double_wall,facing=south,powered=false": {
|
||||
"model": "minecraft:block/bell/between_walls",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=double_wall,facing=west": {
|
||||
"model": "minecraft:block/bell_between_walls",
|
||||
"attachment=double_wall,facing=west,powered=false": {
|
||||
"model": "minecraft:block/bell/between_walls",
|
||||
"y": 180
|
||||
},
|
||||
"attachment=floor,facing=east": {
|
||||
"model": "minecraft:block/bell_floor",
|
||||
"attachment=floor,facing=east,powered=false": {
|
||||
"model": "minecraft:block/bell/floor",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=floor,facing=north": {
|
||||
"model": "minecraft:block/bell_floor"
|
||||
"attachment=floor,facing=north,powered=false": {
|
||||
"model": "minecraft:block/bell/floor"
|
||||
},
|
||||
"attachment=floor,facing=south": {
|
||||
"model": "minecraft:block/bell_floor",
|
||||
"attachment=floor,facing=south,powered=false": {
|
||||
"model": "minecraft:block/bell/floor",
|
||||
"y": 180
|
||||
},
|
||||
"attachment=floor,facing=west": {
|
||||
"model": "minecraft:block/bell_floor",
|
||||
"attachment=floor,facing=west,powered=false": {
|
||||
"model": "minecraft:block/bell/floor",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=single_wall,facing=east": {
|
||||
"model": "minecraft:block/bell_wall"
|
||||
"attachment=single_wall,facing=east,powered=false": {
|
||||
"model": "minecraft:block/bell/wall"
|
||||
},
|
||||
"attachment=single_wall,facing=north": {
|
||||
"model": "minecraft:block/bell_wall",
|
||||
"attachment=single_wall,facing=north,powered=false": {
|
||||
"model": "minecraft:block/bell/wall",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=single_wall,facing=south": {
|
||||
"model": "minecraft:block/bell_wall",
|
||||
"attachment=single_wall,facing=south,powered=false": {
|
||||
"model": "minecraft:block/bell/wall",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=single_wall,facing=west": {
|
||||
"model": "minecraft:block/bell_wall",
|
||||
"attachment=single_wall,facing=west,powered=false": {
|
||||
"model": "minecraft:block/bell/wall",
|
||||
"y": 180
|
||||
},
|
||||
"attachment=ceiling,facing=east,powered=true": {
|
||||
"model": "minecraft:block/bell/ceiling_powered",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=ceiling,facing=north,powered=true": {
|
||||
"model": "minecraft:block/bell/ceiling_powered"
|
||||
},
|
||||
"attachment=ceiling,facing=south,powered=true": {
|
||||
"model": "minecraft:block/bell/ceiling_powered",
|
||||
"y": 180
|
||||
},
|
||||
"attachment=ceiling,facing=west,powered=true": {
|
||||
"model": "minecraft:block/bell/ceiling_powered",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=double_wall,facing=east,powered=true": {
|
||||
"model": "minecraft:block/bell/between_walls_powered"
|
||||
},
|
||||
"attachment=double_wall,facing=north,powered=true": {
|
||||
"model": "minecraft:block/bell/between_walls_powered",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=double_wall,facing=south,powered=true": {
|
||||
"model": "minecraft:block/bell/between_walls_powered",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=double_wall,facing=west,powered=true": {
|
||||
"model": "minecraft:block/bell/between_walls_powered",
|
||||
"y": 180
|
||||
},
|
||||
"attachment=floor,facing=east,powered=true": {
|
||||
"model": "minecraft:block/bell/floor_powered",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=floor,facing=north,powered=true": {
|
||||
"model": "minecraft:block/bell/floor_powered"
|
||||
},
|
||||
"attachment=floor,facing=south,powered=true": {
|
||||
"model": "minecraft:block/bell/floor_powered",
|
||||
"y": 180
|
||||
},
|
||||
"attachment=floor,facing=west,powered=true": {
|
||||
"model": "minecraft:block/bell/floor_powered",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=single_wall,facing=east,powered=true": {
|
||||
"model": "minecraft:block/bell/wall_powered"
|
||||
},
|
||||
"attachment=single_wall,facing=north,powered=true": {
|
||||
"model": "minecraft:block/bell/wall_powered",
|
||||
"y": 270
|
||||
},
|
||||
"attachment=single_wall,facing=south,powered=true": {
|
||||
"model": "minecraft:block/bell/wall_powered",
|
||||
"y": 90
|
||||
},
|
||||
"attachment=single_wall,facing=west,powered=true": {
|
||||
"model": "minecraft:block/bell/wall_powered",
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,28 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/birch_leaves"
|
||||
"persistent=false": {
|
||||
"model": "minecraft:block/leaves/birch/not_persistent"
|
||||
},
|
||||
"distance=1,persistent=true": {
|
||||
"model": "minecraft:block/leaves/birch/1"
|
||||
},
|
||||
"distance=2,persistent=true": {
|
||||
"model": "minecraft:block/leaves/birch/2"
|
||||
},
|
||||
"distance=3,persistent=true": {
|
||||
"model": "minecraft:block/leaves/birch/3"
|
||||
},
|
||||
"distance=4,persistent=true": {
|
||||
"model": "minecraft:block/leaves/birch/4"
|
||||
},
|
||||
"distance=5,persistent=true": {
|
||||
"model": "minecraft:block/leaves/birch/5"
|
||||
},
|
||||
"distance=6,persistent=true": {
|
||||
"model": "minecraft:block/leaves/birch/6"
|
||||
},
|
||||
"distance=7,persistent=true": {
|
||||
"model": "minecraft:block/leaves/birch/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/black_concrete"
|
||||
"model": "minecraft:block/concrete/black_concrete"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/black_wool"
|
||||
"model": "minecraft:block/wool/black_wool"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/blue_concrete"
|
||||
"model": "minecraft:block/concrete/blue_concrete"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/blue_wool"
|
||||
"model": "minecraft:block/wool/blue_wool"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/brown_concrete"
|
||||
"model": "minecraft:block/concrete/brown_concrete"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/brown_wool"
|
||||
"model": "minecraft:block/wool/brown_wool"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"bites=0": {
|
||||
"model": "minecraft:block/cake"
|
||||
"model": "minecraft:block/cake/14"
|
||||
},
|
||||
"bites=1": {
|
||||
"model": "minecraft:block/cake_slice1"
|
||||
"model": "minecraft:block/cake/12"
|
||||
},
|
||||
"bites=2": {
|
||||
"model": "minecraft:block/cake_slice2"
|
||||
"model": "minecraft:block/cake/10"
|
||||
},
|
||||
"bites=3": {
|
||||
"model": "minecraft:block/cake_slice3"
|
||||
"model": "minecraft:block/cake/8"
|
||||
},
|
||||
"bites=4": {
|
||||
"model": "minecraft:block/cake_slice4"
|
||||
"model": "minecraft:block/cake/6"
|
||||
},
|
||||
"bites=5": {
|
||||
"model": "minecraft:block/cake_slice5"
|
||||
"model": "minecraft:block/cake/4"
|
||||
},
|
||||
"bites=6": {
|
||||
"model": "minecraft:block/cake_slice6"
|
||||
"model": "minecraft:block/cake/2"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,48 +1,276 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,sculk_sensor_phase=active": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active",
|
||||
"facing=east,sculk_sensor_phase=active,power=0": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=1": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/1",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=2": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/2",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=3": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/3",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=4": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/4",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=5": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/5",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=6": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/6",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=7": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/7",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=8": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/8",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=9": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/9",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=10": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/10",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=11": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/11",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=12": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/12",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=13": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/13",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=14": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/14",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=active,power=15": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/15",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=cooldown": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active",
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/cooldown",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,sculk_sensor_phase=inactive": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_inactive",
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active"
|
||||
|
||||
"facing=north,sculk_sensor_phase=active,power=0": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=1": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/1"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=2": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/2"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=3": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/3"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=4": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/4"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=5": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/5"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=6": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/6"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=7": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/7"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=8": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/8"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=9": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/9"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=10": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/10"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=11": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/11"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=12": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/12"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=13": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/13"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=14": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/14"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=active,power=15": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/15"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=cooldown": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active"
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/cooldown"
|
||||
},
|
||||
"facing=north,sculk_sensor_phase=inactive": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_inactive"
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0"
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active",
|
||||
|
||||
"facing=south,sculk_sensor_phase=active,power=0": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=1": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/1",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=2": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/2",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=3": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/3",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=4": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/4",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=5": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/5",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=6": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/6",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=7": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/7",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=8": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/8",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=9": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/9",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=10": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/10",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=11": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/11",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=12": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/12",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=13": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/13",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=14": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/14",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=active,power=15": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/15",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=cooldown": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active",
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/cooldown",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,sculk_sensor_phase=inactive": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_inactive",
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active",
|
||||
|
||||
"facing=west,sculk_sensor_phase=active,power=0": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=1": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/1",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=2": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/2",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=3": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/3",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=4": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/4",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=5": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/5",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=6": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/6",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=7": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/7",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=8": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/8",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=9": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/9",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=10": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/10",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=11": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/11",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=12": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/12",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=13": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/13",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=14": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/14",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=active,power=15": {
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/15",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=cooldown": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_active",
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/cooldown",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,sculk_sensor_phase=inactive": {
|
||||
"model": "minecraft:block/calibrated_sculk_sensor_inactive",
|
||||
"model": "minecraft:block/sculk_sensor/calibrated/0",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/cauldron"
|
||||
"model": "minecraft:block/cauldron/empty"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,28 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/cherry_leaves"
|
||||
"persistent=false": {
|
||||
"model": "minecraft:block/leaves/cherry/not_persistent"
|
||||
},
|
||||
"distance=1,persistent=true": {
|
||||
"model": "minecraft:block/leaves/cherry/1"
|
||||
},
|
||||
"distance=2,persistent=true": {
|
||||
"model": "minecraft:block/leaves/cherry/2"
|
||||
},
|
||||
"distance=3,persistent=true": {
|
||||
"model": "minecraft:block/leaves/cherry/3"
|
||||
},
|
||||
"distance=4,persistent=true": {
|
||||
"model": "minecraft:block/leaves/cherry/4"
|
||||
},
|
||||
"distance=5,persistent=true": {
|
||||
"model": "minecraft:block/leaves/cherry/5"
|
||||
},
|
||||
"distance=6,persistent=true": {
|
||||
"model": "minecraft:block/leaves/cherry/6"
|
||||
},
|
||||
"distance=7,persistent=true": {
|
||||
"model": "minecraft:block/leaves/cherry/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,64 +1,64 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,mode=compare,powered=false": {
|
||||
"model": "minecraft:block/comparator",
|
||||
"y": 270
|
||||
"y": 270,
|
||||
"model": "minecraft:block/comparator/off"
|
||||
},
|
||||
"facing=east,mode=compare,powered=true": {
|
||||
"model": "minecraft:block/comparator_on",
|
||||
"y": 270
|
||||
"y": 270,
|
||||
"model": "minecraft:block/comparator/on"
|
||||
},
|
||||
"facing=east,mode=subtract,powered=false": {
|
||||
"model": "minecraft:block/comparator_subtract",
|
||||
"y": 270
|
||||
"y": 270,
|
||||
"model": "minecraft:block/comparator/off_subtract"
|
||||
},
|
||||
"facing=east,mode=subtract,powered=true": {
|
||||
"model": "minecraft:block/comparator_on_subtract",
|
||||
"y": 270
|
||||
"y": 270,
|
||||
"model": "minecraft:block/comparator/on_subtract"
|
||||
},
|
||||
"facing=north,mode=compare,powered=false": {
|
||||
"model": "minecraft:block/comparator",
|
||||
"y": 180
|
||||
"y": 180,
|
||||
"model": "minecraft:block/comparator/off"
|
||||
},
|
||||
"facing=north,mode=compare,powered=true": {
|
||||
"model": "minecraft:block/comparator_on",
|
||||
"y": 180
|
||||
"y": 180,
|
||||
"model": "minecraft:block/comparator/on"
|
||||
},
|
||||
"facing=north,mode=subtract,powered=false": {
|
||||
"model": "minecraft:block/comparator_subtract",
|
||||
"y": 180
|
||||
"y": 180,
|
||||
"model": "minecraft:block/comparator/off_subtract"
|
||||
},
|
||||
"facing=north,mode=subtract,powered=true": {
|
||||
"model": "minecraft:block/comparator_on_subtract",
|
||||
"y": 180
|
||||
"y": 180,
|
||||
"model": "minecraft:block/comparator/on_subtract"
|
||||
},
|
||||
"facing=south,mode=compare,powered=false": {
|
||||
"model": "minecraft:block/comparator"
|
||||
"model": "minecraft:block/comparator/off"
|
||||
},
|
||||
"facing=south,mode=compare,powered=true": {
|
||||
"model": "minecraft:block/comparator_on"
|
||||
"model": "minecraft:block/comparator/on"
|
||||
},
|
||||
"facing=south,mode=subtract,powered=false": {
|
||||
"model": "minecraft:block/comparator_subtract"
|
||||
"model": "minecraft:block/comparator/off_subtract"
|
||||
},
|
||||
"facing=south,mode=subtract,powered=true": {
|
||||
"model": "minecraft:block/comparator_on_subtract"
|
||||
"model": "minecraft:block/comparator/on_subtract"
|
||||
},
|
||||
"facing=west,mode=compare,powered=false": {
|
||||
"model": "minecraft:block/comparator",
|
||||
"y": 90
|
||||
"y": 90,
|
||||
"model": "minecraft:block/comparator/off"
|
||||
},
|
||||
"facing=west,mode=compare,powered=true": {
|
||||
"model": "minecraft:block/comparator_on",
|
||||
"y": 90
|
||||
"y": 90,
|
||||
"model": "minecraft:block/comparator/on"
|
||||
},
|
||||
"facing=west,mode=subtract,powered=false": {
|
||||
"model": "minecraft:block/comparator_subtract",
|
||||
"y": 90
|
||||
"y": 90,
|
||||
"model": "minecraft:block/comparator/off_subtract"
|
||||
},
|
||||
"facing=west,mode=subtract,powered=true": {
|
||||
"model": "minecraft:block/comparator_on_subtract",
|
||||
"y": 90
|
||||
"y": 90,
|
||||
"model": "minecraft:block/comparator/on_subtract"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,73 +1,31 @@
|
||||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter"
|
||||
}
|
||||
"variants": {
|
||||
"level=0": {
|
||||
"model": "minecraft:block/composter/0"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents1"
|
||||
},
|
||||
"when": {
|
||||
"level": "1"
|
||||
}
|
||||
"level=1": {
|
||||
"model": "minecraft:block/composter/1"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents2"
|
||||
},
|
||||
"when": {
|
||||
"level": "2"
|
||||
}
|
||||
"level=2": {
|
||||
"model": "minecraft:block/composter/2"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents3"
|
||||
},
|
||||
"when": {
|
||||
"level": "3"
|
||||
}
|
||||
"level=3": {
|
||||
"model": "minecraft:block/composter/3"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents4"
|
||||
},
|
||||
"when": {
|
||||
"level": "4"
|
||||
}
|
||||
"level=4": {
|
||||
"model": "minecraft:block/composter/4"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents5"
|
||||
},
|
||||
"when": {
|
||||
"level": "5"
|
||||
}
|
||||
"level=5": {
|
||||
"model": "minecraft:block/composter/5"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents6"
|
||||
},
|
||||
"when": {
|
||||
"level": "6"
|
||||
}
|
||||
"level=6": {
|
||||
"model": "minecraft:block/composter/6"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents7"
|
||||
},
|
||||
"when": {
|
||||
"level": "7"
|
||||
}
|
||||
"level=7": {
|
||||
"model": "minecraft:block/composter/7"
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/composter_contents_ready"
|
||||
},
|
||||
"when": {
|
||||
"level": "8"
|
||||
}
|
||||
"level=8": {
|
||||
"model": "minecraft:block/composter/8"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,215 +1,215 @@
|
||||
{
|
||||
"variants": {
|
||||
"crafting=false,orientation=down_east,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=false,orientation=down_east,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=false,orientation=down_north,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 90
|
||||
},
|
||||
"crafting=false,orientation=down_north,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 90
|
||||
},
|
||||
"crafting=false,orientation=down_south,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=false,orientation=down_south,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=false,orientation=down_west,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=false,orientation=down_west,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=false,orientation=east_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"y": 90
|
||||
},
|
||||
"crafting=false,orientation=east_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"y": 90
|
||||
},
|
||||
"crafting=false,orientation=north_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter"
|
||||
"model": "minecraft:block/crafter/regular"
|
||||
},
|
||||
"crafting=false,orientation=north_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered"
|
||||
"model": "minecraft:block/crafter/triggered"
|
||||
},
|
||||
"crafting=false,orientation=south_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"y": 180
|
||||
},
|
||||
"crafting=false,orientation=south_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"y": 180
|
||||
},
|
||||
"crafting=false,orientation=up_east,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 270,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=false,orientation=up_east,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 270,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=false,orientation=up_north,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 270,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=false,orientation=up_north,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 270,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=false,orientation=up_south,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 270
|
||||
},
|
||||
"crafting=false,orientation=up_south,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 270
|
||||
},
|
||||
"crafting=false,orientation=up_west,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=false,orientation=up_west,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=false,orientation=west_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter",
|
||||
"model": "minecraft:block/crafter/regular",
|
||||
"y": 270
|
||||
},
|
||||
"crafting=false,orientation=west_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_triggered",
|
||||
"model": "minecraft:block/crafter/triggered",
|
||||
"y": 270
|
||||
},
|
||||
"crafting=true,orientation=down_east,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=true,orientation=down_east,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=true,orientation=down_north,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 90
|
||||
},
|
||||
"crafting=true,orientation=down_north,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 90
|
||||
},
|
||||
"crafting=true,orientation=down_south,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=true,orientation=down_south,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=true,orientation=down_west,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=true,orientation=down_west,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=true,orientation=east_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"y": 90
|
||||
},
|
||||
"crafting=true,orientation=east_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"y": 90
|
||||
},
|
||||
"crafting=true,orientation=north_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting"
|
||||
"model": "minecraft:block/crafter/crafting"
|
||||
},
|
||||
"crafting=true,orientation=north_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered"
|
||||
"model": "minecraft:block/crafter/crafting_triggered"
|
||||
},
|
||||
"crafting=true,orientation=south_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"y": 180
|
||||
},
|
||||
"crafting=true,orientation=south_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"y": 180
|
||||
},
|
||||
"crafting=true,orientation=up_east,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 270,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=true,orientation=up_east,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 270,
|
||||
"y": 270
|
||||
},
|
||||
"crafting=true,orientation=up_north,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 270,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=true,orientation=up_north,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 270,
|
||||
"y": 180
|
||||
},
|
||||
"crafting=true,orientation=up_south,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 270
|
||||
},
|
||||
"crafting=true,orientation=up_south,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 270
|
||||
},
|
||||
"crafting=true,orientation=up_west,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=true,orientation=up_west,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"crafting=true,orientation=west_up,triggered=false": {
|
||||
"model": "minecraft:block/crafter_crafting",
|
||||
"model": "minecraft:block/crafter/crafting",
|
||||
"y": 270
|
||||
},
|
||||
"crafting=true,orientation=west_up,triggered=true": {
|
||||
"model": "minecraft:block/crafter_crafting_triggered",
|
||||
"model": "minecraft:block/crafter/crafting_triggered",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=bottom": { "model": "block/cut_copper_slab" },
|
||||
"type=top": { "model": "block/cut_copper_slab_top" },
|
||||
"type=double": { "model": "block/cut_copper_slab_double" }
|
||||
"variants": {
|
||||
"type=bottom": {
|
||||
"model": "minecraft:block/cut_copper_slab"
|
||||
},
|
||||
"type=double": {
|
||||
"model": "minecraft:block/cut_copper"
|
||||
},
|
||||
"type=top": {
|
||||
"model": "minecraft:block/cut_copper_slab_top"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=bottom": { "model": "block/cut_red_sandstone_slab" },
|
||||
"type=top": { "model": "block/cut_red_sandstone_slab_top" },
|
||||
"type=double": { "model": "block/cut_red_sandstone_slab_double" }
|
||||
"variants": {
|
||||
"type=bottom": {
|
||||
"model": "minecraft:block/cut_red_sandstone_slab"
|
||||
},
|
||||
"type=double": {
|
||||
"model": "minecraft:block/cut_red_sandstone"
|
||||
},
|
||||
"type=top": {
|
||||
"model": "minecraft:block/cut_red_sandstone_slab_top"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=bottom": { "model": "block/cut_sandstone_slab" },
|
||||
"type=top": { "model": "block/cut_sandstone_slab_top" },
|
||||
"type=double": { "model": "block/cut_sandstone_slab_double" }
|
||||
"variants": {
|
||||
"type=bottom": {
|
||||
"model": "minecraft:block/cut_sandstone_slab"
|
||||
},
|
||||
"type=double": {
|
||||
"model": "minecraft:block/cut_sandstone"
|
||||
},
|
||||
"type=top": {
|
||||
"model": "minecraft:block/cut_sandstone_slab_top"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/cyan_concrete"
|
||||
"model": "minecraft:block/concrete/cyan_concrete"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/cyan_wool"
|
||||
"model": "minecraft:block/wool/cyan_wool"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,28 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/dark_oak_leaves"
|
||||
"persistent=false": {
|
||||
"model": "minecraft:block/leaves/dark_oak/not_persistent"
|
||||
},
|
||||
"distance=1,persistent=true": {
|
||||
"model": "minecraft:block/leaves/dark_oak/1"
|
||||
},
|
||||
"distance=2,persistent=true": {
|
||||
"model": "minecraft:block/leaves/dark_oak/2"
|
||||
},
|
||||
"distance=3,persistent=true": {
|
||||
"model": "minecraft:block/leaves/dark_oak/3"
|
||||
},
|
||||
"distance=4,persistent=true": {
|
||||
"model": "minecraft:block/leaves/dark_oak/4"
|
||||
},
|
||||
"distance=5,persistent=true": {
|
||||
"model": "minecraft:block/leaves/dark_oak/5"
|
||||
},
|
||||
"distance=6,persistent=true": {
|
||||
"model": "minecraft:block/leaves/dark_oak/6"
|
||||
},
|
||||
"distance=7,persistent=true": {
|
||||
"model": "minecraft:block/leaves/dark_oak/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,101 @@
|
||||
{
|
||||
"variants": {
|
||||
"inverted=false": {
|
||||
"model": "minecraft:block/daylight_detector"
|
||||
"inverted=false,power=0": {
|
||||
"model": "minecraft:block/daylight_detector/0"
|
||||
},
|
||||
"inverted=true": {
|
||||
"model": "minecraft:block/daylight_detector_inverted"
|
||||
"inverted=false,power=1": {
|
||||
"model": "minecraft:block/daylight_detector/1"
|
||||
},
|
||||
"inverted=false,power=2": {
|
||||
"model": "minecraft:block/daylight_detector/2"
|
||||
},
|
||||
"inverted=false,power=3": {
|
||||
"model": "minecraft:block/daylight_detector/3"
|
||||
},
|
||||
"inverted=false,power=4": {
|
||||
"model": "minecraft:block/daylight_detector/4"
|
||||
},
|
||||
"inverted=false,power=5": {
|
||||
"model": "minecraft:block/daylight_detector/5"
|
||||
},
|
||||
"inverted=false,power=6": {
|
||||
"model": "minecraft:block/daylight_detector/6"
|
||||
},
|
||||
"inverted=false,power=7": {
|
||||
"model": "minecraft:block/daylight_detector/7"
|
||||
},
|
||||
"inverted=false,power=8": {
|
||||
"model": "minecraft:block/daylight_detector/8"
|
||||
},
|
||||
"inverted=false,power=9": {
|
||||
"model": "minecraft:block/daylight_detector/9"
|
||||
},
|
||||
"inverted=false,power=10": {
|
||||
"model": "minecraft:block/daylight_detector/10"
|
||||
},
|
||||
"inverted=false,power=11": {
|
||||
"model": "minecraft:block/daylight_detector/11"
|
||||
},
|
||||
"inverted=false,power=12": {
|
||||
"model": "minecraft:block/daylight_detector/12"
|
||||
},
|
||||
"inverted=false,power=13": {
|
||||
"model": "minecraft:block/daylight_detector/13"
|
||||
},
|
||||
"inverted=false,power=14": {
|
||||
"model": "minecraft:block/daylight_detector/14"
|
||||
},
|
||||
"inverted=false,power=15": {
|
||||
"model": "minecraft:block/daylight_detector/15"
|
||||
},
|
||||
"inverted=true,power=0": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/0"
|
||||
},
|
||||
"inverted=true,power=1": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/1"
|
||||
},
|
||||
"inverted=true,power=2": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/2"
|
||||
},
|
||||
"inverted=true,power=3": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/3"
|
||||
},
|
||||
"inverted=true,power=4": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/4"
|
||||
},
|
||||
"inverted=true,power=5": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/5"
|
||||
},
|
||||
"inverted=true,power=6": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/6"
|
||||
},
|
||||
"inverted=true,power=7": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/7"
|
||||
},
|
||||
"inverted=true,power=8": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/8"
|
||||
},
|
||||
"inverted=true,power=9": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/9"
|
||||
},
|
||||
"inverted=true,power=10": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/10"
|
||||
},
|
||||
"inverted=true,power=11": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/11"
|
||||
},
|
||||
"inverted=true,power=12": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/12"
|
||||
},
|
||||
"inverted=true,power=13": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/13"
|
||||
},
|
||||
"inverted=true,power=14": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/14"
|
||||
},
|
||||
"inverted=true,power=15": {
|
||||
"model": "minecraft:block/daylight_detector/inverted/15"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/deepslate_redstone_ore"
|
||||
"lit=false": {
|
||||
"model": "minecraft:block/redstone_ore/deepslate_off"
|
||||
},
|
||||
"lit=true": {
|
||||
"model": "minecraft:block/redstone_ore/deepslate_on"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"variants": {
|
||||
"powered=false,shape=ascending_east": {
|
||||
"model": "minecraft:block/detector_rail_raised_ne",
|
||||
"model": "minecraft:block/detector_rail/raised_ne",
|
||||
"y": 90
|
||||
},
|
||||
"powered=false,shape=ascending_north": {
|
||||
"model": "minecraft:block/detector_rail_raised_ne"
|
||||
"model": "minecraft:block/detector_rail/raised_ne"
|
||||
},
|
||||
"powered=false,shape=ascending_south": {
|
||||
"model": "minecraft:block/detector_rail_raised_sw"
|
||||
"model": "minecraft:block/detector_rail/raised_sw"
|
||||
},
|
||||
"powered=false,shape=ascending_west": {
|
||||
"model": "minecraft:block/detector_rail_raised_sw",
|
||||
"model": "minecraft:block/detector_rail/raised_sw",
|
||||
"y": 90
|
||||
},
|
||||
"powered=false,shape=east_west": {
|
||||
"model": "minecraft:block/detector_rail",
|
||||
"model": "minecraft:block/detector_rail/off",
|
||||
"y": 90
|
||||
},
|
||||
"powered=false,shape=north_south": {
|
||||
"model": "minecraft:block/detector_rail"
|
||||
"model": "minecraft:block/detector_rail/off"
|
||||
},
|
||||
"powered=true,shape=ascending_east": {
|
||||
"model": "minecraft:block/detector_rail_on_raised_ne",
|
||||
"model": "minecraft:block/detector_rail/on_raised_ne",
|
||||
"y": 90
|
||||
},
|
||||
"powered=true,shape=ascending_north": {
|
||||
"model": "minecraft:block/detector_rail_on_raised_ne"
|
||||
"model": "minecraft:block/detector_rail/on_raised_ne"
|
||||
},
|
||||
"powered=true,shape=ascending_south": {
|
||||
"model": "minecraft:block/detector_rail_on_raised_sw"
|
||||
"model": "minecraft:block/detector_rail/on_raised_sw"
|
||||
},
|
||||
"powered=true,shape=ascending_west": {
|
||||
"model": "minecraft:block/detector_rail_on_raised_sw",
|
||||
"model": "minecraft:block/detector_rail/on_raised_sw",
|
||||
"y": 90
|
||||
},
|
||||
"powered=true,shape=east_west": {
|
||||
"model": "minecraft:block/detector_rail_on",
|
||||
"model": "minecraft:block/detector_rail/on",
|
||||
"y": 90
|
||||
},
|
||||
"powered=true,shape=north_south": {
|
||||
"model": "minecraft:block/detector_rail_on"
|
||||
"model": "minecraft:block/detector_rail/on"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/black_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/black_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/black_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/black_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/black_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,lit=false": {
|
||||
"model": "minecraft:block/blast_furnace/off",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,lit=true": {
|
||||
"model": "minecraft:block/blast_furnace/on",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,lit=false": {
|
||||
"model": "minecraft:block/blast_furnace/off"
|
||||
},
|
||||
"facing=north,lit=true": {
|
||||
"model": "minecraft:block/blast_furnace/on"
|
||||
},
|
||||
"facing=south,lit=false": {
|
||||
"model": "minecraft:block/blast_furnace/off",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,lit=true": {
|
||||
"model": "minecraft:block/blast_furnace/on",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,lit=false": {
|
||||
"model": "minecraft:block/blast_furnace/off",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,lit=true": {
|
||||
"model": "minecraft:block/blast_furnace/on",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/blue_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/blue_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/blue_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/blue_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/blue_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/brown_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/brown_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/brown_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/brown_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/brown_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/cyan_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/cyan_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/cyan_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/cyan_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/cyan_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,lit=false": {
|
||||
"model": "minecraft:block/furnace/off",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,lit=true": {
|
||||
"model": "minecraft:block/furnace/on",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,lit=false": {
|
||||
"model": "minecraft:block/furnace/off"
|
||||
},
|
||||
"facing=north,lit=true": {
|
||||
"model": "minecraft:block/furnace/on"
|
||||
},
|
||||
"facing=south,lit=false": {
|
||||
"model": "minecraft:block/furnace/off",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,lit=true": {
|
||||
"model": "minecraft:block/furnace/on",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,lit=false": {
|
||||
"model": "minecraft:block/furnace/off",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,lit=true": {
|
||||
"model": "minecraft:block/furnace/on",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/gray_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/gray_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/gray_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/gray_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/gray_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/green_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/green_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/green_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/green_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/green_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"open=false": {
|
||||
"model": "minecraft:block/redstone_lamp"
|
||||
},
|
||||
"open=true": {
|
||||
"model": "minecraft:block/redstone_lamp_on"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"open=false": {
|
||||
"model": "minecraft:block/redstone_lamp/off"
|
||||
},
|
||||
"open=true": {
|
||||
"model": "minecraft:block/redstone_lamp/on"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/acacia/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/acacia/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/acacia/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/acacia/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/acacia/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/acacia/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/acacia/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/azalea/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/azalea/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/azalea/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/azalea/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/azalea/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/azalea/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/azalea/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/birch/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/birch/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/birch/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/birch/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/birch/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/birch/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/birch/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/cherry/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/cherry/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/cherry/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/cherry/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/cherry/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/cherry/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/cherry/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/dark_oak/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/dark_oak/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/dark_oak/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/dark_oak/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/dark_oak/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/dark_oak/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/dark_oak/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/flowering_azalea/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/flowering_azalea/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/flowering_azalea/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/flowering_azalea/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/flowering_azalea/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/flowering_azalea/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/flowering_azalea/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/jungle/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/jungle/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/jungle/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/jungle/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/jungle/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/jungle/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/jungle/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/mangrove/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/mangrove/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/mangrove/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/mangrove/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/mangrove/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/mangrove/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/mangrove/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/oak/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/oak/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/oak/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/oak/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/oak/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/oak/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/oak/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/pale_oak/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/pale_oak/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/pale_oak/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/pale_oak/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/pale_oak/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/pale_oak/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/pale_oak/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"variants": {
|
||||
"distance=1": {
|
||||
"model": "minecraft:block/leaves/spruce/1"
|
||||
},
|
||||
"distance=2": {
|
||||
"model": "minecraft:block/leaves/spruce/2"
|
||||
},
|
||||
"distance=3": {
|
||||
"model": "minecraft:block/leaves/spruce/3"
|
||||
},
|
||||
"distance=4": {
|
||||
"model": "minecraft:block/leaves/spruce/4"
|
||||
},
|
||||
"distance=5": {
|
||||
"model": "minecraft:block/leaves/spruce/5"
|
||||
},
|
||||
"distance=6": {
|
||||
"model": "minecraft:block/leaves/spruce/6"
|
||||
},
|
||||
"distance=7": {
|
||||
"model": "minecraft:block/leaves/spruce/7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_blue_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_blue_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_blue_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_blue_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/light_blue_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_gray_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_gray_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_gray_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/light_gray_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/light_gray_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/lime_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/lime_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/lime_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/lime_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/lime_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/magenta_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/magenta_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/magenta_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/magenta_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/magenta_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/orange_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/orange_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/orange_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/orange_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/orange_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/pink_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/pink_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/pink_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/pink_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/pink_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/purple_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/purple_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/purple_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/purple_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/purple_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/red_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/red_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/red_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/red_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/red_terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"lit=false": {
|
||||
"model": "minecraft:block/redstone_lamp/off"
|
||||
},
|
||||
"lit=true": {
|
||||
"model": "minecraft:block/redstone_lamp/on"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,lit=false": {
|
||||
"model": "minecraft:block/smoker/off",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,lit=true": {
|
||||
"model": "minecraft:block/smoker/on",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,lit=false": {
|
||||
"model": "minecraft:block/smoker/off"
|
||||
},
|
||||
"facing=north,lit=true": {
|
||||
"model": "minecraft:block/smoker/on"
|
||||
},
|
||||
"facing=south,lit=false": {
|
||||
"model": "minecraft:block/smoker/off",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,lit=true": {
|
||||
"model": "minecraft:block/smoker/on",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,lit=false": {
|
||||
"model": "minecraft:block/smoker/off",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,lit=true": {
|
||||
"model": "minecraft:block/smoker/on",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/terracotta/terracotta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/white_concrete_powder"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/white_concrete_powder",
|
||||
"y": 90
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/white_concrete_powder",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/concrete_powder/white_concrete_powder",
|
||||
"y": 270
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user