br=10 delay=0.15 rand=true ptgOffset={} ptgOffset[0]=1 ptgOffset[1]=2 ptgOffset[2]=3 ptgOffset[3]=4 args={...} function loadFile(filename) fp=fs.open(filename,"r") lines={} i=1 lines[i]=fp.readLine() while lines[i]~=nil do i=i+1 lines[i]=fp.readLine() end return lines end function split (inputstr, sep) if sep == nil then sep = "%s" end local t={} for str in string.gmatch(inputstr, "([^"..sep.."]+)") do table.insert(t, str) end return t end function compileObj(lines) v = {} vt = {} vn = {} f = {} l = {} print(#lines) for i=5, #lines do if string.sub(lines[i],1,2)=="v " then table.insert(v,split(lines[i])) end if string.sub(lines[i],1,2)=="vt" then table.insert(vt,split(lines[i])) end if string.sub(lines[i],1,2)=="vn" then table.insert(vn,split(lines[i])) end if string.sub(lines[i],1,2)=="f " then table.insert(f,split(lines[i])) end if string.sub(lines[i],1,2)=="l " then table.insert(l,split(lines[i])) end end end compileObj(loadFile(args[1])) function wrapPs(peripheralName) periTab = {} sideTab = {} if peripheralName == nil then print("Fehler") end local peripherals = peripheral.getNames() local i2 = 1 for i = 1, #peripherals do if peripheral.getType(peripherals[i]) == peripheralName then periTab[i2] = peripheral.wrap(peripherals[i]) sideTab[i2] = peripherals[i] i2 = i2 + 1 end end if periTab ~= {} then return periTab, sideTab else return nil end function getPSide(peripheralName) if peripheralName == nil then print("Fehler") end local peripherals = peripheral.getNames() local i = 1 while i < #peripherals and peripheral.getType(peripherals[i]) ~= peripheralName do i = i + 1 end if peripheral.getType(peripherals[i]) == peripheralName then return peripherals[i] else return nil end end end pgs,pgss=wrapPs("particle_generator") for i=1,#pgs do pgs[i].setGeneratorProperty("spawn_y",30) pgs[i].setGeneratorProperty("scale",0.5) pgs[i].setGeneratorProperty("motion_y",0) pgs[i].setGeneratorProperty("life",1000) pgs[i].setGeneratorProperty("collide",true) pgs[i].setGeneratorProperty("selected_particle",1) pgs[i].setGeneratorProperty("red",50) pgs[i].setGeneratorProperty("green",255) pgs[i].setGeneratorProperty("blue",200) end y=1 line=1 pgn=1 if rand==false then for i=1,#v do if pgn>#pgs then pgn=1 end pgs[pgn].setGeneratorProperty("spawn_x",tonumber(v[i][2])*br) pgs[pgn].setGeneratorProperty("spawn_y",tonumber(v[i][3])*br+ptgOffset[tonumber(string.sub(pgss[pgn],20))]) pgs[pgn].setGeneratorProperty("spawn_z",tonumber(v[i][4])*br) pgn=pgn+1 sleep(delay) end else while true do i=math.random(1,#v) if pgn>#pgs then pgn=1 end pgs[pgn].setGeneratorProperty("spawn_x",tonumber(v[i][2])*br) pgs[pgn].setGeneratorProperty("spawn_y",tonumber(v[i][3])*br+ptgOffset[tonumber(string.sub(pgss[pgn],20))]) pgs[pgn].setGeneratorProperty("spawn_z",tonumber(v[i][4])*br) pgn=pgn+1 sleep(delay) end end for i=1,#pgs do pgs[i].setGeneratorProperty("motion_y",0) pgs[i].setGeneratorProperty("life",0) end