Advertisement
Guest User

Untitled

a guest
May 31st, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.88 KB | None | 0 0
  1. local a,l,g,p,i,h,e,m,o,k=(math.sqrt(5)+1)/2,math.pi,{{1,2,6},{3,5,12},{4,9,10},{7,8,11},{1,2,8},{3,11,12},{4,7,9},{5,6,10},{1,6,12},{2,8,9},{3,7,11},{4,5,10},{1,8,11},{2,9,10},{3,4,7},{5,6,12},{1,11,12},{2,6,10},{3,4,5},{7,8,9}},Vector3.new,Instance.new,CFrame.new,CFrame.Angles,'magnitude',true,pairs local c,b=#g,{p(-1,a,0),p(1,a,0),p(-1,-a,0),p(1,-a,0),p(0,-1,a),p(0,1,a),p(0,-1,-a),p(0,1,-a),p(a,0,-1),p(a,0,1),p(-a,0,-1),p(-a,0,1)}for a=1,c do local c=g[a]g[a]={b[c[1]],b[c[2]],b[c[3]],c[4]}end function n(c,a)if a[c]then return a[c]end for b,a in k(a)do if(c-b)[m]<.1 then return a end end end for a=1,2 do local d={}for b=1,c do for a=1,#g/c do local a=g[a*c-c+b]local b={a[1]*3,a[1]*2+a[2],a[1]*2+a[3],a[1]+a[2]*2,a[1]+a[2]+a[3],a[1]+a[3]*2,a[2]*3,a[2]*2+a[3],a[2]+a[3]*2,a[3]*3}for a=1,#b do b[a]=b[a].unit*100 end d[#d+1]={b[1],b[2],b[3]}d[#d+1]={b[2],b[4],b[5]}d[#d+1]={b[2],b[3],b[5]}d[#d+1]={b[3],b[5],b[6]}d[#d+1]={b[4],b[7],b[8]}d[#d+1]={b[4],b[5],b[8]}d[#d+1]={b[5],b[8],b[9]}d[#d+1]={b[5],b[6],b[9]}d[#d+1]={b[6],b[9],b[10]}end end g=d end local b=i("Model",workspace)local d,f,c,q={},{},{},{}for a,a in k(g)do local e,g,i=unpack(a)local h,j,k=n(e,c),n(g,c),n(i,c)if not h then h={p=e}c[e]=h end if not j then j={p=g}c[g]=j end if not k then k={p=i}c[i]=k end if not q[h]then q[h]={}end if not q[j]then q[j]={}end if not q[k]then q[k]={}end q[h][j],q[h][k]=o,o q[j][h],q[j][k]=o,o q[k][h],q[k][j]=o,o local c,b,a=n(e,d),n(g,d),n(i,d)if not c then c={}d[e]=c end if not b then b={}d[g]=b end if not a then a={}d[i]=a end if not n(g,c)and not n(e,b)then c[g]=o f[#f+1]={e,g,p1=h,p2=j}end if not n(i,c)and not n(e,a)then c[i]=o f[#f+1]={e,i,p1=h,p2=k}end if not n(i,b)and not n(g,a)then b[i]=o f[#f+1]={g,i,p1=j,p2=k}end end local f,j={},{}for a,b in k(q)do local c=0 for a,a in k(b)do c=c+1 end if c~=6 then j[#j+1]={a,b}end end local g=0 repeat g=g+1 for a,a in k(j)do f[a[1]]=o local f,d={},p()for b,a in k(a[2])do b.X=o f[#f+1]=b d=d+b.p end d=d/#f for c=2,#f do for a=1,c-1 do if q[f[c]][f[a]]then local n,j,g=d,f[c].p,f[a].p local f=i('Model')local a=(g-n):Dot((j-n).unit)local c=(n-j):Dot((g-j).unit)local d=(j-g):Dot((n-g).unit)if a>(j-n)[m]or a<0 then if c<=(g-j)[m]and c>=0 then n,j,g=j,g,n elseif d<=(n-g)[m]and d>=0 then n,j,g=g,n,j end end local k=(g-n):Dot((j-n).unit)local a=(j-n)[m]-k local d=(n+(j-n).unit*k-g)[m]local j,g=(j-n):Cross(g-j).unit,-(j-n).unit local c=j:Cross(g)local g=h(n.x,n.y,n.z,c.x,j.x,g.x,c.y,j.y,g.y,c.z,j.z,g.z)local c=(g*e(l,0,l/2)*h(.1,0,0)).p[m]<g.p[m]and.1 or-.1 local j=i('WedgePart',f)j.BottomSurface,j.Anchored=0,o j.Size=p(.2,d,k)j.CFrame=g*e(l,0,l/2)*h(c,d/2,k/2)local i=i('WedgePart',f)i.BottomSurface,i.Anchored=0,o i.Size=p(.2,d,a)i.CFrame=g*e(l,l,-l/2)*h(-c,d/2,-k-a/2)f.Parent=b end end end end j={}for d,c in k(q)do if not d.X and not f[d]then local e=0 for b,a in k(c)do if b.X and not f[b]then e=e+1 if e==(g==1 and 2 or 3)then j[#j+1]={d,c}break end end end end end until#j==0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement