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

Gleisbaumaschine (Befehle)

Aus Technik Wiki
Wechseln zu: Navigation, Suche
Gruppe: Grid Schiene.png
Schienenverkehrsanlagen

Grid Roter Sand blass.png mit Mechaniken

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

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

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[Bearbeiten | Quelltext bearbeiten]

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

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.png 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.png 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.png 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.png 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.png 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.png 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.png 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.png 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[Bearbeiten | Quelltext bearbeiten]

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

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.png 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.png 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.png 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.png 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.png 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[Bearbeiten | Quelltext bearbeiten]

Gleisbaumaschine (Befehle) Bild 3.1.png Gleisbaumaschine (Befehle) Bild 3.2.png Gleisbaumaschine (Befehle) Bild 3.3.png 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.png 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.png 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.png 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.png 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.png 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.png 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.png 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.png 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.svg