Skip to content

🧲 Vakuum-Bewegung & Phasenverschiebung (MC 26.1.2)

📌 Haftungsausschluss für Repository-Quellcode: Die Dokumentation in diesem Wiki spiegelt den aktuellen Quellcode-Zustand im Repository wider, der aktuelle unveröffentlichte Commits oder Entwicklungsfunktionen vor öffentlichen Veröffentlichungen auf CurseForge und Modrinth enthalten kann.

InfoboxTechnische Parameter
Systemklassenet.instantgratification.magnet.MagnetMovement
Auslösendes EreignisServer Player Tick (PlayerMixin $\rightarrow$ MagnetManager.tick)
Standard-Ziehreichweite12 Blöcke (ig:magnet_range)
Standard-Endgeschwindigkeit80% ($0.8\text{ Blöcke/Tick} = 16.0\text{ m/s}$)
Standard-Beschleunigung10% ($0.10\text{ Lerp-Faktor/Tick}$)
Phasenverschiebung (NoClip)Aktiviert (ig:magnet_noclip = true)
ZielvektorAugenposition des Spielers (player.getEyePosition())
Boden-Offset-Schub$+0.05\text{ m}$ auf Y-Achse, wenn entity.onGround()

📖 Systemübersicht

In Minecraft 26.1.2 verfolgt die Vakuum-Engine kontinuierlich gültige ItemEntity-Instanzen innerhalb des sphärischen Radius des Spielers und zieht sie mittels Lerp-Interpolation direkt in Richtung der Augenhöhe.

Mit aktiver Phasenverschiebung (NoClip) gleiten Gegenstände geschmeidig durch feste Wände und Blöcke, wodurch verhindert wird, dass Drops beim Bergbau oder im Kampf hinter Hindernissen gefangen bleiben.

+-------------+      Sichtlinie OK       +-----------------------+      Lerp-Geschwindigkeit angewendet     +------------------+
| Item-Entity | -----------------------> | Setze NoClip (2 Ticks)| ---------------------------------------> | Spieler-Augenpos |
+-------------+                          +-----------------------+                                          +------------------+
                                                     |
                                                     v
                                          [Wand-Ausstoßen abbrechen]
                                          [Block-Kollision umgehen]
                                          [Im-Block-Gravitation stoppen]

🧮 Physik & Vektormathematik

1. Richtungs-Einheitsvektor

$$\vec{v}{\text{target}} = \vec{p}{\text{eye}} - \vec{p}{\text{entity}}$$ $$\hat{d} = \frac{\vec{v}{\text{target}}}{|\vec{v}_{\text{target}}|}$$

2. Geschwindigkeits-Interpolation

$$\text{Geschwindigkeits-Skalar } s = \frac{\text{GameRule}(\text{ig:magnet_speed})}{100.0} = 0.8\text{ Blöcke/Tick}$$ $$\vec{u}{\text{target}} = \hat{d} \times s$$ $$\text{Beschleunigungs-Faktor } a = \frac{\text{GameRule}(\text{ig:magnet_acceleration})}{100.0} = 0.10$$ $$\vec{v}{\text{new}} = \vec{v}{\text{current}} + (\vec{u}{\text{target}} - \vec{v}_{\text{current}}) \times a$$

3. Boden-Anti-Reibungs-Schub

java
if (entity.onGround()) {
    entity.setOnGround(false);
    entity.setPos(entity.position().add(0, 0.05, 0));
}

🧱 Phasenverschiebung (NoClip-Engine)

  1. Status-Aktivierung: ((IMagnetEntity) entity).ig$setMagnetNoClip() aktiviert einen 2-Tick-Countdown.
  2. Physik-Überschreibung (MixinEntity.java):
    • move(MoverType, Vec3): @Inject(at = @At("HEAD")) sichert originalNoPhysics und setzt entity.noPhysics = true.
    • move(MoverType, Vec3): @Inject(at = @At("RETURN")) stellt entity.noPhysics = originalNoPhysics wieder her.
  3. Ausstoß-Verhinderung: @Inject(method = "moveTowardsClosestSpace", at = @At("HEAD"), cancellable = true) blockiert Vanilla-Wandausstoßkräfte.
  4. Gravitationsaufhebung im Block: @Inject(method = "applyGravity", at = @At("HEAD"), cancellable = true) hebt die Schwerkraft nur dann auf, wenn sich das Item physisch innerhalb eines Block-Voxels befindet.

⚙️ Relevante Konfiguration & GameRules

GameRuleTypStandardBeschreibung
ig:magnet_enabledBooleantrueHauptschalter für Vakuum-Mechaniken.
ig:magnet_rangeInteger12Vakuum-Radius in Blöcken (1 bis 64).
ig:magnet_speedInteger80Endgeschwindigkeit in Prozent ($80 = 0.8\text{ b/t}$).
ig:magnet_accelerationInteger10Beschleunigungsfaktor in Prozent ($10 = 10%\text{ lerp/tick}$).
ig:magnet_noclipBooleantrueAktiviert Block-Phasenverschiebung während des Anziehens.

🔗 Verwandte Wiki-Dokumentation

Official documentation & web portal for Dasik Igaijinn mods.