Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- args={...}
- sc=peripheral.wrap("right")
- opMode="letter"
- mode="wait" --modes, wait
- waitDelay=0.5
- nesw={"north","east","south","west"}
- neswNum={}
- neswNum["north"]=1
- neswNum["east"]=2
- neswNum["south"]=3
- neswNum["west"]=4
- function getFace()
- return sc.getBlockMeta(0,0,0).state.facing
- end
- function sFuel()
- if turtle.getFuelLevel()<1 then
- local slot=turtle.getSelectedSlot()
- shell.run("refuel all")
- turtle.select(slot)
- end
- end
- function sForward(val) --smart Forward
- sFuel()
- if val==nil then
- val=1
- end
- bw=val<1
- if bw==false then
- for i=1,val do
- if mode=="abort" then
- if abort==false then
- turtle.forward()
- end
- end
- if mode=="wait" then
- while turtle.forward()==false do
- sleep(waitDelay)
- end
- end
- end
- else
- val=math.sqrt(val*val)
- for i=1,val do
- if mode=="abort" then
- if abort==false then
- turtle.back()
- end
- end
- if mode=="wait" then
- while turtle.back()==false do
- sleep(waitDelay)
- end
- end
- end
- end
- end
- function sTurn(val)
- if val==1 or val=="right" then
- turtle.turnRight()
- end
- if val==2 or val=="back" then
- turtle.turnLeft()
- turtle.turnLeft()
- end
- if val==3 or val=="left" then
- turtle.turnLeft()
- end
- if val=="north" or val=="east" or val=="south" or val=="west" then
- sTurn(neswNum(getFace)-neswNum(val))
- end
- end
- function goPath(pathString)
- local ps --pathStringArray
- for i=1, #pathString do
- ps=number(string.sub(pathString,i,i))
- if math.mod(i,2)==0 then
- for i2=1, ps do
- sForward()
- end
- end
- if math.mod(i,2)==1 then
- sTurn(ps)
- end
- end
- end
- letters={}
- letters["a"]="fpfpfrfpfpfpfprfffprfpfpfpbrfpfpffflffr"
- letters["b"]="pfpfpfrfpffpfrfpfpfprfpfpfpbrfpfpfflffrf"
- letters["c"]="pfpfpfpllffflfpfpfpfplfpfpfpfflffffr"
- letters["d"]="pfpfpfrfpfpfpfrfpfpfprfpfpfpfrfffff"
- letters["e"]="pfpfpfprffffrpfpfpfprfpfpfpbrfpfpffflffr"
- letters["f"]="pfpfpfpllffflfpfpfpfpbblfpfpffflffr"
- letters["g"]="pfpfpfprfffpfprfpfpfprfpfpfpfrfffff"
- letters["h"]="pfffprfpfpfpfprfffrpfpfpfpbrfpfpffflffr"
- letters["i"]="rpfpfpfpfpbbbblff"
- letters["j"]="rfffpfplfpfpfplfpfpfpfprff"
- letters["k"]="rpfpfpfpfplfffpblfpflfpblbpblfpff"
- letters["l"]="rpfpfpfpfplfpfpfpflffffrf"
- letters["m"]="rpfpfpfpfplfffflpfpfpfpfpllffrffpfrfprffpffflfr"
- letters["n"]="rpfpfpfpfplffflpfpfpfpfplfflfpflfpffflffr"
- letters["o"]="pfpfpfprfpfpfpfprfpfpfprfpfpfpfrfffff"
- letters["p"]="pfpfpfrfpfrfpfpfprfpbbpbpffffrfffff"
- letters["q"]="pfpfpfprfpfpfpfprfpfpfprfpfpfpbbrffpffflfffr"
- letters["r"]="pfpfpfrfpfffpbrfprfplfpfprbpbpfffpfrfffff"
- letters["s"]="lbbbbrpfpfpfplfpfplfpfpfprfpfprfpfpfpff"
- letters["t"]="pfpfplbbbbpfpfpfpfrfpfpff"
- letters["u"]="rpfpfpfpfplfpfpfplfpfpfpfprff"
- letters["v"]="rpfpfpfpflfpfpflfpfpfpfprff"
- letters["w"]="rpfpfpfpflfpflfpbprfpflfpfpfpfprff"
- letters["x"]="prflfprflfpfrfpflfpbbbbpflfprflffrfplfrfpff"
- letters["y"]="prflfpfrfpfpfpbbblfpflfprff"
- letters["z"]="pfpfpfpfpbrfpfrfpflfpfrfpbpbpbpbprffffrff"
- letters[" "]="ff"
- letters["_"]="ff"
- letters["!"]="lpbpbpbbpffffrff"
- letters["?"]="pfprffpffplflfffpfrff"
- function buildLetter(letterPathString)
- for i=1, #letters[letterPathString] do
- lts=string.sub(letters[letterPathString],i,i)
- if lts=="f" then
- sForward()
- end
- if lts=="b" then
- sForward(-1)
- end
- if lts=="r" then
- sTurn(1)
- end
- if lts=="l" then
- sTurn(3)
- end
- if lts=="p" then
- while turtle.placeDown()==false do
- sleep(waitDelay)
- end
- end
- end
- end
- function buildText(pathString)
- pathString=string.lower(pathString)
- local ps --pathStringArray
- for i=1, #pathString do
- ps=string.sub(pathString,i,i)
- if string.find("abcdefghijklmnopqrstuvwxyz _!?",ps)~=nil then
- buildLetter(ps)
- end
- end
- end
- if opMode=="letter" then
- pString=args[1]
- if pString~=nil then
- buildText(pString)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement