From ebecdfad1d3109997c544a8d40b7474e72b86769 Mon Sep 17 00:00:00 2001 From: paladin Date: Wed, 10 Jun 2026 03:07:34 +0100 Subject: [PATCH] Added scripts and models for DataCompressionTest 1 and 2 --- scratch/dct1/GenerationForeman.rbxm | Bin 0 -> 24116 bytes scratch/dct1/dct1.rbxl | Bin 0 -> 181016 bytes scratch/dct2/BuildingModule | 79 +++++++++ scratch/dct2/CellularModule | 85 +++++++++ scratch/dct2/ChunkModule | 266 ++++++++++++++++++++++++++++ scratch/dct2/MeshModule | 145 +++++++++++++++ scratch/dct2/PiecesModule | 174 ++++++++++++++++++ scratch/dct2/Script | 1 + scratch/dct2/StructureModule | 235 ++++++++++++++++++++++++ scratch/dct2/SurfaceNetModule | 235 ++++++++++++++++++++++++ scratch/dct2/TownModule | 120 +++++++++++++ scratch/dct2/TownPieceModule | 148 ++++++++++++++++ scratch/dct2/dct2.rbxl | Bin 0 -> 144479 bytes scripts/events.txt | 3 +- 14 files changed, 1490 insertions(+), 1 deletion(-) create mode 100644 scratch/dct1/GenerationForeman.rbxm create mode 100644 scratch/dct1/dct1.rbxl create mode 100644 scratch/dct2/BuildingModule create mode 100644 scratch/dct2/CellularModule create mode 100644 scratch/dct2/ChunkModule create mode 100644 scratch/dct2/MeshModule create mode 100644 scratch/dct2/PiecesModule create mode 100644 scratch/dct2/Script create mode 100644 scratch/dct2/StructureModule create mode 100644 scratch/dct2/SurfaceNetModule create mode 100644 scratch/dct2/TownModule create mode 100644 scratch/dct2/TownPieceModule create mode 100644 scratch/dct2/dct2.rbxl diff --git a/scratch/dct1/GenerationForeman.rbxm b/scratch/dct1/GenerationForeman.rbxm new file mode 100644 index 0000000000000000000000000000000000000000..cfb5442b8371db721e519c9b1c2104d1057e6e35 GIT binary patch literal 24116 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

DY>`8(er)2xa#r`e`bAO@| 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�LV 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 z zHKy%{2xsFJ-{Z4OEVvEzR=qqUrm{ZmAq#%q_f1EQKV*|ct8g5$=iCy^`aOFb&*vJ% z&iy%?lu~pTH)nZBW z;@c$0`3dTc8G*c=#?QWQzO{xU`O=pC`kaYRB}43Vc6@VM`>?mmjQ@Q9cW75O3Mx@s4MJz$` z$wm|H!`6+LJSTI1N^|m$QJUN7)1S4Xk<5HQ&%eLBLGSa$2X}5KQ#L2IR!B?oXp>T< zZz;a5_5N}{=CVf5el4+fywx0gzQ(l3DJy4|e`3n%FEDAa^135&e*VI%QTML@)qvwgWlT~rTFainDRkH{k-7rsX2#sZx1>2Fktyv{$$U}b=|l1 zE;KvkoxOL|wBkfk;(wEi1z$K_Yx8*baPY#id%~J4OEp$HCo{$G_%QWgPUh8(8y_@( zn>$$`NH5|Hd7*)Z8;53Mn(HjhSKSW`?iC*6%jHSb&V19J$isZzPW`0yvfjmY7O_qu zm-j@7RmtjG?Tw1*o1}Vwy6&&PoQF@8IyHXrQ9tE6g|n&8*`j1&=b^&NQkRdx&-(u> zIeb<%`1*6@G11wdm&_rPgMqy)SiNMQyuZI;GK2 zYM0zwaSpZ<@qP;zTr01?BSot0&QaXcVu5>jCgMZo7s;EO4DN^gNQhPP&=g_$95^|a z=VYgoQNqpV&#K-e%D)@XveP{ECNv|PWrkZudDhMDEqOE9&av#0Nj$q`FFEjX#WhFU z0mCqrJn;xO-@Gz!gDMAymv7!^Rlia*vC@&N+D|a!$;$$~oi; zccp)APvpyfIWxg3oKJ#OG~=+swx81;)ht%%sdGM=dwhmXrvXmp!mMYrKNnm}y&2f$ zwtM5nM3#;ZN-UKI9w(m{CnmAB6C- za%kV=6!s~RAa&GcWVH3gxLo>NX|c}q#FvY_=%zv^{e|wRS7=F+5esYiaQ*&;g(>lO zJ=ZSxKJU`<;N3>Gxa!@LRZ{q?tzK$~M%s{7_!7>Z5qPq%PD{9zeaA%-tAd|2fq6%O zw+JPaB|X!z@pWc_)+clkXRZZ(q!$Du1L?vJpS91GjK%dt3F~c@?K( zk1x_%-#K%UPO}lIJP!DNKhwJDuIg;2S$R_%1X2rAU7Iu3zqvJY8T*$f2k+%P zdKv$)u}s6-W%Fz4B(+UTmhTGK|83Hj2dS0`c{eUq#)~;Cm5C`la`1aUa~3{}=h4OF zErOGy4m?sUf5O&xx_!BR;B`GFj`I4t^Fq!>gs3c^Lyf`N|Ls3m(Y#A%w`8M~`IMh= znU?!P51yF9w~WKt^T|CC{_FWCb2pQ!#J{X8yu9gvcwf;DyxH-`y6-c4dlKvNcJ1x9 zYBwo(ccPs2Kd$vx&Dh-A{5hXfBIb1&&Cu3k`D~eRNh`j=h(&lx2iJl}S@Hw3B31Pq z%amtw9J|TH7azS#%K#&m`)A1{7q zQ@yyV-L+LwDl(xwf}awYmfeh_aO83HR(4*QHeVu=r0jjPYtDDps(xI;Ceu8MrOJ)F z$zQ}RwG1_+@ zj@*ZP_V3^AXCl4s;lVTZk7itbvQXZTx#pti!({uYHp`>D(O1=TMY{RsR~DFVm*!bS z_LVE2Xn zT@7ztnA|hiG76SP#S4(%zC4$7^XW|goriBe`*zg!eSt+H>*?u2Ul(i>tlq)O&5=8$ z^3vcJsmZfH>XGh$TS&^?Z}5 z?&4qOa)9^4j-)TFJ8w%$tS*V^7Wpz?PTgHHJY5#g@2X`UZ8r0Zwlb5|s;&(miVa(} zBkqgHPg>Szed`j}^ylXjMLkZI?MXEh4VfE|C#T|A6DaG|;Nl#O+t%9^k=nbiW>sgl zn~um9O%3BmI&J@LP7~h!VD^-r^(})*=X(D$*?xZAR^tJWz-!ZQoEvoAuslv=p1IPl zs_I64Ny|z$LvtsXKZJFjRoLv|&~)r7wAZo{CKTx`0pOW%(R>Oq*uh2OD2eJwplSiy ziVDDAivW0>MJ_ghyBB@Ee`MnQ*(|tx4oE$EA%Kf*tvcsU9xkpPGa%7)TQB zUsq_+Z|}dj`;Nc;>9##T2J$lQ?D_PcvvJ?DS^UnEQ;v1AIKBCCY|mD{w$IBnxcNlT zCico()YA#*u6)5@b8&KBlnj~0vIDE$)evxQG|dsB+>h*p`r&^Wd+A0 zdLjDtr0r>YUrjh$g76XhCi|J}U06^7Y?82&^%B~4k(*gDmjG|GSm{E{& zETcmIh*4$;`A>`j;NLTfMvft)6wzyEpa=nLCE%S5C~zaRAbEHY{fC-G5FR)IfpKRD zKt>Fv>i`OXVFrUU-4HR%2a4p2{E{YWl<|v(-B=mwKaN8uEtd>s zOB%fsA_S~#n85@vMlvFYe*4Ya6aY|-i^ybubU!F^z^1@4NG!3gR8gFVej9BSqrmf%EwuSsT}?$(R}F+3>}#k92v~*%kpT^F z8WvGz^kC-`4v96Of!O>wLe$xsy2pu)GQkGCi=(a-4Hx$n35p~55vHFAB zwEh1mgF^tlGN`I)s;FzJszYrmpqxse2mvbt+=EFIr{8zTDD2?H?$H7z3J#SJFc{ps z2QZLzyI=x^cBS3a0H7j^zWvRjf#jff?Lz1ZI=C5uS0@CFgh~um;-JYR%y@FHs;i}? zrKzf-1;oML1%^PtUIe>&fH=tc#2OJ&j?subh8*oSkK6dy`QPFHfiV=Ch75`jFdDE) z$pSsVfXL9DjLtJAx!aMj{S;&O3IOgmn;fvvq7D7rK!9wC$Zm53M{le@qN_&%GLart zKxuwsHvpl6uxs%Q14u^UNXfx57zP57V535`x@7z-WR+3usVlLm9M2`^AXH0-NdX^5*dKIVxPd6tzb*3P zM?*w2k}n+CH)ij}xK(0{?p!2$dXBCVhGO{-whmi zn5{$h4e=wQ(U?0{^&o!O3$(LMed5i-A37cd(&IJ%$nbehyYENUn;$ zbR3!7(G(qx2+3Jd#M%XK6uQhF9UiBSzEFoOYM?{w&Rb2$9qRRR7v`}qwROCo zuePh}O6`xSe0R4x?wBsMbNjWcIbPeg)LOWqbIs-Ws&28qU-c{se{x#4^jx(X#C3TV zoSBN^m+N7;{&zlESo;b>83-Ji3F<}6P>j(HntBoQ=G3gBkKg})FJe|gv{sDF!U{C4 zeG+m2!s3YTD zDg^pstRCpf70}{G5y>Bs=s#kR1~6*GKb%7SO$-r&Zh+$xn+XaXF64ABe#9$CTOcz?9|LCI#0R!uQrGi1%+XVv{ zt+^n5dQLGNk9m(gzUSU>X`thf1MmEIvJ~x`M1d!$S%xS4dW0u?2!H@qDfXXIN#(!#WJJ`GCPb#vlWnEj4XAG%@8*# zuTBJCA2g02da!InuY)o|FZkO;+Au?W(cCS`eMDU{EE-Hf7$XJ*6Nh>VY6ptcW{59w zoM~+!1Qia*g^xs*o*lclQl}(|1PcX?2ujCW;U+>72Qg+9qHw39x7@cL6SQEWQy+aL=1C0X#%Lkmi0yP1Xj&$;214i_yH)x`SAoUQiH^5Q{ya7_tc>{Lx z|Jb7Z(@Xx>ve-(p<{!;WVx zGi_Bhhi}3JG$zwJ=wFyRg@7?~Za9^ZFati4DmLk2OYrw1qP4(qm?#?RQ=_pfeEwLp zf4v8q$5eIoAY_e>Tn$T*3Nqa^$%a9&Mh8%)!v!r$c!}=R*YM`cJ)CB=+EU-#O z%jU!b0!Yb$;>fvltFZ$D=*Ve$0iywqO@IW#$fiQacaejC9c#wedR&asPc#^yYw7}! z8%5($HvpqAAV9Sm!YBm52O9j{%qoiV@xiUci1CMD$C+0Dv9LwXQ zV|ffsB>+VT7>@(sRE;I*i6O)AxXUbiX_a4wA&0PKuhFR*fc>3kXf06Cn+Z@r5zH3| z7)8~Q6zLkac--wu>?RnHNVkzo8E&{{bRH#;{Ec(F?Wt=9Yk|;63=W5;z}3uzL|vCS zbEkOkc_d$z;+AhwZJ*oSqlm6Q*6>tiO($|JI`?v?{Ld=YsaFfKYiGJEx)h2^hU7jR9mqJ1?BJFZk^N_PJJBL@bBq~)G@{Is*X=VdQ)f#&2W^f(|jsmj21 zJICt%WM2)D?S<2v?R#JDiOq4o-^7G7!N{|suN?`#Aw)cOVwEvB+#=07F zjLcLt=cpK|n`mnqn;5I;m~3Fi@m*$7PP!L84+^S;aFQrOz-k4i0MS*cIL?bn^hJuu%r4q+%IaWi_<@8d7 z{3lKW@b5WIBS%*|LH*I~jseAv;;1Ps`uv2XjQB}+&VdGi;{*MJkSij~x^K^YAuAwT zU~fafS_YiG2+4=p4|zf!Iktpw#w$4h7@zlGjR6ZFV05PJrqW?UU)Tkp$qf&d^}Bax zjaxmCr-|hRGBZ|Aj{lLI*dpXV$q4}eUQTG_7|IEK?gQ+vxDS9~c7kHHCldS^GZT`J z&rG`VOQSL|gCONt2Ic$_gX|FUpBMzdzh@AQ++Q*XV2l_eVz4*aLjZk=b(7HT zU=QeDOeY9zLq$gqK+w?N-J6U~A{}R%8In$cq`}BZ#|_Oj!kN?58GJnY8lwSC2&PXV zU^Kvk3xJbR#Qb`U3Fyo)Utf~P(121B{V+6|rXpb09T3nD8o|O08h-j2vY=UdtXKQ9 z^l;T7HAi$cF1&xz(EEq4I2;1dwLt&?k^&hT0u0?}ID}$YaA*cbr4=VH9L^aU{{t(1$?4aAIgIkpMvGK#a{0 zONi(?RCNC-^1$qS_fsfKBLa|$^m09`u`)8g1dGjy^Ha|cp28fxjmjK0H~ zlO+0=ZsP#qMJO^wJp`?&>4+T2D*!4CGYB@v(0S+H;b<9z;0tqEXdxRdPff>0e&bez z3DF&$LiuZooMCA|KQL6^vgpU(Y+tB8&|6eH%*;20g%_wM!XiT&E zL%^?AHEuh^D2!-S7+1#CzatT&+tj!@GpC^CDQlv?SFkrrB$}oKZbHr=LckgowhIC( zj8S(diGHIiFVGA}UXT7K%5*sWueuty2qSJQAMSG)3JQq*2*Bu?f*u4CK)?#l7em!1 zZ0HMEuA%i)WmzhIl!aTJQybuNKokB;b?}XlO5nAhmt_KcDETk8OCoX%HS4cSu7T;;rU?-D(FRlpRo#Fg{44!muzd7&*yt@F z@6aAcw<@%%4%IVu5OHwqAOcX(=R?4RMZ5-w+e(9uyatk+I#tWilmtm}0tJfcL+*7k zF>xD~F16hd7)XIEj@t!bxRDJx3cUXs}-p%+n;+fSNmotp=nr2yHRsO&rAGHh;n4;9tm?68b?BMF`ZkiKavy(8EL{ zD!N@90D;5chlLJd9`EuDNII?sOqV~joH4ZJKzx3i$O057T5zd_ZSlw$#-m5Z3qjO8%Ts@kex4)7=XFl(ExNCJCFo%z$SH}R_xIh*%1>A3_+kF7Kiw` z5h+VNhb{&g9uUk%zk!THzzPR@#6R$e zMrdLlLCUc_lKUebEknqE;t>Gg5Bji6Z3xI#mEE>7LWEQ{}F^g`)1;8+~Ae;7~NKH?~CqVrJ zpJ>D;<`bkG%O`_B;*&E%{u7@7`1gFGk^4(N0gMr!==KBv80Hhq!#S86Q}=I7#4AAl z1FvWVC*~ET9LuZRKjM`OLQcdhy0rm7s08Y23CvmA5mR*2|9_2 z#AbTvKVC=9oCR5Pa5e$bJfcOW&pb;7+7<9Ec zjR2ZjVZb6qlm!?9Lcr{BSPBCejOq}K5q}s8#aKBk{UbSCfv8O+hjc{(fa8jU5=t-+ zMF>~{=b>HHxd4NK6E-;`jC|MhqxD&E+Wdwb7gPCNF~>cIHA5iV!di zEF=R48Y*>a86*%3ke=>>0Hg=L(slp?J;sA)Nc|5|O)JPKsa8erf(QZ2zA8G(K#&R2 zVqGQj!A948Qi%TU;X=SgEFt>9!1h$L+NzkaJhg2 zg2S#X2*HHQt(g>u6$fTRj-dzv10AbDE)4(zg*D{Hk4G3)!DZNr_#E{0ITRsafOB%l z`x*cY+XWs+P;4J|yr8vF46OeHhr0$~81(<<34_ONsKg8jCG_hF6d_=^6G(|;6#@(% z&a0i$;kRV4-k*&X5T zf^PUjHRFoa4Dh=c5GY`vVzdg_2(&Om={Fx4JkCu~1#>|LJ83k(g^;H;Ac5c1rZv1m zM=PKPRzRqk(NI(~=jcFx6_E;rnmLUk1T43wQO#gLXw_7j!%O^7$X~ATr5I=kR*GEV z+kqa;myLoAt>WNuu0!0n!lPD;J)J3+KqEujA^c&emAJw0gOL&;z`z!D;D8 z9mzTNy|)cyGqw^=D<2mRsVdtP5X)|Ui^HNxq%>Vjz3lP*lxu<-=z7GNIC(i|AN%9g z?#wdAO=r2@eJfu-*TP}f4nniT%9E2kiFX}X`D_F?Ex&JI7Au|CRQYa3yS|An*R9l8 zv+eC0+DhHUQlCcMDcRt1vA?MJ^I)5(({YNE$p|JrnOo+e zw)>=othDa#pnCpE3vaym@KtPDbcAb4UlFtXM*iDUll$AGB->+Uw8RXA65nJnvpq`D z)<0XmH88#4vkr5m>ReaHYk7EGR{wUU3k_$MyQ;UA*R~q8NuHTi6&ojmOolupq9TCI0@?Fm%|YPP!AQK5HRF+GzNA=fopyX zt?^T!x6?qtD=~GxPi0IIq;70HOS~UfIrkP4dR9nLbqlphXmvZ~ z$M3exYB%XnQ^__rk|?)n?s68Ec9pA#XYN0m#)i{O-mHGq^LBt)^Xz$SVVJf9oplDI zH$?Fa(pi`)rJvJGw7I z`Nb49^hKkcy@vXRpH!scZ%EYJV!h^QB&}g|B3Ob1 zVz^#MqJ}#L_o4m|b*{MBksU)U{xKWQ%~DJ{S1A?WzF6g3|-wj=6kiCzxM6F%C|qhiv8HDE&8D~ z(@R}G^VC&-e*TK0X8*z>`S9Y^1)m)Xg-<`&#mvqm6SGXQrM;no&)_iOveu5)lj15y z+j!Uo+M9P&W)DWShxZb|pgqq!!kH=EgU0ba+{V%Qeg1^1MFcEoya;0|M3$P&#P zpreBqk1Th+ zcWyV;Rj;Gd9cQd>WZ$DY$pZhRZO@*XldFBpB1tENRvnyo%Qz$~Va;`8%Syk~2lh8T zFzn4;+h`b%XJXIha`5!1TBLsHw7tCMr+Y`9bP><&u2a5u(}*o8-ffv|#^x%;@3AxZ zr%T!}kq$CPxo*H$o29&xh@JG#s{=3jQ$Oj}!8^6)c6m!lsZY;VCArJg8pL1Ki4-K> zQ&5?n!3`>Je9I1o2frCUe`47U18K7TXO|spGqa%&PEPbsfTSdwqz#H}=s#?1>`2A4Z4SgY-^zMOAhrv#5`Z}>=oKJt5U{tG z|A)uDgO^W7k@j+$-yL%BKrVMoxM^ZSx!LZ3htcWi+|`XRF=%5L=#^Cjsl75Zh~p?i zz$hLs#^ds_P851_8U%I9yp#F(1*Qm2=9|nXG?`C$GT+o`)A=TgP&?%{)`r-)0aUK< z$hP7;Y=I09cUe&yG!Xz!83zyVl!tu7aB@D15U^a#e>}qcN3$lzsAnU>z5tYUeX2PH z9olHa_y-=RfpG#XW9kAwI%|sT?@98a4&6k>#3g1(N{NY!iA#%#%ZQ1~%E^n1DNu`$ zl*xp3b#e$iTKyw!IXn~@@*DVN+)xD;TGix{3UxAmr0TaB7a4ypa|dp2y8KeqAzQP1`ZNo)Oo*0W)_ z5zYV4dbW|M;r37K*~afmZAbYl{_08rHAcmcWcnDN#r+Ocr^WHvK=oQgGdk4Mh(@ph zgyk%X5HM*!i-wSxB{vy;V@F22QlQ;gkbMy!VZwnhV%WNPWb0atL#7GFcpeNn>LdWn z1k^g5iw!;`(Cb=QlB-PHsRw zj>f$n8WoMi{Sp!?3R?f@kpXJ`xsW$5Dz#A}@~goyu0xc=A%3#9fk_nvt<B8XFl) zp&%n8EG**p{sY^2mh|P$D_5<0^jJ*1;9xiDR^7StZA8!ACp7u^1%-NEtPNR!F4E%Q z;PB9E@95~5tAaizotmDOmUfYXK5R|I_U+r(8;3qtOT4qRwB$=eAHLV$wYIjN<3%6a z-QRB9xH07}`f%ROaqr%}{*UP6Wt&M}US8XD^pTUu>FewJ-yQVf(II=_z=4z(=tKFv ziid~CR&Mm6beLej|5Sfz4!(U8FTa5`b9zA4%2!eBomor5z8+LqRo<7lt8K4o{~nVg zxXwGFCb+hlwwM6BpsIK=vZcJhrE=j+1fbf0&kp`U?&tt-4`Z^YAFqdZ0!xmwMM^8n|8Zq5Vf35Tmaz?n>n4BN0FA|^5n{XzdlAJctnOiTsM zd~1Ab_f(Wh=;jW3_9gj!6?{6Psd2{l~_wKDWcvQ(4MU0$1@{p_B8Z9;8=cWr`F zZ2~dBAfeVHF32w^4E^y7@(T>|i$R}}=>LIs0@hO(-@htgEnxjf!1}C!b(?#twZP-* z`UP8jCHU$W)Gu(YU!YUJKuCM zO+E3JjW6j9A0J-fHhWamt$UwW{rAEB+m;81IaKD(Ke&F-EOMECKJ?x0sG2{Htm==r zIxbu%R@JZ&LaS;=vhR?MjohHTf_M+5CT~T5QqiAn=)dUi)-B1YTbDmbmRGTLd64`d zS>QqP4)l4}CHa9sPg7{0mh#J{(56tMrcfOEEK&?@GO8~(T9#gJP;OLiw7J|!1buR` z7?p26l#;R~aZ6$f3foe)qK9p1TmJJ_n9ObO>#g9e;N`85=dCbDN=?CgPHs|3Mfc^* zq>`kPdr2jqlS)n>-%^rvnp;@d-(oYLFbZdd%Y}t|mp$msPfgj9jPjV0nzAi5Wov3m z+P1Wm)HEgS-UWO%GqiiPd#$y5w`upjk%{ZoesiM4Kg(A4afyG4e{PBY>=OTk=idG$ z2^T2-9yyfH6n~2UDhfJT#y{@dT7OF1w8MN_wdQTSeCZqbeDSPr8zQ#&@2TEY^)xEk zE3vBTNAjT#(bX^O7h%#(Le>4N40NvU4`{zS>aS zWgkUoC~hduZ74q5Q0#CASKQF`P~TG6;ft`orM{(>zU5PWO9#~^ z{>vALTsoMPyx6{RFljJJcQDC$FezzXT+-mr+>Id%7b>J}4A~gMxiLgxV+e1wbI8W+ zsNNS}`Eq4F8&>hsF*BlqQ%YCL>}VFP5U$AAn%!D4P?yuucKER%$a*5G+|h;?D+?}< zZMxLSBh2YH8#(o@YfijZw#=Ec{^7xJLrJF71(x+`lsq#_{4v$0X=|%JTU*($T$Sj& zDA!c+bl=aPaqRLxc+5+M>esk_I(GbcGOoxrv)T5Npw+Uzd_xh-v}yy(Q_&iHq3q`_ zns5#E4>umIf{vnVH+vJ?$?Dn9v3Y)&3(!Lm0@l6jp}By@VQm*gL>+c8w)P4ZG|Ube zL@&FEnd~r?*ELd@x^Q(P1`Q)!@N*rgKKNjEcZ`H|;QUx|(wySbxtcE~x16u@w-&23 zARkQ3?%dhZ7-qs&vSz8I2-kycEQ|5Gb?#p@%^)|wE<)#Kp7qbxup7)6xNEZL$dRl@ zJ8}G~$+H|!6(3Wabu(#4ES|;jd;SY@rmOpv+8fhU7mJGaefjWV-;B5f{glgu7>ick zRxOsPk^!;78vdR8**Fr`TSVH6AN-UT@@~Ld?#k6EB>NJx*JopeE}LD6=G`dqJ@C5R z5zSqK>Q%#w9FnLg5U@&LSXJ4D?{5Cv(vk5I{y5q9Aj>4zq$I z8GW%+3Ne+!5XEqQ4`?Z&S4yG?VN?wYqc6+|9>gUf!Hy(i=o0E?Yw+@=y4y;l-yuT4 zfY_cws0=U^=^aK6sbLTd0Yku+ZU8`KSQCPf*9V;HO2kg-!ioff4cZU_h7h?;MGTKb zftI7~MBYR|1dO`BT%rWnFWVYDK!w2w4CDX;mM1uV5>k$~<#5b|u}hS*Q6dk3p@1Ph zU586ymn1X@7_suC3=kABl=4W5bXUmnxVlPg zxB(`;8XkjUSXVXd5GGgj&2J3W9Xf<59R27s661qI2l}X)P7#YfKb`rQT+R+t#XY@G zGgMP%ZWUMc^~H&o)dVn7C)0GDUL_${Z_@Bi`Zt( zUTjB{`F<Q4s}A#ZnLiQ6ykU5-b^EfRTZr5eP_OBv*t@6Eh__t)NDTsjItb7@e{O{|Aa% zf{UUh`G3jd*2+oP`+MIv0|PTddC&O{%*?y*zIX3^_ucpByBEOP)^^2&TW=OiA5H0D zQJ1XZ^SHdl?oph2c>I@NzOJTS>vdjjZU5ssIIh07qvP?KytR37WZ&^##*LbE`K6cC z-XC!v{ipr&&lmcx5$$|U)Y>Xqoy+BA=4NJQir?qdE}kwfE?IQ_qcftjvs2_ilooLK zGqTb#&b9q-BI`Xft+zOwywm<}kwfHOM^nq$BkZL0@(P32MM_l|)Oh;Mpa}$GUv;N1 z0YBDo03y6PSTpDtJ zQd~eYBrd%(BM`LWLNl4T`jZo|oku$CrM7ofuM;cN=}z7HG{n?gFRfs!&1{+gK~By>@lcr%&?*PKE=B@x=Jcl^z61Z~5^)*4r|>qFY5*bu!)?f* z#8Y)II+cAoYT&}#RYj-jhDbc@j@xa?9yc{9XvMDZdFi7qb<5#7&GdD&YQ98X^x zw%hi`Z|NP+#ti-8s@LszTkS`OG;zP~a4$U>e%@)K$%Z|4wVmtc-wNs+Ihd<<&)Slj zZ^HSgts_i*UEE4o_Cqv(9&3cqjCs_B3+TcCdi71p&5Olx$ue{ zQJUE)f)y1CM|?;3G(e`0M!T<@3JiFB;XN_JJ?IDu7$)?v=?NO@7e}#CD2YdQluSW~ zQ2F(D87o}qCrt7H);I^+%B=)8oD3{Nrw%95p;nDnBF?mu-A?EqXBu!6q+(hej62<9 zKH3Ps3Oag*4@;QE`SW}S`|to*3&o$1j|NN=diW6};>2N0v7_lLU1k&xU|x8yF+{}( ztgMC(E!uja(cFB93R_w4Nt9<;MNaNxlMSJ(XfsZ(oe z8X6`}Y;OnK9SI-1WdPPJTpO0r2W)}+$yEVD1iuWQt$R@(`sz#%fR)D^xG0a67nP69 zP_3ji0TeK~JNh5W0vFa;S4h9`w4he(jp9fO7#H@M~q-`A(n+LU>UviYR$%JQ4;DwnF!XoVWYA5 zODNsPh6^hUy)G9JFbabg3!6anhx$(ub^7GjnnuMY&;wvSLgF{zLlVI$X)4Oh5wA`0 z(_N32CB_>dR3IFsN5~*~U7v3z(b3&{c#CfUgwrdcyT3FpNruE3De@dvOSi@u9Zn%g z_VsE)fGk}qN5rK+pxYD{J_D%){F7vH$vQ^ID93P^3x#8OLHttVHFGBgJ=4tgtd45QDnL!ICU5kSNC(wFJe(E(kXE7vgC+EwOXb>p7L+(Qz zbqCo~ehvW#b#d`Y%U6S)!)(vI84RK*r7D?TYl)L-I;ZO)+~rBZqJ~nYpVjO-2Y*ux zJDQ9oF#li+fUzGDv%nE-T87fw^+CvL%oJ3g#v7G?7$sgxAPYj$C-++;eFT)Ku_ycZknMtQwXY z7)k)vQ6#fLM=?G$xuc4|l z28}Y9B_k0MaOY76FallauU=09mP{f~qv`ap!2rf zplO9_b>F}tMeMzmVpI~;TGmG)U=mpg?PxPd5yqVGC_lW$8R@oWY#11|$h6BZkEiR+ zf~HaM)hu$G(zEHGlr-JMhtPBYWA}JEO>PCht>~f2QW4LlK==d>6n}RBSz6{yghrkq zWfBY438=B+NneS%5wi8cf4>~=^JGwGd&|=UKQ8;aq-%!c>sdF4whZVzak64}_Kr;r z&Rsc=cYS1WD>wWDw{KJzkB1klm9y3^tR3EY&dsB%S-Jk2?UCQEM^vQJ3Oti*iMBLv zY5us?x4^q?V(?Mtt1VMDmozsmc%>|+S~aQkSm`ej(Fsc>gB~ulO)5yR{pr$TkJ!(0 z59f?1TQP0B#b)Vb5x4W!mYw2ytHf)eJKc&rM~ptXzak{@(v`@dvVFG?AGv+4<+p?1 z{?IYI;rCTf4s>0AM`<_LWLUmqR=eZtPtX6}(Q%e8Bh)uMN=Rti)v!Y9mV8X+<7Jnb zT=%5TNiwJOrSlnnXNQXl?`=3YE2iRK7e{P&u)Q~?G^S|L!==sQrDwORwpKMw^W3zu z@$%AS@nFl#7XNhadU?UECobjV6AulK33xL=zVF1l9ce*lU#oY%J7b%c|J4@X zd8Kpzv-byfj{oY+lByr`zF8!nQ(k;zYsr1r&C5N^BDznJQ#vzuY*UX=1x~uEw zS&1KaS=7%cC@kN1ym+kSQt&o)p^ev1X4b>TPKm8-kC_mwzJ1KrVaLdMk1yIZzB=YF z!H0qZ{nWK(7bk=^g;)n~bvY+e=Z~vuK5BPGvG(-b)s5oZQ_)kb!`eP5pL^V4`Rth= zCVF0Oh?r0+S9`m8eZS4I_>RN(HOnT~ADwUg)_*_nz8-wXcYEzkUn`5I`}UuGA-;5F z)9gwwwenm|QqY%i)orhDDRGwjfAQTXeh0qGHIKeizrCsKLHHu2sZHqH`@+`99yj~# z8J+i8b=LIO(T;_7-Wwl$l^Jp;=aZx2nbx*zvP{zgK73}=5U}{s8Lt(uys+8C=|POo zc8}oF;)4;=%ut`;*v)Ql6du^HcSX>!H}4hCn0zC}^V6EU&Tp*sdNJwE4ZevB&o2Ag z#`)^Hgu-n_(nF0=ZnJ+*_q|oU$|pM}`hv}-$shhcr@5lM(Xk=(VPf8qriUdD!uOc( zT#^`AQrmj^@T?IL>UHazH%zR1vT=@IRn23E@Zsi_yHjpV%XxIJ{qRx$EVp4V2iu5) zH$HrHdT`}v|94L3Z_5*_$F3R~>T5M@$L`4K?ms#^EgJG|Qt|ht7tb^XwhajknwLEF zR8*jOOh{H;!S$BpYbT_G_SjTZE%&dRl2L7W=%o3x#e)`v2EYWcbteA4?5R?&R4B9N F{vXzoBpm<% literal 0 HcmV?d00001 diff --git a/scratch/dct2/BuildingModule b/scratch/dct2/BuildingModule new file mode 100644 index 0000000..92e9db7 --- /dev/null +++ b/scratch/dct2/BuildingModule @@ -0,0 +1,79 @@ +local module = {} + +local function new(name,tab) + local instance = Instance.new(name) + for index,item in pairs(tab) do + instance[index] = item + end + return instance +end + +local function block(cframe,size) + return new("Part",{ + Material = Enum.Material.WoodPlanks, + Color = Color3.new(0.301961, 0.14902, 0.0588235), + Anchored = true, + CFrame = cframe + Vector3.new(0,size.Y/2,0), + Size = size, + Transparency = 0.5, + Parent = workspace + }) +end + +local function mark(position) + return block(CFrame.new(position),Vector3.one * 128) +end + +local function r(v) + return math.noise(v.X*0.379,v.Y*0.379,v.Z*0.379) + 1 +end + +local px = Vector3.xAxis +local py = Vector3.xAxis +local pz = Vector3.xAxis + +module.main = function(ox,oy,oz,noise) + local n = function(v) return noise(v.X,v.Y,v.Z) end + local o = Vector3.new(ox,oy,oz) + + --[[ + origin: where the wall starts + direction: where the wall faces + magnitude: the size of the wall + depth: the current depth of the wall + ]] + local walls = {} + local function hit(origin,direction,magnitude,depth) + + end + local function wall(origin,direction,magnitude) + + end + local function project(origin,direction,magnitude) + local depth = 0 + for i = 1,4 do + depth += magnitude * 0.5 + local probe = origin + direction * depth + if n(probe) > 0.05 then continue end + if hit(origin,direction,magnitude,depth) then continue end + mark(origin + direction * depth) + end + if depth == 0 then return nil + else return depth end + end + + local function extrude(origin,look,width,height) + local depth = project(origin,look,width) + if not depth then return end + return block(CFrame.lookAlong(origin - look * depth * 0.5,look),Vector3.new(width,height,depth)) + end + + local no = n(o) + local norm = Vector3.new(no - n(o + Vector3.xAxis),no - n(o + Vector3.yAxis),no - n(o + Vector3.zAxis)).Unit + local flat = Vector3.new(norm.X,0,norm.Z).Unit; + mark(o).CFrame = CFrame.lookAlong(o,norm) + o = o + project(o,-norm,64) * -norm or o + extrude(o,flat,r(o+px)*256,r(o+py)*256) +end + +return module \ No newline at end of file diff --git a/scratch/dct2/CellularModule b/scratch/dct2/CellularModule new file mode 100644 index 0000000..2b1c981 --- /dev/null +++ b/scratch/dct2/CellularModule @@ -0,0 +1,85 @@ +local module = {} + +local vector = Vector3.new +local floor = math.floor +local noise = math.noise +local ceil = math.ceil +local abs = math.abs +local max = math.max +local min = math.min +local xor = bit32.bxor +local rot = bit32.rrotate +local mod = math.fmod +local function cheman(vec) + return max(abs(vec.Y),abs(vec.X)+abs(vec.Z)) +end +local function man(vec) + return abs(vec.X)+abs(vec.Y)+abs(vec.Z) +end +local function che(vec) + return max(abs(vec.X),abs(vec.Y),abs(vec.Z)) +end +local function mag(vec) + return vec.Magnitude +end +local function squircle(vec) + return vec.X^4 + vec.Y^4 + vec.Z^4 +end +local function off(x,y,z) + local rx = noise(x*123.456,y*345.612,z*561.234) + local ry = noise(x*345.612,z*123.456,y*561.234) + local rz = noise(z*123.456,x*561.234,y*345.612) + local res = vector(rx,ry,rz).Unit * 0.5 + return res,res + vector(x,y,z) +end +local pa = vector(0,0,0) +local pb = vector(1,0,0) +local pc = vector(0,1,0) +local pd = vector(0,0,1) +local pe = vector(1,1,0) +local pf = vector(0,1,1) +local pg = vector(1,0,1) +local ph = vector(1,1,1) +local function vor(x,y,z,fun) + local fx = floor(x) + local fy = floor(y) + local fz = floor(z) + local cx = ceil(x) + local cy = ceil(y) + local cz = ceil(z) + local center = vector(x,y,z)-vector(fx,fy,fz) + local av,aa = off(fx,fy,fz) + local bv,ba = off(cx,fy,fz) + local cv,ca = off(fx,cy,fz) + local dv,da = off(fx,fy,cz) + local ev,ea = off(cx,cy,fz) + local fv,fa = off(fx,cy,cz) + local gv,ga = off(cx,fy,cz) + local hv,ha = off(cx,cy,cz) + local a = fun(av+pa-center) + local b = fun(bv+pb-center) + local c = fun(cv+pc-center) + local d = fun(dv+pd-center) + local e = fun(ev+pe-center) + local f = fun(fv+pf-center) + local g = fun(gv+pg-center) + local h = fun(hv+ph-center) + local v = a + local vv = aa + if b < v then v = b vv = ba end + if c < v then v = c vv = ca end + if d < v then v = d vv = da end + if e < v then v = e vv = ea end + if f < v then v = f vv = fa end + if g < v then v = g vv = ga end + if h < v then v = h vv = ha end + return 1-(v*2),vv +end + +module.vor = vor +module.man = man +module.mag = mag +module.che = che +module.cheman = cheman + +return module \ No newline at end of file diff --git a/scratch/dct2/ChunkModule b/scratch/dct2/ChunkModule new file mode 100644 index 0000000..72c774d --- /dev/null +++ b/scratch/dct2/ChunkModule @@ -0,0 +1,266 @@ +local slate_color = Color3.fromRGB(124, 124, 124) +local grass_color = Color3.fromRGB(58, 125, 21) -- Color3.fromRGB(58, 125, 21) + +local part = Instance.new("Part") +part.Anchored = true +part.CanCollide = true +part.Parent = game.Workspace +part.Material = Enum.Material.Slate +part.Shape = Enum.PartType.Block +part.Color = slate_color +local boom = 10 +local math_abs = math.abs +local math_max = math.max +local math_min = math.min +local math_noise = math.noise +local table_create = table.create +local chunks = {} +local function _n(x,y,z) -- Legacy noise + local h = (math_noise(x*0.00015,y*0.00015,z*0.00015)*2)^3 + local m = math_noise(x*0.00005,y*0.00005,z*0.00005) + local s = math_noise(x*0.03,y*0.03,z*0.03) + local n = math_noise(x*0.0015,y*0.0015*h,z*0.0015) + y = y - 512 + h * 512 + return ((n)*h-y*0.0005)*boom + --[[local h = math_noise(x*0.0005,0.123,z*0.0005)*4 + return (math_noise(x*0.0015,y*0.0015*h,z*0.0015)*2*h+math_noise(x*0.005,y*0.005*h,z*0.005)*h-(y+h*10)*0.005)*boom]] +end +local function n_cloud(x,y,z) + return math_noise(x*0.0002,y*0.0002,z*0.0002) +end +local function n_imaginarium(x,y,z) -- Current noise terrain profile + x = x * 2 + y = y * 2 + 1024 + z = z * 2 + local conduit = (1-math_abs(math_noise(x*0.00005,y*0.00005,z*0.00005)))^4 + 0.05 + local hillsong = math_noise(x*0.0015,y*0.0015,z*0.0015)*2 + local titans = math_noise(x*0.0002,y*0.0002,z*0.0002)*16 + return ((titans + hillsong) * conduit - y * 0.00075) * boom +end +local function n_tranquility(x,y,z) -- Fields and hills + y = y - 512 + local tranquility = math_noise(x*0.0001,y*0.0001,z*0.0001) + local turbulence = math_noise(x*0.0008,y*0.0008,z*0.0008) + local atmosphere = math_noise(x*0.0005,y*0.0005,z*0.0005) + return ((atmosphere + turbulence) * tranquility - y * 0.0001) * boom +end +local function n_satisfaction(x,y,z) -- + return 0 +end +--[[local function fol(x,y,z) + local density = math_noise(x*0.0001,y*0.0001,z*0.0001) + local b = math_noise(x*0.001,y*0.001,z*0.001) > 0.5 + --local t = math_noise(x*0.001,y*0.001,z*0.001) > 0.3 + return b +end]] +local function p(x,y,z,f,parent) -- Create a part at a size + local p = part:Clone() + p.Parent = parent + p.Size = Vector3.one*f + p.Position = Vector3.new(x,y,z) + return p +end +local compensate = 4 -- Make terrain puffy so the octree system can see it clearly +local function m(f) + return boom*compensate +end +-- Preinitialise a data structure to hold game.Workspace.Terrain form of terrain data +local base = 4 +local mat +local occ +do + local _otx = table_create(8) + for _x=1,8 do + local _oty = table_create(8) + for _y=1,8 do + _oty[_y] = table_create(8) + end + _otx[_x] = _oty + end + local _mtx = table_create(8) + for _x=1,8 do + local _mty = table_create(8) + for _y=1,8 do + _mty[_y] = table_create(8) + end + _mtx[_x] = _mty + end + occ = _otx + mat = _mtx +end +-- Use the preinitialised data structure from above to render in a chunk of roblox style terrain +local function ter(x,y,z,f) + for ix=1,8 do + for iy=1,8 do + for iz=1,8 do + occ[ix][iy][iz] = n(x+(ix-4)*4,y+(iy-4)*4,z+(iz-4)*4) + mat[ix][iy][iz] = Enum.Material.Grass + end + end + end + workspace.Terrain:WriteVoxels(Region3.new(Vector3.new(x,y,z)-Vector3.one*f*0.5,Vector3.new(x,y,z)+Vector3.one*f*0.5),4,mat,occ) +end +local voro = require(script.Parent.CellularModule) -- Voronoi noise library +local man = voro.man +local mag = voro.mag +local che = voro.che +local cheman = voro.cheman +local vor = voro.vor +local squir = voro.squircle +local function fol(x,y,z) + x = x - x % 32 + y = y - y % 32 + z = z - z % 32 + return math_noise(x*0.00025,y*0.00025-2,z*0.00025) +end +local function act(x) + if x > -5 then return 0.8 end + --if x > -0.1 then return 0.4 end + return 0 +end +--local pieces = require(script.Parent.TownPieceModule) +--local block = pieces.block +road = function(x,y,z) + local n1,c1 = vor(x*0.01,y*0.01,z*0.01,che) + local n2,c2 = vor(x*0.002,y*0.002,z*0.002,che) -- 1 = crowded, 0 = empty + local c1x = c1.X*100 + local c1y = c1.Y*100 + local c1z = c1.Z*100 + local d = n(c1x,c1y,c1z)*0.025 -- 0 = surface, -1 = air + if n1 > -d and d > -0.3 --[[and n2 < 0.5]] then + -- Is centre near ground, is building (thinning towards top), is not road, is centre within bounds + return c1x,c1y,c1z + end + --return vor(x*0.002,y*0.002,z*0.002,cheman) + d + 0.3 +end + +local surf = require(script.Parent.SurfaceNetModule) -- Surface terrain library +local vox = surf.voxel +local rand = Random.new() +local na = Vector3.new(-1,-1,-1) -- Vectors for cardinal directions (corners of a cube) +local nb = Vector3.new(-1,1,1) +local nc = Vector3.new(1,-1,1) +local nd = Vector3.new(1,1,-1) +local ne = Vector3.new(-1,-1,1) +local nf = Vector3.new(-1,1,-1) +local ng = Vector3.new(1,-1,-1) +local nh = Vector3.new(-1,-1,-1) +local trees = game.ReplicatedStorage.Foliage:GetChildren() +local no_trees = #trees +local rand = Random.new() +local struct = require(script.Parent.StructureModule) +@native +local function chunk(x,y,z,f,b,stuff,v,n) + struct.make_chunk(x,y,z,f,n) + local vf = 1/4096 + local parent = stuff.parent + local n1,c2 = vor(x*vf,y*vf,z*vf,man) + local val = n(x,y,z) + local grass = stuff.grass.make_quad -- Quad making function from the surface factory for each material + local slate = stuff.slate.make_quad + local bd + local function s(x,y,z,f) + if not b then b = 32 end + local fr = f * 0.25 + -- Shift of positions (XYZ axes) + local lx = x+fr + local ly = y+fr + local lz = z+fr + local hx = x-fr + local hy = y-fr + local hz = z-fr + -- Noise values (corners) + local _a,_b,_c,_d,_e,_f,_g,_h = n(lx,ly,lz),n(hx,ly,lz),n(lx,hy,lz),n(lx,ly,hz),n(hx,hy,lz),n(hx,ly,hz),n(lx,hy,hz),n(hx,hy,hz) + local o,dx,dy,dz = n(x,y,z),n(x+1,y,z),n(x,y+1,z),n(x,y,z+1) -- Gradient of surface noises + local norm = Vector3.new(o-dx,o-dy,o-dz).Unit---((_a)*(na)+(_b)*(nb)+(_c)*(nc)+(_d)*(nd)+(_e)*(ne)+(_f)*(nf)+(_g)*(ng)+(_h)*(nh)).Unit --GRAD + local sum = (_a+_b+_c+_d+_e+_f+_g+_h)*0.125 -- Average noise from sample + --[[if f == b and fol(x,y,z) > 0.62 and sum < 0 then + local fs = fr * 2 - 16 + for bx = x-fs,x+fs,32 do + for by = y-fs,y+fs,32 do + for bz = z-fs,z+fs,32 do + local cx,cy,cz = road(bx,by,bz) + if cx then pieces.block(bx,by,bz,32,road,cx,cy,cz) end + end + end + end + --vox(x,y,z,b,brick,road) + end]] + if math_max(_a,_b,_c,_d,_e,_f,_g,_h) < -m(f) then -- Nothing to do + return + elseif math_min(_a,_b,_c,_d,_e,_f,_g,_h) > m(f) then -- + --[[if b == 4 and f == 32 then + workspace.Terrain:FillRegion(Region3.new(Vector3.new(x,y,z)-Vector3.one*f*0.5,Vector3.new(x,y,z)+Vector3.one*f*0.5),4,Enum.Material.Grass) + else]] + --if b ~= 4 then p(x,y,z,f) end + --end + else -- We are near the surface + --[[if math_abs(norm.Y) < 0.4 and math_abs(sum) < 0.1 and f <= b then + local part = p(x,y,z,f) + part.CFrame = CFrame.lookAlong(part.Position,norm) + part.Size = Vector3.new(part.Size.X*(rand:NextNumber()+2),part.Size.Y*(rand:NextNumber()+2),part.Size.Z*(rand:NextNumber()+1))*2 + part.Position = part.Position + norm * f * 0.5 + return + end]] + if f == v then + if norm.Y < 0.5 then + vox(x,y,z,v,slate,n,parent) + else + vox(x,y,z,v,grass,n,parent) + end + end + if f == b then -- We are at the rendering level for this chunk + -- Broad building check + if math_abs(sum) < 0.5 and f >= 256 then -- If + if norm.Y < 0.7 then -- Rock + local part = p(x,y,z,math.clamp(f*2.5,0,512),parent) + part.CFrame = CFrame.lookAlong(part.Position-norm*f,norm) + part.Size = Vector3.one * f * 2 + else -- Foliage (why does this never run?) + if f > 256 then + local part = p(x,y,z,f*2.5,parent) + part.Material = Enum.Material.Grass + part.Color = grass_color + part.Shape = Enum.PartType.Ball + end + end + elseif f == 512 and rand:NextInteger(1,5) == 5 and n_cloud(x,y,z) > 0 then + local part = p(x,y,z,2048*(rand:NextNumber()+1),parent) + part.Material = Enum.Material.SmoothPlastic + part.Transparency = 0.7 + part.Shape = Enum.PartType.Ball + part.Size = part.Size * rand:NextInteger(1,4) * 0.5 + end + else -- We are too large, recurse into lower octrees + f = f * 0.5 + s(lx,ly,lz,f) s(hx,ly,lz,f) s(lx,hy,lz,f) s(lx,ly,hz,f) s(hx,hy,lz,f) s(hx,ly,hz,f) s(lx,hy,hz,f) s(hx,hy,hz,f) + end + end + end + s(x,y,z,f) +end + +local grass = surf.make_wedges(nil,{Material = Enum.Material.Grass, Color = grass_color}) -- Terrain constructors??? WedgePart? +local slate = surf.make_wedges(nil,{Material = Enum.Material.Slate, Color = slate_color}) +local function write_chunk(x,y,z,r) + local town_folder = Instance.new("Folder") + town_folder.Parent = game.Workspace.Terrain + local folder = Instance.new("Folder") + folder.Parent = game.Workspace.Terrain + local root = Vector3.new(x,y,z)*512 + + local b = 512 + r = math.floor(r) + if r == 1 then b = 512 + elseif r == 2 then b = 256 + elseif r >= 3 then b = 128 + --elseif r >= 4 then b = 64 + end + --task.desynchronize() -- enter parallel and generate the chunk + chunk(x*1024,y*1024,z*1024,1024,b,{grass = grass, slate = slate, parent = folder, town_parent = town_folder},b,n_imaginarium) + --task.synchronize() -- come back to us + + return folder,town_folder +end + +return {write_chunk = write_chunk} \ No newline at end of file diff --git a/scratch/dct2/MeshModule b/scratch/dct2/MeshModule new file mode 100644 index 0000000..b6bb24c --- /dev/null +++ b/scratch/dct2/MeshModule @@ -0,0 +1,145 @@ +local module = {} + +local function form_triangle(pa,pb,p1,p2,p3,s2) + local s1 = pa.Size.X + s2 = s2 or s1*0.5 + local p12 = p2-p1 + local p23 = p3-p2 + local p13 = p3-p1 + local p12l = p12.Magnitude + local p23l = p23.Magnitude + local p13l = p13.Magnitude + local bottom + local bot_len + local totop + local root + local tip + local far + if p12l > p23l and p12l > p13l then -- TRUE: p12 largest FALSE: p12 smaller than p23l or p13l + tip = p3 + root = p1 + far = p2 + bottom = p12 + bot_len = p12l + totop = p13 + s2 = -s2 + elseif p23l > p13l then -- TRUE: p23 must be largest FALSE: p13 largest + tip = p1 + root = p2 + far = p3 + bottom = p23 + bot_len = p23l + totop = -p12 + s2 = -s2 + else -- p13 largest + tip = p2 + root = p1 + far = p3 + bottom = p13 + bot_len = p13l + totop = p12 + end + bottom = bottom.Unit + local coeff = totop:Dot(bottom) + local mid = root+coeff*bottom + local cross = totop:Cross(bottom).Unit + local top = (mid-tip) + pa.Size = Vector3.new(s1,top.Magnitude,coeff) + pb.Size = Vector3.new(s1,top.Magnitude,bot_len - coeff) + top = top.Unit + pa.CFrame = CFrame.fromMatrix(s2*cross+(root+tip)*0.5,cross,-top,bottom) + pb.CFrame = CFrame.fromMatrix(s2*cross+(tip+far)*0.5,-cross,-top,-bottom) +end +local function form_normal(p,n) + local part = Instance.new("Part") + part.Anchored = true + part.Size = Vector3.new(1,1,10) + part.Parent = game.Workspace + part.CFrame = CFrame.lookAlong(p,n) * CFrame.new(0,0,-5) +end +local w = 8 +local grass = script.Grass +local ter = workspace.Terrain +function module.make_wedges(_,p) + local part = grass:Clone() + for _,item in pairs(part:GetChildren()) do + for k,v in pairs(p) do + item[k] = v + end + end + return { + make_quad = function(p1,p2,p3,p4,s,n1,n2,n3,n4,parent) + local g = part:Clone() + g.Parent = parent + form_triangle(g.a,g.b,p1,p2,p3,s*(-w/2)) + form_triangle(g.c,g.d,p1,p4,p3,s*(w/2)) + --[[form_normal(p1,n1) + form_normal(p2,n2) + form_normal(p3,n3) + form_normal(p4,n4)]] + return g + end, + flush = function() end, + } +end + +local assets = game:GetService("AssetService") +local s = 1 +function module.make_mesh(_root,p) + local mesh = assets:CreateEditableMesh() + local empty = true + local root = _root or Vector3.zero + local mesh = mesh + local topleft = mesh:AddUV(Vector2.new(0,0)) + local topright = mesh:AddUV(Vector2.new(s,0)) + local bottomright = mesh:AddUV(Vector2.new(s,s)) + local bottomleft = mesh:AddUV(Vector2.new(0,s)) + return { + make_quad = function(p1,p2,p3,p4,s,n1,n2,n3,n4) + empty = false + n1 = mesh:AddNormal(n1) + n2 = mesh:AddNormal(n2) + n3 = mesh:AddNormal(n3) + n4 = mesh:AddNormal(n4) + p1 = mesh:AddVertex(p1 - root) + p2 = mesh:AddVertex(p2 - root) + p3 = mesh:AddVertex(p3 - root) + p4 = mesh:AddVertex(p4 - root) + local tri1,tri2 + if s > 0 then + tri1 = mesh:AddTriangle(p1,p2,p3) + tri2 = mesh:AddTriangle(p3,p4,p1) + mesh:SetFaceNormals(tri1,{n1,n2,n3}) + mesh:SetFaceNormals(tri2,{n3,n4,n1}) + mesh:SetFaceUVs(tri1,{topleft,topright,bottomright}) + mesh:SetFaceUVs(tri2,{bottomright,bottomleft,topleft}) + else + tri1 = mesh:AddTriangle(p3,p2,p1) + tri2 = mesh:AddTriangle(p1,p4,p3) + mesh:SetFaceNormals(tri1,{n3,n2,n1}) + mesh:SetFaceNormals(tri2,{n1,n4,n3}) + mesh:SetFaceUVs(tri1,{bottomright,topright,topleft}) + mesh:SetFaceUVs(tri2,{topleft,bottomleft,bottomright}) + end + end, + flush = function() + if not empty then + local part = assets:CreateMeshPartAsync(Content.fromObject(mesh), + { + CollisionFidelity = Enum.CollisionFidelity.PreciseConvexDecomposition, + RenderFidelity = Enum.RenderFidelity.Performance + }) + for index,item in pairs(p) do + part[index] = item + end + part.Parent = workspace.Terrain + part.Position = root + part.Anchored = true + end + root = nil + mesh = nil + end, + } +end + +return module diff --git a/scratch/dct2/PiecesModule b/scratch/dct2/PiecesModule new file mode 100644 index 0000000..c5f1f4f --- /dev/null +++ b/scratch/dct2/PiecesModule @@ -0,0 +1,174 @@ +local script = script.Parent.Pieces.PieceScript + +if not script.Parent:FindFirstChild("Roots") then game.ServerStorage.Roots.Parent = script.Parent end +local roots = {} +for _,root in pairs(script.Parent.Roots:GetChildren()) do + if root.Name == "Root" then + root.Anchored = true + root.Transparency = 1 + root.CanCollide = false + table.insert(roots,root) + end +end +-- piece: {"X,Y,Z,NX,NY,NZ,A,B...} marking each property it has +local pieces = {} +for _,piece in pairs(script.Parent:GetChildren()) do + if piece:IsA("Model") then + -- Set of 'characteristics' this has, equivalent to (unary?) branches in lhmes14c + local characteristics = {} + + local position = piece:GetPivot().Position + local closest_root + local closest = 32 + for _,root in pairs(roots) do + local distance = (root.Position - position).Magnitude + if distance < closest then + closest = distance + closest_root = root + end + end + + if closest_root then + closest_root.Parent = piece + piece.PrimaryPart = closest_root + end + + -- Make sure there is a PrimaryPart + if not piece.PrimaryPart then + piece.PrimaryPart = piece:FindFirstChildWhichIsA("BasePart") + end + if not piece.PrimaryPart then + warn(string.format("Piece: '%s' has no viable PrimaryPart (empty), please provide one.",piece.Name)) + continue + end + + -- Weld all Parts together + piece.PrimaryPart.Anchored = true + local template_weld = Instance.new("WeldConstraint") + template_weld.Part0 = piece.PrimaryPart + for _,item in pairs(piece:GetChildren()) do + if item:IsA("BasePart") and item ~= piece.PrimaryPart then + local weld = template_weld:Clone() + weld.Parent = piece + weld.Part1 = item + end + end + + -- Populate characteristics + for literal in string.gmatch(piece.Name,"[^%.]+") do + local value,class = string.match(literal,"^(!?)(.*)") + characteristics[class] = #value == 0 + end + + piece.Parent = game.ServerStorage + --piece:ScaleTo() + table.insert(pieces,{characteristics = characteristics,piece = piece}) + end +end +-- Compute whether variants are viable and actually copy/rotate them as options +local rotator = { + ["X"] = "Z", + ["Z"] = "NX", + ["NX"] = "NZ", + ["NZ"] = "X" +} +local function alreadyExists(match) + for _,piece in pairs(pieces) do + local success = true + for class,value in pairs(match) do + if piece.characteristics[class] ~= value then success = false break end + end + if success then return true end + end +end +local function rotateClass(class) + return rotator[class] or class +end +local new_pieces = {} +for _,piece in pairs(pieces) do -- This isn't very optimised, but it runs at the start of the program, this is ok. + local r90 = {} + local r180 = {} + local r270 = {} + for class,value in pairs(piece.characteristics) do + local c90 = rotateClass(class) + local c180 = rotateClass(c90) + local c270 = rotateClass(c180) + r90[c90] = value + r180[c180] = value + r270[c270] = value + end + local function pieceFactory(angle,characteristics) + if not alreadyExists(characteristics) then + local new_piece = piece.piece:Clone() + new_piece.Name = "V."..new_piece.Name + new_piece:PivotTo(new_piece:GetPivot() * CFrame.Angles(0,math.rad(angle),0)) + table.insert(new_pieces,{piece = new_piece,characteristics = characteristics}) + end + end + pieceFactory(270,r90) + pieceFactory(180,r180) + pieceFactory(90,r270) +end +for _,piece in pairs(pieces) do table.insert(new_pieces,piece) end +pieces = new_pieces + +--[[local city = function(x,y,z) + return (math.noise(x*0.16,y*0.16,z*0.16) - (y * 0.05) + 0.2) > 0 +end]] + +local scale = 4 +local template_part = Instance.new("Part") +template_part.Anchored = true +template_part.Name = "PieceTemplate" +template_part.CanCollide = false +template_part.Transparency = 0.5 +template_part.Size = Vector3.one * scale + +local function block(x,y,z,f,city) + local X = city(x+f,y,z) + local Y = city(x,y+f,z) + local Z = city(x,y,z+f) + local NX = city(x-f,y,z) + local NY = city(x,y-f,z) + local NZ = city(x,y,z-f) + local match = { -- The matching characteristics table for the hypothetical piece in this place + X = X, + Y = Y, + Z = Z, + NX = NX, + NY = NY, + NZ = NZ + } + if X and Y and Z and NX and NY and NZ then return false end + local greatest_rank = 0 -- The amount of matching characteristics for the best matching piece + local greatest = template_part -- The physical piece + for _,piece in pairs(pieces) do -- Look through every known piece + local rank = 0 + for class,value in pairs(match) do -- Assimilate a rank of the characteristics it shares with this hypothetical one + local this = piece.characteristics[class] + if value == this then rank = rank + 1 elseif this ~= nil then rank = rank - 1 end -- If it's greatest, make it so + end + if rank > greatest_rank or (rank == greatest_rank and (math.random(1,10) > 3)) then + greatest = piece.piece + greatest_rank = rank + end + end + greatest = greatest:Clone() + greatest.Parent = game.Workspace -- Position it + greatest:PivotTo(greatest:GetPivot().Rotation + Vector3.new(x,y,z)) + return true +end + +--[[local function gen() + for x = 1,20 do + for y = 1,15 do + for z = 1,20 do + if city(x,y,z) then + + end + end + end + end +end]] + +return {block=block} diff --git a/scratch/dct2/Script b/scratch/dct2/Script new file mode 100644 index 0000000..2844f3a --- /dev/null +++ b/scratch/dct2/Script @@ -0,0 +1 @@ +require(script.Parent.ChunkModule).write_chunk(0.5,0.5,0.5,6) diff --git a/scratch/dct2/StructureModule b/scratch/dct2/StructureModule new file mode 100644 index 0000000..64dd703 --- /dev/null +++ b/scratch/dct2/StructureModule @@ -0,0 +1,235 @@ +local cellular = require(script.Parent.CellularModule) +local module = {} + +local store = game.ReplicatedStorage:WaitForChild("Structure") + +local function put(model,x,y,z) + model = model:Clone() + model:PivotTo(CFrame.new(Vector3.new(x,y,z))) + model.Parent = game.Workspace.Terrain +end + +local function block(x,y,z,sx,sy,sz) + local part = Instance.new("Part") + part.Material = Enum.Material.Slate + part.Parent = game.Workspace.Terrain + part.Size = Vector3.new(sx,sy,sz) + part.Position = Vector3.new(x,y,z) + part.Transparency = 0 + part.Anchored = true + part.CanCollide = false + return part +end + +--[[ +-- Create a list based tree for octree access +local function create_octree_heap(s,l) + local sum = 0 + local s_ = l + local amount = 1 + repeat + s_ = s_ * 2 + sum = sum + amount + amount = amount * 8 + until s_ ~= s + print(sum) + local tab = table.create() +end + +local function index_octree_heap(x,y,z) + +end +]] -- probably not actually fast enough than direct hash access?. optimise later... + +-- Create a list based tree for 6 bit access +local function create_6way_heap() + local tab = table.create(64) + for index,_ in ipairs(tab) do + tab[index] = {} + end + return tab +end + +-- Index a 6way heap by wall values +local function index_6way_heap(heap,px,py,pz,nx,ny,nz) + return heap[1 + px * 1 + py * 2 + pz * 4 + nx * 8 + ny * 16 + nz * 32] +end + +local function setindex_6way_heap(heap,px,py,pz,nx,ny,nz,v) + heap[1 + px * 1 + py * 2 + pz * 4 + nx * 8 + ny * 16 + nz * 32] = v +end + +local l = -10 +-- Index a 6way heap by wall values from a noise function +local function access_6way_heap(heap,x,y,z,f,n) + f = f * 0.5 + local px = 0 if n(x+f,y,z)>l then px = 1 end + local py = 0 if n(x,y+f,z)>l then py = 1 end + local pz = 0 if n(x,y,z+f)>l then pz = 1 end + local nx = 0 if n(x-f,y,z)>l then nx = 1 end + local ny = 0 if n(x,y-f,z)>l then ny = 1 end + local nz = 0 if n(x,y,z-f)>l then nz = 1 end + return index_6way_heap(heap,px,py,pz,nx,ny,nz) +end + +local function preload_6way_heap(heap,stuff) + for _,piece in pairs(stuff:GetChildren()) do + local n = piece.Name + local x = 0 if n:match("PZ") then x = 1 end + local y = 0 if n:match("PY") then y = 1 end + local z = 0 if n:match("PX") then z = 1 end + local nx = 0 if n:match("NZ") then nx = 1 end + local ny = 0 if n:match("NY") then ny = 1 end + local nz = 0 if n:match("NX") then nz = 1 end + piece.PrimaryPart = piece:FindFirstChild("Root") or piece:FindFirstChildWhichIsA("BasePart") + piece.PrimaryPart:PivotTo(piece.PrimaryPart.CFrame * CFrame.Angles(0,math.pi * 0.5,0)) + if not piece.PrimaryPart then print(piece) error() end + local p0 = piece:Clone() p0.Name = p0.Name.."_0" + --p0.PrimaryPart:PivotTo(p0.PrimaryPart.CFrame * CFrame.Angles(0,-math.pi*0.0,0)) + setindex_6way_heap(heap,x,y,z,nx,ny,nz,p0) + local p90 = piece:Clone() p90.Name = p90.Name.."_90" + p90.PrimaryPart:PivotTo(p90.PrimaryPart.CFrame * CFrame.Angles(0,math.pi*0.5,0)) + setindex_6way_heap(heap,nz,y,x,z,ny,nx,p90) + local p180 = piece:Clone() p180.Name = p180.Name.."_180" + p180.PrimaryPart:PivotTo(p180.PrimaryPart.CFrame * CFrame.Angles(0,math.pi*1.0,0)) + setindex_6way_heap(heap,nx,y,nz,x,ny,z,p180) + local p270 = piece:Clone() p270.Name = p270.Name.."_270" + p270.PrimaryPart:PivotTo(p270.PrimaryPart.CFrame * CFrame.Angles(0,math.pi*1.5,0)) + setindex_6way_heap(heap,z,y,nx,nz,ny,x,p270) + -- Anchor the whole thing into one assembly + for _,piece in pairs({p0,p90,p180,p270}) do + for _,part in pairs(piece:GetChildren()) do + if part:IsA("BasePart") and part ~= piece.PrimaryPart then + local weld = Instance.new("WeldConstraint") + weld.Parent = piece + weld.Name = "BuildingWeld" + weld.Part0 = part + weld.Part1 = piece.PrimaryPart + end + end + piece.PrimaryPart.Anchored = true + end + end +end + +local heap_6way_32_bank = create_6way_heap() +preload_6way_heap(heap_6way_32_bank,store.Bank) +local heap_6way_64_slums = create_6way_heap() +preload_6way_heap(heap_6way_64_slums,store.Slums) + +-- Rule: Any block only needs to support up to half away from any connected wall. +-- Any block is allowed to protrude up to half into empty space from no wall. + +local function building_32(x,y,z,sx,sy,sz) + local b = block(x,y,z,sx,sy,sz) + b.Color = Color3.new(0.568627, 0.341176, 0.152941) + b.Material = Enum.Material.WoodPlanks +end + +local function support_32(x,y,z,sx,sy,sz) + local b = block(x,y,z,sx,sy,sz) + b.Color = Color3.new(0.6, 0.6, 0.6) + b.Material = Enum.Material.Slate +end + +local function cover_128_32(x,y,z,n) + local s = 128 * 0.5 + local f = 32 + local f2 = f * 0.5 + for ox = -s + f2 + x,s - f2 + x,f do + for oy = -s + f2 + y,s - f2 + y,f do + for oz = -s + f2 + z,s - f2 + z,f do + local v = n(ox,oy,oz) + if v > l then + local jigsaw = access_6way_heap(heap_6way_32_bank,ox,oy,oz,32,n) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(ox,oy,oz)) + end + end + end + end + end +end + +local function compose_128_32(x,y,z,n) + local rx = x - 64 + 16 + local ry = y - 64 + 16 + local rz = z - 64 + 16 + local i = 128 + local px = n(x+i,y,z)>l + local py = n(x,y+i,z)>l + local pz = n(x,y,z+i)>l + local nx = n(x-i,y,z)>l + local ny = n(x,y-i,z)>l + local nz = n(x,y,z-i)>l + local function p(x,y,z,...) -- px,py... + local jigsaw = index_6way_heap(heap_6way_32_bank,...) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(x,y,z)) + end + end + local s = 128 * 0.5 + local f = 32 + local f2 = f * 0.5 + for dx = -3,3,2 do + for dy = -3,3,2 do + for dz = -3,3,2 do + local _px = 1 if not px and dx == 1 then _px = 0 end + local _py = 1 if not py and dy == 1 then _py = 0 end + local _pz = 1 if not pz and dz == 1 then _pz = 0 end + local _nx = 1 if not nx and dx == -1 then _nx = 0 end + local _ny = 1 if not ny and dy == -1 then _ny = 0 end + local _nz = 1 if not nz and dz == -1 then _nz = 0 end + if + (not px and dx == 3) or + (not py and dy == 3) or + (not pz and dz == 3) or + (not nx and dx == -3) or + (not ny and dy == -3) or + (not nz and dz == -3) + then continue end + local jigsaw = index_6way_heap(heap_6way_32_bank,_px,_py,_pz,_nx,_ny,_nz) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(dx * f2 + x,dy * f2 + y,dz * f2 + z)) + end + end + end + end +end + +local function cover_1024_128(x,y,z,n) + local s = 1024 * 0.5 + local f = 64 + local f2 = f * 0.5 + for ox = -s + f2 + x,s - f2 + x,f do + for oy = -s + f2 + y,s - f2 + y,f do + for oz = -s + f2 + z,s - f2 + z,f do + local v = n(ox,oy,oz) + --local blk = block(ox,oy,oz,128,128,128) + if v > 0 then + --put(store.Support1,ox,oy,oz) + elseif v > l then + local jigsaw = access_6way_heap(heap_6way_64_slums,ox,oy,oz,64,n) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(ox,oy,oz)) + end + --compose_128_32(ox,oy,oz,n) + end + end + end + end +end + +function module.make_chunk(x,y,z,f,n) + cover_1024_128(x,y,z,n) +end + +return module diff --git a/scratch/dct2/SurfaceNetModule b/scratch/dct2/SurfaceNetModule new file mode 100644 index 0000000..64dd703 --- /dev/null +++ b/scratch/dct2/SurfaceNetModule @@ -0,0 +1,235 @@ +local cellular = require(script.Parent.CellularModule) +local module = {} + +local store = game.ReplicatedStorage:WaitForChild("Structure") + +local function put(model,x,y,z) + model = model:Clone() + model:PivotTo(CFrame.new(Vector3.new(x,y,z))) + model.Parent = game.Workspace.Terrain +end + +local function block(x,y,z,sx,sy,sz) + local part = Instance.new("Part") + part.Material = Enum.Material.Slate + part.Parent = game.Workspace.Terrain + part.Size = Vector3.new(sx,sy,sz) + part.Position = Vector3.new(x,y,z) + part.Transparency = 0 + part.Anchored = true + part.CanCollide = false + return part +end + +--[[ +-- Create a list based tree for octree access +local function create_octree_heap(s,l) + local sum = 0 + local s_ = l + local amount = 1 + repeat + s_ = s_ * 2 + sum = sum + amount + amount = amount * 8 + until s_ ~= s + print(sum) + local tab = table.create() +end + +local function index_octree_heap(x,y,z) + +end +]] -- probably not actually fast enough than direct hash access?. optimise later... + +-- Create a list based tree for 6 bit access +local function create_6way_heap() + local tab = table.create(64) + for index,_ in ipairs(tab) do + tab[index] = {} + end + return tab +end + +-- Index a 6way heap by wall values +local function index_6way_heap(heap,px,py,pz,nx,ny,nz) + return heap[1 + px * 1 + py * 2 + pz * 4 + nx * 8 + ny * 16 + nz * 32] +end + +local function setindex_6way_heap(heap,px,py,pz,nx,ny,nz,v) + heap[1 + px * 1 + py * 2 + pz * 4 + nx * 8 + ny * 16 + nz * 32] = v +end + +local l = -10 +-- Index a 6way heap by wall values from a noise function +local function access_6way_heap(heap,x,y,z,f,n) + f = f * 0.5 + local px = 0 if n(x+f,y,z)>l then px = 1 end + local py = 0 if n(x,y+f,z)>l then py = 1 end + local pz = 0 if n(x,y,z+f)>l then pz = 1 end + local nx = 0 if n(x-f,y,z)>l then nx = 1 end + local ny = 0 if n(x,y-f,z)>l then ny = 1 end + local nz = 0 if n(x,y,z-f)>l then nz = 1 end + return index_6way_heap(heap,px,py,pz,nx,ny,nz) +end + +local function preload_6way_heap(heap,stuff) + for _,piece in pairs(stuff:GetChildren()) do + local n = piece.Name + local x = 0 if n:match("PZ") then x = 1 end + local y = 0 if n:match("PY") then y = 1 end + local z = 0 if n:match("PX") then z = 1 end + local nx = 0 if n:match("NZ") then nx = 1 end + local ny = 0 if n:match("NY") then ny = 1 end + local nz = 0 if n:match("NX") then nz = 1 end + piece.PrimaryPart = piece:FindFirstChild("Root") or piece:FindFirstChildWhichIsA("BasePart") + piece.PrimaryPart:PivotTo(piece.PrimaryPart.CFrame * CFrame.Angles(0,math.pi * 0.5,0)) + if not piece.PrimaryPart then print(piece) error() end + local p0 = piece:Clone() p0.Name = p0.Name.."_0" + --p0.PrimaryPart:PivotTo(p0.PrimaryPart.CFrame * CFrame.Angles(0,-math.pi*0.0,0)) + setindex_6way_heap(heap,x,y,z,nx,ny,nz,p0) + local p90 = piece:Clone() p90.Name = p90.Name.."_90" + p90.PrimaryPart:PivotTo(p90.PrimaryPart.CFrame * CFrame.Angles(0,math.pi*0.5,0)) + setindex_6way_heap(heap,nz,y,x,z,ny,nx,p90) + local p180 = piece:Clone() p180.Name = p180.Name.."_180" + p180.PrimaryPart:PivotTo(p180.PrimaryPart.CFrame * CFrame.Angles(0,math.pi*1.0,0)) + setindex_6way_heap(heap,nx,y,nz,x,ny,z,p180) + local p270 = piece:Clone() p270.Name = p270.Name.."_270" + p270.PrimaryPart:PivotTo(p270.PrimaryPart.CFrame * CFrame.Angles(0,math.pi*1.5,0)) + setindex_6way_heap(heap,z,y,nx,nz,ny,x,p270) + -- Anchor the whole thing into one assembly + for _,piece in pairs({p0,p90,p180,p270}) do + for _,part in pairs(piece:GetChildren()) do + if part:IsA("BasePart") and part ~= piece.PrimaryPart then + local weld = Instance.new("WeldConstraint") + weld.Parent = piece + weld.Name = "BuildingWeld" + weld.Part0 = part + weld.Part1 = piece.PrimaryPart + end + end + piece.PrimaryPart.Anchored = true + end + end +end + +local heap_6way_32_bank = create_6way_heap() +preload_6way_heap(heap_6way_32_bank,store.Bank) +local heap_6way_64_slums = create_6way_heap() +preload_6way_heap(heap_6way_64_slums,store.Slums) + +-- Rule: Any block only needs to support up to half away from any connected wall. +-- Any block is allowed to protrude up to half into empty space from no wall. + +local function building_32(x,y,z,sx,sy,sz) + local b = block(x,y,z,sx,sy,sz) + b.Color = Color3.new(0.568627, 0.341176, 0.152941) + b.Material = Enum.Material.WoodPlanks +end + +local function support_32(x,y,z,sx,sy,sz) + local b = block(x,y,z,sx,sy,sz) + b.Color = Color3.new(0.6, 0.6, 0.6) + b.Material = Enum.Material.Slate +end + +local function cover_128_32(x,y,z,n) + local s = 128 * 0.5 + local f = 32 + local f2 = f * 0.5 + for ox = -s + f2 + x,s - f2 + x,f do + for oy = -s + f2 + y,s - f2 + y,f do + for oz = -s + f2 + z,s - f2 + z,f do + local v = n(ox,oy,oz) + if v > l then + local jigsaw = access_6way_heap(heap_6way_32_bank,ox,oy,oz,32,n) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(ox,oy,oz)) + end + end + end + end + end +end + +local function compose_128_32(x,y,z,n) + local rx = x - 64 + 16 + local ry = y - 64 + 16 + local rz = z - 64 + 16 + local i = 128 + local px = n(x+i,y,z)>l + local py = n(x,y+i,z)>l + local pz = n(x,y,z+i)>l + local nx = n(x-i,y,z)>l + local ny = n(x,y-i,z)>l + local nz = n(x,y,z-i)>l + local function p(x,y,z,...) -- px,py... + local jigsaw = index_6way_heap(heap_6way_32_bank,...) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(x,y,z)) + end + end + local s = 128 * 0.5 + local f = 32 + local f2 = f * 0.5 + for dx = -3,3,2 do + for dy = -3,3,2 do + for dz = -3,3,2 do + local _px = 1 if not px and dx == 1 then _px = 0 end + local _py = 1 if not py and dy == 1 then _py = 0 end + local _pz = 1 if not pz and dz == 1 then _pz = 0 end + local _nx = 1 if not nx and dx == -1 then _nx = 0 end + local _ny = 1 if not ny and dy == -1 then _ny = 0 end + local _nz = 1 if not nz and dz == -1 then _nz = 0 end + if + (not px and dx == 3) or + (not py and dy == 3) or + (not pz and dz == 3) or + (not nx and dx == -3) or + (not ny and dy == -3) or + (not nz and dz == -3) + then continue end + local jigsaw = index_6way_heap(heap_6way_32_bank,_px,_py,_pz,_nx,_ny,_nz) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(dx * f2 + x,dy * f2 + y,dz * f2 + z)) + end + end + end + end +end + +local function cover_1024_128(x,y,z,n) + local s = 1024 * 0.5 + local f = 64 + local f2 = f * 0.5 + for ox = -s + f2 + x,s - f2 + x,f do + for oy = -s + f2 + y,s - f2 + y,f do + for oz = -s + f2 + z,s - f2 + z,f do + local v = n(ox,oy,oz) + --local blk = block(ox,oy,oz,128,128,128) + if v > 0 then + --put(store.Support1,ox,oy,oz) + elseif v > l then + local jigsaw = access_6way_heap(heap_6way_64_slums,ox,oy,oz,64,n) + if jigsaw then + local blk = jigsaw:Clone() + blk.Parent = game.Workspace + blk:PivotTo(CFrame.new(ox,oy,oz)) + end + --compose_128_32(ox,oy,oz,n) + end + end + end + end +end + +function module.make_chunk(x,y,z,f,n) + cover_1024_128(x,y,z,n) +end + +return module diff --git a/scratch/dct2/TownModule b/scratch/dct2/TownModule new file mode 100644 index 0000000..ec9856e --- /dev/null +++ b/scratch/dct2/TownModule @@ -0,0 +1,120 @@ +local function new(name,tab) + local instance = Instance.new(name) + for index,item in pairs(tab) do + instance[index] = item + end + return instance +end + +local function main(x,y,z,n,parent) + local function block(cframe,size) + return new("Part",{ + Material = Enum.Material.Cobblestone, + Color = Color3.fromRGB(139, 132, 123), + Anchored = true, + CFrame = cframe, + Size = size, + Transparency = 0, + Parent = parent + }) + end + + local root = Vector3.new(x,y,z) + local make + + local function noise(origin) + return n(origin.X,origin.Y,origin.Z) + end + + local function arb(origin) + return math.noise(origin.X*0.77 + 0.123,origin.Y*0.77 + 0.123,origin.Z*0.77 + 0.123) + end + + local function split(origin,size,stop,solid) + stop = (stop or 1) - 1 -- A counter (which when reaching 0) will force the terrain to stop + local t = math.round(((arb(origin)+1)/2)*3) -- An arbitrary value from 1-3 seeded by 'origin' + if arb(origin*7) > 0.5 and size.Magnitude < 128 then return end + if t == 1 or t == 2 then -- Split, with an option for a gap inbetween + local dir + local mag + local s = 0 + local o = arb(origin) * 0.5 -- the shift for the splits for each sub block + if arb(origin * 9) < 0 and not solid then -- an arbitrary boolean seeded from origin, should a gap between the blocks be made? + if size.Magnitude < 256 then -- Make larger gaps smaller + s = 0.1 + else + s = 0.06 + end + end + if size.X > size.Y then + if size.X > size.Z then + -- X + dir = Vector3.xAxis * size.X + else + -- Z + dir = Vector3.zAxis * size.Z + end + else + if size.Y > size.Z then + -- Y + dir = Vector3.yAxis * size.Y + s = 0 + else + -- Z + dir = Vector3.zAxis * size.Z + end + end + make(origin + dir * (0.25 + o * 0.5 + s * 0.5), size - dir * (0.5 + o + s),stop) + make(origin - dir * (0.25 - o * 0.5 + s * 0.5), size - dir * (0.5 - o + s),stop) + elseif t == 3 then -- shrink this part + local size2 = Vector3.new(size.X * 0.8,size.Y,size.Z * 0.8) + make(origin,size2,stop) + end + end + + function make(origin,size,stop) + origin = (origin / 32):Floor() * 32 + size = (size / 32):Floor() * 32 + local mag = size.Magnitude + local offset = (root - origin).Magnitude + local val = noise(origin) + local f = size.Magnitude * (1/1024) * 4 + --block(CFrame.new(origin),size) + val = val/f + 3 + if offset > 2000 * f then return end + if math.abs(val) < 8 then + if (size.Magnitude < 64 + offset * val * 0.25) or stop == 0 then + if val > 3 then + block(CFrame.new(origin),size) + elseif val > -2 then + local block = block(CFrame.new(origin),size) + block.Color = Color3.new(math.random(1,12)/20 + 0.2,0.2,0.2) + block.Material = Enum.Material.Brick + end + else + split(origin,size,stop,true) + end + end + --[[if val < 8 and val > -8 then -- value is far enough into solid ground + if val > 0 then -- positive is support + if (size.Magnitude < 256 - offset and size.Magnitude > 128 - offset) or stop == 0 then + block(CFrame.new(origin),size) + else + split(origin,size,stop,true) + end + else -- negative is building + if size.Magnitude < 128 - offset + val * 10 or stop == 0 then + local block = block(CFrame.new(origin),size) + block.Color = Color3.new(math.random(1,12)/20 + 0.2,0.2,0.2) + block.Material = Enum.Material.Brick + else + split(origin,size,stop) + end + end + end]] + end + + make(root,Vector3.new(2048,2048,2048),16) +end + +return {main = main} \ No newline at end of file diff --git a/scratch/dct2/TownPieceModule b/scratch/dct2/TownPieceModule new file mode 100644 index 0000000..272ee46 --- /dev/null +++ b/scratch/dct2/TownPieceModule @@ -0,0 +1,148 @@ +local bxor = bit32.bxor +local angles = CFrame.Angles +local rad = math.rad +local handlers = {} +local function get(folder,...) + local items = {} + for _,item in pairs({...}) do + table.insert(items,folder:WaitForChild(item)) + end + return table.unpack(items) +end +local function update(folder,tab,match) + for _,item in pairs(folder:GetChildren()) do + if string.match(item.Name,match) then table.insert(tab,item) end + end + folder.ChildAdded:Connect(function(item) + if string.match(item.Name,match) then table.insert(tab,item) end + end) +end +local function single_handler_factory(folder) + local item = folder:FindFirstChild("Block") + table.insert(handlers,function(x,y,z,f,city,val) + local item = item:Clone() + item.Position = Vector3.new(x,y,z) + item.Parent = game.Workspace + end) +end +local function generic_handler_factory(folder) + local roof,support = get(folder,"Surface","Support") + local plain = get(folder,"WallPlain") + local walls = {} + update(folder,walls,"Wall") + table.insert(handlers,function(x,y,z,f,city,val) + local by = city(x,y+f,z) + local bny = city(x,y-f,z) + if not by then + local item = roof:Clone() + item.Position = Vector3.new(x,y+16.5,z) + item.Parent = game.Workspace + end + if not bny then + local item = support:Clone() + item:PivotTo(CFrame.new(x,y-2,z)) + item.Parent = game.Workspace + local function wall(mod) + local item = plain:Clone() + item:PivotTo(CFrame.new(x,y,z) * mod) + item.Parent = game.Workspace + end + if city(x+f,y,z) and city(x+f,y-f,z) then wall(angles(0,rad(-90),0)) end + if city(x-f,y,z) and city(x-f,y-f,z) then wall(angles(0,rad(90),0)) end + if city(x,y,z+f) and city(x,y-f,z+f) then wall(angles(0,rad(180),0)) end + if city(x,y,z-f) and city(x,y-f,z-f) then wall(angles(0,rad(0),0)) end + else + local bz = city(x,y,z+f) + local bnz = city(x,y,z-f) + local bx = city(x+f,y,z) + local bnx = city(x-f,y,z) + local function wall(mod) + local item = walls[bxor(y*z%3,y*x%5) % #walls + 1]:Clone() + item:PivotTo(CFrame.new(x,y,z) * mod) + item.Parent = game.Workspace + end + if not bx then wall(angles(0,rad(-90),0)) end + if not bnx then wall(angles(0,rad(90),0)) end + if not bz then wall(angles(0,rad(180),0)) end + if not bnz then wall(angles(0,rad(0),0)) end + end + end) +end +local function fancy_handler_factory(folder) + local roof,support = get(folder,"Surface","Support") + local plain = get(folder,"WallPlain") + local fancy_support = get(folder,"FancyPlain") + local walls = {} + local fancy = {} + update(folder,walls,"Wall") + update(folder,fancy,"Fancy") + table.insert(handlers,function(x,y,z,f,city,val) + local by = city(x,y+f,z) + local bny = city(x,y-f,z) + if not by then + local item = roof:Clone() + item.Position = Vector3.new(x,y+16.5,z) + item.Parent = game.Workspace + end + local bz = city(x,y,z+f) + local bnz = city(x,y,z-f) + local bx = city(x+f,y,z) + local bnx = city(x-f,y,z) + if not bny then + local item = support:Clone() + item:PivotTo(CFrame.new(x,y-2,z)) + item.Parent = game.Workspace + local function wall(mod) + local item = plain:Clone() + item:PivotTo(CFrame.new(x,y,z) * mod) + item.Parent = game.Workspace + end + if bx and city(x+f,y-f,z) then wall(angles(0,rad(-90),0)) end + if bnx and city(x-f,y-f,z) then wall(angles(0,rad(90),0)) end + if bz and city(x,y-f,z+f) then wall(angles(0,rad(180),0)) end + if bnz and city(x,y-f,z-f) then wall(angles(0,rad(0),0)) end + else + local function wall(mod) + local item = walls[bxor(y*z%3,y*x%5) % #walls + 1]:Clone() + item:PivotTo(CFrame.new(x,y,z) * mod) + item.Parent = game.Workspace + end + if not bx then wall(angles(0,rad(-90),0)) end + if not bnx then wall(angles(0,rad(90),0)) end + if not bz then wall(angles(0,rad(180),0)) end + if not bnz then wall(angles(0,rad(0),0)) end + + if bx ~= bnx and bz ~= bnz then + local mod + if bx then + if bz then + mod = angles(0,rad(0),0) + else + mod = angles(0,rad(90),0) + end + else + if bz then + mod = angles(0,rad(-90),0) + else + mod = angles(0,rad(180),0) + end + end + local fancy = fancy[bxor(y*z%3,y*x%5) % #fancy + 1]:Clone() + fancy:PivotTo(CFrame.new(x,y,z) * mod) + fancy.Parent = game.Workspace + end + end + end) +end +generic_handler_factory(game.Workspace.Piece.Posh) +generic_handler_factory(game.Workspace.Piece.Poor) +generic_handler_factory(game.Workspace.Piece.Plain) +fancy_handler_factory(game.Workspace.Piece.Castle) +generic_handler_factory(game.Workspace.Piece.Stone) +local opts = #handlers +local function block(x,y,z,f,city,cx,cy,cz) + local val = bxor(cx*cz,cy+cz) + handlers[val % #handlers + 1](x,y,z,f,city,val) +end + +return {block=block} diff --git a/scratch/dct2/dct2.rbxl b/scratch/dct2/dct2.rbxl new file mode 100644 index 0000000000000000000000000000000000000000..28e34f15235120925adc6a2afadb794a4ecde10c GIT binary patch literal 144479 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

J86(3}m19Thv9#MIRGbVLA;oJv(eIq(mIw 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