Advertisement
ecco7777

CC Particle Generator obj Viewer

Feb 17th, 2021 (edited)
1,054
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.96 KB | None | 0 0
  1. br=0.5
  2. delay=0.15
  3.  
  4. args={...}
  5.  
  6. function loadFile(filename)
  7.     fp=fs.open(filename,"r")
  8.     lines={}
  9.     i=1
  10.     lines[i]=fp.readLine()
  11.     while lines[i]~=nil do
  12.         i=i+1
  13.         lines[i]=fp.readLine()
  14.     end
  15.     return lines
  16. end
  17.  
  18. function split (inputstr, sep)
  19.         if sep == nil then
  20.                 sep = "%s"
  21.         end
  22.         local t={}
  23.         for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
  24.                 table.insert(t, str)
  25.         end
  26.         return t
  27. end
  28.  
  29. function compileObj(lines)
  30.     v = {}
  31.     vt = {}
  32.     vn = {}
  33.     f = {}
  34.     l = {}
  35.     print(#lines)
  36.     for i=5, #lines do
  37.         if string.sub(lines[i],1,2)=="v " then
  38.             table.insert(v,split(lines[i]))
  39.         end
  40.         if string.sub(lines[i],1,2)=="vt" then
  41.             table.insert(vt,split(lines[i]))
  42.         end
  43.         if string.sub(lines[i],1,2)=="vn" then
  44.             table.insert(vn,split(lines[i]))
  45.         end
  46.         if string.sub(lines[i],1,2)=="f " then
  47.             table.insert(f,split(lines[i]))
  48.         end
  49.         if string.sub(lines[i],1,2)=="l " then
  50.             table.insert(l,split(lines[i]))
  51.         end
  52.     end
  53. end
  54.  
  55. compileObj(loadFile(args[1]))
  56.  
  57. function wrapPs(peripheralName)
  58.     periTab = {}
  59.     sideTab = {}
  60.     if peripheralName == nil then
  61.         print("Fehler")
  62.     end
  63.     local peripherals = peripheral.getNames()
  64.     local i2 = 1
  65.     for i = 1, #peripherals do
  66.         if peripheral.getType(peripherals[i]) == peripheralName then
  67.             periTab[i2] = peripheral.wrap(peripherals[i])
  68.             sideTab[i2] = peripherals[i]
  69.             i2 = i2 + 1
  70.         end
  71.     end
  72.     if periTab ~= {} then
  73.         return periTab, sideTab
  74.     else
  75.         return nil
  76.     end
  77.  
  78.     function getPSide(peripheralName)
  79.         if peripheralName == nil then
  80.             print("Fehler")
  81.         end
  82.         local peripherals = peripheral.getNames()
  83.         local i = 1
  84.         while i < #peripherals and peripheral.getType(peripherals[i]) ~= peripheralName do
  85.             i = i + 1
  86.         end
  87.         if peripheral.getType(peripherals[i]) == peripheralName then
  88.             return peripherals[i]
  89.         else
  90.             return nil
  91.         end
  92.     end
  93. end
  94.  
  95. pgs=wrapPs("particle_generator")
  96.  
  97. for i=1,#pgs do
  98.     pgs[i].setGeneratorProperty("spawn_y",30)
  99.     pgs[i].setGeneratorProperty("scale",2.6)
  100.     pgs[i].setGeneratorProperty("motion_y",0)
  101.     pgs[i].setGeneratorProperty("life",1000)
  102.     pgs[i].setGeneratorProperty("collide",true)
  103.     pgs[i].setGeneratorProperty("selected_particle",2)
  104. end
  105.  
  106. y=1
  107. line=1
  108. pgn=1
  109.         for i=1,#v do
  110.             if pgn>#pgs then
  111.             pgn=1
  112.             end
  113.             pgs[pgn].setGeneratorProperty("spawn_x",tonumber(v[i][2])*br)
  114.             pgs[pgn].setGeneratorProperty("spawn_y",tonumber(v[i][3])*br)
  115.             pgs[pgn].setGeneratorProperty("spawn_z",tonumber(v[i][4])*br)
  116.             pgn=pgn+1
  117.         end
  118.         sleep(delay)
  119.  
  120. for i=1,#pgs do
  121.     pgs[i].setGeneratorProperty("motion_y",0)
  122.     pgs[i].setGeneratorProperty("life",0)
  123. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement