From ac44e5f15eb8682ff80b15acb8e5c6f9f489c45a Mon Sep 17 00:00:00 2001 From: David Allemang Date: Mon, 27 Jul 2026 11:20:26 -0400 Subject: [PATCH] some details about BED --- content/interference-fixes.typ | 112 +++++++++++++++++++++++++++++++++ src/engine.js | 2 +- 2 files changed, 113 insertions(+), 1 deletion(-) diff --git a/content/interference-fixes.typ b/content/interference-fixes.typ index 474a1cc5..94f507d8 100644 --- a/content/interference-fixes.typ +++ b/content/interference-fixes.typ @@ -206,6 +206,11 @@ cmp rep rep cmp cmp rep rep == Block Event Delay +Block Event Delay is not a complete substitute for tilesets, but it can significantly reduce the +required length of tilesets. It is based on a behavior of piston push lists which repeats a given +global order for multiple components. A smaller tileset can set a 'template' ordering for a few +components, then BED can trivially 'repeat' that order for a subsequent set of components. + #show raw.where(lang: "mc-diorama"): it => diorama( autoplay: true, loop: true, @@ -321,4 +326,111 @@ 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 ... + 01 | B E H ... + 10 | C F I ... +``` + +#show raw.where(lang: "mc-diorama"): it => diorama( + autoplay: true, + loop: true, + radius: 9, + phi:30, + theta: 110, + it.text, +) + +```mc-diorama + +p 0 0 0 light_gray_terracotta +p 1 0 0 light_gray_terracotta +p 2 0 0 light_gray_terracotta +p 3 0 0 light_gray_terracotta +p 4 0 0 light_gray_terracotta +p -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 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 -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 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 -1 0 0 observer facing=west powered=false +p -2 0 0 repeater facing=west powered=false locked=false delay=1 +p -3 0 0 repeater facing=west powered=false locked=false delay=1 + +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 -1 -1 4 smooth_stone_slab type=top +p -2 -1 4 smooth_stone_slab type=top +p -3 -1 4 smooth_stone_slab type=top +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 -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 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 -1 0 4 observer facing=west powered=false +p -2 0 4 repeater facing=west powered=false locked=false delay=1 +p -3 0 4 comparator facing=west powered=false mode=compare + +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 -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 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 +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 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 5 0 8 observer facing=east powered=false +p 6 0 8 comparator facing=east powered=false mode=compare +p 7 0 8 repeater facing=east powered=false locked=false delay=1 + +``` + == Single-Priority Loops diff --git a/src/engine.js b/src/engine.js index 527b1507..0ca3b783 100644 --- a/src/engine.js +++ b/src/engine.js @@ -398,7 +398,7 @@ export class Engine { const viewProj = diorama.updateMatrices(aspect); gl.uniformMatrix4fv(this.uniforms.viewProj, false, viewProj); - gl.uniform3f(this.uniforms.lightDir, 1.0, 3.0, 2.0); + gl.uniform3f(this.uniforms.lightDir, 1.0, 3.0, -2.0); gl.uniform3f(this.uniforms.viewDir, diorama.viewDir[0], diorama.viewDir[1], diorama.viewDir[2]); gl.uniform3f(this.uniforms.upDir, diorama.upDir[0], diorama.upDir[1], diorama.upDir[2]);