rough draft first guide

This commit is contained in:
David Allemang
2026-06-22 15:03:43 -04:00
parent d7c4dee0cf
commit b1994d8d33
2 changed files with 36 additions and 2 deletions

View File

@@ -84,6 +84,41 @@ We can't control the absolute entity ID a particular item will receive, but we c
multiple entities. By observing the drop delay for a "reference" item, we can predict the behavior multiple entities. By observing the drop delay for a "reference" item, we can predict the behavior
of other items. of other items.
#example[
For example, suppose we spawn an item $A$, then 2 game ticks later we spawn an item $B$. Assume no
other entities spawn between them, so $A$ and $B$ have consecutive IDs. Wait for the items to
settle, then remove the supporting blocks. If we observe item $A$ start to fall 1 game tick after
the support is removed, we can predict when item $B$ will fall.
It'll be easier if we orient ourselves around the tick when the support blocks are removed, call
that $t=0$. Say the age is $"age"_(A, 0)$ at that time. We have that item $A$ falls at $t=1$.
$A$ fell when it was $"age"_(A, 1) = "age"_(A, 0) + 1$ old, so we can put all this into a relation
that pins down the mod 4 cycle.
$ "age"_(A, 0) + 1 + "id"_A equiv 0 (mod 4) $
We want to find the equivalent relation for $B$, where $x$ will be the tick in which $B$ falls.
$ "age"_(B, 0) + x + "id"_B equiv 0 (mod 4) $
We know that $A$ has the item ID immediately before $B$, so $"id"_A = "id"_B - 1$.
We also know that $A$ is 2gt older than $B$, so $"age"_(A, 0) = "age"_(B, 0) + 2$.
So take the relation for $A$ and substitute in these values for $B$.
$
"age"_(A, 0) + 1 + "id"_A & equiv 0 (mod 4) \
"age"_(B, 0) + 2 + 1 + "id"_B - 1 & equiv 0 (mod 4) \
"age"_(B, 0) + 2 + "id"_B & equiv 0 (mod 4) \
$
Compare with the relation for $B$ and we see that $x=2$.
#callout(kind: "tip", label: "Therefore:")[$B$ falls at time $t=2$.]
]
#example[ #example[
Suppose we spawn four items in order. For simplicity, spawn them all in the same tick so their Suppose we spawn four items in order. For simplicity, spawn them all in the same tick so their
ages are equal, and assume no other entities spawn. ages are equal, and assume no other entities spawn.

View File

@@ -65,5 +65,4 @@
} }
} }
// #let solution = details.with(label: "Solution") #let solution = details.with(label: "Solution")
#let solution = callout.with(kind: "solution", label: "Solution:")