multimodal

This commit is contained in:
2026-06-20 01:47:34 -04:00
parent 7575c514c3
commit c163e6a464
5 changed files with 68 additions and 25 deletions

View File

@@ -23,16 +23,33 @@ Here is the relevant code path for the optimization.
#note[ `onGround` is only ever updated from `move()`, and this branch is the *only* place that
`move()` is called. ]
```java public class ItemEntity extends Entity { public void tick() { ... if (this.onGround() &&
!(this.getDeltaMovement().horizontalDistanceSqr() > (double)1.0E-5F) && (this.tickCount +
this.getId()) % 4 != 0) { ... } else { this.move(MoverType.SELF, this.getDeltaMovement()); ... } ...
} }
```java
public class ItemEntity extends Entity {
public void tick() {
...
if (this.onGround() && !(this.getDeltaMovement().horizontalDistanceSqr() > (double)1.0E-5F) && (this.tickCount + this.getId()) % 4 != 0) {
...
} else {
this.move(MoverType.SELF, this.getDeltaMovement());
...
}
...
}
}
public class Entity { public void move(final MoverType moverType, Vec3 delta) { ...
this.setOnGroundWithMovement(this.verticalCollisionBelow, this.horizontalCollision, movement); ... }
public class Entity {
public void move(final MoverType moverType, Vec3 delta) {
...
this.setOnGroundWithMovement(this.verticalCollisionBelow, this.horizontalCollision, movement);
...
}
public void setOnGroundWithMovement(final boolean onGround, final boolean horizontalCollision,
final Vec3 movement) { this.onGround = onGround; ... } } ```
public void setOnGroundWithMovement(final boolean onGround, final boolean horizontalCollision, final Vec3 movement) {
this.onGround = onGround;
...
}
}
```
== Observable Drop Delay

View File

@@ -25,7 +25,9 @@ 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.
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

View File

@@ -1,10 +1,16 @@
#set page("us-letter", margin: 0.5in)
#show: it => context if target() == "paged" {
set page("us-letter", margin: 0.5in)
it
} else {
it
}
#set heading(numbering: "1.1 -")
#set document(title: [The EID Wireless Masterclass])
#context if target() == "bundle" {
asset("/mojangles-ascii.woff2", read("static/mojangles-ascii.woff2", encoding: none))
asset("/style.css", read("static/style.css", encoding: none))
asset("mojangles-ascii.woff2", read("static/mojangles-ascii.woff2", encoding: none))
asset("style.css", read("static/style.css", encoding: none))
}
#let index() = query(document).first()
@@ -16,7 +22,7 @@
html.meta(charset: "utf-8")
html.meta(name: "viewport", content: "width=device-width, initial-scale=1")
html.meta(name: "color-scheme", content: "dark light")
html.link(rel: "stylesheet", href: "/style.css")
html.link(rel: "stylesheet", href: "style.css")
html.title(context document.title)
})
html.body({
@@ -81,13 +87,13 @@
it
}
rawdoc("/index.html", include "content/00-index.typ")
doc("/core.html", include "content/01-core.typ")
doc("/interference.html", include "content/02-interference.typ")
doc("/timing.html", include "content/03-timing.typ")
doc("/design.html", include "content/04-design.typ")
doc("/channels.html", include "content/05-channels.typ")
doc("/transport.html", include "content/06-transport.typ")
doc("/bulk.html", include "content/07-bulk.typ")
doc("/network.html", include "content/08-network.typ")
rawdoc("index.html", include "content/00-index.typ")
doc("core.html", include "content/01-core.typ")
doc("interference.html", include "content/02-interference.typ")
doc("timing.html", include "content/03-timing.typ")
doc("design.html", include "content/04-design.typ")
doc("channels.html", include "content/05-channels.typ")
doc("transport.html", include "content/06-transport.typ")
doc("bulk.html", include "content/07-bulk.typ")
doc("network.html", include "content/08-network.typ")
}

View File

@@ -2,5 +2,23 @@
tinymist = "latest"
typst = "0.15.0"
[tasks.watch]
run = "typst watch main.typ site --format bundle --features bundle,html"
[tasks.watch-bundle]
run = "typst watch main.typ site --format bundle --features bundle,html --port 3000"
[tasks.watch-html]
run = "typst watch main.typ main.html --format html --features bundle,html --port 3080"
[tasks.watch-pdf]
run = "typst watch main.typ main.pdf --format pdf --features bundle,html"
[tasks.bundle]
run = "typst compile main.typ site --format bundle --features bundle,html"
[tasks.html]
run = "typst compile main.typ main.html --format html --features bundle,html"
[tasks.pdf]
run = "typst compile main.typ main.pdf --format pdf --features bundle,html"
[tasks.all]
depends = ["pdf", "html", "bundle"]

View File

@@ -2,7 +2,7 @@
font-family: "Mojangles";
font-style: normal;
font-weight: 400;
src: url("/mojangles-ascii.woff2");
src: url("mojangles-ascii.woff2");
unicode-range: U+0000-007F;
}