Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server
Aktuell: Hilf mit, das Technik Wiki auf 1.13 zu bringen => HIER

Vorrichtungen/Mausrad-Sensor (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Kolben.png
Vorrichtungen

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen

Die vorgestellte Technik kann in der Redstone-Welt angesehen werden.

Ein Mausrad-Sensor kann das Drehen des Mausrades feststellen und anzeigen ob man in die eine oder andere Richtung das Rad gedreht hat.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Redstone-Schaltkreise Symbol.png
Diese Technik ist noch nicht in der aktuellen Redstone-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Vorrichtungen Mausrad-Sensor (Befehle) Bild 1.1.png Vorrichtungen Mausrad-Sensor (Befehle) Animation 1.1.1.png Vorrichtungen Mausrad-Sensor (Befehle) Animation 1.1.2.png

Der Mausrad-Sensor erkennt die Richtung in die das Mausrad gedreht wurde. Das macht der Sensor in dem er sich die letzte Position des ausgewählten Slot in der aus neun Slots bestehenden Schnellzugriffsleiste merkt und diesen mit der aktuellen Slot-Position vergleicht. Ist die Differenz zwischen den beiden Slot-Positionen negativ, so muss das Mausrad nach rechts bewegt worden sein, ist die Differenz positiv muss das Mausrad nach links bewegt worden sein. Es gibt allerdings eine Ausnahme, wenn die letzte Slot-Position die erste (ganz linke) oder letzte (ganz rechte) Slot-Position war und nun zum jeweils anderen ersten oder letzen Slot wechselt, würde der Sensor die verkehrtherum liegende Richtung erfassen. Dies muss berücksichtigt werden um eine immer korrekte Erfassung zu erhalten.

Einschalten

Wenn man den Mausrad-Sensor einschaltet, werden zwei Punktestand-Ziele erstellt.

  • Befehl 1.1 Das Slot-Ziel ist dazu gemacht immer die aktuelle Position des ausgewählten Slots zu speichern,
  • Befehl 1.2 Und das Vergleichs-Ziel immer für die letzte Position zu speichern.
Wiederholen

Gleichzeitig wird auch die Befehlsblock-Säule mit dem Wiederhol-Befehlsblock aktiv.

  • Befehl 1.3 Dort beginnt die Speicherung der letzten Slot-Position, in dem der Punktestand von Slot-Ziel in den des Vergleichs-Ziel, vom Spieler der 25 Blöcke maximal entfernt sein darf, übertragen wird. Beim ersten Durchlauf besitzt natürlich das Slot-Ziel noch keinen Wert, daher wird beim Vergleichs-Ziel einfach der Wert null übertragen. Erst bei weiteren Durchläufen wird dann immer die letzte Position als Punktestand übertragen.
  • Befehl 1.4 Um die Slot-Position abzufragen und in einen Punktestand zu speichern, wird zuerst ein Spieler im Umkreis von 25 Blöcken als Ausführer ausgewählt und dann als Speicher-Ziel markiert. In dem Fall wird das Resultat des data-Befehls in das Slot-Ziel des Spielers gespeichert. Der data-Befehl fragt hierbei die aktuelle Slot-Position ab und übergibt es dem store-result-Unterbefehl.
  • Befehl 1.5 Um nun einen Vergleichswert zu erhalten, sodass man entweder einen positiven oder einen negativen Wert erhält, wird vom Vergleichs-Punktestand des Spielers der Slot-Punktestand abgezogen und im Vergleichs-Punktestand gespeichert. Mit diesem Wert kann nun geschlussfolgert werden in welche Richtung das Mausrad bewegt wurde.
  • Befehl 1.6 Der weiter oben genannte Ausnahmefall erfordert eine interessante Unterbefehls-Kombination des execute-Befehls. Um sicherzustellen, dass nur Spieler angesprochen werden die von diesem Sensor erfasst werden sollen, wird zuerst der Radius von 25 Blöcken abgefragt, allerdings auch noch ob der Spieler einen Vergleichs-Punktestand besitzt, der zwischen den minimalen und maximalen Vergleichswerten liegt. Um nun abfragen zu können, ob der Spieler für das nach links bewegen des Mausrades, den Wert von eins bis sieben und den Wert minus acht besitzt, wurde das Ausschlussverfahren angewendet. Wenn der ausgewählte Spieler weder den Wert minus sieben bis null hat noch den Wert acht, dann muss er einen der Werte für das nach links bewegen besitzen. So wird anschließend mit dem title-Befehl die Richtung des Mausrades über der Schnellzugriffsleiste angezeigt.
  • Befehl 1.7 Das gleiche Verfahren wird dann auch für die rechte Bewegung verwendet, um diese dann anzeigen zu lassen.
Ausschalten

Wenn man den Sensor wieder ausschaltet, werden die beiden Punktestand-Ziele entfernt

  • Befehl 1.8 Das Ziel für die Slot-Position wird gelöscht.
  • Befehl 1.9 Sowie das Ziel der der letzten Position.

Befehlsblöcke mit Befehlen:
scoreboard objectives add PZMsRad.1Slot dummy {"text":"Mausrad-Sensor.1: Slotnummer"}
scoreboard objectives add PZMsRad.1Vergl dummy {"text":"Mausrad-Sensor.1: Vergleichsnummer"}


execute as @a[distance=..25] run scoreboard players operation @s PZMsRad.1Vergl = @s PZMsRad.1Slot
execute as @a[distance=..25] store result score @s PZMsRad.1Slot run data get entity @s SelectedItemSlot
execute as @a[distance=..25] run scoreboard players operation @s PZMsRad.1Vergl -= @s PZMsRad.1Slot
execute as @a[distance=..25,scores={PZMsRad.1Vergl=-8..8}] unless entity @s[scores={PZMsRad.1Vergl=-7..0}] unless entity @s[scores={PZMsRad.1Vergl=8}] run title @s actionbar ["",{"text":"[ ","color":"gold","bold":"true"},{"text":"←","color":"dark_green","bold":"true"},{"text":" ]","color":"gold","bold":"true"} ]
execute as @a[distance=..25,scores={PZMsRad.1Vergl=-8..8}] unless entity @s[scores={PZMsRad.1Vergl=0..7}] unless entity @s[scores={PZMsRad.1Vergl=-8}] run title @s actionbar ["",{"text":"[ ","color":"gold","bold":"true"},{"text":"→","color":"dark_red","bold":"true"},{"text":" ]","color":"gold","bold":"true"} ]


scoreboard objectives remove PZMsRad.1Slot
scoreboard objectives remove PZMsRad.1Vergl


Disambig color.svg
Grid Grasblock.png
Auch im Minecraft Wiki wird das Thema dieser Technik behandelt:
Inventar#Inventarslot-IDs
Promotional Content