From 7b73aef5fe212d0f2258f81e513a08ca4f33e0ae Mon Sep 17 00:00:00 2001 From: Xeon0X Date: Sun, 16 Jun 2024 22:28:32 +0200 Subject: [PATCH] Fix heightmap color format --- world_maker/data/building_moutain.png | Bin 153 -> 114 bytes world_maker/data/city_map.png | Bin 113 -> 191 bytes world_maker/data/district.png | Bin 428 -> 563 bytes world_maker/data/heightmap.png | Bin 3359 -> 3072 bytes world_maker/data/heightmap_smooth.png | Bin 1740 -> 1855 bytes world_maker/data/heightmap_with_building.png | Bin 2120 -> 2089 bytes world_maker/data/highwaymap.png | Bin 126 -> 77 bytes world_maker/data/mountain_map.png | Bin 755 -> 746 bytes world_maker/data/removed_treesmap.png | Bin 873 -> 89 bytes world_maker/data/skeleton_highway.png | Bin 3176 -> 2931 bytes world_maker/data/skeleton_mountain.png | Bin 4628 -> 4127 bytes world_maker/data/skeleton_mountain_area.png | Bin 595 -> 569 bytes world_maker/data/smooth_sobel_watermap.png | Bin 590 -> 637 bytes world_maker/data/smooth_terrain_delta.png | Bin 1127 -> 857 bytes world_maker/data/sobelmap.png | Bin 3841 -> 3730 bytes world_maker/data/treemap.png | Bin 6196 -> 120 bytes world_maker/data/watermap.png | Bin 214 -> 376 bytes world_maker/terraforming.py | 9 ++++---- world_maker/world_maker.py | 22 +++++++++---------- 19 files changed, 14 insertions(+), 17 deletions(-) diff --git a/world_maker/data/building_moutain.png b/world_maker/data/building_moutain.png index aa920aea9180328e63e5ca37fa02ebac134dafa3..7ce6301de7402e6b22443f64c4af823595759018 100644 GIT binary patch delta 84 zcmbQqSTsS!&(hPyF{EP7+p`;a85B5N9ZTGfm3U-xYf1UMvvR77V-a5aY4ZC@tEqP- gSFZp91}La`&9w6nqudFPRg*y?p00i_>zopr04Bd4F8}}l delta 123 zcmXS#$v8o!G{MuwF{EP7+nWn{8w>>6F3KND@o7q2_3luPhmW9&Ys}|)S$=n>hiv0K zlkl?t`|}Fk6>FHwRzLv*5M252>Hj1Z%ioW`?KQfbeSVtC@%vL}=J~j~x-P9^U9d}9 X@j27RXV-7AgVcJu`njxgN@xNAM#DNw diff --git a/world_maker/data/city_map.png b/world_maker/data/city_map.png index 16d5ffa2345a1fd94e0863aae539cb497221f9b3..f7de44edb715d76d9ee83decfad7f1382782354d 100644 GIT binary patch delta 162 zcmXTi&p1J)zRlCcF{EP7+iM588WaRvFB<;(A3tx~Qy!r&^SXDWPj58ec!+}m1|GEf zTt0Gq+Brl12&3;_w~SJCr}+dM-iVj{d^TinQM&OoWvAV?{m<76Pk+j(wN$z5%x-(J z@LgT%m)`B$wK1aG=u(aHFSpIp5<3`vc+~H?QQW2}^FQUfqS%i{?q}`7in|#nD}k)? MboFyt=akR{011#sKL7v# delta 83 zcmdnbSU5q&*TU1qF{EP7+jEM13<^BV2M+%K&m+dXF7c7ywv*SiPDo9!vE8-q+}@pk ijf=jX7iWNi1*bEor6)IntK#qY?5Kw`)1zz zcr|_FXJ_tmCp{}&`Q&$%_P^O>U*^{_vM1{=yKwrj#lsrIZ%J>C-sqnB`st?nCota6 zSv9ryKTiMr@~!?ehE1QJ9{sqoes505lYdG7sw`u?E#m8Y_DWPkwQdwo);|_^CSO1Q zop{l{8FrR2F8Ml3zFTTN`Uf=n%gKH-j_2JQ#UK9_e+)DK<+1o3Kf31twe{?sac*v_ zMLgKNhgGcg66Sw@zu=IYd~~PA(OK*76vUoeu23w#I=n{kd@`TZ#<_h3TR(5TT>o?J zw(wi(k!SaQD_HW^bcW8dpNhNY_}|vsRPcWL^ZNfk!+(EC*M2|Mc*~C;t8IPOE8O`G zb+K6OKZz%|L>OnRx8M)8OzNAn%v)NP19eA#>vk#|GFy8to%>S zidk;SyT7d3bVZ^1ziHb);S*iSOLL#Eeizhy_FFCYMxnP;cNgZWghlPxf2_@9vg@SH9#QBz*y|*;uumf=k2XPze5fp4uOVs zn_Rvp-Qe~vVXT`mp-th;N~MLx=k0x~KU=B3eG~WY<>SAf*B$>~zrNqDQ9W3Hv-Mr0 z_Q(JH`*!TDE?D`~=qnKJo_+dkQS9w+w@em61h!vauVWg&EDk$-_V%LshlJ(Zk2k;1 zTsCjL=zM|Y@3ua=d;iMbX>94a-{P#2Hh+(@lKF1FJm=f<$J;;ps+_&P^YzJXH(#4q z_pUpCYuUc#b7LPqSSs81`y@xrW diff --git a/world_maker/data/heightmap.png b/world_maker/data/heightmap.png index 70cc3a6588131cc1ab1dbbbced3323141b06bd65..a930684f2ac9206a444945a13eceb8f0ef429625 100644 GIT binary patch delta 3067 zcmVR4@DLrRHE?SI@`N2VAwxP9NL5)}CU zit=YHDDpr&JBu(bvbIu?Rd{!`ZQEO0CJ<5@a~D}(@3Ojl*|Dda$#8}>BD9p^mEeWC z-EJ_3MByt_HpO%Xrdonxxvaes>qcbsbcbUKQV4Qc$c>B+z|O0ci~43Xvz4AHL0L4) zBFx4!WGUW4GJnN%gI(m6ozK9_T=7Nsl?9R^_Ky}LDWn4h`TZ&}x8QEcmm7*{ncVO{_3D&uuwfUE_zzR`T zxa^TKs^Z8ts<^QC`%h2Ilwdr7} zc$^LDqd_`TWSme%>AoLIG_tLgjCR#7L*=I1QGdIe8mohNKA*1@t4JD+4BI*$`mNBRkVX4fEx+I@p|R*n1zi_RCPV_j%}53 zqVd7(ORY;Xg=MQoS@D^`UOto|WiCn?7k?T@M=?l#Mmrv-mV!1Qqaf`5$ZBP=qoNyS zib_KKEBe`Wg*W2qX`yqbpt}+Bj}D=Uj|%CyBZiS$1r4zB?<{MJe5-m$iJM)QoCf+C zzs#U!MG7zGD*QEetgL!}FSD@j!b9|{<2&kfM%tIroN1@XH4@}2MO>knc>ZQ7S%1S$ z4Pt#W*Vav2)df-|D%HfI6x-8d{YPVHcKwcSe1Ctx#Sp*c9pMKM|Bj@|sJ*)KRTs!y zM^->0Su({&c{*FVD1ea+sD2HL%cJ0cP55^h?)hx$}d*|a3p)nEVIg*7!7ZYnd>~; zYKE1>%Jm( zM)pyq(nt>EPMBOX%E|auNe)6+S+5OAwr^B1t1=)(plL3Y{!F zL>3sW$G6Y;DR@&#S3!zmP=8z0x06PrbJnJ#Foen_GUXUL7G!fW^x#A!)G6jheR1U; z*=lCT%OJPJ219o09?FRX((5u{woyYqI+jM1ds!|T3s}##L z`1z%Ah)xI8sQ=o_yb^fb0cw9akR}q*_m!5@!nQ#t`)$YJcmG{keZ2+>fD? zV4(K)eUhEWH~qyAdL0UiHA;Q8EJg8HL5U%ZuIk3JRUhePG>|e>+4ud=M&-J$Z$Hd6 zWhjY2M=`Sd>MATUL^Kpv6lEAG4ozY90C`;Hs!Z$p=Lbl)+wJw-vwe^&i!QlRjG?vn z#RiDMMEhZGdGqg#Qq*) z3Q|BkR$~fch^(>V6=|aO6~4Z{-eQ6s|M>CaZA`y@{YvSq>$*H1k2D4|FlEJlcSdYv z#Uh1fbq`w%8GjEyv5Hby)$eKfV^fmxN3z6#kHFkjHs3a;!vo%Sg9WB8V%&+bC9}+o zFLNL9ntzdX)(%~dR*4i7WvyJA9cO%DOfdoC%LY`%WR|z@`x6f#fipOx!*FTbcJBdJy39s$0*f|?W**=GY8o?X0ox(H&6sP1KlJd zrm|iE?A-TbeEs#AF|cu!ITe9Mry%h=3 zRd7g&qkm9WD$Dp}CSSQM#LMoNq{!S)n=w0SWUGlF0WmU@GWg#y&K!k0gs+@fW+qNx_$K#D>2eZnnis(^# zikIK(|9}{^q<~T*OYq|SZ#5|b`vW$4fF}gs}&RfktbUWESsq^9tM_;U5RKh z{#wMkuKz#a{V5BvrwUOPlhqoPV*K@t7Js9!T$=@Rk1){o+vD!q4uFBk0=U<|K0;*e6CLC?Mcj$J;{`Mso ziwzZ6G5AT06qB9RAM1%3%gcDY+<({19uNA_|0mF?^6lQ4$P~juLgqc*+*fzU7j3Dl z@#E}tRozokc`AL++zp8HXn$d#XNdm>o&BvaGI5m^TveEUDgp3w*m~P)wt+aK5PyBt zl4koWs4P;6Gs@h_O8G<)cm}G8Ia_JoT2S#l!u#}@zH+6WwLf$++&g{{sj@aYY~v*HSa;xc25`wxHq053*f5{v)<002ov JPDHLkV1g&C4@Lk0 delta 3357 zcmV+&4dU{E7@r!DBYzC$Nklm2VJ9fR}8&VOSME4knAt829jVj9P> znF&#iyXrCCUj0xXR=?ZrwtS*avvQ6!*f0!b9LMyE;{sdm3dxHXd%B$nZ>ddfjLXht z@&Jei)f#K~Kl*!VFD1Rcd)zX9~I2btLTC=sT_aq6RnuQW^Gf}Ep5F1dCNI=V?qJvrOqro?u zGDpwX5Xs}siBjdm;SidqxOtQ;B66;lGOMy>1^3*?cv<2+&&wYjQ`+p2YAI46?Eykd zfUTvT`I%Kxv$lwJyW>)>utFIjd4y0gM*dHmm?7A0rySW2{UUyr&HOL=VBu+}AAi_(}a zZCm+#q*m0E_Tr6vy$!R}UIHl!j(X?Ob7k6{KkWC&t6QR)q{Pz`>ccC_nt?ugPZ`BYNH?^I=#e8@;PX5$ z$HW75<37zolmVwT`*BT2wp)V6x;gRFD>j-hsA4izlPME$AUf4|>XrGNB7yYA@sq{tH~rNpx- zRDb&QdR_Q-jDpdCS$9cCS{M~xN>1nPfttSy4`Nu2PZORky-&Gmei6QXu((lg8TZz;jqcB zB)KG>nLQrgFmj$`C7fq?^T?UCQt$l>rJ}SFDf8j`0?MeQ2jXtGTWaqTk>AVi=6`uE z&(F_d-`!H;w;%%Ja5yZABBgU8C6HARICSmZyLV-t=Otr8tI@3d^XJdYwVywKE^S+5 z>i-fHZXt)mVQ~%D>vgdhPV+o3)-Vji;?H^Z!}~owJ#BzFolXm{mzS5#IIpj-tM&vE z_2K*ocx_$}14<<3kZa-!;Q^FfrME@htQ^5MgWr47ahiN1XK zvO50t>(?rv^Kn0Z{J3g6ap6%pe~ToAaz)TNp4E)wSZ=r5W`~Tvd>DpuKA#th;cfYM z;!jpX{jojDE$!e-*@9$|d6TOLwfI+3HV1*PdURi(K7CTh=gK-BkEUrIV?~#87-0)2U?8h+R=S^ z{djw_zKOdbDI1AQTC)}uk_OEHpX@2aiY=1G zX-emtMLOnX_F)*x^Ye4cb&(P<0r2{23(`t*@ViCaq9(1Qrf|!Z5NSb9x-V_@=N8O) zcy3Lau%?9Q-b0fW-INrgERw8ql@e>d4=2u3Mo&;0n14#`@f=r}W=YZ>2IcmwfZQq) zD%Ao8c}W(ik;F%IUw=|#4v6O8vAq=ZJfR{kbQp#*P190K;(acc%Thj(_~6PU>*K(n ztdaQ=5ie=Jk$_){^MoV{Be@@Iz^qS|&Y|_tG1a-w=W{t8kL7eaEn`vKd3kv;$JEC6 z7LPSgeqGy}dE<*O%)w(Tet4t_Xz`I&rqrG+< znp=>RTviQ5`eppL)DKsyG^(8(A6NRUS)rcHJ%K4j zPl+Xxk|0h~1du&R3#d4LRJr_o*3H%y5TkNQ#~3q9ajL{ElSBcdZ4eMimQ|)QO{>R* zP+rfmb$6=qLHOYt?}XnZ{|h{OjcqCiCbu*9z=8!KfyG0L#`1KQDd&-ace zoG+3W8PB`s4S;QcRin?xyQEp!ET3KzU%ZS;$|ALRym?_x z4?;fC`+qdUAU}{G@y!%CJ@Sf$9zYQfpdCw#V`C|jWkg~?RB*{Myqi@LWnG1}XW-Xs zEu>aXNjA|^G+?}dEeT?|#VjB-Zl$$vt@YHgOFIp_cdcuUh6CfCbErn{p zNZ+%B^3g6{drp}5vD^{AhR1ZSX9gOMrOIz944$nz9j-s)sg)~5-mKa!PI0n_Lz%RAyvgX(EwT zRHNKzVj^ABTsOKhX>5ycgf=lHYbBO|D1U5pRb>RXctqlkM%;y=rC4_jTVo5?ZTMx; zHGUc?ln?Rpo7!^d~9T_hxQxA(ow@h&cAKGrI5J>WI z9%4!yVM2ms173}5@hrmX+d`ZtcWbScVXKc>y3ej;>0Avk+3}FC7N~28#}WFD8-Gha zMlD!qo#tb!79+2n7YCxQsdoGp(n>A#o&N?UDuZ|J>({TPlv2Kb{~mvA)uOE8Te2fh z-qzSiafDv-$${V-Ms#P~t<_{^KYsjJzPkm<$RwoWEFiU38p+ZkgtE{(Ur539E@8f3 z(f){Vqbw1&FGcxzoyExVn_hnpkbhPy$?(wlX*{Ho6N1CvABHZF^Ym`Cg#x`Muy->{ z>lXpUQ!es|^v{4UReQZ%J)aA&I&*ijJ>Y2U-tLm90&t8&fjEMceg=6PdAV6BCP_xJ6{PT4D6cw zio}~zz-$1O zfzz5H@&5ePwY7lIo4onky!rJgpD1X&p9SEO5=$MkF3gH0RzI&!lB7WEFb@L7v92a>Z5H(;(vTU+1sgsvBTG>)0 zrIg~4H>M`5Mclq%O+M%OWwCqi!HWvQ?Jr8H%47YZ100000NkvXXu0mjfd$)Ou diff --git a/world_maker/data/heightmap_smooth.png b/world_maker/data/heightmap_smooth.png index 1282d61b7c704444306f4c8a3515c293a95cf35e..4fd0e166ef646e57b5bf935e9665c90d222c97a4 100644 GIT binary patch delta 1841 zcmV-12hRA+4ZjYMBYy`5NkliYqnNHg961L?B zoZ>&z2f!F(i~$$`gP9r4)*nV0XO{;60Nax-rq9c$Jt9ynP-NiQwps!tr?R3bi0l{s zLEl^8cOW=U?vQqoWsIRveXB-;83GyJ8VlTnR1}wF;KXUF^MAEMZnd5cWVg#g7<>JP zeH&04;$_7`k#t&`}( zoF1_QmwyF4AeYU)0#-8t-A2hZ*OyT$C95^Qt`>hX<<^gj-$yfXZ!i)BBcw8^@#>!Z1!2e8z{ z1*TYEBb|9Xaap#9??iS`DOq;rsTD1wsytE$B``%*!yZkL8mq4CSUvKy{yuk2C`KrB z$$xm#Y;AMZmex9=TSM=H*a47-tQ;HDF{C3Afc2FjWFd^3n8Z#7z`XML@2E7#v zpor^e(4@5HrPNU1}XwQ1yjGS=XouV-C})X-i{!sE-d(wzvtRp?5gS?qtNX zB}^7X1gGp(4eTuO0x%U7vaGFpLVwwI*$|Gj_clEW78GY!6r~|bW-v%Jza?%l__B*F z{;-V6=&N!>mdLAj-x$qSX(Q7u>abnwk?z#}cEN(luYYjpyG3JI zWbIIYqHN9}g_$}00TP>Pm*F~OsY?TtSty&Z2ggi&D-JF7T~`|zAQ@Ov>3IixpphDN z%6pl3KX>2XPE`?OnP)NL)EWJH=U5JxzfQOITMo(lcf;&nDRf0^4ICB5H^_Q#`67Us zmHRD3b0KwfZkOJt4TB9&kAEL;-#dggJIT0k`Ut_Mw>|R8?3{Xi%kbWp6pJ8?!(c|b z>Yo@F4t{z(n{0~CT3I%pEvLu$4010wkiYW+~zF0(!LK5izwGP!l_tBz?0S5lDu zb~|f^^K|-tIFgqgX+e?nlPWqBZmVrT|aLEP1avNauK#;+9AaNayCmDaT>TFs`z>>u0(O%B(AG^bXmpn# z{13;$_yai%ji1!7hi@FK3V%02+6JzaPFmgPMwyzr zKSMz^09~?EVPKom` zV+)7tryTMk#((R$J}=pUeqQo3%Aff773FUZ|Jjp^(|!kWaM4j`9vtCNVn0w`E9byo zG@iz{8Q9y8Tz}Q*;m1__z>o5c1VEDPBLKi^rN<*TVZY>lefD<71pnXx8ZygEM-vBopDdJx?ga<&pH92*-&ZSO@DETmsjei##jqPY0I+h5tpb8 zC)nW*Acip^dj)Fde^zuF$SuOBONG86`p zQjppudiyOBt6iMdQ^=Gr6K5)^2$6j${e#4g;#}-~&vsU#rjKOXMWjY;~C7^rGU2?VyN|AVt$`50f^ih~}ofB@=z)ut| zRjBe@);0r#UjcR47Rqugi2?TXBcIl;h{Mk zBq0StPEIfAg}(SyNE?@gF;z>vA#=$1_4$$CxI>TjKFJ~vy6fJXa0XF&`} zGFWzT)gwjAN~SDyBcrLGAg(9v+kZuO7vUH?z@Q~$?}dsOOZ(&`5Amqpk#0gal=J~* zmtV6$Q=C?#ABQAqM=>&G;^5~sKR*I=SxhZgkA-xuwWzI_I(1xeFZuv6EqhYDaQ?|-U!glYaP zF_Qd=$$3Wpob~Du(QRn?)~_nJEJTdw?&W2yE>6-;EhkAHZ{gk{xacfeoX9x6#9;hI zl!ed)zGjlyoPf~O*k6H8n2S|-xKsL);_j0(M@ZGvvY2_T{0ZVPH$kYoD6C|sf!!%S z1NBto>4d^1yPPW^RR8_uOMj4a{-j-)_)SABQavSo4RM_DYafZ_LSu@hC%e#arRyh}QsZ0e1R{GKR&#<0f#mQH~6R9=3RBc9Gfvo5!*zU4Wp|5cD8O1u@iel0sT zSSbMmXj;Fitaq|&ca4^I{SMqA45T30$)bQLTD?{v+VQ0_E~#8pm?XD!SN#ELmnM11 zbLXK15y~Bjq+7S{ayDfh)(<_LXw{JPR8oZLn5iul!|G#wd3>i-SP{9{q)PJ-czppz T{OJPX00000NkvXXu0mjf^=U|H diff --git a/world_maker/data/heightmap_with_building.png b/world_maker/data/heightmap_with_building.png index bab97c0f51dd8ff424d0dc5205845eadc7c25b24..6047f15ad6ba316eb177a1d6090389607f37a9fe 100644 GIT binary patch delta 2077 zcmV+&2;%q15UCK5BYy|*Nkl=^r!O|?@R(43OPs~ zg9O0?wp+Dx@lgCG{F4lI(+dYD5Qts7U?DnCoIMa!M@e)&@j@N}b3=KM1HjRAR@RY2 z!HuDeF*wGvRv!_`Q3{exgEXrL+{QST89zwu&QZEXXrv5annO8Qw=p;3R}h;nkWf97 zok_xY0Y=+ZAb&41+dvA(Y_4t8P5btASK=dH+EK8eI$IH1WL#oSMH+Y=d7GO5EJ%1v;0gO$j>s`EXL|Eb4^a5Qr zc86JnS+px_P{j9v3NJ;odtJOXg}W`U9oJ=ZE3FB*BuG9DNcK5j&m!+BMSw_7PPCX3 z>)@(MaI&^`yVEqi)bT|-14ZHZF0*35P8^C#9J;gwCxTwX2t~*krVdpOp{kfz8AS~3 z3A^vB=YJOhkOqt0BBpuJDJ;ykYhR5QhS1o|YAp{&o!OWYKvJAIYTAXM zK(M%EUSis*!> z%rH40uPbLdFB9kl#|+55#?R3lM)8)_Q81dGRDTL}F{k!7LA!P=dMv+;*j>j*8P`2o z$M5N@`V!tg)vBiagm{EWUer$PvUcUzLDE{1?5xEYe|Mdtyi&k7$s=e?t7zuzB7}=j zu}1m3Vo_r(v)G8>EM**6f7i(bNb)IZt|=ARBNN?;tVMwet#m0a(=^9k$1QK&7;Y*$ zTYuG)iHa#wI#FfpH9E<%nZU!C)dl*|mdLi0wB#@)7g_9D0#oC`C1yj3m3m#USm}7J zEPlik=o35Veaa5xgi{_FsmdjD-3OSeE^I&6{<@Sj-|gm9Qcz3bj&;JX12-EPc2=BDuWY<5c9zVT!pitVw{d~Gc#y+u zrh+kvZQ*BC#Hfw!xxVApTVlSBLsB%e7EF(0jTy5q18F!%`cq~kNhb(#sKcCQ7&lf{ zV+bi~?5pB6jY?kw)Wu4lfnwJmSbtJ4*V3Y+=Ny%Y#MD68WR>o5<8x6YrL@}x@(Cfw zsLT+_bP_l-$OTQUl99Kt_mLF(Bec>1R^f2#1uLDe6BgSdz>d=5M?jzN}QryFljqHx3g?89w%4{((?OW zw(Nz>w6o#C{*Glvk>9GY>VKGN_FJG(cBqb@2E$ z;XQUF`z*c3OO?=d2h;TpK-Z|+Ae<)dl^)=4ASL47U8gSrz)RO8aaHaw8yb}%UPQL4 zKCBX=Ey|nDRl!`nHJ6c}!`&bshP2J?jjj3SD%wt{j9RdM@?$S~W`Br^9WJn9>G4Yx z%TW?=LbDX*^{{xk#H|mk_0gwm-^`g2J+itW$MtMy60?MKg4|*DvZQVsAga)LkZuue z4K&vc_l0X+<_iJsd$D_kQjf-?@b@|ETCIFX5gIcy=#|tw;@}5fAI1za`4e4*spX+( z)r_xCdaeYp&3TnFSbt{!HolHH+;Y_Wxu0WHRuX56eRnpp5xB1M7Uu8Q*o~Vstnt}Iz5`_GtHp*7U9eXWo_|DK4~ZEybOFF~j7}K) z>sL6l)9ZB|0N{AY8OB7lbzXCz5AqBF3%DZijtixex8a?D<>D_O(dkv*doRp?S$NBV z9j1Zc*3`7^Cls1k{QVGdnr9jV+4$e4r^L1hG(LiO%kW7;G({-{Lg4f;JP2Z`54>tQy+s@l1_RTDk%Ti8}^Z$o=-up1D zkhnwjJI@EwFK4|6w5Q~?6>b2Wmk|}z&!C-^rn~HCZR#mre)9Ht_I!yy)t&&Tf5T~K zTK}hXjn%8z&1bg^m4ygz0z*aULKY>B^K#_7XhD2*q?9H00000NkvXX Hu0mjf-4FDa delta 2108 zcmV-C2*dZO5XcaaBYy}FNklz4Dj4V;1KZrb#czEI!)X_}M%XnMZ2IQc;U z1SQ#PZ?$`Tp-2wy03q{VxV)HuAOr|Nykd;Tr{xj=JMDHJ8H-6KNX5=KT`hZb8IRNq z5HMdV5JA=zm#lQ?Kt!|S$U$1Cd)MDIzwOvfP@QQY5B!9*Vt+ACq%C{T53BC#lE%Z} zfr+=oFBh*<$lS9Pwg;1pX@$YW;sI8x1ckbAPIX?G_a`4ZZXDP;0W8oL=F}X6M}D7N z1hlftvtSn@S}yhBGsaYLwde;_i(xh$TduU6&U|?Qax#SrzX@xU1nqgd#Voxbsz(^{ zZ3!Eb!{m4Mhu zGn=ILXO6xMFw-6NgwsUZfd&Yhn@*eIV8K}dUf{%~CIILFcB5n*RJFND!FgR`rB+fZ zJ_ZC0n8jb7?tWDmuWV>+>yi~IalouzNv-eCK~!FZuE7pH^>-P%4G}%?{YT2kqNUiC z1l_?n7=MT&3<8BuYz+k3YBMisWY%jMT$rve*HI z8__oa($?=C`jdK>g7v=>znv}hJrshQ@lFGvUA)~pMZ--3eusXh0lx_NZA6>y3GfA! zd15gd%%l$xBJnwbE;kxK^_QUv0Kh*0{AVXX{1rgsqOylTB8?zvW_triDEz_OIPs7- z<$p#LsDb2HE2g_#2hp1Op>{L=ZQK|5(Yv2Y*vk>uVG4@#vYx6`TxQS;Bb^s|5-&A9 zNlFvv2-E5zk02$eBxoSI3nU2}CcmNEz}}CIvQgTeoP5M39m+hkqbf%wVY$f})1tD2nEC4k`hm%YC0fSxtz6 z61>Fzj7@ddGjzGcKV&|}xA)lcc(uW8c zp&uZBDgvV|sbT*GZ#9^*rI=?4tJJ{vtz^`*mj3;|PtQw|}bwv*uJZH$YctdD}Tn7DQM zZ8y27EeXBP5}{n`|^C`>xZkDn)9*LByzF!&>=FVBtq-pOu%eXdMugY(d~SS$O355(ES=!t05of)ljIv@RQ~MsO@9uupe*a@ zW;y0<%f=^|Lg-LFY<1kUYm~S$U&BHtols&jCJs`wp z1OP)(ePN_>o(X}~J#n_QGpO&_h!ys*KqUza=&Kw8SKam(VODve~3T0P%6T#-azE zodrKIKWsNCvRF6`T`r~|J~~M` zAB_Z0qIn45ceNqihp>I8IABgv69BdcQQ|qw5-McUj_6E2@(VQXpAS> z>S^Z+dG*qch2UXfITRe?dh`(i0ek6s0D}7LvO7#y@9KpiVCqFvx6_`&g@V@j^-t(^ zgvI+U_=3>8KU^q#h%LKVVUli7X_=h9zgjV*j;a&@y*2mV$7t~?ozG%oT}p)09WFuY mkU;$RMxskX?>agQAm9(<$DOB6H&q}20000PouHyA;_2cTQZXkvL4tL0f=EwOpg{ox18W-tqwAgcA_gGvboFyt=akR{06|O* ASpWb4 delta 95 zcmeaRo1hZq>gnPbQZXkvL1I}DHJjauOA({DJERa6 z_%rodH84%tj5xfAH5$U7DMP6^LSrWlj?ekg)s?2M5rzITwfrG=KFmQVsyZ;smV?OMEH zCZN>opKwoXtu92sW_Eo+se%Cc!-fJ{CTmxLj@Z7ANpESS=C8Je0ki7eG-Z6HG`2dFH;%h|Va_$NBAiB8XF7&3{+Tr<(s%cos8%W`cVxDi%Yr zwPWt^!kAO7O`*T*)bBLj;%xUPnWUhGT*c?YrYF{>xvv% zHLlRlomSk>^d431V}ud&wbO%5AQl7W&r!xOSM>Q#Z>!!gT8X*&LCH~&oPxSQg(;;D z$;6_(CGlksB=N;fw7Jm|#mRpq+mA5S_%bB$B}+QoANu)hfdTL2ZG=mT-JZ#}@lwQQ z7;+rTzl@N=Mr^G;Px!K-|DP6dTkOY_HOMDBJ3rYWf5Vll$1rDxBLDyZ07*qoM6N<$ Ef=UEny8r+H delta 731 zcmV<10wn$F1@i@vB!9X|L_t(|ob8$0lEWYfK&6xa|7G{V#sG3tv9r@DPrEVU03s?a zZ3102`#j&4R2LURl~vf%TZr9hE% zRC9ERVie%T!=ZQ{0?OXG<Jn9~tBcKiB(XGr>Hx zDwzpqDBMq%5)GxH-yGck>(yH(1l`vIywgAl~( z!iCCytbcbxI*Q~~YG4HEw7qOC(aqE7jlDbt=-j!m4ZLNX7qoMYce0tKs8iG(0F4Lk z&|H)bNwSc=G6q>N9?Aq?d`P2g z^$#3~@O!19Df|;7g)|W&Hq~zpL3ZaQ2I;>oo}vUV1sjsrDgMbB`2#?LtJ1>kAsqk! N002ovPDHLkV1oTQR4D)e diff --git a/world_maker/data/removed_treesmap.png b/world_maker/data/removed_treesmap.png index dabd1f7f8f9b7e9f65835721407350ddd5fae81d..fd47f444c58371289dfc2f3ce7f2f47340780444 100644 GIT binary patch delta 71 zcmaFK7CAw}k%IvU3dM_rfs}%$i(^Q|oVN!V8G*beh5zgGJRCqw2#9CXuw!66!+pdN O#P@Xdb6Mw<&;$TRf)FkM delta 861 zcmV-j1ETy{=?0J(e*pjh004Xk5MlrT129QMK~#90P13<{6;%|+@z2~Dc-2VfL0pss zI!{;b#Ep_j+PBbzC4Yh8PpB(vtawQvEM@5q{sc^1Xwu*a#B_(tu3!p{vd}OE66V2s zb6vc)a98)2^Sj@3?l}i!Kew{q&r=}3ec?Y&zE42mCh69{fAg5nChWX?NFa}c`?3>D z+mWmuJWTaU_Pi-~nh?$s-GSkDkT+D8-_yA$fBiUBH`2p?aj^HR>~)i>Dn0D0*E?M} z%A|pjGz<$*3=*RUaH{fZXTz>E7J#c`SPGqn4b)qN7sj5jWvg6QU>9GH2WQUw z7W%z*lXJ0*e>6o}P<_yUKY%9zo{1v0U{GgZ@@*6tJ;2c5e2RhLZtv zRy8R|p}#)-XnHzO%PbOWO{mEp?Y8zrg5jNjF_W=yvb*TujBMvkzVkS(fN<-SUVpEi zs|%#B%FR1-HIlU!_aBDN=#V04>$g<TE$s_Jff z!%WT{s=}i||M*Re^j3a@>6`m9=fGKnjCxNj)`+qcZxEt-c4;_&m%Zr5b{QbJr?GaxDV>dQ$3j?#d6jLq$!4^C3&j5HOQXE zg@D0ze+a|ZvF{*8ce50f1FzF zP$nCfb_adC+J*UmE}w82HuC$=Yw7us)ULKcf1wyL%WvCiL)JiSkKAnyeg4ngmrwVe z)&o}m3R`qdP)~3xn2v^H(585>RcrIk&&GYz9V}Ww`gn4ze2T0NW#2qInC=;6q*^Zf z#dW9KAZrE^vY3ZHB;BHSVI zS8g$0xPa_s?T2ZacE@gRECu8d`FBk&P!~{q$y%^*+g4=#mDmM3lbq|5h%9}W$MV`V nj}lq>l=8-Oe}4Xk7wG*D^FvW=bq`r-00000NkvXXu0mjfk&Lea diff --git a/world_maker/data/skeleton_highway.png b/world_maker/data/skeleton_highway.png index 13a1ae8450cc0a799f6cbb0821a44691534fcd66..47e4a0f980a558875c7b152eb66793391102feec 100644 GIT binary patch delta 2925 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 XDmwomVf!zk00000NkvXXu0mjfq%O-# delta 3172 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 KMNUMnLSTZmk`fgF diff --git a/world_maker/data/skeleton_mountain_area.png b/world_maker/data/skeleton_mountain_area.png index 5a025e603e2d52ccc4911657c1d6d18d8c4401a3..897aa4eff20a0e575538a134a8819172fb1146b8 100644 GIT binary patch delta 544 zcmV+*0^j}91i1u|B!2)&L_t(|ob8y=vcn(HP^5Iqdw)gju?(gn8I`heBXzku z7Dz=;#-oHFs)|ovS(HXe9?RnX>q>5|Z5#_ee}z(7$6wenn9K`VM&J3a1SP#!7l^R# zSlxk)k!H$$>y{afl$Eh5aQ*`YF^ZCTD0L@dbQd$^QvZ+wdVF8v$+DEY;?8sp@(I3? zjaXP;B7L?hg@3^m$*9FllqJ(TjQLJ3!`N^BDonRy6k+I2DTU#?z5oVyu;%ry$R;u+ zu^8FMGu=f#8>hy0FkmF%I;CtjBgH6!4a^vA`rl`KTnsXxd&|_OP4~qNKw{uH+M!7X zgVZHBg~5|`M-MX?sMusdW0Zeg_8Y=FbSOB7QuMiWiGR}ZW7?lH>gx~gT6cQQ_*_YB znOMm1;8sjx1QJN7t=m`TWNj=qJ%eTr7|GI(wH zY%Bg1k(hNB!3!7L_t(|ob8$0a>O7AKqb@v|7H8IP2?_+n3?X#(>5vxkRYb5 zy&=$BgXNT?wboyutj8Ry0k2b5hwPgo27keN?423GM=B37c#nbfpr3I4zVD5&^ip{| z7b+PJ>_HztOWM6b5R?oiyp127N5uyvI005JW-|ofS)V_Cl7CiBya;U^$BQFn`0Fb6Tw-V5@kignUS!A|^!kW2{D0j%ztrc6|g>aYr#o=`A(0=UgCQc(&|n{pLN}mmWX>IYk!91gxrxrl(O(9B}B<)ndpRK zzT_~n-SR1=vaIxU6JK)4Y(W-Qn9TW7KFY|#Rc~eN+~<-^=1>oF7Zd8oyaf>}#F~H- zdNC=@%I&@#Hs6#;KW{83m_pG!_P;4Tg0XdF>ePhfsLEur zZ;>~etTVZ`JFcQaWmidcKNGa||BT$SWy_W=TefW3vgPaK7y2@Al7xD{?f?J)07*qo IM6N<$g2ieb4gdfE diff --git a/world_maker/data/smooth_sobel_watermap.png b/world_maker/data/smooth_sobel_watermap.png index 2027431f11c19b30136c52b4a8ed7ef411a79d8f..a77c512485f49f4f64a19b5203db1660564cafb1 100644 GIT binary patch delta 612 zcmV-q0-OEL1pNe%B!5InL_t(|ob8&;cElhEg<($K|CQ}xCNV1DMQ_?JhD~#(hEIMJ zLn88(|0rtyTFAO>3X5~dMHBd5!z?hzr^A?KfDA|yJnDzBi5`UPMVww^wf-vnMgQ5UF z^s|mr8OLj^Xiidb*FG$z7Tv%iLVY=xvHBsRRI$?v7c-5Eh{A^mH+`l#hKh?(A=dqH zg1pm3w3jy?;};egJ@yDhME>AB_M9odX-nz^w<7P|@<~Faz@oA=r3^){KUq*B`f6Ts zDQ)#gVnB}#T7SdRxJog><<1YGJ9WSJp%2EDWiEL5OKG1vUpOSe z=%+;9$E4~nx49qY2m++JJe&axNR?yqe?;j#s7Hb@YJYp*R;HLl^!-QBDP}RpI@@O$ zd>^|h8XxW^9*1qIkcBKkZJ9x0G)UR9MQ6LS)FeU>DB#ui0f_JWZV@Q_7aiKwiqQPPq9YyQaFaAQtmEL1#e`0s% ziYadl)m;#YH%XxwGVk=VI$F`HH?l(1G;mZ%_k$=q=|COi!0000FnP08q)3`(K$Z8p|L+AOW2&%%amIGSAlE zPFj28KSnn`hm_naB_h!Lnvx+rz^76e@hJJZnNmr#)~+g~e_I?Lr8=b6PYF^z7kj57 z{-(xWGkVt)|{ii5aI9j{_OBRDF( zNTkNx#;LLa94foQfpS9ZDu>3Fa%^lU0mH3?j7iZZf}nvDqg233Bq?()$RkF|>P>(7 z9tPcuWmb$7)z^}|yI2^t%G0L`YmDtJK^l_1HQ4MIxI7*mefp4(9Jg~HigvE|%a2?V zzqMqbeJ^^MgMTXG9I#+OKZ*oteWkdX#XT`$Wp_67m%p9^>X6Yc`?K=S5uQ;QpGzG| z!h~%r8LNV+5QNPdNea#daLO18LB^kLX00&fkXb5tJs8;u<8&5ESN4IR719IG$@c+3 zUd?&g$v9?#TfwI^ot~MbnHNzJ~#M>3#7tU8 za$Jd6V=ms!uOErFiw_aLTg+A1Z+p@okybyad?Ok^gZ*vq%05^F00000NkvXXu0mjf DB2@`Y diff --git a/world_maker/data/smooth_terrain_delta.png b/world_maker/data/smooth_terrain_delta.png index dfd1969652c5662fbed0e9b5e88c89d9f79e8c5d..d340356a37b406559985703e33bb1d81b4e3d5a0 100644 GIT binary patch delta 835 zcmV-J1HAm_2-yaZBYy)RNkl1!j3`KF&|Nr9|_n`{S0tw4yvGGwgN;MOf zi)~Co;+$a^hD-=j3Nt(Bi0HXc-oIiDQK;>ir9BqF4*Z&31<&uWL{IQ@!iBW8TeSe8&j9x&?q82_9M~rLoV_MCmlupu+4O&}w=&*U=@sn5 zhxwBAgwvmzic5J&#}erj?LD^$&9H<1NK*8dfnbR-% zzZUi160LcR(0DiK`YN*%D_IZj(!|7~+d*#0Yw^FR+HLTzh|&;+V0H7EpN7UOaqxMk z?DT9keX0dapq?wr`s$USQobXXjYiq56Io%2`#?J1yMOM1w*I_PmEVsNE4qKN{rpqA z9_lth9<>1O=Q6spT1e{6JhRx0E;;;0S^b`o!F0YNtbs(m6eydWPlWw3vfz^KI77JH z(;e21o|uhz?0#(??|L;dF15aCG21X^ptT#Co9icgjE~P9qZ^|UwRu1qCHbm?Wpj+z zeqr)^HGiIo2{NzSwX~Yso$CWFmwtcuP4g+jXYCNEz4QLpszV39H3cPedVa|3^(}g~ z;J6FnS%`XjyuZX^>m^yB5!06WeDS_T`=5puRo^P%Y|d$J&Q>`$bIUIK0mj*{nCq)8 z9&RY$q}R;$b)-_eRl+L}#Y?&?YlG z^BfbuP<1E>fo=8L8oczH4xjyLs2AKp2hm5_3Iz5~h0}@+!kHc!QrQpGG|nPOJ6v~@U|d@we3BBxX}VvWJ%GYrEJ!!H0#Qp=cl`YHeb N002ovPDHLkV1gp@t#JSV delta 1107 zcmV-Z1g!hn2ImNnBYy-gNklU6-RE42DB@_J05Wf1PG8tQ5$HR01N+bLR9| zOBG*|5U?@;j^jA@BwSsA3qZuz2EZeHqXNg&t1?u-6?*B^&r*f{#3I_49DO>7J{dg0tTgdqlcA=!9; zw48|<=oQFD%70>#*~I%hVOSbA2Lb%t^rxD})etGRI zvZ1a1D;*IF92?jwc+Ba|+FM+^r7r z`9cjkHR5_{pwCA;cOZTACEY{IEQay#ndmbe*Q$2nk$)roD;=L7njtp{b5vtlP<u@b5VCGTL>;^K`9p=YOmAL^f*6Mf*+w;Ae(&R1VpW2>o@u?C?uM_qaAIu+_${5yP z#Mal?skqCtzj^h#BbGtqD$}^!B&#^_+qS7j3sa*ghuNFztPcTrU9F!UyM2DN&u+ zdWBdYU2Wlv&`qopzNv+gXe^HqQeUIBXYS4t`+rgh$t#S~tB7m#(;6vB{Muhrl|J>3 zbQLW<%mXLZxsx8E%TZ}}j6VXGF@; zWq-CKe~~FXhZ`0-6VQAjvx}n^E-dK1o?R+gk!{Nd$!ao(UKDY?j)UHpY*Q=KolfjG zl(PR?;ut6@rxGZQ93! zI<=6#MvYjpYK$w6($m)(hS_7L7b{k}r+-NCi~a1p8WY{PdSEU(kZq+h{rD%JUEL)> zGl1f1rQoFm`*@tj86gvBbUKq0O8wn?_^B2HP6c-VBvD_?zgl2Jm{d$>2FsGTY|J4= zF{$vJ@)@8F3CGo<7vnC0=E`g(CbuK|^~pc=ovnQOUo-wBv*BadZdugKh@AhuiA*#< z_35Q<(f#k9`u)^R<6Pz1=k4pn{8Y_Xei0$R;lhIZYzl6_GtUpLO-$vTcp!PA<2cTm Z{0CXKpthVPsA2#B002ovPDHLkV1heoCxie1 diff --git a/world_maker/data/sobelmap.png b/world_maker/data/sobelmap.png index 1d9ca7abb4c2ab65ddcb87133c585f88d0f33892..bb46c81361ab0f938fc229f1723cf320925bf516 100644 GIT binary patch literal 3730 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 D{9pWg diff --git a/world_maker/data/treemap.png b/world_maker/data/treemap.png index 7bd52e00b57229f107b2aa067b8b8c38d82d1eb6..40310524b10aedd9bf031471ee626e6b80c8018d 100644 GIT binary patch literal 120 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 diff --git a/world_maker/terraforming.py b/world_maker/terraforming.py index 72ff6e2..deece8d 100644 --- a/world_maker/terraforming.py +++ b/world_maker/terraforming.py @@ -23,7 +23,7 @@ def remove_trees(heightmap: Union[str, Image], treesmap: Union[str, Image], mask treesmap = handle_import_image(treesmap).convert('L') mask = handle_import_image(mask) - removed_treesmap = Image.new("RGB", distance, 0) + removed_treesmap = Image.new("L", distance, 0) removed = [] for x in range(0, distance[0]): @@ -31,16 +31,15 @@ def remove_trees(heightmap: Union[str, Image], treesmap: Union[str, Image], mask if mask.getpixel((x, z)) != 0 and treesmap.getpixel((x, z)) > 0 and (x, z) not in removed: - treeArea = morphology.flood(treesmap, (z, x), tolerance=1) - blend = Image.blend(Image.fromarray(treeArea).convert( - 'RGB'), removed_treesmap.convert('RGB'), 0.5) + tree_area = morphology.flood(treesmap, (z, x), tolerance=1) + blend = Image.blend(Image.fromarray(tree_area).convert( + 'L'), removed_treesmap.convert('L'), 0.5) array = np.array(blend.convert('L')) bool_array = array > 1 removed_treesmap = Image.fromarray(bool_array) removed.append((x, z)) - print(x, z) for x in range(0, distance[0]): for z in range(0, distance[1]): diff --git a/world_maker/world_maker.py b/world_maker/world_maker.py index e393c3e..4c4c17b 100644 --- a/world_maker/world_maker.py +++ b/world_maker/world_maker.py @@ -46,22 +46,20 @@ def world_maker(): rectangle_mountain = rectangle_2D_to_3D(rectangle_mountain) # Terraforming + # Smooth initialization overide_map('./world_maker/data/heightmap.png', './world_maker/data/building_moutain.png').save('./world_maker/data/heightmap_with_building.png') overide_map('./world_maker/data/heightmap_with_building.png', './world_maker/data/building.png').save('./world_maker/data/heightmap_with_building.png') filter_smooth( './world_maker/data/heightmap_with_building.png', 2).save('./world_maker/data/heightmap_smooth.png') - overide_map('./world_maker/data/heightmap_with_building.png', - './world_maker/data/building_moutain.png').save('./world_maker/data/heightmap_with_building.png') - overide_map('./world_maker/data/heightmap_with_building.png', - './world_maker/data/building.png').save('./world_maker/data/heightmap_with_building.png') - filter_smooth( - './world_maker/data/heightmap_with_building.png', 2).save('./world_maker/data/heightmap_smooth.png') - overide_map('./world_maker/data/heightmap_with_building.png', - './world_maker/data/building_moutain.png').save('./world_maker/data/heightmap_with_building.png') - overide_map('./world_maker/data/heightmap_with_building.png', - './world_maker/data/building.png').save('./world_maker/data/heightmap_with_building.png') - filter_smooth( - './world_maker/data/heightmap_with_building.png', 2).save('./world_maker/data/heightmap_smooth.png') + + for i in range(5): + overide_map('./world_maker/data/heightmap_with_building.png', + './world_maker/data/building_moutain.png').save('./world_maker/data/heightmap_with_building.png') + overide_map('./world_maker/data/heightmap_with_building.png', + './world_maker/data/building.png').save('./world_maker/data/heightmap_with_building.png') + filter_smooth( + './world_maker/data/heightmap_with_building.png', 2).save('./world_maker/data/heightmap_smooth.png') + return rectangle_mountain, rectangle_building, skeleton_highway, skeleton_mountain, road_grid