Technik Wiki
K (Nethonos verschob die Seite Schienenverkehrsanlagen/Streckenverleger nach Schienenverkehrsanlagen/Gleisverleger (Befehle), ohne dabei eine Weiterleitung anzulegen)
K (Links korrigiert.)
(19 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
  +
{{Unterseite|gruppe=Schienenverkehrsanlagen|
{{Downloadwelt|SN}}
 
  +
{{Seitenkopf|dw=s}}
  +
}}
  +
Der '''Gleisverleger''' wird dafür genutzt um Gleisstrecken mit viel weniger Aufwand zu platzieren, als mit der Hand. Der Gleisverleger kann in allen Himmelsrichtungen verwendet werden, dazu positioniert man sich so zu dem Gleisverleger, sodass er in die gewünschte Richtung schaut und dann startet man ihn. Alle Blöcke die der Gleisverleger für den Bau des Gleisbettes und der Gleise verbaut, muss der Spieler bei manchen Varianten bei sich tragen, da ansonsten der Gleisverleger nicht weiter baut, bei anderen Varianten werden die Gleisstrecken auch so gebaut. Die Gleisverleger sind nur für halbwegs ebene Gelände gedacht (kleine Hügel können sie passieren) und sollten nicht in Gebirgen oder Ozeanen zum Einsatz kommen, dafür werden die [[Brückenbauer (Befehle)|Brückenbauer]] verwendet, die für beides bestens gewappnet sind.
   
  +
Manche Gleisverleger sind auch für die [[Eisenbahn (Befehle)|Eisenbahn]] konzipiert. Diese Gleisstrecken sind nicht für Loren nutzbar und besitzen auch grundsätzlich eher kosmetischen Charakter. Darüber hinaus erfüllen sie jedoch die Voraussetzung, die eine Eisenbahn verlangt, damit sie diese Wege befahren kann.
Ein '''Streckenverleger''' ist ein erweitertes [[Straßenverkehrsanlagen/Automobil|Automobil]] mit der Funktion, Schienen hinter sich zu platzieren. Er setzt ein Gleisbett (hier in allen Beispielen: Andesit) und darauf eine Schiene. Dieses Fahrzeug kann man in jede Richtung nutzen, es muss dann aber umgebaut und die Befehle müssen entsprechend angepasst werden. Es kann für alle Bereiche verwenden werden, allerdings kann man nur bestimmte dafür vorgesehene Fahrzeuge auch unter {{de|Wasser}} und {{de|Lava}} nutzen. Man kann auch Streckenverleger für Eisenbahnenstrecken konzipieren. Diese Strecken sind nicht funktional, können aber, je nachdem welche [[Schienenverkehrsanlagen/Eisenbahn|Eisenbahn]] darüber fährt, erweitert werden, damit ein Zug darüber fahren kann. Damit die Streckenverleger besser von Bereich zu Bereich kopiert werden können, sind alle Steckenverleger mit weißem Glas ausgefüllt. So kann man sehr schnell und sehr einfach die diagonal zueinander liegenden Ecken anvisieren und in den Befehl eingeben. Es hat aber auch den Vorteil, dass das so klein wie möglich gehaltene Fahrzeug ein wenig vor Wasser oder Lava geschützt ist. Zwar schützt das Glas nicht in allen Fällen, aber das ist bei den Varianten, die nicht im Fels arbeiten, auch nicht nötig.
 
   
 
== Variante 1 ==
 
== Variante 1 ==
{{Voraussetzung|SN|preset2=RS|der Streckenverleger|
+
{{Voraussetzung|
*[[Redstone-Schaltkreise/Taktgeber|Taktgeber]]
+
*[[Schaltkreise/Taktgeber (Befehle)]]
  +
*{{mcw|Blickwinkel}}
*[[Straßenverkehrsanlagen/Automobil|Automobil]]
 
*{{b|/setblock}}
+
*{{mcw|Koordinaten}}
*{{b|/clone}}
+
*{{mcw|Funktion}}
  +
|
  +
* {{Gridbild|Hebel|link}}
  +
* {{Gridbild|Redstone-Fackel|link}}
  +
* {{Gridbild|Befehlsblock|link}}
  +
* {{Gridbild|Wiederhol-Befehlsblock|link}}
 
}}
 
}}
  +
{{Bilderfolge|#1#2#3#4|Gleisbaumaschine (Befehle) Bild 2.|400px|list=1}}
[[Datei:Schienenverkehrsanlagen Streckenverleger1Bild1.png|400px]]
 
[[Datei:Schienenverkehrsanlagen Streckenverleger1Bild2.png|400px]]
 
{{-}}
 
Der Streckenverleger kann selbständig fahren und legt ein Gleisbett samt Schienen an. Er bewegt sich immer einen Block weiter und setzt dabei die Strecke. Je schneller man die Karottenrute benutzt, desto schneller wird die Strecke gebaut, wobei es auch hier Grenzen gibt<ref group="B 1">{{b|1=/scoreboard players reset @a[score_Strecke1a_min=1,r=3] Strecke1a}}</ref>. Die Funktion der Fortbewegung wird mit Hilfe des Befehl<ref group="B 1">{{b|/clone ~ ~ ~ ~3 ~-2 ~2 ~1 ~-2 ~ replace move}}</ref> bewerkstelligt. Dabei werden die relativen Koordinaten genutzt, welche das Fahrzeug immer genau um einen Block nach vorne in Richtung Osten setzen. Damit das Fahrzeug auch in den gleichen Bereich hineinkopiert werden kann, in dem es sich befunden hat, muss der Zusatz ''replace move'' dabei stehen. Nun muss das Gleisbett (Andesit) mit dem Befehl<ref group="B 1">{{b|/fill ~-4 ~-1 ~-1 ~-4 ~-1 ~-1 stone 5}}</ref> gesetzt werden und darauf mit dem Befehl<ref group="B 1">{{b|/fill ~-4 ~ ~-1 ~-3 ~ ~-1 rail 1}}</ref> die Schiene. Um das Gleisbett werden dann mit dem Befehl<ref group="B 1">{{b|/fill ~-4 ~ ~-2 ~-4 ~ ~ iron_block}}</ref> Eisenblöcke gesetzt, aber nur, wenn sich an den Bereichen, an denen die Eisenblöcke gesetzt werden sollen, auch Luft befindet. Dieses Fahrzeug ist so aufgebaut, dass der Hebel der den Wiederhol-Befehlsblock ansteuert, gleichzeitig auch das Punktestand-Objekt beim Aktivieren auslöst<ref group="B 1">{{b|/scoreboard objectives add Strecke1a stat.sneakTime}} <br> {{b|/scoreboard objectives add Strecke1b stat.useItem.minecraft.carrot_on_a_stick}}</ref>. Danach wird dem Spieler auch eine Karottenrute gegeben<ref group="B 1">{{b|1=/replaceitem entity @p[r=10] slot.weapon.offhand minecraft:carrot_on_a_stick 1}}</ref> Wird nun ein Wiederhol-Befehlsblock von den zwei erfolgreich ausgeführt <ref group="B 1">{{b|1=/scoreboard players reset @a[score_Strecke1b_min=1] Strecke1b}}</ref>, so wird ein weiterer bedingter Ketten-Befehlsblock aktiv<ref group="B 1">{{b|/blockdata ~ ~ ~1 {auto:1b} }}</ref>. Dann folgt der gleiche Ablauf wie weiter oben beschrieben, es werden das Gleisbett samt Schienen platziert.
 
   
  +
Dieser Gleisverleger benötigt das Material was er für den Bau von Gleisstrecken einsetzt. Man schleicht einfach in der Nähe des Gleisverlegers und dieser macht sich auf und platziert Block für Block die Gleisstrecke. Er kann entweder nach dem Raster exakt in den vier Himmelsrichtungen entlangfahren oder auch Rasterfrei in jede beliebige Richtung gesteuert werden, allerdings kann es dann manchmal zu unerwünschten Löschern in der Gleisstrecke kommen.
Befehle:
 
<references group="B 1" />
 
{{-}}
 
[[Datei:Schienenverkehrsanlagen Streckenverleger1Bild3.png|400px]]
 
[[Datei:Schienenverkehrsanlagen Streckenverleger1Bild4.png|400px]]
 
{{-}}
 
Eine Erweiterung dessen stellt dieser Streckenverleger dar. Er wurde so umgebaut, dass er zwei Schienengleise verlegt<ref group="B 2">{{b|/fill ~-3 ~ ~-2 ~-2 ~ ~-2 rail 1}} <br> {{b|/fill ~-2 ~-1 ~ ~-1 ~-1 ~ rail 1}}</ref> und zwei Gleisbette<ref group="B 2">{{b|/fill ~-4 ~-1 ~-2 ~-4 ~-1 ~-2 stone 5}} <br> {{b|/fill ~-3 ~-1 ~ ~-3 ~-1 ~ stone 5}}</ref>, für den Hin- und Rückweg. Die Befehle sind so gut wie identisch, nur dass sie hier zweimal vorhanden sind, statt einmal für das Gleisbett. Außerdem wurde die Eisenblockumrahmnung angepasst<ref group="B 2">{{b|/fill ~-4 ~ ~-3 ~-4 ~ ~1 iron_block}}</ref>. Es befinden sich bei dieser Erweiterung zwei weitere Befehlsblöcke auf dem Streckenverleger.
 
   
  +
;Einschalten
Befehle:
 
  +
Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus
<references group="B 2" />
 
  +
* {{bb|1|1}} Die Funktion {{f|link=v1start}} wird aktiviert
  +
  +
;Wiederholen
  +
Der Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus
  +
* {{bb|1|2}} die Funktion {{f|link=v1zyklus}} wird jeden Tick erneut ausgeführt.
  +
  +
;Ausschalten
  +
Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert
  +
* {{bb|1|3}} Die Funktion {{f|link=v1stopp}} wird einmal ausgeführt
  +
  +
{{Ausklappmenü|offen=1|{{bb}}|
  +
{{bb|1|1|i|4=function technik_wiki:gleisverleger/v1start}}
  +
{{bb|1|2|w|4=function technik_wiki:gleisverleger/v1zyklus}}
  +
  +
  +
{{bb|1|3|i|4=function technik_wiki:gleisverleger/v1stopp}}
  +
}}
  +
  +
  +
{{fü|1|name=Start}}
  +
Die Start-Funktion erstellt alle nötigen Punktestand-Ziele für die Materialien und der Schleichzeit und gibt dem Spieler den Gleisverleger in die Hand
  +
* {{f|link=v1start|line=2}} Es werden ein Punktestand-Ziel für das Schleichen wird erstellt, sowie für Gleise{{f|link=v1start|line=3|up=1}}, Andesit{{f|link=v1start|line=4|up=1}} und Steine{{f|link=v1start|line=5|up=1}}
  +
  +
* {{f|link=v1start|line=8}} Spielern in einem Umkreis von 25 Blöcken wird ein Rüstungsständer gegeben, der beim Platzieren zum Gleisverleger wird
  +
  +
{{f|name=technik_wiki:gleisverleger/v1start|alias=v1start|1=
  +
# Punktestand-Ziele werden erstellt
  +
scoreboard objectives add PZGleisV.1Schl minecraft.custom:minecraft.sneak_time ["Gleisverleger.1: ",{"text":"Schleichzeit","bold":true}]
  +
scoreboard objectives add PZGleisV.1Gleis dummy ["Gleisverleger.1: ",{"text":"Schienen für den Verleger","bold":true}]
  +
scoreboard objectives add PZGleisV.1Andes dummy ["Gleisverleger.1: ",{"text":"Andesit für den Verleger","bold":true}]
  +
scoreboard objectives add PZGleisV.1Stein dummy ["Gleisverleger.1: ",{"text":"Steine für den Verleger","bold":true}]
  +
  +
# Spieler in einem Radius von 25 Blöcken erhalten einen Rüstungsständer der den Gleisverleger erstellt, wenn man ihn platziert
  +
give @a[distance=..25] minecraft:armor_stand{display:{Name:"{\"text\":\"Gleisverleger\"}",Lore:["Gleisverleger.1"]},EntityTag:{Invisible:true,Small:true,NoGravity:true,CustomNameVisible:true,CustomName:"{\"text\":\"Gleisverleger\"}",Tags:["EtiGleisV.1Alle","EtiGleisV.1Verleger","EtiGleisV.1Erstellen"],ArmorItems:[{},{},{},{id:"minecraft:magenta_glazed_terracotta",Count:1b} ],Pose:{Head:[0.0f,0.0f,180.0f] } } } 16
  +
}}
  +
  +
  +
{{fü|1|name=Zyklus}}
  +
Die Zyklus-Funktion erstellt bei Bedarf den Gleisverleger und ruft durch diesen auch Gleis-Funktionen für den Bau der Gleisstrecken auf
  +
* {{f|link=v1zyklus|line=2}} Falls der Rüstungsständer von dem Spieler platziert wurde, wird für diesen die Erstellen-Funktion aufgerufen, die aus ihm den Gleisverleger macht
  +
  +
* {{f|link=v1zyklus|line=5}} Wenn Spieler im Umkreis von zehn Blöcken sich um den Gleisverleger befinden, wird die Ausrichtung-Funktion für den Gleisverleger aufgerufen
  +
  +
* {{f|link=v1zyklus|line=8}} Wenn sich die Spieler ebenfalls um den Gleisverleger befinden und dabei auch schleichen, wird die Gleis-Funktion aufgerufen
  +
  +
* {{f|link=v1zyklus|line=11}} Falls die Spieler schleichen wird ihr Punktestand wieder zurückgesetzt
  +
  +
{{f|name=technik_wiki:gleisverleger/v1zyklus|alias=v1zyklus|1=
  +
# Wenn der Rüstungsständer platziert wird, wird die Erstellen-Funktion durch ihn aufgerufen
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.1Erstellen] at @s run function technik_wiki:gleisverleger/v1erstellen
  +
  +
# Wenn sich der Spieler in der Nähe des Gleisverlegers befindet, wird die Ausrichtungs-Funktion durch ihn aufgerufen
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.1Verleger] at @s if entity @p[distance=..10] rotated ~ 0 run function technik_wiki:gleisverleger/v1ausrichtung
  +
  +
# Wenn der Spieler in der Nähe des Gleisverlegers schleicht, wird die Gleis-Funktion aufgerufen
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.1Verleger] at @s if entity @p[distance=..10,scores={PZGleisV.1Schl=3..},nbt={OnGround:true}] rotated ~180 0 run function technik_wiki:gleisverleger/v1gleis
  +
  +
# Wenn der Spieler mindestens drei Ticks lang geschlichen ist, wird sein Punktestand zurück gesetzt
  +
scoreboard players reset @a[scores={PZGleisV.1Schl=3..}] PZGleisV.1Schl
  +
}}
  +
  +
  +
{{fü|1|name=Erstellen}}
  +
Die Erstellen-Funktion erstellt den Gleisverleger und gibt dem Spieler eine gewisse Menge Material für den Bau der Gleise
  +
* {{f|link=v1erstellen|line=2}} Dem Spieler werden 64 Einheiten für Schienen, Andesit{{f|link=v1erstellen|line=3|up=1}} und Steine{{f|link=v1erstellen|line=4|up=1}} gegeben
  +
  +
* {{f|link=v1erstellen|line=7}} Es werden alle anderen Gleisverleger entfernt
  +
  +
* {{f|link=v1erstellen|line=10}} Es werden Rüstungsständer erstellt, die Schienen, Andesit{{f|link=v1erstellen|line=11|up=1}} und Steine{{f|link=v1erstellen|line=12|up=1}}{{f|link=v1erstellen|line=13|up=1}} im Kopfslot besitzen
  +
  +
* {{f|link=v1erstellen|line=16}} Falls der Verleger für zwei Spuren aktiviert wurde, werden weitere Rüstungsständer für Schienen, Andesit{{f|link=v1erstellen|line=17|up=1}} und Steine{{f|link=v1erstellen|line=18|up=1}} erstellt
  +
  +
* {{f|link=v1erstellen|line=21}} Als letztes wird dem Gleisverleger das Etikett entfernt
  +
  +
{{f|name=technik_wiki:gleisverleger/v1erstellen|alias=v1erstellen|1=
  +
# Dem Spieler in der Nähe werden Schienen, Andesit und Steine gegeben
  +
give @p[distance=..10] minecraft:rail{display:{Lore:["Gleisverleger.1"] } } 64
  +
give @p[distance=..10] minecraft:andesite{display:{Lore:["Gleisverleger.1"] } } 64
  +
give @p[distance=..10] minecraft:stone{display:{Lore:["Gleisverleger.1"] } } 128
  +
  +
# Falls es bereits einen Gleisverleger gibt, wird dieser entfernt, nicht aber der jetzt erstellte
  +
kill @e[distance=0.9..,tag=EtiGleisV.1Alle]
  +
  +
# Weitere Rüstungsständer mit bestimmten Blöcken im Kopfslot werden erstellt um zu zeigen welche Blöcke platziert werden
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleis1","EtiGleisV.1Gleis","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:rail",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleisbett1","EtiGleisV.1Gleisbett","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Rechts1","EtiGleisV.1Gleisspur","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Links1","EtiGleisV.1Gleisspur","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}
  +
  +
# Falls der Spieler zwei Spuren bauen möchte, werden auch weitere Rüstungsständer für die zweite Spur erstellt
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleis2","EtiGleisV.1Gleis"],ArmorItems:[{},{},{},{id:"minecraft:rail",Count:1b}]}
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleisbett2","EtiGleisV.1Gleisbett"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Rechts2","EtiGleisV.1Gleisspur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}
  +
  +
# Damit die Erstellen-Funktion kein zweites mal aufgerufen wird, wird das Etikett von dem Gleisverleger entfernt
  +
tag @s remove EtiGleisV.1Erstellen
  +
}}
  +
  +
  +
{{fü|1|name=Ausrichtung}}
  +
Die Ausrichtung-Funktion richtet den Gleisverleger entweder nach den Himmelsrichtungen aus oder wenn gewünscht richtet sie ihn auch nach der Richtung des Spielers Rasterfrei aus
  +
* {{f|link=v1ausrichtung|line=2}} Zuerst wird der Gleisverleger genau in die Richtung blicken wo der Spieler steht
  +
  +
* {{f|link=v1ausrichtung|line=5}} Je nach Himmelsrichtung wird der Rüstungsständer exakt in eine der vier Himmelsrichtungen ausgerichtet, so für Norden, für Osten{{f|link=v1ausrichtung|line=6|up=1}}, für Süden{{f|link=v1ausrichtung|line=7|up=1}} und für Westen{{f|link=v1ausrichtung|line=8|up=1}}
  +
  +
* {{f|link=v1ausrichtung|line=11}} Die Rüstungsständer mit dem entsprechenden Material im Kopfslot werden vom Gleisverleger aus an die entsprechende Position teleportert{{f|link=v1ausrichtung|line=12|up=1}}{{f|link=v1ausrichtung|line=13|up=1}}{{f|link=v1ausrichtung|line=14|up=1}}
  +
  +
* {{f|link=v1ausrichtung|line=17}} Falls der Gleisverleger für zwei Spuren aktiviert wurde, werden die Rüstungsständer für die zweite Gleisstrecke entsprechend positioniert{{f|link=v1ausrichtung|line=18|up=1}}{{f|link=v1ausrichtung|line=19|up=1}}
  +
  +
{{f|name=technik_wiki:gleisverleger/v1ausrichtung|alias=v1ausrichtung|1=
  +
# Der Rüstungsständer (Gleisverleger) schaut immer in Richtung des nächsten Spielers
  +
teleport @s ~ ~ ~ facing entity @p feet
  +
  +
# Falls die Einstellung fürs Raster getroffen wurde, wird der Gleisverleger nur noch genau in die vier Himmelsrichtungen schauen
  +
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=135..-135] rotated 180 0 run teleport @s ~ ~ ~ 180 ~
  +
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=-135..-45] rotated -90 0 run teleport @s ~ ~ ~ -90 ~
  +
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=-45..45] rotated 0 0 run teleport @s ~ ~ ~ 0 ~
  +
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=45..135] rotated 90 0 run teleport @s ~ ~ ~ 90 ~
  +
  +
# Die Rüstungsständer mit den verschiedenen Blöcken im Kopfslot werden an die entsprechende Stelle teleportiert
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleis1,sort=nearest,limit=1] ^ ^0.5 ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett1,sort=nearest,limit=1] ^ ^ ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Rechts1,sort=nearest,limit=1] ^1 ^ ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Links1,sort=nearest,limit=1] ^-1 ^ ^1 facing entity @p feet
  +
  +
# Wenn der Gleisverleger zwei Spuren bauen kann, werden auch die Rüstungsständer für die zweite Spur entsprechend teleportiert
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleis2,sort=nearest,limit=1] ^-2 ^0.5 ^1 facing entity @p feet
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett2,sort=nearest,limit=1] ^-2 ^ ^1 facing entity @p feet
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Rechts2,sort=nearest,limit=1] ^-3 ^ ^1 facing entity @p feet
  +
  +
# Wenn der Spieler eine Schiene zum Gleisverleger wirft, wird dieser so erweitert, dass er zwei Schienen verlegen kann
  +
execute if entity @p[distance=1.5..10] run tag @e[distance=..2,type=minecraft:item,tag=!EtiGleisV.1ZweiSpuren,nbt={Item:{id:"minecraft:rail",Count:1b} } ] add EtiGleisV.1ZweiSpuren
  +
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren] run tag @s add EtiGleisV.1Erstellen
  +
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren] run tag @s add EtiGleisV.1ZweiSpuren
  +
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren] run tellraw @a[distance=..10] ["Gleisverleger.1: ",{"text":"Der Gleisverleger platziert nun zwei Gleisspuren","bold":true}]
  +
kill @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren]
  +
  +
# Wenn der Spieler einen Rüstungsständer zum Gleisverleger wirft, dann wird die Raster-Stellung entfernt, sodass der Gleisverleger nicht mehr nur in die vier Himmelsrichtungen schaut
  +
execute if entity @p[distance=1.5..10] run tag @e[distance=..2,type=minecraft:item,tag=!EtiGleisV.1KeinRaster,nbt={Item:{id:"minecraft:armor_stand",Count:1b} } ] add EtiGleisV.1KeinRaster
  +
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1KeinRaster] run tag @s add EtiGleisV.1KeinRaster
  +
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1KeinRaster] run tellraw @a[distance=..10] ["Gleisverleger.1: ",{"text":"Der Gleisverleger ist nicht mehr am Raster gebunden und kann nun auch diagonale Gleisspuren verlegen","bold":true}]
  +
kill @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1KeinRaster]
  +
}}
  +
  +
  +
{{fü|1|name=Gleis}}
  +
Die Gleis-Funktion prüft das Inventar des Spielers und nur wenn es den Anforderungen entspricht wird die Funktion für die Gleisstrecke aufgerufen
  +
* {{f|link=v1gleis|line=2}} Damit der Spieler einfacher erfasst werden kann, wird ihm ein Etikett gegeben
  +
  +
* {{f|link=v1gleis|line=5}} In dem Punktestand vom Spieler wird die Anzahl der Schienen, die beim Auslesen des Inventars ausgegeben wird, gespeichert, gleiches gilt für Andesit{{f|link=v1gleis|line=6|up=1}} und Stein{{f|link=v1gleis|line=7|up=1}}
  +
  +
* {{f|link=v1gleis|line=10}} Nur wenn der Spieler genug Schienen, Andesit und Stein bei sich trägt, wird eine Schiene aus dem Inventar entfernt. Gleiches gilt für Andesit{{f|link=v1gleis|line=11|up=1}} und Stein{{f|link=v1gleis|line=12|up=1}}
  +
  +
* {{f|link=v1gleis|line=15}} Falls der Gleisverleger zwei Spuren platziert, wird auch nochmal abgefragt ob der Spieler genug Material dabei hat und wenn das der Fall ist, wird ihm eine Schiene entfernt. Gleiches gilt für den Stein{{f|link=v1gleis|line=16|up=1}}
  +
  +
* {{f|link=v1gleis|line=19}} Falls der Spieler genug Material bei sich geführt hat, wird die Funktion Gleis-Verlegen-1 aufgerufen
  +
* {{f|link=v1gleis|line=20}} Falls der Spieler nicht genug Material bei sich führt, wird ihm eine Fehlermeldung gegeben
  +
  +
* {{f|link=v1gleis|line=23}} Zum Schluss wird das Etikett wieder entfernt
  +
  +
{{f|name=technik_wiki:gleisverleger/v1gleis|alias=v1gleis|1=
  +
# Der Spieler der schleicht, bekommt ein Etikett, um ihn besser erfassen zu können
  +
tag @p[distance=..10,scores={PZGleisV.1Schl=1..}] add EtiGleisV.1Spieler
  +
  +
# Dem Spieler werden in seinen Punkteständen die Anzahl der vorhandenen Materialien gespeichert
  +
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] store result score @s PZGleisV.1Gleis run clear @s minecraft:rail 0
  +
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] store result score @s PZGleisV.1Andes run clear @s minecraft:andesite 0
  +
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] store result score @s PZGleisV.1Stein run clear @s minecraft:stone 0
  +
  +
# Nur wenn der Spieler von allen Materialien genug hat, werden ihm diese abgezogen
  +
clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:rail 1
  +
clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:andesite 1
  +
clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:stone 2
  +
  +
# Falls der Spieler einen Gleisverleger für zwei Spuren bedient, werden ihm noch weitere Materialien abgezogen
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:rail 1
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:stone 2
  +
  +
# Nur wenn der Spieler genug von dem Material hatte, wird die Gleis-Verlegen-1-Funktion aufgerufen und falls nicht, dann erhält er eine Fehlermeldung
  +
execute if entity @p[tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] run function technik_wiki:gleisverleger/v1gleis_verlegen_1
  +
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] unless entity @s[scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] run tellraw @s ["Gleisverleger.1 ",{"text":"Du hast zu wenig Blöcke bei dir!","bold":true}]
  +
  +
# Als letztes wird dem Spieler das Etikett wieder entfernt
  +
tag @p[distance=..10,tag=EtiGleisV.1Spieler] remove EtiGleisV.1Spieler
  +
}}
  +
  +
  +
{{fü|1|name=Gleis-Verlegen-1}}
  +
Die Gleis-Verlegen-1-Funktion platziert das Gleisbett und die Gleise, falls der Gleisverleger für zwei Spuren aktiviert wurde, platziert sie auch eine zweite Gleisstrecke parallel zur ersten
  +
* {{f|link=v1gleis_verlegen_1|line=2}} Die Rüstungsständer mit den jeweiligen Material im Kopfslot platzieren entsprechend diesem den Block an ihrer Position und höhlen gegebenfalls den Bereich aus{{f|link=v1gleis_verlegen_1|line=3|up=1}}{{f|link=v1gleis_verlegen_1|line=4|up=1}}{{f|link=v1gleis_verlegen_1|line=5|up=1}}{{f|link=v1gleis_verlegen_1|line=6|up=1}}
  +
  +
* {{f|link=v1gleis_verlegen_1|line=9}} Dem Verleger wird jeden Block der Punktestand um eins erhöht, um alle 14 Blöcke die Funktion Gleis-Verlegen-2 aufzurufen{{f|link=v1gleis_verlegen_1|line=10|up=1}} und anschließend wieder von vorne zu zählen{{f|link=v1gleis_verlegen_1|line=11|up=1}}
  +
  +
* {{f|link=v1gleis_verlegen_1|line=14}} Der Gleisverleger wird um einen Block nach vorne teleportiert
  +
* {{f|link=v1gleis_verlegen_1|line=15}} Falls hinter ihm (der Gleisverleger schaut immer nach hinten) weder Luft noch irgendeine Schiene ist, wird er um einen Block nach oben teleportiert
  +
* {{f|link=v1gleis_verlegen_1|line=16}} Falls sich jedoch unter ihm einen Block hinten Luft befindet, wird er wieder einen Block nach unten teleportiert
  +
* {{f|link=v1gleis_verlegen_1|line=17}} Als letztes wird geprüft ob unter ihm ein Block vor ihm sich irgend eine Schiene befindet, falls das der Fall ist wird er um einen block nach unten teleportiert
  +
  +
{{f|name=technik_wiki:gleisverleger/v1gleis_verlegen_1|alias=v1gleis_verlegen_1|1=
  +
# Das Gleisbett, samt Gleisen wird in Blickrichtung des Gleisverlegers platziert
  +
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett,sort=nearest,limit=2] rotated ~ 0 run fill ^2 ^2 ^ ^-2 ^4 ^ minecraft:light_gray_stained_glass replace minecraft:cave_air
  +
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett,sort=nearest,limit=2] rotated ~ 0 run fill ^1 ^2 ^ ^-1 ^3 ^ minecraft:air replace
  +
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett,sort=nearest,limit=2] rotated ~ 0 rotated ~ 0 run setblock ~ ~ ~ minecraft:andesite replace
  +
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisspur,sort=nearest,limit=3] rotated ~ 0 run setblock ~ ~ ~ minecraft:smooth_stone replace
  +
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleis,sort=nearest,limit=2] rotated ~ 0 run setblock ~ ~1 ~ minecraft:rail replace
  +
  +
# Die verlegten Gleise werden gezählt, damit beim 14. Gleis eine Antriebsschiene samt Oberleitung durch die aufgerufene Funktion entsteht
  +
scoreboard players add @s PZGleisV.1Schl 1
  +
execute if entity @s[scores={PZGleisV.1Schl=14..}] run function technik_wiki:gleisverleger/v1gleis_verlegen_2
  +
scoreboard players set @s[scores={PZGleisV.1Schl=14..}] PZGleisV.1Schl 0
  +
  +
# Der Gleisverleger wird einen Block nach vorne teleportiert und es wird geprüft ob er noch auf festen Untergrund steht, falls nicht, wird er entsprechend neu positioniert
  +
execute rotated ~ 0 run teleport @s ^ ^ ^1
  +
execute at @s rotated ~ 0 unless block ^ ^ ^1 minecraft:air unless block ^ ^ ^1 #minecraft:rails run teleport @s ~ ~1 ~
  +
execute at @s rotated ~ 0 if block ^ ^-1 ^1 minecraft:air run teleport @s ~ ~-1 ~
  +
execute at @s rotated ~ 0 if block ^ ^-1 ^-1 #minecraft:rails run teleport @s ~ ~-1 ~
  +
}}
  +
  +
  +
{{fü|1|name=Gleis-Verlegen-2}}
  +
Alle 14 Blöcke, wird diese Funktion aufgerufen um Antriebsschienen und Redstone-Fackeln zu platzieren
  +
* {{f|link=v1gleis_verlegen_2|line=2}} Platziert Steinziegel, Fichtenzäune{{f|link=v1gleis_verlegen_2|line=3|up=1}}, Fichtenholzbretter{{f|link=v1gleis_verlegen_2|line=4|up=1}} und Antriebsschienen{{f|link=v1gleis_verlegen_2|line=5|up=1}}
  +
  +
* {{f|link=v1gleis_verlegen_2|line=8}} Für eine der vier Himmelsrichtung wird eine Redstone-Fackel entsprechend platziert{{f|link=v1gleis_verlegen_2|line=9|up=1}}{{f|link=v1gleis_verlegen_2|line=10|up=1}}{{f|link=v1gleis_verlegen_2|line=11|up=1}}
  +
  +
* {{f|link=v1gleis_verlegen_2|line=14}} Eine zweite Antriebsschiene wird platziert, wenn der Verleger zwei Gleisstrecken platziert
  +
* {{f|link=v1gleis_verlegen_2|line=15}} Eine zweite Redstone-Fackel wird je nach Himmelsrichtung entsprechend platziert{{f|link=v1gleis_verlegen_2|line=16|up=1}}{{f|link=v1gleis_verlegen_2|line=17|up=1}}{{f|link=v1gleis_verlegen_2|line=18|up=1}}
  +
  +
  +
{{f|name=technik_wiki:gleisverleger/v1gleis_verlegen_2|alias=v1gleis_verlegen_2|1=
  +
# In Blickrichtung des Gleisverlegers wird die Antriebsschiene wie auch die Oberleitung platziert
  +
setblock ^1 ^ ^-1 minecraft:stone_bricks replace
  +
setblock ^1 ^1 ^-1 minecraft:spruce_fence replace
  +
setblock ^1 ^2 ^-1 minecraft:spruce_planks replace
  +
setblock ^ ^1 ^-1 minecraft:powered_rail replace
  +
  +
# Je nach Blickrichtung wird die Redstone-Fackel entsprechend platziert
  +
execute if entity @s[y_rotation=135..-135] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=west] replace
  +
execute if entity @s[y_rotation=-135..-45] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=north] replace
  +
execute if entity @s[y_rotation=-45..45] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=east] replace
  +
execute if entity @s[y_rotation=45..135] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=south] replace
  +
  +
# Falls es sich um einen Verleger mit zwei Spuren handelt, wird auch eine zweite Antriebsschiene und die Redstone-Fackel platziert
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run setblock ^2 ^1 ^-1 minecraft:powered_rail replace
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=135..-135] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=east] replace
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=-135..-45] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=south] replace
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=-45..45] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=west] replace
  +
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=45..135] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=north] replace
  +
}}
  +
  +
  +
{{fü|1|name=Stopp}}
  +
Die Stopp-Funktion löscht alle Punktestand-Ziele und die Gegenstände im Inventar des Spielers, sowie auch die Gleisverleger und eventuell für diese herumliegende Gegenstände
  +
* {{f|link=v1stopp|line=2}} Das Punktestand-Ziel für das Schleichen, für Schienen{{f|link=v1stopp|line=3|up=1}}, Andesit{{f|link=v1stopp|line=4|up=1}} und Steine{{f|link=v1stopp|line=5|up=1}} wird gelöscht
  +
  +
* {{f|link=v1stopp|line=8}} Die Rüstungsständer, die Schienen{{f|link=v1stopp|line=9|up=1}}, die Steine{{f|link=v1stopp|line=10|up=1}} und Andesit{{f|link=v1stopp|line=11|up=1}} wird aus dem Inventar gelöscht
  +
  +
* {{f|link=v1stopp|line=14}} Alle Rüstungsständer vom Gleisverleger werden gelöscht
  +
* {{f|link=v1stopp|line=15}} Alle Gegenstände die herum liegen und für den Gleisverleger verwendet werden könnten, werden gelöscht
  +
  +
{{f|name=technik_wiki:gleisverleger/v1stopp|alias=v1stopp|1=
  +
# Die Punktestand-Ziele werden gelöscht
  +
scoreboard objectives remove PZGleisV.1Schl
  +
scoreboard objectives remove PZGleisV.1Gleis
  +
scoreboard objectives remove PZGleisV.1Andes
  +
scoreboard objectives remove PZGleisV.1Stein
  +
  +
# Die Materialien, inklusive der Gleisverleger werden aus dem Inventar gelöscht
  +
clear @a[distance=..25] minecraft:armor_stand{display:{Lore:["Gleisverleger.1"] } }
  +
clear @a[distance=..25] minecraft:rail{display:{Lore:["Gleisverleger.1"] } }
  +
clear @a[distance=..25] minecraft:stone{display:{Lore:["Gleisverleger.1"] } }
  +
clear @a[distance=..25] minecraft:andesite{display:{Lore:["Gleisverleger.1"] } }
  +
  +
# Alle Gleisverleger sowie Drops die damit zu tun haben werden gelöscht
  +
kill @e[tag=EtiGleisV.1Alle]
  +
kill @e[type=minecraft:item,nbt={tag:{display:{Lore:["Gleisverleger.1"] } } } ]
  +
}}
   
 
== Variante 2 ==
 
== Variante 2 ==
{{Voraussetzung|SN|preset2=RS|der Streckenverleger|
+
{{Voraussetzung|
*[[Redstone-Schaltkreise/Taktgeber|Taktgeber]]
+
*[[Schaltkreise/Taktgeber (Befehle)]]
  +
*{{mcw|Blickwinkel}}
*[[Straßenverkehrsanlagen/Automobil|Automobil]]
 
*{{b|/setblock}}
+
*{{mcw|Koordinaten}}
*{{b|/clone}}
+
*{{mcw|Funktion}}
  +
|
*{{b|/fill}}
 
  +
* {{Gridbild|Hebel|link}}
  +
* {{Gridbild|Redstone-Fackel|link}}
  +
* {{Gridbild|Befehlsblock|link}}
  +
* {{Gridbild|Wiederhol-Befehlsblock|link}}
 
}}
 
}}
  +
{{Bilderfolge|#1#2#3#4|Gleisbaumaschine (Befehle) Bild 1.|400px|list=1}}
[[Datei:Schienenverkehrsanlagen Streckenverleger2Bild1.png|400px]]
 
[[Datei:Schienenverkehrsanlagen Streckenverleger2Bild2.png|400px]]
 
{{-}}
 
Diese Variante ist in der Lage, eine Strecke auch unter dem Meer zu verlegen. Sie verlegt, bevor eine Strecke gebildet wird, zuerst die Glasfassade, welche die Schienen vor dem Wasser schützen. Dann wird die Glasfassade ausgehöhlt und dann folgen die Gleise. Für das Fortbewegen wird der Befehl<ref group="B 3">{{b|/clone ~ ~ ~ ~3 ~-2 ~2 ~1 ~-2 ~ replace move}}</ref> genutzt, der hier den gleichen Umfang umfasst wie in der ersten Variante. Hierbei wird die Glasfasse vor dem Fahrzeug platziert um es direkt vor allen äußeren Einflüssen zu schützen. Die Befehle<ref group="B 3">{{b|/fill ~5 ~ ~1 ~5 ~3 ~-3 glass}} <br> {{b|/fill ~4 ~-1 ~ ~5 ~1 ~-2 air}}</ref> sorgen für die Glasfassade über den Schienen, die durch die Befehle<ref group="B 3">{{b|/fill ~-4 ~-1 ~-1 ~-4 ~-1 ~-1 stone 5}} <br> {{b|/fill ~-5 ~ ~-1 ~-4 ~ ~-1 rail 1}}</ref> gesetzt werden. Auch hier bewegt sich das Fahrzeug nach Osten und es werden auch Eisenblöcke um das Gleisbett mit dem Befehl<ref group="B 3">{{b|/fill ~-4 ~ ~-2 ~-4 ~ ~ iron_block}}</ref>. Der Hebel zum Ein- und Ausschalten befindet sich wie bei allen auf das Automobil basierende Verleger hinten am Fahrzeug, damit er vor Wasser geschützt ist und man ihn trotzdem noch beim Fahren erreichen kann. [[Schienenverkehrsanlagen/Streckenführung|Seetunnel]] welche dieses Fahrzeug baut, sind mit dieser Methode wesentlich einfacher und schneller zu erstellen, als wenn man solche Tunnel manuell baut.
 
   
  +
Mit dieser Variante kann man bestimmte vorgegebene Gleisstrecken selbst per Hand sehr leicht platzieren. Man platziert einfach an der gewünschten Stelle den zuvor erhaltenen Rüstungsständer und dieser lässt eine Gleisstrecke entstehen. Man sollte dies nur auf ebenen Gelände verwenden, da schon kleinste Erhebungen sehr schwer auszugleichen sind, oder man passt das dann mit der Hand an.
Befehle:
 
<references group="B 3" />
 
{{-}}
 
[[Datei:Schienenverkehrsanlagen Streckenverleger2Bild3.png|400px]]
 
[[Datei:Schienenverkehrsanlagen Streckenverleger2Bild4.png|400px]]
 
{{-}}
 
Auch diese Variante kann man erweitern, sodass sie zwei Gleise legt<ref group="B 4">{{b|/fill ~-3 ~ ~-2 ~-2 ~ ~-2 rail 1}} <br> {{b|/fill ~-2 ~-1 ~ ~-1 ~-1 ~ rail 1}}</ref>. Hierbei sind die Glasfassaden breiter<ref group="B 4">{{b|/fill ~5 ~-1 ~2 ~5 ~2 ~-4 glass}} <br> {{b|/fill ~2 ~-1 ~1 ~3 ~1 ~-3 air}}</ref>, um zwei Gleise zu fassen. Die beiden Gleise mit Gleisbett<ref group="B 4">{{b|/fill ~-4 ~-1 ~-2 ~-4 ~-1 ~-2 stone 5}} <br> {{b|/fill ~-3 ~-1 ~ ~-3 ~-1 ~ stone 5}}</ref> werden zur gleichen Zeit platziert.
 
   
  +
;Einschalten
Befehle:
 
  +
Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus
<references group="B 4" />
 
  +
* {{bb|2|1}} Die Funktion {{f|link=v2start}} wird aktiviert
  +
  +
;Wiederholen
  +
Der Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus
  +
* {{bb|2|2}} die Funktion {{f|link=v2zyklus}} wird jeden Tick erneut ausgeführt.
  +
  +
;Ausschalten
  +
Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert
  +
* {{bb|2|3}} Die Funktion {{f|link=v2stopp}} wird einmal ausgeführt
  +
  +
{{Ausklappmenü|offen=1|{{bb}}|
  +
{{bb|2|1|i|4=function technik_wiki:gleisverleger/v2start}}
  +
{{bb|2|2|w|4=function technik_wiki:gleisverleger/v2zyklus}}
  +
  +
  +
{{bb|2|3|i|4=function technik_wiki:gleisverleger/v2stopp}}
  +
}}
  +
  +
{{fü|2|name=Start}}
  +
Die Start-Funktion gibt dem Spieler zwei Rüstungsständer für gerade und kurvige Gleisstrecken
  +
  +
{{f|name=technik_wiki:gleisverleger/v2start|alias=v2start|1=
  +
# Dem Spieler werden zwei Rüstungsständer gegeben die bestimmte Gleisstrecken erzeugen
  +
give @a[distance=..25] minecraft:armor_stand{Gleisverleger.2:true,display:{Name:"{\"text\":\"Gleisstrecke\"}"},EntityTag:{Tags:["EtiGleisV.2Alle","EtiGleisV.2Bauwerk","EtiGleisV.2Gleisstrecke"]} } 1
  +
give @a[distance=..25] minecraft:armor_stand{Gleisverleger.2:true,display:{Name:"{\"text\":\"Gleiskurve\"}"},EntityTag:{Tags:["EtiGleisV.2Alle","EtiGleisV.2Bauwerk","EtiGleisV.2Gleiskurve"]} } 1
  +
}}
  +
  +
{{fü|2|name=Zyklus}}
  +
Die Zyklus-Funktion testet ob einer der Rüstungsständer platziert wurde und reagiert darauf entsprechend mit einer Funktion und löscht diese Rüstungsständer am Ende
  +
  +
{{f|name=technik_wiki:gleisverleger/v2zyklus|alias=v2zyklus|1=
  +
# Sobald ein Rüstungsständer platziert ist, wird für diesen die entsprechende Funktion aufgerufen
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.2Gleisstrecke] at @s run function technik_wiki:gleisverleger/v2gleisstrecke
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.2Gleiskurve] at @s run function technik_wiki:gleisverleger/v2gleiskurve
  +
  +
# Sobald der Rüstungsständer platziert wurde, wird ein Redstone-Block einen Block abseits platziert um die Konstruktion zu laden
  +
execute at @e[type=minecraft:armor_stand,tag=EtiGleisV.2Bauwerk] run setblock ~ ~ ~1 minecraft:redstone_block replace
  +
  +
# Der platzierte Rüstungsständer wird anschließend gelöscht
  +
kill @e[type=minecraft:armor_stand,tag=EtiGleisV.2Bauwerk]
  +
}}
  +
  +
{{fü|2|name=Gleisstrecke}}
  +
Die Gleisstrecken-Funktion platziert die Gleisstrecke je nach Blickwinkel des Spielers entsprechend zu diesem ausgerichtet auf dem Boden
  +
  +
{{f|name=technik_wiki:gleisverleger/v2gleisstrecke|1=
  +
# Je nach Blickwinkel des Spielers wird der entsprechende Konstruktionsblock platziert
  +
execute as @p if entity @s[y_rotation=135..45] unless entity @s[y_rotation=-135..-45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"NONE",mode:"LOAD",posX:-1,posY:0,posZ:-5,name:"technik_wiki:gleisverleger/v2gleisstrecke"} replace
  +
execute as @p if entity @s[y_rotation=-135..135] unless entity @s[y_rotation=-45..45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"CLOCKWISE_90",mode:"LOAD",posX:5,posY:0,posZ:-1,name:"technik_wiki:gleisverleger/v2gleisstrecke"} replace
  +
}}
  +
  +
{{fü|2|name=Gleiskurve}}
  +
Die Gleiskurven-Funktion platziert eine Gleiskurve abhängig der Blickrichtung des Spielers entsprechend auf dem Boden
  +
  +
{{f|name=technik_wiki:gleisverleger/v2gleiskurve|1=
  +
# Je nach Blickwinkel des Spielers wird der jeweilige Konstruktionsblock platziert
  +
execute as @p if entity @s[y_rotation=-135..-45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"NONE",mode:"LOAD",posX:-2,posY:0,posZ:-2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace
  +
execute as @p if entity @s[y_rotation=-45..45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"CLOCKWISE_90",mode:"LOAD",posX:2,posY:0,posZ:-2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace
  +
execute as @p if entity @s[y_rotation=45..135] run setblock ~ ~ ~ minecraft:structure_block{rotation:"CLOCKWISE_180",mode:"LOAD",posX:2,posY:0,posZ:2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace
  +
execute as @p if entity @s[y_rotation=135..-135] run setblock ~ ~ ~ minecraft:structure_block{rotation:"COUNTERCLOCKWISE_90",mode:"LOAD",posX:-2,posY:0,posZ:2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace
  +
}}
  +
  +
{{fü|2|name=Stopp}}
  +
Die Stopp-Funktion löscht alle Gegenstände in dem Inventar und löscht eventuell vorhandene Rüstungsständer und Gegenstände für diese Gleisstrecken
  +
  +
{{f|name=technik_wiki:gleisverleger/v2stopp|alias=v2stopp|1=
  +
# Löscht alle Gegenstände aus dem Inventar
  +
clear @a[distance=..25] minecraft:armor_stand{Gleisverleger.2:true}
  +
  +
# Gibt eventuell auf dem Boden herumliegenden Gegenständen das Etikett, womit nachher alle Objekte, die das Etikett haben gelöscht werden
  +
tag @e[type=minecraft:item,nbt={Item:{tag:{Gleisverleger.2:true} } }] add EtiGleisV.2Alle
  +
kill @e[tag=EtiGleisV.2Alle]
  +
}}
   
 
== Variante 3 ==
 
== Variante 3 ==
{{Voraussetzung|SN|preset2=RS|der Streckenverleger|
+
{{Voraussetzung|
*[[Redstone-Schaltkreise/Taktgeber|Taktgeber]]
+
*[[Schaltkreise/Taktgeber (Befehle)]]
  +
*{{mcw|Blickwinkel}}
*[[Redstone-Schaltkreise/Zähler|Zähler]]
 
  +
*{{mcw|Koordinaten}}
*[[Straßenverkehrsanlagen/Automobil|Automobil]]
 
*{{b|/setblock}}
+
*{{mcw|Funktion}}
  +
|
*{{b|/fill}}
 
*{{b|/clone}}
+
* {{Gridbild|Hebel|link}}
  +
* {{Gridbild|Redstone-Fackel|link}}
  +
* {{Gridbild|Befehlsblock|link}}
  +
* {{Gridbild|Wiederhol-Befehlsblock|link}}
 
}}
 
}}
  +
{{Bilderfolge|#1#2#3#4|Gleisbaumaschine (Befehle) Bild 3.|400px|list=1}}
[[Datei:Schienenverkehrsanlagen Streckenverleger3Bild1.png|400px]]
 
[[Datei:Schienenverkehrsanlagen Streckenverleger3Bild2.png|400px]]
 
{{-}}
 
Dieser Streckenverleger ist nicht für normale Schienenanlagen gedacht, sondern für die [[Schienenverkehrsanlagen/Eisenbahn|Eisenbahn]], die per Befehlsblöcke über diese Eisenbahnschiene gleitet. Wenn der Taktgeber eingeschaltet ist, sorgt der Befehl<ref group="B 5">{{b|/clone ~ ~ ~ ~3 ~-2 ~2 ~1 ~-2 ~ replace move}}</ref> für die Fortbewegung. Der Befehl<ref group="B 5">{{b|/fill ~-4 ~ ~-4 ~-4 ~ ~2 stone 5}}</ref> setzt das Gleisbett, auf dem nachher die Schiene gesetzt wird. Die Befehle<ref group="B 5">{{b|/setblock ~-2 ~ ~ stone_brick_stairs 2}} <br> {{b|/setblock ~-1 ~-1 ~-2 stone_brick_stairs 3}}</ref> setzen die Steinziegelstufen so, dass dies einem Gleis ähnelt. Die Bretter unter den Gleisen werden durch den Befehl<ref group="B 5">{{b|/fill ~-3 ~ ~-3 ~-3 ~ ~1 wooden_slab 1}}</ref> gesetzt. Das geschieht aber nur jeden zweiten rechtsklick, da dazwischen ein Zähler geschaltet ist<ref group="B 5">{{b|1=/scoreboard players reset @p[r=25,score_Streckenzaeler5_min=2] Streckenzaeler5}}</ref>, der bis zwei zählt. Der Zähler ist nur mit Befehlsblöcken realisierbar<ref group="B 5">{{b|1=/scoreboard players add @p[r=25] Streckenzaeler5 1}}</ref>. Hierbei addiert der letzte Ketten-Befehlsblock auf das Punktestand-Objekt<ref group="B 5">{{b|/scoreboard objectives add Streckenzaeler5 dummy}}</ref> bei jedem rechtsklick der Karottenrute einen Wert von eins dazu. Wenn er bei zwei angelangt ist, wird der bedingte Ketten-Befehlsblock die aktiv und setzt die Holzstufen.
 
   
  +
Mit dem Gleisverleger lassen sich Gleisstrecken für [[Schienenverkehrsanlagen/Eisenbahn (Befehle)|Eisenbahnen]] erstellen. Je nach Blickrichtung des Spielers wird die Eisenbahnstrecke entsprechend gebaut. Hierbei rastet der Gleisverleger in eine der vier Himmelsrichtungen ein und kann nicht vom Raster befreit werden, da diagonale oder komplett abseitige Wegstrecken keine Eisenbahn fähig wäre, diese Gleisstrecken zu befahren. Auch kann die Gleisstrecke auch minimalste Höhen nicht überwinden.
Befehle:
 
<references group="B 5" />
 
{{-}}
 
[[Datei:Schienenverkehrsanlagen Streckenverleger3Bild3.png|400px]]
 
[[Datei:Schienenverkehrsanlagen Streckenverleger3Bild4.png|400px]]
 
{{-}}
 
Auch hier kann man dafür sorgen, dass ein Streckenverleger zwei komplette Schienen verlegt<ref group="B 6">{{b|/setblock ~-1 ~-1 ~2 stone_brick_stairs 3}} <br> {{b|/setblock ~-2 ~-1 ~4 stone_brick_stairs 2}} <br> {{b|/setblock ~-3 ~-1 ~-6 stone_brick_stairs 3}} <br> {{b|/setblock ~-4 ~-1 ~-4 stone_brick_stairs 2}}</ref>. Die Befehle gleichen sich und sind nur bei dem Gleisbett<ref group="B 6">{{b|/fill ~-4 ~ ~-8 ~-4 ~ ~6 stone 5}}</ref> bzw. bei den Schienen abweichend. Allerdings werden für das zweite Gleisbett samt Schienen drei weitere Befehlsblöcke benötigt<ref group="B 6">{{b|/fill ~-3 ~ ~1 ~-3 ~ ~5 wooden_slab 1}} <br> {{b|/fill ~-2 ~ ~-7 ~-2 ~ ~-3 wooden_slab 1}}</ref>.
 
   
  +
;Einschalten
Befehle:
 
  +
Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus
<references group="B 6" />
 
  +
* {{bb|3|1}} Die Funktion {{f|link=v3start}} wird aktiviert
  +
  +
;Wiederholen
  +
Der Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus
  +
* {{bb|3|2}} die Funktion {{f|link=v3zyklus}} wird jeden Tick erneut ausgeführt.
  +
  +
;Ausschalten
  +
Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert
  +
* {{bb|3|3}} Die Funktion {{f|link=v3stopp}} wird einmal ausgeführt
  +
  +
{{Ausklappmenü|offen=1|{{bb}}|
  +
{{bb|3|1|i|4=function technik_wiki:gleisverleger/v3start}}
  +
{{bb|3|2|w|4=function technik_wiki:gleisverleger/v3zyklus}}
  +
  +
  +
{{bb|3|3|i|4=function technik_wiki:gleisverleger/v3stopp}}
  +
}}
  +
  +
  +
{{fü|3|name=Start}}
  +
Die Start-Funktion erstellt alle Punktestand-Ziele und gibt dem Spieler den Gleisverleger in Form eines Rüstungsständers in die Hand.
  +
  +
{{f|name=technik_wiki:gleisverleger/v3start|alias=v3start|1=
  +
# Punktestand-Ziele für die Schleichzeit und die Materialien werden erstellt
  +
scoreboard objectives add PZGleisV.3Schl minecraft.custom:minecraft.sneak_time ["Gleisverleger.3: ",{"text":"Schleichzeit","bold":true}]
  +
scoreboard objectives add PZGleisV.3Schien dummy ["Gleisverleger.3: ",{"text":"Schienen für den Verleger","bold":true}]
  +
scoreboard objectives add PZGleisV.3Schwel dummy ["Gleisverleger.3: ",{"text":"Schwellen für den Verleger","bold":true}]
  +
scoreboard objectives add PZGleisV.3Stein dummy ["Gleisverleger.3: ",{"text":"Stein für den Verleger","bold":true}]
  +
scoreboard objectives add PZGleisV.3Andes dummy ["Gleisverleger.3: ",{"text":"Andesit für den Verleger","bold":true}]
  +
scoreboard objectives add PZGleisV.3Pfeil dummy ["Gleisverleger.3: ",{"text":"Pfeilblöcke für den Verleger","bold":true}]
  +
  +
# Der Rüstungsständer der als Gleisverleger fungiert, wird dem Spieler gegeben
  +
give @a[distance=..25] minecraft:armor_stand{display:{Name:"{\"text\":\"Gleisverleger\"}",Lore:["Gleisverleger.3"]},EntityTag:{Invisible:true,Small:true,NoGravity:true,CustomNameVisible:true,CustomName:"{\"text\":\"Gleisverleger\"}",Tags:["EtiGleisV.3Alle","EtiGleisV.3Verleger","EtiGleisV.3Erstellen"],ArmorItems:[{},{},{},{id:"minecraft:magenta_glazed_terracotta",Count:1b} ],Pose:{Head:[0.0f,0.0f,180.0f] } } } 1
  +
}}
  +
  +
  +
{{fü|3|name=Zyklus}}
  +
Die Zyklus-Funktion erstellt den Verleger bei Bedarf und aktiviert ihn wenn der Spieler ihn benutzen möchte.
  +
  +
* {{f|link=v3zyklus|line=2}} Wenn der Rüstungsständer platziert wird, wird von diesem aus die Erstellen-Funktion aufgerufen, die aus ihm den Gleisverleger macht
  +
  +
* {{f|link=v3zyklus|line=5}} Wenn sich um den Verleger in einem Umkreis von maximal zehn Blöcken ein Spieler befindet wird die Ausrichtungsfunktion in waagerechten Blickwinkel aufgerufen, damit der Gleisverleger sich in die Blickrichtung des Spielers bewegt.
  +
  +
* {{f|link=v3zyklus|line=8}} Wenn sich der Spieler wieder sich um den Verleger befindet, aber dabei auch auf dem Boden steht und schleicht, wird vom Verleger die Gleis-Funktion aus geladen.
  +
  +
{{f|name=technik_wiki:gleisverleger/v3zyklus|alias=v3zyklus|1=
  +
# Wenn der Gleisverleger platziert wurde, wird die Erstellen-Funktion geladen
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.3Erstellen] at @s run function technik_wiki:gleisverleger/v3erstellen
  +
  +
# Befindet sich in einem Radius von zehn Blöcken ein Spieler um den Gleisverleger, so wird die Ausrichtung-Funktion geladen
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.3Verleger] at @s if entity @p[distance=..10] rotated ~ 0 run function technik_wiki:gleisverleger/v3ausrichtung
  +
  +
# Wenn der Spieler mindestens drei Ticks in einem Radius von zehn Blöcken schleicht, wird die Gleis-Funktion geladen
  +
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.3Verleger] at @s if entity @p[distance=..10,scores={PZGleisV.3Schl=3..},nbt={OnGround:true}] rotated ~180 0 run function technik_wiki:gleisverleger/v3gleis
  +
  +
# Falls der Spieler drei Ticks geschlichen ist, wird dieser Punktestand wieder zurück gesetzt
  +
scoreboard players reset @a[scores={PZGleisV.3Schl=3..}] PZGleisV.3Schl
  +
}}
  +
  +
{{fü|3|name=Erstellen}}
  +
Die Erstellen-Funktion gibt dem Spieler in der Nähe des Gleisverlegers alle Materialien für den Gleisbau und erstellt weitere Rüstungsständer die mit einem Block im Kopf andeuten wo die Gleisblöcke platziert werden
  +
  +
{{f|name=technik_wiki:gleisverleger/v3erstellen|1=
  +
# Dem Spieler werden alle Materialien gegeben die er für den Gleisverleger benötigt
  +
give @p[distance=..10] minecraft:stone_brick_stairs{display:{Lore:["Gleisverleger.3"]} } 128
  +
give @p[distance=..10] minecraft:spruce_slab{display:{Lore:["Gleisverleger.3"]} } 192
  +
give @p[distance=..10] minecraft:stone{display:{Lore:["Gleisverleger.3"]} } 128
  +
give @p[distance=..10] minecraft:andesite{display:{Lore:["Gleisverleger.3"]} } 320
  +
give @p[distance=..10] minecraft:magenta_glazed_terracotta{display:{Lore:["Gleisverleger.3"]} } 64
  +
  +
# Anschließend werden eventuell andere Gleisverleger gelöscht
  +
kill @e[distance=0.9..,tag=EtiGleisV.3Alle]
  +
  +
# Sämtliche Materialien die für den Bau der Gleise verwendet werden, werden mit Rüstungsständer die den entsprechenden Materialblock in ihren Kopfslot tragen angezeigt
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchieneRechts","EtiGleisV.3Gleis1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:stone_brick_stairs",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchieneLinks","EtiGleisV.3Gleis1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:stone_brick_stairs",Count:1b}]}
  +
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Rechts1","EtiGleisV.3Gleisspur","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Links1","EtiGleisV.3Gleisspur","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}
  +
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchwelleRechts1","EtiGleisV.3Schwelle","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:spruce_slab",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchwelleMitte1","EtiGleisV.3Schwelle","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:spruce_slab",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchwelleLinks1","EtiGleisV.3Schwelle","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:spruce_slab",Count:1b}]}
  +
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter1","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter2","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter3","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
  +
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter4","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
  +
  +
# Damit diese Funktion nicht mehrmals für den gleichen Rüstungsständer aufgerufen wird, wird das Etikett entfernt
  +
tag @s remove EtiGleisV.3Erstellen
  +
}}
  +
  +
  +
{{fü|3|name=Ausrichtung}}
  +
