Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Schaltwerke/Uhrenanzeige (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Redstone-Komparator.png
Schaltwerke

Grid Roter Sand blass.png mit Mechaniken

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

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

Die Uhrenanzeige kann die reale Spielzeit anzeigen, wenn man sie zu exakten Zeit startet. So kann man sich dann beispielsweise auf Minecraft-Servern die Uhrzeit anzeigen lassen. Ähnlich dazu gibt es auch einen Tageszeitsensor welcher die Zeit dem Spieler direkt im Chat-Bereich anzeigt.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Schaltwerke Uhrenanzeige (Befehle) Bild 1.1.png Schaltwerke Uhrenanzeige (Befehle) Bild 1.2.png

Diese Uhrenanzeige wird mit Konstruktionsblöcken betrieben, welche alle zehn Ziffern gespeichert haben und je Zeitangabe abgerufen werden. Um die Uhrenanzeige zu starten, legt man den Hebel um, welcher an den drei Befehlsblocksäulen befindet. Zuallererst wird ein Punktestand-Ziel erstellt[B1.1], welches genutzt wird um die Zeit in Ticks zu speichern. Danach werden die Konstruktionsblöcke mit einem kurzen Redstone-Signal mit Hilfe von Redstone-Blöcken angesteuert, damit sie die zehn Ziffern speichern[B1.2][B1.3]. Hiernach werden unsichtbare Rüstungsständer erzeugt, welche an ihrer Position später die einzelnen Ziffern mit Hilfe der Konstruktionsblöcke erscheinen lassen. Dazu wird ein Rüstungsständer relativ vom Befehlsblock mit etwas Abstand gespawnt[B1.4], dieser besitzt einen Namen und ein Etikett, das auch alle anderen Rüstungsständer besitzen werden. Ausgehend von diesem Rüstungsständer werden jetzt weitere Rüstungsständer erzeugt relativ zu diesem, falls man die Position des ersten Rüstungsständers ändert, änder Sicht gleichwohl auch die der anderen beim Erzeugen[B1.5][B1.6][B1.7][B1.8]. Die Ziffern der Uhrenanzeige werden abhängig von dem jeweiligen Punktestand der Rüstungsständer angezeigt, daher wird allen noch der Wert 0 übergeben, damit die Uhr bei 00:00 beginnt[B1.9].

Nun läuft auch der Zähler an, der jeden Tick ständig sich um eins erhöht[B1.10], hierbei entsprechen 20 Ticks einer Sekunde. Der Wert wird dabei in einer Variable gespeichert, auf die in der ganzen Welt zugegriffen werden kann. Dies wird auch direkt genutzt um die zwei Punkte die zwischen den Sekunden und Minuten sich befinden ständig blinken. Hierauf wird geprüft ob sich der Punktestand der Variable in der ersten Hälfte der Sekunde befindet[B1.11] und nur dann wird der Konstruktionsblock an dem Rüstungsständer für die Doppelpunkte platziert[B1.12]. In der zweiten Hälfte der Sekunde[B1.13], werden die platzierten Punkte auch wieder entfernt[B1.14]. Nun geht es zu den eigentlichen Ziffern über. Pro zu erscheinende Ziffer, wird der gleiche Punktestand der Rüstungsständer überprüft, nur wenn dieser übereinstimmt, wird ein Konstruktionsblock mit der entsprechenden Ziffer unter dem Rüstungsständer platziert[B1.15]. Dies geschieht bei den neun weiteren Ziffern genauso[B1.16][B1.17][B1.18][B1.19][B1.20][B1.21][B1.22][B1.23][B1.24].

Im Anschluss wird geprüft ob die Variable über zwanzig ist[B1.25], denn alle zwanzig Ticks wird sie dann wieder auf null zurückgesetzt[B1.26]. Dies wird genutzt um die vorher platzierten Konstruktionsblöcke mit Redstone-Signale mit Hilfe von Redstone-Blöcken zu versorgen[B1.27], danach werden sie wieder entfernt[B1.28]. Jetzt folgt die Hochzählung der Punktestände der einzelnen Rüstungsständer. Der Sekunden-Rüstungsständer, der auch solch einen Namen trägt wird alle zwanzig Ticks um eins erhöht[B1.29]. Hierbei wird direkt im Anschluss geprüft ob er den Wert zehn erreicht hat[B1.30], denn wenn das der Fall ist, dann wird der Sekunden-Rüstungsständer für die Zehner-Stellen um eins erhöht[B1.31] und auch hierbei wird wieder geprüft ob dieser schon die 60 erreicht hat[B1.32], denn dann muss auch der Minuten-Rüstungsständer hochgezählt werden[B1.33]. Dies geht dann so immer weiter bis alle Rüstungsständer erreicht wurden[B1.34][B1.35][B1.36]. Damit lässt sich insgesamt eine Stunde abbilden. Um mehrere Stunden oder sogar Tage abbilden zu können, müssen nur weitere Rüstungsständer erzeugt werden und nach dem gleichen Schema hochgezählt werden. Wenn man die Uhrenanzeige wieder ausschalten will, so legt man den Hebel einfach wieder um und das Punktestand-Ziel[B1.37], sowie die Ziffern[B1.38] wie auch die Rüstungsständer[B1.39] werden dann gelöscht.


Befehlsblöcke mit Befehlen:
scoreboard objectives add PZUhr:1Zeit dummy
fill ~-3 ~-1 ~3 ~-3 ~-1 ~13 minecraft:redstone_block
fill ~-3 ~-2 ~3 ~-3 ~-2 ~13 minecraft:air
summon minecraft:armor_stand ~3 ~-1 ~ {CustomName:"ObjUhr:1Sekunden",Invisible:true,NoGravity:true,Tags:["EtiUhr:1Alle"]}
execute @e[type=minecraft:armor_stand,name=ObjUhr:1Sekunden,c=1] ~4 ~ ~ /summon minecraft:armor_stand ~ ~ ~ {CustomName:"ObjUhr:1SekundenZehner",Invisible:true,NoGravity:true,Tags:["EtiUhr:1Alle"]}
execute @e[type=minecraft:armor_stand,name=ObjUhr:1Sekunden,c=1] ~7 ~ ~ /summon minecraft:armor_stand ~ ~ ~ {CustomName:"ObjUhr:1Punkte",Invisible:true,NoGravity:true,Tags:["EtiUhr:1Alle"]}
execute @e[type=minecraft:armor_stand,name=ObjUhr:1Sekunden,c=1] ~10 ~ ~ /summon minecraft:armor_stand ~ ~ ~ {CustomName:"ObjUhr:1Minuten",Invisible:true,NoGravity:true,Tags:["EtiUhr:1Alle"]}
execute @e[type=minecraft:armor_stand,name=ObjUhr:1Sekunden,c=1] ~14 ~ ~ /summon minecraft:armor_stand ~ ~ ~ {CustomName:"ObjUhr:1MinutenZehner",Invisible:true,NoGravity:true,Tags:["EtiUhr:1Alle"]}
scoreboard players set @e[type=minecraft:armor_stand,name=!ObjUhr:1Punkte,tag=EtiUhr:1Alle] PZUhr:1Zeit 0
scoreboard players add #VarUhr:1Tick PZUhr:1Zeit 1
scoreboard players test #VarUhr:1Tick PZUhr:1Zeit 0 9
execute @e[type=minecraft:armor_stand,name=ObjUhr:1Punkte,tag=EtiUhr:1Alle] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1punkte"}
scoreboard players test #VarUhr:1Tick PZUhr:1Zeit 10 19
execute @e[type=minecraft:armor_stand,name=ObjUhr:1Punkte,tag=EtiUhr:1Alle] ~ ~ ~ /fill ~ ~4 ~ ~ ~6 ~ minecraft:air
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=0,score_PZUhr:1Zeit=0] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl0"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=1,score_PZUhr:1Zeit=1] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl1"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=2,score_PZUhr:1Zeit=2] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl2"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=3,score_PZUhr:1Zeit=3] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl3"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=4,score_PZUhr:1Zeit=4] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl4"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=5,score_PZUhr:1Zeit=5] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl5"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=6,score_PZUhr:1Zeit=6] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl6"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=7,score_PZUhr:1Zeit=7] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl7"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=8,score_PZUhr:1Zeit=8] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl8"}
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=9,score_PZUhr:1Zeit=9] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:structure_block mode=load keep {posX:-1,posY:5,posZ:0,mode:"LOAD",name:"ks_uhrenanzeige_1zahl9"}
scoreboard players test #VarUhr:1Tick PZUhr:1Zeit 21
scoreboard players set #VarUhr:1Tick PZUhr:1Zeit 0
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle] ~ ~ ~ /setblock ~ ~-2 ~ minecraft:redstone_block
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle] ~ ~ ~ /fill ~ ~-1 ~ ~ ~-2 ~ minecraft:air
scoreboard players add @e[type=minecraft:armor_stand,name=ObjUhr:1Sekunden,tag=EtiUhr:1Alle] PZUhr:1Zeit 1
scoreboard players set @e[type=minecraft:armor_stand,name=ObjUhr:1Sekunden,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=10] PZUhr:1Zeit 0
scoreboard players add @e[type=minecraft:armor_stand,name=ObjUhr:1SekundenZehner,tag=EtiUhr:1Alle] PZUhr:1Zeit 1
scoreboard players set @e[type=minecraft:armor_stand,name=ObjUhr:1SekundenZehner,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=6] PZUhr:1Zeit 0
scoreboard players add @e[type=minecraft:armor_stand,name=ObjUhr:1Minuten,tag=EtiUhr:1Alle] PZUhr:1Zeit 1
scoreboard players set @e[type=minecraft:armor_stand,name=ObjUhr:1Minuten,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=10] PZUhr:1Zeit 0
scoreboard players add @e[type=minecraft:armor_stand,name=ObjUhr:1MinutenZehner,tag=EtiUhr:1Alle] PZUhr:1Zeit 1
scoreboard players set @e[type=minecraft:armor_stand,name=ObjUhr:1MinutenZehner,tag=EtiUhr:1Alle,score_PZUhr:1Zeit_min=6] PZUhr:1Zeit 0
scoreboard objectives remove PZUhr:1Zeit
execute @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle] ~ ~ ~ /fill ~-1 ~-2 ~ ~1 ~6 ~ minecraft:air
kill @e[type=minecraft:armor_stand,tag=EtiUhr:1Alle]
Promotional Content