Die Ausrichtungs-Funktion lässt den Gleisverleger in eine der vier Himmelsrichtungen blicken, je nach dem wo der Spieler hin schaut und positioniert auch die anderen Rüstungsständer die die Blöcke anzeigen entsprechend
  +
  +
{{f|name=technik_wiki:gleisverleger/v3ausrichtung|1=
  +
# Der Gleisverleger schaut immer zum nächstgelegenen Spieler
  +
teleport @s ~ ~ ~ facing entity @p feet
  +
  +
# Damit der Gleisverleger aber nur genau in eine Himmelsrichtung schauen kann, wird die Blickrichtung des Spielers abgefragt und die des Gleisverlegers entsprechend angepasst
  +
execute if entity @s[y_rotation=135..-135] rotated 180 0 run teleport @s ~ ~ ~ 180 ~
  +
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run teleport @s ~ ~ ~ -90 ~
  +
execute if entity @s[y_rotation=-45..45] rotated 0 0 run teleport @s ~ ~ ~ 0 ~
  +
execute if entity @s[y_rotation=45..135] rotated 90 0 run teleport @s ~ ~ ~ 90 ~
  +
  +
# Die Rüstungsständer mit den Materialien werden entsprechend dem Gleismuster am Gleisverleger angeordnet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchieneRechts,sort=nearest,limit=1] ^1 ^0.5 ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchieneLinks,sort=nearest,limit=1] ^-1 ^0.5 ^1 facing entity @p feet
  +
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Rechts1,sort=nearest,limit=1] ^3 ^ ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Links1,sort=nearest,limit=1] ^-3 ^ ^1 facing entity @p feet
  +
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchwelleRechts1,sort=nearest,limit=1] ^2 ^0.5 ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchwelleMitte1,sort=nearest,limit=1] ^ ^0.5 ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchwelleLinks1,sort=nearest,limit=1] ^-2 ^0.5 ^1 facing entity @p feet
  +
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter1,sort=nearest,limit=1] ^2 ^ ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter2,sort=nearest,limit=1] ^1 ^ ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter3,sort=nearest,limit=1] ^-1 ^ ^1 facing entity @p feet
  +
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter4,sort=nearest,limit=1] ^-2 ^ ^1 facing entity @p feet
  +
}}
  +
  +
  +
{{fü|3|name=Gleis}}
  +
Die Gleis-Funktion prüft ob der Spieler die Materialien für den Gleisbau bei sich trägt, nur wenn er das tut, wird ihm das Material abgezogen und die Gleis-Verlegen-1-Funktion geladen, ansonsten erhält er eine Fehlernachricht.
  +
  +
{{f|name=technik_wiki:gleisverleger/v3gleis|1=
  +
# Um den schleichenden Spieler besser zu erfassen, wird ihm ein Etikett gegeben
  +
tag @p[distance=..10,scores={PZGleisV.3Schl=1..}] add EtiGleisV.3Spieler
  +
  +
# Zuerst wird in den Punktestand-Zielen des Spielers die Anzahl der Materialien gespeichert
  +
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Schien run clear @s minecraft:stone_brick_stairs 0
  +
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Schwel run clear @s minecraft:spruce_slab 0
  +
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Stein run clear @s minecraft:stone 0
  +
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Andes run clear @s minecraft:andesite 0
  +
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Pfeil run clear @s minecraft:magenta_glazed_terracotta 0
  +
  +
# Wenn die Anzahl größer oder gleich dem benötigten entspricht, werden diese Materialien aus dem Inventar abgezogen
  +
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:stone_brick_stairs 2
  +
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:stone 2
  +
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:spruce_slab 3
  +
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:andesite 5
  +
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:magenta_glazed_terracotta 1
  +
  +
# Wenn der Spieler genug Material hatte, wird die Gleis-Verlegen-1-Funktion geladen, ansonsten erhält der Spieler eine Fehlermeldung
  +
execute if entity @p[tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] run function technik_wiki:gleisverleger/v3gleis_verlegen_1
  +
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] unless entity @s[scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] run tellraw @s ["Gleisverleger.3 ",{"text":"Du hast zu wenig Blöcke bei dir!","bold":true}]
  +
  +
# Am Ende wird das Etikett wieder entfernt
  +
tag @p[distance=..10,tag=EtiGleisV.3Spieler] remove EtiGleisV.3Spieler
  +
}}
  +
  +
  +
{{fü|3|name=Gleis-Verlegen-1}}
  +
Die Gleis-Verlegen-1-Funktion platziert die einzelnen Blöcke für das Gleis, alle zwei Blöcke wird eine Schwelle platziert und alle 14 Blöcke wird die Gleis-Verlegen-2-Funktion für die Oberleitung aufgerufen.
  +
  +
{{f|name=technik_wiki:gleisverleger/v3gleis_verlegen_1|1=
  +
# Es wird ein großer Luftraum frei gemacht und dann folgt das Gleisbett
  +
execute rotated ~ 0 run fill ^3 ^1 ^ ^-3 ^8 ^ minecraft:air replace
  +
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.3Gleisbett1,sort=nearest,limit=4] rotated ~ 0 rotated ~ 0 run setblock ~ ~ ~ minecraft:andesite replace
  +
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.3Gleisspur,sort=nearest,limit=4] rotated ~ 0 rotated ~ 0 run setblock ~ ~ ~ minecraft:smooth_stone replace
  +
  +
# Je nach Blickrichtung des Spielers, wird das Gleis in Form von Treppen entsprechend platziert
  +
execute if entity @s[y_rotation=135..-135] rotated 180 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=west] replace
  +
execute if entity @s[y_rotation=135..-135] rotated 180 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=east] replace
  +
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=north] replace
  +
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=south] replace
  +
execute if entity @s[y_rotation=-45..45] rotated 0 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=east] replace
  +
execute if entity @s[y_rotation=-45..45] rotated 0 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=west] replace
  +
execute if entity @s[y_rotation=45..135] rotated 90 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=south] replace
  +
execute if entity @s[y_rotation=45..135] rotated 90 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=north] replace
  +
  +
# Die Pfeil-Blöcke werden je nach Blickrichtung des Spieler richtig angeordnet
  +
execute if entity @s[y_rotation=135..-135] rotated 180 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=north] replace
  +
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=east] replace
  +
execute if entity @s[y_rotation=-45..45] rotated 0 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=south] replace
  +
execute if entity @s[y_rotation=45..135] rotated 90 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=west] replace
  +
  +
# Alle zwei Blöcke muss eine Schwelle platziert werden, dazu wird jeder Block gezählt
  +
scoreboard players add @s PZGleisV.3Schl 1
  +
execute if entity @s[scores={PZGleisV.3Schl=2..}] at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.3Schwelle,sort=nearest,limit=3] rotated ~ 0 run setblock ~ ~1 ~ minecraft:spruce_slab replace
  +
scoreboard players set @s[scores={PZGleisV.3Schl=2..}] PZGleisV.3Schl 0
  +
  +
# Für die Oberleitung der Eisenbahn wird alle 14 Blöcke ein Oberleitungsmast aufgestellt
  +
scoreboard players add @s PZGleisV.3Pfeil 1
  +
execute if entity @s[scores={PZGleisV.3Pfeil=14..}] run function technik_wiki:gleisverleger/v3gleis_verlegen_2
  +
scoreboard players set @s[scores={PZGleisV.3Pfeil=14..}] PZGleisV.3Pfeil 0
  +
  +
# Je nach Blickrichtung, wird der Gleisverleger entsprechend bewegt
  +
execute if entity @s[y_rotation=135..-135] rotated 180 0 run teleport @s ^ ^ ^-1
  +
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run teleport @s ^ ^ ^-1
  +
execute if entity @s[y_rotation=-45..45] rotated 0 0 run teleport @s ^ ^ ^-1
  +
execute if entity @s[y_rotation=45..135] rotated 90 0 run teleport @s ^ ^ ^-1
  +
}}
  +
  +
  +
{{fü|3|name=Gleis-Verlegen-2}}
  +
Die Gleis-Verlegen-2-Funktion platziert je nach Blickwinkel des Gleisverlegers die Oberleitung in entsprechender Himmelsrichtung
  +
  +
{{f|name=technik_wiki:gleisverleger/v3gleis_verlegen_2|1=
  +
# Für den Masten werden Steine und Mauern platziert
  +
fill ^3 ^ ^-1 ^3 ^ ^-3 minecraft:stone_bricks replace
  +
fill ^3 ^1 ^-2 ^3 ^4 ^-2 minecraft:cobblestone_wall replace
  +
fill ^3 ^5 ^-2 ^3 ^6 ^-2 minecraft:spruce_fence replace
  +
fill ^3 ^7 ^-2 ^3 ^10 ^-2 minecraft:cobblestone_wall replace
  +
  +
# Je nach Blickrichtung werden die Abnehmer in Form von Zauntoren entsprechend ausgerichtet
  +
execute if entity @s[y_rotation=135..-135] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=north] replace
  +
execute if entity @s[y_rotation=-135..-45] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=east] replace
  +
execute if entity @s[y_rotation=-45..45] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=south] replace
  +
execute if entity @s[y_rotation=45..135] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=west] replace
  +
}}
  +
  +
  +
{{fü|3|name=Stopp}}
  +
Die Stopp-Funktion löscht alle Punktestand-Ziele, alle Gegenstände die man im Inventar besaß und alle Gegenstände die auf dem Boden liegen sowie den Gleisverleger selbst
  +
  +
{{f|name=technik_wiki:gleisverleger/v3stopp|alias=v3stopp|1=
  +
# Alle Punktestand-Ziele werden gelöscht
  +
scoreboard objectives remove PZGleisV.3Schl
  +
scoreboard objectives remove PZGleisV.3Schien
  +
scoreboard objectives remove PZGleisV.3Schwel
  +
scoreboard objectives remove PZGleisV.3Stein
  +
scoreboard objectives remove PZGleisV.3Andes
  +
scoreboard objectives remove PZGleisV.3Pfeil
  +
  +
# Alle Gegenstände für den Gleisverleger werden gelöscht
  +
clear @a[distance=..25] minecraft:armor_stand{display:{Lore:["Gleisverleger.3"] } }
  +
clear @a[distance=..25] minecraft:stone_brick_stairs{display:{Lore:["Gleisverleger.3"] } }
  +
clear @a[distance=..25] minecraft:spruce_slab{display:{Lore:["Gleisverleger.3"] } }
  +
clear @a[distance=..25] minecraft:stone{display:{Lore:["Gleisverleger.3"] } }
  +
clear @a[distance=..25] minecraft:andesite{display:{Lore:["Gleisverleger.3"] } }
  +
clear @a[distance=..25] minecraft:magenta_glazed_terracotta{display:{Lore:["Gleisverleger.3"]} }
  +
  +
# Alle Gleisverleger und Gegenstände für diesen, die herum liegen, werden gelöscht
  +
kill @e[tag=EtiGleisV.3Alle]
  +
kill @e[type=minecraft:item,nbt={tag:{display:{Lore:["Gleisverleger.3"]} } }]
  +
}}
   
 
{{Unterseite|
 
{{Unterseite|
  +
{{Technik-Familien|familie=verleger}}
{{Navbox-Mechanismen|Befehlsblock-Verkehrsanlage}}
 
  +
{{Navbox-Technik}}
  +
{{Navbox-Technik|Technik}}
 
}}
 
}}

Version vom 8. Mai 2019, 20:35 Uhr

Gruppe: Grid Schiene
Schienenverkehrsanlagen

Grid Roter Sand blass mit Mechaniken

Grid Redstone blass mit Redstone
                Hier:
Grid Befehlsblock mit Befehlen
Verfügbar in:
Wiki Schienen-Welt Schienen-Welt

Der Gleisverleger wird dafür genutzt um Gleisstrecken mit viel weniger Aufwand zu platzieren, als mit der Hand. Der Gleisverleger kann in allen Himmelsrichtungen verwendet werden, dazu positioniert man sich so zu dem Gleisverleger, sodass er in die gewünschte Richtung schaut und dann startet man ihn. Alle Blöcke die der Gleisverleger für den Bau des Gleisbettes und der Gleise verbaut, muss der Spieler bei manchen Varianten bei sich tragen, da ansonsten der Gleisverleger nicht weiter baut, bei anderen Varianten werden die Gleisstrecken auch so gebaut. Die Gleisverleger sind nur für halbwegs ebene Gelände gedacht (kleine Hügel können sie passieren) und sollten nicht in Gebirgen oder Ozeanen zum Einsatz kommen, dafür werden die Brückenbauer verwendet, die für beides bestens gewappnet sind.

Manche Gleisverleger sind auch für die Eisenbahn konzipiert. Diese Gleisstrecken sind nicht für Loren nutzbar und besitzen auch grundsätzlich eher kosmetischen Charakter. Darüber hinaus erfüllen sie jedoch die Voraussetzung, die eine Eisenbahn verlangt, damit sie diese Wege befahren kann.

Variante 1

Gleisbaumaschine (Befehle) Bild 2.1 Gleisbaumaschine (Befehle) Bild 2.2 Gleisbaumaschine (Befehle) Bild 2.3 Gleisbaumaschine (Befehle) Bild 2.4

Dieser Gleisverleger benötigt das Material was er für den Bau von Gleisstrecken einsetzt. Man schleicht einfach in der Nähe des Gleisverlegers und dieser macht sich auf und platziert Block für Block die Gleisstrecke. Er kann entweder nach dem Raster exakt in den vier Himmelsrichtungen entlangfahren oder auch Rasterfrei in jede beliebige Richtung gesteuert werden, allerdings kann es dann manchmal zu unerwünschten Löschern in der Gleisstrecke kommen.

Einschalten

Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus

Wiederholen

Der Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus

Ausschalten

Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert


Befehlsblöcke mit Befehlen:



Variante 1: Start-Funktion
Die Start-Funktion erstellt alle nötigen Punktestand-Ziele für die Materialien und der Schleichzeit und gibt dem Spieler den Gleisverleger in die Hand

  • Zeile 2 Es werden ein Punktestand-Ziel für das Schleichen wird erstellt, sowie für Gleise[Z3], Andesit[Z4] und Steine[Z5]
  • Zeile 8 Spielern in einem Umkreis von 25 Blöcken wird ein Rüstungsständer gegeben, der beim Platzieren zum Gleisverleger wird
Editor Icon technik_wiki:gleisverleger/v1start.mcfunction
# Punktestand-Ziele werden erstellt
scoreboard objectives add PZGleisV.1Schl minecraft.custom:minecraft.sneak_time ["Gleisverleger.1: ",{"text":"Schleichzeit","bold":true}]
scoreboard objectives add PZGleisV.1Gleis dummy ["Gleisverleger.1: ",{"text":"Schienen für den Verleger","bold":true}]
scoreboard objectives add PZGleisV.1Andes dummy ["Gleisverleger.1: ",{"text":"Andesit für den Verleger","bold":true}]
scoreboard objectives add PZGleisV.1Stein dummy ["Gleisverleger.1: ",{"text":"Steine für den Verleger","bold":true}]

# Spieler in einem Radius von 25 Blöcken erhalten einen Rüstungsständer der den Gleisverleger erstellt, wenn man ihn platziert
give @a[distance=..25] minecraft:armor_stand{display:{Name:"{\"text\":\"Gleisverleger\"}",Lore:["Gleisverleger.1"]},EntityTag:{Invisible:true,Small:true,NoGravity:true,CustomNameVisible:true,CustomName:"{\"text\":\"Gleisverleger\"}",Tags:["EtiGleisV.1Alle","EtiGleisV.1Verleger","EtiGleisV.1Erstellen"],ArmorItems:[{},{},{},{id:"minecraft:magenta_glazed_terracotta",Count:1b} ],Pose:{Head:[0.0f,0.0f,180.0f] } } } 16


Variante 1: Zyklus-Funktion
Die Zyklus-Funktion erstellt bei Bedarf den Gleisverleger und ruft durch diesen auch Gleis-Funktionen für den Bau der Gleisstrecken auf

  • Zeile 2 Falls der Rüstungsständer von dem Spieler platziert wurde, wird für diesen die Erstellen-Funktion aufgerufen, die aus ihm den Gleisverleger macht
  • Zeile 5 Wenn Spieler im Umkreis von zehn Blöcken sich um den Gleisverleger befinden, wird die Ausrichtung-Funktion für den Gleisverleger aufgerufen
  • Zeile 8 Wenn sich die Spieler ebenfalls um den Gleisverleger befinden und dabei auch schleichen, wird die Gleis-Funktion aufgerufen
  • Zeile 11 Falls die Spieler schleichen wird ihr Punktestand wieder zurückgesetzt
Editor Icon technik_wiki:gleisverleger/v1zyklus.mcfunction
# Wenn der Rüstungsständer platziert wird, wird die Erstellen-Funktion durch ihn aufgerufen
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.1Erstellen] at @s run function technik_wiki:gleisverleger/v1erstellen

# Wenn sich der Spieler in der Nähe des Gleisverlegers befindet, wird die Ausrichtungs-Funktion durch ihn aufgerufen
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.1Verleger] at @s if entity @p[distance=..10] rotated ~ 0 run function technik_wiki:gleisverleger/v1ausrichtung

# Wenn der Spieler in der Nähe des Gleisverlegers schleicht, wird die Gleis-Funktion aufgerufen
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.1Verleger] at @s if entity @p[distance=..10,scores={PZGleisV.1Schl=3..},nbt={OnGround:true}] rotated ~180 0 run function technik_wiki:gleisverleger/v1gleis

# Wenn der Spieler mindestens drei Ticks lang geschlichen ist, wird sein Punktestand zurück gesetzt
scoreboard players reset @a[scores={PZGleisV.1Schl=3..}] PZGleisV.1Schl


Variante 1: Erstellen-Funktion
Die Erstellen-Funktion erstellt den Gleisverleger und gibt dem Spieler eine gewisse Menge Material für den Bau der Gleise

  • Zeile 2 Dem Spieler werden 64 Einheiten für Schienen, Andesit[Z3] und Steine[Z4] gegeben
  • Zeile 7 Es werden alle anderen Gleisverleger entfernt
  • Zeile 10 Es werden Rüstungsständer erstellt, die Schienen, Andesit[Z11] und Steine[Z12][Z13] im Kopfslot besitzen
  • Zeile 16 Falls der Verleger für zwei Spuren aktiviert wurde, werden weitere Rüstungsständer für Schienen, Andesit[Z17] und Steine[Z18] erstellt
  • Zeile 21 Als letztes wird dem Gleisverleger das Etikett entfernt
Editor Icon technik_wiki:gleisverleger/v1erstellen.mcfunction
# Dem Spieler in der Nähe werden Schienen, Andesit und Steine gegeben
give @p[distance=..10] minecraft:rail{display:{Lore:["Gleisverleger.1"] } } 64
give @p[distance=..10] minecraft:andesite{display:{Lore:["Gleisverleger.1"] } } 64
give @p[distance=..10] minecraft:stone{display:{Lore:["Gleisverleger.1"] } } 128

# Falls es bereits einen Gleisverleger gibt, wird dieser entfernt, nicht aber der jetzt erstellte
kill @e[distance=0.9..,tag=EtiGleisV.1Alle]

# Weitere Rüstungsständer mit bestimmten Blöcken im Kopfslot werden erstellt um zu zeigen welche Blöcke platziert werden
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleis1","EtiGleisV.1Gleis","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:rail",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleisbett1","EtiGleisV.1Gleisbett","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Rechts1","EtiGleisV.1Gleisspur","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Links1","EtiGleisV.1Gleisspur","EtiGleisV.1EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}

# Falls der Spieler zwei Spuren bauen möchte, werden auch weitere Rüstungsständer für die zweite Spur erstellt
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleis2","EtiGleisV.1Gleis"],ArmorItems:[{},{},{},{id:"minecraft:rail",Count:1b}]}
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Gleisbett2","EtiGleisV.1Gleisbett"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.1Alle","EtiGleisV.1Rechts2","EtiGleisV.1Gleisspur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}

# Damit die Erstellen-Funktion kein zweites mal aufgerufen wird, wird das Etikett von dem Gleisverleger entfernt
tag @s remove EtiGleisV.1Erstellen


Variante 1: Ausrichtung-Funktion
Die Ausrichtung-Funktion richtet den Gleisverleger entweder nach den Himmelsrichtungen aus oder wenn gewünscht richtet sie ihn auch nach der Richtung des Spielers Rasterfrei aus

  • Zeile 2 Zuerst wird der Gleisverleger genau in die Richtung blicken wo der Spieler steht
  • Zeile 5 Je nach Himmelsrichtung wird der Rüstungsständer exakt in eine der vier Himmelsrichtungen ausgerichtet, so für Norden, für Osten[Z6], für Süden[Z7] und für Westen[Z8]
  • Zeile 11 Die Rüstungsständer mit dem entsprechenden Material im Kopfslot werden vom Gleisverleger aus an die entsprechende Position teleportert[Z12][Z13][Z14]
  • Zeile 17 Falls der Gleisverleger für zwei Spuren aktiviert wurde, werden die Rüstungsständer für die zweite Gleisstrecke entsprechend positioniert[Z18][Z19]
Editor Icon technik_wiki:gleisverleger/v1ausrichtung.mcfunction
# Der Rüstungsständer (Gleisverleger) schaut immer in Richtung des nächsten Spielers
teleport @s ~ ~ ~ facing entity @p feet

# Falls die Einstellung fürs Raster getroffen wurde, wird der Gleisverleger nur noch genau in die vier Himmelsrichtungen schauen
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=135..-135] rotated 180 0 run teleport @s ~ ~ ~ 180 ~
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=-135..-45] rotated -90 0 run teleport @s ~ ~ ~ -90 ~
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=-45..45] rotated 0 0 run teleport @s ~ ~ ~ 0 ~
execute if entity @s[tag=!EtiGleisV.1KeinRaster,y_rotation=45..135] rotated 90 0 run teleport @s ~ ~ ~ 90 ~

# Die Rüstungsständer mit den verschiedenen Blöcken im Kopfslot werden an die entsprechende Stelle teleportiert
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleis1,sort=nearest,limit=1] ^ ^0.5 ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett1,sort=nearest,limit=1] ^ ^ ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Rechts1,sort=nearest,limit=1] ^1 ^ ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Links1,sort=nearest,limit=1] ^-1 ^ ^1 facing entity @p feet

# Wenn der Gleisverleger zwei Spuren bauen kann, werden auch die Rüstungsständer für die zweite Spur entsprechend teleportiert
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleis2,sort=nearest,limit=1] ^-2 ^0.5 ^1 facing entity @p feet
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett2,sort=nearest,limit=1] ^-2 ^ ^1 facing entity @p feet
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.1Rechts2,sort=nearest,limit=1] ^-3 ^ ^1 facing entity @p feet

# Wenn der Spieler eine Schiene zum Gleisverleger wirft, wird dieser so erweitert, dass er zwei Schienen verlegen kann
execute if entity @p[distance=1.5..10] run tag @e[distance=..2,type=minecraft:item,tag=!EtiGleisV.1ZweiSpuren,nbt={Item:{id:"minecraft:rail",Count:1b} } ] add EtiGleisV.1ZweiSpuren
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren] run tag @s add EtiGleisV.1Erstellen
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren] run tag @s add EtiGleisV.1ZweiSpuren
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren] run tellraw @a[distance=..10] ["Gleisverleger.1: ",{"text":"Der Gleisverleger platziert nun zwei Gleisspuren","bold":true}]
kill @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1ZweiSpuren]

# Wenn der Spieler einen Rüstungsständer zum Gleisverleger wirft, dann wird die Raster-Stellung entfernt, sodass der Gleisverleger nicht mehr nur in die vier Himmelsrichtungen schaut
execute if entity @p[distance=1.5..10] run tag @e[distance=..2,type=minecraft:item,tag=!EtiGleisV.1KeinRaster,nbt={Item:{id:"minecraft:armor_stand",Count:1b} } ] add EtiGleisV.1KeinRaster
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1KeinRaster] run tag @s add EtiGleisV.1KeinRaster
execute if entity @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1KeinRaster] run tellraw @a[distance=..10] ["Gleisverleger.1: ",{"text":"Der Gleisverleger ist nicht mehr am Raster gebunden und kann nun auch diagonale Gleisspuren verlegen","bold":true}]
kill @e[distance=..2,type=minecraft:item,tag=EtiGleisV.1KeinRaster]


Variante 1: Gleis-Funktion
Die Gleis-Funktion prüft das Inventar des Spielers und nur wenn es den Anforderungen entspricht wird die Funktion für die Gleisstrecke aufgerufen

  • Zeile 2 Damit der Spieler einfacher erfasst werden kann, wird ihm ein Etikett gegeben
  • Zeile 5 In dem Punktestand vom Spieler wird die Anzahl der Schienen, die beim Auslesen des Inventars ausgegeben wird, gespeichert, gleiches gilt für Andesit[Z6] und Stein[Z7]
  • Zeile 10 Nur wenn der Spieler genug Schienen, Andesit und Stein bei sich trägt, wird eine Schiene aus dem Inventar entfernt. Gleiches gilt für Andesit[Z11] und Stein[Z12]
  • Zeile 15 Falls der Gleisverleger zwei Spuren platziert, wird auch nochmal abgefragt ob der Spieler genug Material dabei hat und wenn das der Fall ist, wird ihm eine Schiene entfernt. Gleiches gilt für den Stein[Z16]
  • Zeile 19 Falls der Spieler genug Material bei sich geführt hat, wird die Funktion Gleis-Verlegen-1 aufgerufen
  • Zeile 20 Falls der Spieler nicht genug Material bei sich führt, wird ihm eine Fehlermeldung gegeben
  • Zeile 23 Zum Schluss wird das Etikett wieder entfernt
Editor Icon technik_wiki:gleisverleger/v1gleis.mcfunction
# Der Spieler der schleicht, bekommt ein Etikett, um ihn besser erfassen zu können
tag @p[distance=..10,scores={PZGleisV.1Schl=1..}] add EtiGleisV.1Spieler

# Dem Spieler werden in seinen Punkteständen die Anzahl der vorhandenen Materialien gespeichert
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] store result score @s PZGleisV.1Gleis run clear @s minecraft:rail 0
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] store result score @s PZGleisV.1Andes run clear @s minecraft:andesite 0
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] store result score @s PZGleisV.1Stein run clear @s minecraft:stone 0

# Nur wenn der Spieler von allen Materialien genug hat, werden ihm diese abgezogen
clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:rail 1
clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:andesite 1
clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:stone 2

# Falls der Spieler einen Gleisverleger für zwei Spuren bedient, werden ihm noch weitere Materialien abgezogen
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:rail 1
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run clear @p[distance=..10,tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] minecraft:stone 2

# Nur wenn der Spieler genug von dem Material hatte, wird die Gleis-Verlegen-1-Funktion aufgerufen und falls nicht, dann erhält er eine Fehlermeldung
execute if entity @p[tag=EtiGleisV.1Spieler,scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] run function technik_wiki:gleisverleger/v1gleis_verlegen_1
execute as @p[distance=..10,tag=EtiGleisV.1Spieler] unless entity @s[scores={PZGleisV.1Gleis=2..,PZGleisV.1Andes=2..,PZGleisV.1Stein=3..}] run tellraw @s ["Gleisverleger.1 ",{"text":"Du hast zu wenig Blöcke bei dir!","bold":true}]

# Als letztes wird dem Spieler das Etikett wieder entfernt
tag @p[distance=..10,tag=EtiGleisV.1Spieler] remove EtiGleisV.1Spieler


Variante 1: Gleis-Verlegen-1-Funktion
Die Gleis-Verlegen-1-Funktion platziert das Gleisbett und die Gleise, falls der Gleisverleger für zwei Spuren aktiviert wurde, platziert sie auch eine zweite Gleisstrecke parallel zur ersten

  • Zeile 2 Die Rüstungsständer mit den jeweiligen Material im Kopfslot platzieren entsprechend diesem den Block an ihrer Position und höhlen gegebenfalls den Bereich aus[Z3][Z4][Z5][Z6]
  • Zeile 9 Dem Verleger wird jeden Block der Punktestand um eins erhöht, um alle 14 Blöcke die Funktion Gleis-Verlegen-2 aufzurufen[Z10] und anschließend wieder von vorne zu zählen[Z11]
  • Zeile 14 Der Gleisverleger wird um einen Block nach vorne teleportiert
  • Zeile 15 Falls hinter ihm (der Gleisverleger schaut immer nach hinten) weder Luft noch irgendeine Schiene ist, wird er um einen Block nach oben teleportiert
  • Zeile 16 Falls sich jedoch unter ihm einen Block hinten Luft befindet, wird er wieder einen Block nach unten teleportiert
  • Zeile 17 Als letztes wird geprüft ob unter ihm ein Block vor ihm sich irgend eine Schiene befindet, falls das der Fall ist wird er um einen block nach unten teleportiert
Editor Icon technik_wiki:gleisverleger/v1gleis_verlegen_1.mcfunction
# Das Gleisbett, samt Gleisen wird in Blickrichtung des Gleisverlegers platziert
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett,sort=nearest,limit=2] rotated ~ 0 run fill ^2 ^2 ^ ^-2 ^4 ^ minecraft:light_gray_stained_glass replace minecraft:cave_air
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett,sort=nearest,limit=2] rotated ~ 0 run fill ^1 ^2 ^ ^-1 ^3 ^ minecraft:air replace
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisbett,sort=nearest,limit=2] rotated ~ 0 rotated ~ 0 run setblock ~ ~ ~ minecraft:andesite replace
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleisspur,sort=nearest,limit=3] rotated ~ 0 run setblock ~ ~ ~ minecraft:smooth_stone replace
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.1Gleis,sort=nearest,limit=2] rotated ~ 0 run setblock ~ ~1 ~ minecraft:rail replace

# Die verlegten Gleise werden gezählt, damit beim 14. Gleis eine Antriebsschiene samt Oberleitung durch die aufgerufene Funktion entsteht
scoreboard players add @s PZGleisV.1Schl 1
execute if entity @s[scores={PZGleisV.1Schl=14..}] run function technik_wiki:gleisverleger/v1gleis_verlegen_2
scoreboard players set @s[scores={PZGleisV.1Schl=14..}] PZGleisV.1Schl 0

# Der Gleisverleger wird einen Block nach vorne teleportiert und es wird geprüft ob er noch auf festen Untergrund steht, falls nicht, wird er entsprechend neu positioniert
execute rotated ~ 0 run teleport @s ^ ^ ^1
execute at @s rotated ~ 0 unless block ^ ^ ^1 minecraft:air unless block ^ ^ ^1 #minecraft:rails run teleport @s ~ ~1 ~
execute at @s rotated ~ 0 if block ^ ^-1 ^1 minecraft:air run teleport @s ~ ~-1 ~
execute at @s rotated ~ 0 if block ^ ^-1 ^-1 #minecraft:rails run teleport @s ~ ~-1 ~


Variante 1: Gleis-Verlegen-2-Funktion
Alle 14 Blöcke, wird diese Funktion aufgerufen um Antriebsschienen und Redstone-Fackeln zu platzieren

  • Zeile 2 Platziert Steinziegel, Fichtenzäune[Z3], Fichtenholzbretter[Z4] und Antriebsschienen[Z5]
  • Zeile 8 Für eine der vier Himmelsrichtung wird eine Redstone-Fackel entsprechend platziert[Z9][Z10][Z11]
  • Zeile 14 Eine zweite Antriebsschiene wird platziert, wenn der Verleger zwei Gleisstrecken platziert
  • Zeile 15 Eine zweite Redstone-Fackel wird je nach Himmelsrichtung entsprechend platziert[Z16][Z17][Z18]


Editor Icon technik_wiki:gleisverleger/v1gleis_verlegen_2.mcfunction
# In Blickrichtung des Gleisverlegers wird die Antriebsschiene wie auch die Oberleitung platziert
setblock ^1 ^ ^-1 minecraft:stone_bricks replace
setblock ^1 ^1 ^-1 minecraft:spruce_fence replace
setblock ^1 ^2 ^-1 minecraft:spruce_planks replace
setblock ^ ^1 ^-1 minecraft:powered_rail replace

# Je nach Blickrichtung wird die Redstone-Fackel entsprechend platziert
execute if entity @s[y_rotation=135..-135] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=west] replace
execute if entity @s[y_rotation=-135..-45] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=north] replace
execute if entity @s[y_rotation=-45..45] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=east] replace
execute if entity @s[y_rotation=45..135] run setblock ^ ^2 ^-1 minecraft:redstone_wall_torch[facing=south] replace

# Falls es sich um einen Verleger mit zwei Spuren handelt, wird auch eine zweite Antriebsschiene und die Redstone-Fackel platziert
execute if entity @s[tag=EtiGleisV.1ZweiSpuren] run setblock ^2 ^1 ^-1 minecraft:powered_rail replace
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=135..-135] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=east] replace
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=-135..-45] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=south] replace
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=-45..45] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=west] replace
execute if entity @s[tag=EtiGleisV.1ZweiSpuren,y_rotation=45..135] run setblock ^2 ^2 ^-1 minecraft:redstone_wall_torch[facing=north] replace


Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht alle Punktestand-Ziele und die Gegenstände im Inventar des Spielers, sowie auch die Gleisverleger und eventuell für diese herumliegende Gegenstände

  • Zeile 2 Das Punktestand-Ziel für das Schleichen, für Schienen[Z3], Andesit[Z4] und Steine[Z5] wird gelöscht
  • Zeile 8 Die Rüstungsständer, die Schienen[Z9], die Steine[Z10] und Andesit[Z11] wird aus dem Inventar gelöscht
  • Zeile 14 Alle Rüstungsständer vom Gleisverleger werden gelöscht
  • Zeile 15 Alle Gegenstände die herum liegen und für den Gleisverleger verwendet werden könnten, werden gelöscht
Editor Icon technik_wiki:gleisverleger/v1stopp.mcfunction
# Die Punktestand-Ziele werden gelöscht
scoreboard objectives remove PZGleisV.1Schl
scoreboard objectives remove PZGleisV.1Gleis
scoreboard objectives remove PZGleisV.1Andes
scoreboard objectives remove PZGleisV.1Stein

# Die Materialien, inklusive der Gleisverleger werden aus dem Inventar gelöscht
clear @a[distance=..25] minecraft:armor_stand{display:{Lore:["Gleisverleger.1"] } }
clear @a[distance=..25] minecraft:rail{display:{Lore:["Gleisverleger.1"] } }
clear @a[distance=..25] minecraft:stone{display:{Lore:["Gleisverleger.1"] } }
clear @a[distance=..25] minecraft:andesite{display:{Lore:["Gleisverleger.1"] } }

# Alle Gleisverleger sowie Drops die damit zu tun haben werden gelöscht
kill @e[tag=EtiGleisV.1Alle]
kill @e[type=minecraft:item,nbt={tag:{display:{Lore:["Gleisverleger.1"] } } } ]

Variante 2

Gleisbaumaschine (Befehle) Bild 1.1 Gleisbaumaschine (Befehle) Bild 1.2 Gleisbaumaschine (Befehle) Bild 1.3 Gleisbaumaschine (Befehle) Bild 1.4

Mit dieser Variante kann man bestimmte vorgegebene Gleisstrecken selbst per Hand sehr leicht platzieren. Man platziert einfach an der gewünschten Stelle den zuvor erhaltenen Rüstungsständer und dieser lässt eine Gleisstrecke entstehen. Man sollte dies nur auf ebenen Gelände verwenden, da schon kleinste Erhebungen sehr schwer auszugleichen sind, oder man passt das dann mit der Hand an.

Einschalten

Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus

Wiederholen

Der Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus

Ausschalten

Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert


Befehlsblöcke mit Befehlen:


Variante 2: Start-Funktion
Die Start-Funktion gibt dem Spieler zwei Rüstungsständer für gerade und kurvige Gleisstrecken

Editor Icon technik_wiki:gleisverleger/v2start.mcfunction
# Dem Spieler werden zwei Rüstungsständer gegeben die bestimmte Gleisstrecken erzeugen
give @a[distance=..25] minecraft:armor_stand{Gleisverleger.2:true,display:{Name:"{\"text\":\"Gleisstrecke\"}"},EntityTag:{Tags:["EtiGleisV.2Alle","EtiGleisV.2Bauwerk","EtiGleisV.2Gleisstrecke"]} } 1
give @a[distance=..25] minecraft:armor_stand{Gleisverleger.2:true,display:{Name:"{\"text\":\"Gleiskurve\"}"},EntityTag:{Tags:["EtiGleisV.2Alle","EtiGleisV.2Bauwerk","EtiGleisV.2Gleiskurve"]} } 1

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion testet ob einer der Rüstungsständer platziert wurde und reagiert darauf entsprechend mit einer Funktion und löscht diese Rüstungsständer am Ende

Editor Icon technik_wiki:gleisverleger/v2zyklus.mcfunction
# Sobald ein Rüstungsständer platziert ist, wird für diesen die entsprechende Funktion aufgerufen
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.2Gleisstrecke] at @s run function technik_wiki:gleisverleger/v2gleisstrecke
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.2Gleiskurve] at @s run function technik_wiki:gleisverleger/v2gleiskurve

# Sobald der Rüstungsständer platziert wurde, wird ein Redstone-Block einen Block abseits platziert um die Konstruktion zu laden
execute at @e[type=minecraft:armor_stand,tag=EtiGleisV.2Bauwerk] run setblock ~ ~ ~1 minecraft:redstone_block replace

# Der platzierte Rüstungsständer wird anschließend gelöscht
kill @e[type=minecraft:armor_stand,tag=EtiGleisV.2Bauwerk]

Variante 2: Gleisstrecke-Funktion
Die Gleisstrecken-Funktion platziert die Gleisstrecke je nach Blickwinkel des Spielers entsprechend zu diesem ausgerichtet auf dem Boden

Editor Icon technik_wiki:gleisverleger/v2gleisstrecke.mcfunction
# Je nach Blickwinkel des Spielers wird der entsprechende Konstruktionsblock platziert
execute as @p if entity @s[y_rotation=135..45] unless entity @s[y_rotation=-135..-45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"NONE",mode:"LOAD",posX:-1,posY:0,posZ:-5,name:"technik_wiki:gleisverleger/v2gleisstrecke"} replace
execute as @p if entity @s[y_rotation=-135..135] unless entity @s[y_rotation=-45..45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"CLOCKWISE_90",mode:"LOAD",posX:5,posY:0,posZ:-1,name:"technik_wiki:gleisverleger/v2gleisstrecke"} replace

Variante 2: Gleiskurve-Funktion
Die Gleiskurven-Funktion platziert eine Gleiskurve abhängig der Blickrichtung des Spielers entsprechend auf dem Boden

Editor Icon technik_wiki:gleisverleger/v2gleiskurve.mcfunction
# Je nach Blickwinkel des Spielers wird der jeweilige Konstruktionsblock platziert
execute as @p if entity @s[y_rotation=-135..-45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"NONE",mode:"LOAD",posX:-2,posY:0,posZ:-2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace
execute as @p if entity @s[y_rotation=-45..45] run setblock ~ ~ ~ minecraft:structure_block{rotation:"CLOCKWISE_90",mode:"LOAD",posX:2,posY:0,posZ:-2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace
execute as @p if entity @s[y_rotation=45..135] run setblock ~ ~ ~ minecraft:structure_block{rotation:"CLOCKWISE_180",mode:"LOAD",posX:2,posY:0,posZ:2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace
execute as @p if entity @s[y_rotation=135..-135] run setblock ~ ~ ~ minecraft:structure_block{rotation:"COUNTERCLOCKWISE_90",mode:"LOAD",posX:-2,posY:0,posZ:2,name:"technik_wiki:gleisverleger/v2gleiskurve"} replace

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht alle Gegenstände in dem Inventar und löscht eventuell vorhandene Rüstungsständer und Gegenstände für diese Gleisstrecken

Editor Icon technik_wiki:gleisverleger/v2stopp.mcfunction
# Löscht alle Gegenstände aus dem Inventar
clear @a[distance=..25] minecraft:armor_stand{Gleisverleger.2:true}

# Gibt eventuell auf dem Boden herumliegenden Gegenständen das Etikett, womit nachher alle Objekte, die das Etikett haben gelöscht werden
tag @e[type=minecraft:item,nbt={Item:{tag:{Gleisverleger.2:true} } }] add EtiGleisV.2Alle
kill @e[tag=EtiGleisV.2Alle]

Variante 3

Datei:Gleisbaumaschine (Befehle) Bild 3.1.png Datei:Gleisbaumaschine (Befehle) Bild 3.2.png Datei:Gleisbaumaschine (Befehle) Bild 3.3.png Datei:Gleisbaumaschine (Befehle) Bild 3.4.png

Mit dem Gleisverleger lassen sich Gleisstrecken für Eisenbahnen erstellen. Je nach Blickrichtung des Spielers wird die Eisenbahnstrecke entsprechend gebaut. Hierbei rastet der Gleisverleger in eine der vier Himmelsrichtungen ein und kann nicht vom Raster befreit werden, da diagonale oder komplett abseitige Wegstrecken keine Eisenbahn fähig wäre, diese Gleisstrecken zu befahren. Auch kann die Gleisstrecke auch minimalste Höhen nicht überwinden.

Einschalten

Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus

Wiederholen

Der Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus

Ausschalten

Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert


Befehlsblöcke mit Befehlen:



Variante 3: Start-Funktion
Die Start-Funktion erstellt alle Punktestand-Ziele und gibt dem Spieler den Gleisverleger in Form eines Rüstungsständers in die Hand.

Editor Icon technik_wiki:gleisverleger/v3start.mcfunction
# Punktestand-Ziele für die Schleichzeit und die Materialien werden erstellt
scoreboard objectives add PZGleisV.3Schl minecraft.custom:minecraft.sneak_time ["Gleisverleger.3: ",{"text":"Schleichzeit","bold":true}]
scoreboard objectives add PZGleisV.3Schien dummy ["Gleisverleger.3: ",{"text":"Schienen für den Verleger","bold":true}]
scoreboard objectives add PZGleisV.3Schwel dummy ["Gleisverleger.3: ",{"text":"Schwellen für den Verleger","bold":true}]
scoreboard objectives add PZGleisV.3Stein dummy ["Gleisverleger.3: ",{"text":"Stein für den Verleger","bold":true}]
scoreboard objectives add PZGleisV.3Andes dummy ["Gleisverleger.3: ",{"text":"Andesit für den Verleger","bold":true}]
scoreboard objectives add PZGleisV.3Pfeil dummy ["Gleisverleger.3: ",{"text":"Pfeilblöcke für den Verleger","bold":true}]

# Der Rüstungsständer der als Gleisverleger fungiert, wird dem Spieler gegeben
give @a[distance=..25] minecraft:armor_stand{display:{Name:"{\"text\":\"Gleisverleger\"}",Lore:["Gleisverleger.3"]},EntityTag:{Invisible:true,Small:true,NoGravity:true,CustomNameVisible:true,CustomName:"{\"text\":\"Gleisverleger\"}",Tags:["EtiGleisV.3Alle","EtiGleisV.3Verleger","EtiGleisV.3Erstellen"],ArmorItems:[{},{},{},{id:"minecraft:magenta_glazed_terracotta",Count:1b} ],Pose:{Head:[0.0f,0.0f,180.0f] } } } 1


Variante 3: Zyklus-Funktion
Die Zyklus-Funktion erstellt den Verleger bei Bedarf und aktiviert ihn wenn der Spieler ihn benutzen möchte.

  • Zeile 2 Wenn der Rüstungsständer platziert wird, wird von diesem aus die Erstellen-Funktion aufgerufen, die aus ihm den Gleisverleger macht
  • Zeile 5 Wenn sich um den Verleger in einem Umkreis von maximal zehn Blöcken ein Spieler befindet wird die Ausrichtungsfunktion in waagerechten Blickwinkel aufgerufen, damit der Gleisverleger sich in die Blickrichtung des Spielers bewegt.
  • Zeile 8 Wenn sich der Spieler wieder sich um den Verleger befindet, aber dabei auch auf dem Boden steht und schleicht, wird vom Verleger die Gleis-Funktion aus geladen.
Editor Icon technik_wiki:gleisverleger/v3zyklus.mcfunction
# Wenn der Gleisverleger platziert wurde, wird die Erstellen-Funktion geladen
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.3Erstellen] at @s run function technik_wiki:gleisverleger/v3erstellen

# Befindet sich in einem Radius von zehn Blöcken ein Spieler um den Gleisverleger, so wird die Ausrichtung-Funktion geladen
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.3Verleger] at @s if entity @p[distance=..10] rotated ~ 0 run function technik_wiki:gleisverleger/v3ausrichtung

# Wenn der Spieler mindestens drei Ticks in einem Radius von zehn Blöcken schleicht, wird die Gleis-Funktion geladen
execute as @e[type=minecraft:armor_stand,tag=EtiGleisV.3Verleger] at @s if entity @p[distance=..10,scores={PZGleisV.3Schl=3..},nbt={OnGround:true}] rotated ~180 0 run function technik_wiki:gleisverleger/v3gleis

# Falls der Spieler drei Ticks geschlichen ist, wird dieser Punktestand wieder zurück gesetzt
scoreboard players reset @a[scores={PZGleisV.3Schl=3..}] PZGleisV.3Schl

Variante 3: Erstellen-Funktion
Die Erstellen-Funktion gibt dem Spieler in der Nähe des Gleisverlegers alle Materialien für den Gleisbau und erstellt weitere Rüstungsständer die mit einem Block im Kopf andeuten wo die Gleisblöcke platziert werden

Editor Icon technik_wiki:gleisverleger/v3erstellen.mcfunction
# Dem Spieler werden alle Materialien gegeben die er für den Gleisverleger benötigt
give @p[distance=..10] minecraft:stone_brick_stairs{display:{Lore:["Gleisverleger.3"]} } 128
give @p[distance=..10] minecraft:spruce_slab{display:{Lore:["Gleisverleger.3"]} } 192
give @p[distance=..10] minecraft:stone{display:{Lore:["Gleisverleger.3"]} } 128
give @p[distance=..10] minecraft:andesite{display:{Lore:["Gleisverleger.3"]} } 320
give @p[distance=..10] minecraft:magenta_glazed_terracotta{display:{Lore:["Gleisverleger.3"]} } 64

# Anschließend werden eventuell andere Gleisverleger gelöscht
kill @e[distance=0.9..,tag=EtiGleisV.3Alle]

# Sämtliche Materialien die für den Bau der Gleise verwendet werden, werden mit Rüstungsständer die den entsprechenden Materialblock in ihren Kopfslot tragen angezeigt
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchieneRechts","EtiGleisV.3Gleis1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:stone_brick_stairs",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchieneLinks","EtiGleisV.3Gleis1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:stone_brick_stairs",Count:1b}]}

summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Rechts1","EtiGleisV.3Gleisspur","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Links1","EtiGleisV.3Gleisspur","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:smooth_stone",Count:1b}]}

summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchwelleRechts1","EtiGleisV.3Schwelle","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:spruce_slab",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchwelleMitte1","EtiGleisV.3Schwelle","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:spruce_slab",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3SchwelleLinks1","EtiGleisV.3Schwelle","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:spruce_slab",Count:1b}]}

summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter1","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter2","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter3","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}
summon minecraft:armor_stand ~ ~ ~ {Invisible:true,Small:true,NoGravity:true,Marker:true,Tags:["EtiGleisV.3Alle","EtiGleisV.3Schotter4","EtiGleisV.3Gleisbett1","EtiGleisV.3EineSpur"],ArmorItems:[{},{},{},{id:"minecraft:andesite",Count:1b}]}

# Damit diese Funktion nicht mehrmals für den gleichen Rüstungsständer aufgerufen wird, wird das Etikett entfernt
tag @s remove EtiGleisV.3Erstellen


Variante 3: Ausrichtung-Funktion
Die Ausrichtungs-Funktion lässt den Gleisverleger in eine der vier Himmelsrichtungen blicken, je nach dem wo der Spieler hin schaut und positioniert auch die anderen Rüstungsständer die die Blöcke anzeigen entsprechend

Editor Icon technik_wiki:gleisverleger/v3ausrichtung.mcfunction
# Der Gleisverleger schaut immer zum nächstgelegenen Spieler
teleport @s ~ ~ ~ facing entity @p feet

# Damit der Gleisverleger aber nur genau in eine Himmelsrichtung schauen kann, wird die Blickrichtung des Spielers abgefragt und die des Gleisverlegers entsprechend angepasst
execute if entity @s[y_rotation=135..-135] rotated 180 0 run teleport @s ~ ~ ~ 180 ~
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run teleport @s ~ ~ ~ -90 ~
execute if entity @s[y_rotation=-45..45] rotated 0 0 run teleport @s ~ ~ ~ 0 ~
execute if entity @s[y_rotation=45..135] rotated 90 0 run teleport @s ~ ~ ~ 90 ~

# Die Rüstungsständer mit den Materialien werden entsprechend dem Gleismuster am Gleisverleger angeordnet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchieneRechts,sort=nearest,limit=1] ^1 ^0.5 ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchieneLinks,sort=nearest,limit=1] ^-1 ^0.5 ^1 facing entity @p feet

teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Rechts1,sort=nearest,limit=1] ^3 ^ ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Links1,sort=nearest,limit=1] ^-3 ^ ^1 facing entity @p feet

teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchwelleRechts1,sort=nearest,limit=1] ^2 ^0.5 ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchwelleMitte1,sort=nearest,limit=1] ^ ^0.5 ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3SchwelleLinks1,sort=nearest,limit=1] ^-2 ^0.5 ^1 facing entity @p feet

teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter1,sort=nearest,limit=1] ^2 ^ ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter2,sort=nearest,limit=1] ^1 ^ ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter3,sort=nearest,limit=1] ^-1 ^ ^1 facing entity @p feet
teleport @e[type=minecraft:armor_stand,tag=EtiGleisV.3Schotter4,sort=nearest,limit=1] ^-2 ^ ^1 facing entity @p feet


Variante 3: Gleis-Funktion
Die Gleis-Funktion prüft ob der Spieler die Materialien für den Gleisbau bei sich trägt, nur wenn er das tut, wird ihm das Material abgezogen und die Gleis-Verlegen-1-Funktion geladen, ansonsten erhält er eine Fehlernachricht.

Editor Icon technik_wiki:gleisverleger/v3gleis.mcfunction
# Um den schleichenden Spieler besser zu erfassen, wird ihm ein Etikett gegeben
tag @p[distance=..10,scores={PZGleisV.3Schl=1..}] add EtiGleisV.3Spieler

# Zuerst wird in den Punktestand-Zielen des Spielers die Anzahl der Materialien gespeichert
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Schien run clear @s minecraft:stone_brick_stairs 0
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Schwel run clear @s minecraft:spruce_slab 0
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Stein run clear @s minecraft:stone 0
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Andes run clear @s minecraft:andesite 0
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] store result score @s PZGleisV.3Pfeil run clear @s minecraft:magenta_glazed_terracotta 0

# Wenn die Anzahl größer oder gleich dem benötigten entspricht, werden diese Materialien aus dem Inventar abgezogen
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:stone_brick_stairs 2
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:stone 2
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:spruce_slab 3
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:andesite 5
clear @p[distance=..10,tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] minecraft:magenta_glazed_terracotta 1

# Wenn der Spieler genug Material hatte, wird die Gleis-Verlegen-1-Funktion geladen, ansonsten erhält der Spieler eine Fehlermeldung
execute if entity @p[tag=EtiGleisV.3Spieler,scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] run function technik_wiki:gleisverleger/v3gleis_verlegen_1
execute as @p[distance=..10,tag=EtiGleisV.3Spieler] unless entity @s[scores={PZGleisV.3Schien=2..,PZGleisV.3Schwel=3..,PZGleisV.3Stein=2..,PZGleisV.3Andes=5..,PZGleisV.3Pfeil=1..}] run tellraw @s ["Gleisverleger.3 ",{"text":"Du hast zu wenig Blöcke bei dir!","bold":true}]

# Am Ende wird das Etikett wieder entfernt
tag @p[distance=..10,tag=EtiGleisV.3Spieler] remove EtiGleisV.3Spieler


Variante 3: Gleis-Verlegen-1-Funktion
Die Gleis-Verlegen-1-Funktion platziert die einzelnen Blöcke für das Gleis, alle zwei Blöcke wird eine Schwelle platziert und alle 14 Blöcke wird die Gleis-Verlegen-2-Funktion für die Oberleitung aufgerufen.

Editor Icon technik_wiki:gleisverleger/v3gleis_verlegen_1.mcfunction
# Es wird ein großer Luftraum frei gemacht und dann folgt das Gleisbett
execute rotated ~ 0 run fill ^3 ^1 ^ ^-3 ^8 ^ minecraft:air replace
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.3Gleisbett1,sort=nearest,limit=4] rotated ~ 0 rotated ~ 0 run setblock ~ ~ ~ minecraft:andesite replace
execute at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.3Gleisspur,sort=nearest,limit=4] rotated ~ 0 rotated ~ 0 run setblock ~ ~ ~ minecraft:smooth_stone replace

# Je nach Blickrichtung des Spielers, wird das Gleis in Form von Treppen entsprechend platziert
execute if entity @s[y_rotation=135..-135] rotated 180 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=west] replace
execute if entity @s[y_rotation=135..-135] rotated 180 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=east] replace
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=north] replace
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=south] replace
execute if entity @s[y_rotation=-45..45] rotated 0 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=east] replace
execute if entity @s[y_rotation=-45..45] rotated 0 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=west] replace
execute if entity @s[y_rotation=45..135] rotated 90 0 run setblock ^1 ^1 ^1 minecraft:stone_brick_stairs[facing=south] replace
execute if entity @s[y_rotation=45..135] rotated 90 0 run setblock ^-1 ^1 ^1 minecraft:stone_brick_stairs[facing=north] replace

# Die Pfeil-Blöcke werden je nach Blickrichtung des Spieler richtig angeordnet
execute if entity @s[y_rotation=135..-135] rotated 180 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=north] replace
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=east] replace
execute if entity @s[y_rotation=-45..45] rotated 0 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=south] replace
execute if entity @s[y_rotation=45..135] rotated 90 0 run setblock ^ ^ ^1 minecraft:magenta_glazed_terracotta[facing=west] replace

# Alle zwei Blöcke muss eine Schwelle platziert werden, dazu wird jeder Block gezählt
scoreboard players add @s PZGleisV.3Schl 1
execute if entity @s[scores={PZGleisV.3Schl=2..}] at @e[distance=..5,type=minecraft:armor_stand,tag=EtiGleisV.3Schwelle,sort=nearest,limit=3] rotated ~ 0 run setblock ~ ~1 ~ minecraft:spruce_slab replace
scoreboard players set @s[scores={PZGleisV.3Schl=2..}] PZGleisV.3Schl 0

# Für die Oberleitung der Eisenbahn wird alle 14 Blöcke ein Oberleitungsmast aufgestellt
scoreboard players add @s PZGleisV.3Pfeil 1
execute if entity @s[scores={PZGleisV.3Pfeil=14..}] run function technik_wiki:gleisverleger/v3gleis_verlegen_2
scoreboard players set @s[scores={PZGleisV.3Pfeil=14..}] PZGleisV.3Pfeil 0

# Je nach Blickrichtung, wird der Gleisverleger entsprechend bewegt
execute if entity @s[y_rotation=135..-135] rotated 180 0 run teleport @s ^ ^ ^-1
execute if entity @s[y_rotation=-135..-45] rotated -90 0 run teleport @s ^ ^ ^-1
execute if entity @s[y_rotation=-45..45] rotated 0 0 run teleport @s ^ ^ ^-1
execute if entity @s[y_rotation=45..135] rotated 90 0 run teleport @s ^ ^ ^-1


Variante 3: Gleis-Verlegen-2-Funktion
Die Gleis-Verlegen-2-Funktion platziert je nach Blickwinkel des Gleisverlegers die Oberleitung in entsprechender Himmelsrichtung

Editor Icon technik_wiki:gleisverleger/v3gleis_verlegen_2.mcfunction
# Für den Masten werden Steine und Mauern platziert
fill ^3 ^ ^-1 ^3 ^ ^-3 minecraft:stone_bricks replace
fill ^3 ^1 ^-2 ^3 ^4 ^-2 minecraft:cobblestone_wall replace
fill ^3 ^5 ^-2 ^3 ^6 ^-2 minecraft:spruce_fence replace
fill ^3 ^7 ^-2 ^3 ^10 ^-2 minecraft:cobblestone_wall replace

# Je nach Blickrichtung werden die Abnehmer in Form von Zauntoren entsprechend ausgerichtet
execute if entity @s[y_rotation=135..-135] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=north] replace
execute if entity @s[y_rotation=-135..-45] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=east] replace
execute if entity @s[y_rotation=-45..45] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=south] replace
execute if entity @s[y_rotation=45..135] run fill ^2 ^10 ^-2 ^ ^10 ^-2 minecraft:spruce_fence_gate[facing=west] replace


Variante 3: Stopp-Funktion
Die Stopp-Funktion löscht alle Punktestand-Ziele, alle Gegenstände die man im Inventar besaß und alle Gegenstände die auf dem Boden liegen sowie den Gleisverleger selbst

Editor Icon technik_wiki:gleisverleger/v3stopp.mcfunction
# Alle Punktestand-Ziele werden gelöscht
scoreboard objectives remove PZGleisV.3Schl
scoreboard objectives remove PZGleisV.3Schien
scoreboard objectives remove PZGleisV.3Schwel
scoreboard objectives remove PZGleisV.3Stein
scoreboard objectives remove PZGleisV.3Andes
scoreboard objectives remove PZGleisV.3Pfeil

# Alle Gegenstände für den Gleisverleger werden gelöscht
clear @a[distance=..25] minecraft:armor_stand{display:{Lore:["Gleisverleger.3"] } }
clear @a[distance=..25] minecraft:stone_brick_stairs{display:{Lore:["Gleisverleger.3"] } }
clear @a[distance=..25] minecraft:spruce_slab{display:{Lore:["Gleisverleger.3"] } }
clear @a[distance=..25] minecraft:stone{display:{Lore:["Gleisverleger.3"] } }
clear @a[distance=..25] minecraft:andesite{display:{Lore:["Gleisverleger.3"] } }
clear @a[distance=..25] minecraft:magenta_glazed_terracotta{display:{Lore:["Gleisverleger.3"]} }

# Alle Gleisverleger und Gegenstände für diesen, die herum liegen, werden gelöscht
kill @e[tag=EtiGleisV.3Alle]
kill @e[type=minecraft:item,nbt={tag:{display:{Lore:["Gleisverleger.3"]} } }]


Disambig color