From 5f6206541ef0df920cc97c777e928c9c8bf9baaf Mon Sep 17 00:00:00 2001 From: Song Minjae Date: Wed, 2 Mar 2016 23:46:22 +0900 Subject: [PATCH] =?UTF-8?q?New=20tileprop:=20opaque=20=E2=80=94=20whether?= =?UTF-8?q?=20the=20wall=20is=20completely=20hidden=20by=20the=20tile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: f1680dd3fbe289ded64bea8c717996216113bca2 Former-commit-id: 98856da3d4b83ed9332cf50790967cdefbf8e622 --- .../Torvald/Terrarum/Actors/AI/ActorAI.class | Bin 0 -> 126 bytes .../Terrarum/Actors/AIControlled.class | Bin 158 -> 198 bytes .../Terrarum/Actors/NPCIntelligentBase.class | Bin 3874 -> 4005 bytes .../com/Torvald/Terrarum/Game.class | Bin 12409 -> 12409 bytes .../Terrarum/MapDrawer/LightmapLantern.class | Bin 709 -> 709 bytes .../Terrarum/MapDrawer/LightmapRenderer.class | Bin 13103 -> 13059 bytes .../Terrarum/MapDrawer/MapCamera.class | Bin 10030 -> 10205 bytes .../Terrarum/TileProperties/TileProp.class | Bin 2710 -> 2897 bytes .../TileProperties/TilePropCodex.class | Bin 4133 -> 4196 bytes .../Terrarum/TileProperties/propdata.csv | 82 +++---- res/graphics/sprites/test_player.png | Bin 21115 -> 21103 bytes .../Torvald/Terrarum/Actors/AI/ActorAI.java | 7 + .../Torvald/Terrarum/Actors/AIControlled.java | 4 +- .../Terrarum/Actors/NPCIntelligentBase.java | 19 +- src/com/Torvald/Terrarum/Game.java | 2 +- .../Terrarum/MapDrawer/LightmapRenderer.java | 216 +++++++++--------- .../Torvald/Terrarum/MapDrawer/MapCamera.java | 3 +- .../Terrarum/TileProperties/TileProp.java | 12 +- .../TileProperties/TilePropCodex.java | 3 +- .../Terrarum/TileProperties/propdata.csv | 85 +++---- work_files/Tools/b24_col_to_40step_col.py | 1 + 21 files changed, 230 insertions(+), 204 deletions(-) create mode 100644 out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/AI/ActorAI.class create mode 100644 src/com/Torvald/Terrarum/Actors/AI/ActorAI.java diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/AI/ActorAI.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/AI/ActorAI.class new file mode 100644 index 0000000000000000000000000000000000000000..18160243889cb46dc0b0b5897c338ed0af7afa9c GIT binary patch literal 126 zcmX^0Z`VEs1_l!bc6J6X&zqO!!C6#bCYqN2p2(p-J8nqqxNPYBD=laWCHq+UNKF)v-;KPf9Uxddo1BLfrA OCJ+ZWQNA7k D+6EFB delta 12 TcmX@cIFE6HEEBWFME80C7+M3E diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/NPCIntelligentBase.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/NPCIntelligentBase.class index e557896f4c73135826a556e8a848266c1b33860a..e8be17dee4cbabe7db3b27dd9f00650628cd2ae7 100644 GIT binary patch literal 4005 zcmb7H4ObLp6nWEgg1Vc1LGtaCR0%t<=gs z>_h9+&*)S~p_AwI1Nu>&?wuKChuvX4dXDec-uvA5-uv7;FaQ4c_dfuR;^zc?)D=^|H!i>YhQUW`1mDM#FHg8J2 zA>}44vb@7XnbnthSdno}#;T0#GH%GYDdQ6vpGr`&rYY=ELoJm=NkWV6h~k*)s1gPy za#k@tW7*59p`~YpZL4;gOl`=UJETuEqw7be= zNj|P`07y7gUyZc`bEKMBRCA7QnbX3N&@pjYT~^a&M>o=^)KY;C8GTyMo2pZ`g@ln> ziQ{z*j(hNFe;z);HVam{BxZDj!?Y`en4!R|PUt1JnudpxX4avS)35}zcMwi__p_}4Nxws(g8Fj&+llBQKry8@Wt@GYLY;+1bU1X@PA7`dU z*`Q(Qc}mrYS`u`}HcBgTLF7JOA{aZ7smnXc9%zshEn;f}m;GVWc3=F4+v zlYOBeRuVcEb^i2e+?6wgYWwCq>$;hjuuXLwHCJFRd-QLk+wpEr==lQCjFL1?WTVql zOoTDPK~$NA5_WI8TbK}sqJPrFN@lZe!mm-%v-E$J5^0N~wJbtXUQBDlvZLf!OJ|of)e#v}8?)6F3ZN}Y z<)WxMZS{lgg+5I|d%E7EuzsbT3~mMBv(uddd8&zaa>!n>bw>oJ64LbxqY8w>)Z&pS zLy_u#f^wx3vSMP|D%&|R?go8#ZP^ZTi&JnIFH6`_)9w_c&`+VQ{1A{t!64EKKEo{q zw|Th35JQpC^@CGueg9!L{kekuIH2GQjLP^@!CibM<7)-q;9D8@6nuwC1>fU`jT?sh z9qa$7;65HG_=$%k`V{oypoGDvyNiUrdJ3)&bGlO)u{7dpvaW1))G{60G7OiXhbKCd+`eG6i*$;@G9*jyoT3(=n*m}cqCyA??i+{t`3J9q3nfYoNS-ODIa8tX3lJLs^4c$gBw&Y z--|@syo==JyV>`FgPwKs@h<6ljN+3a!uG7ZN2>`UtLNu=;vqA!i-IoyiR};Z%tP$h zTj;*@7uwg*QA3O?*aO2gyw6h%40quSCJC0nFh#2vt=|s}U8D=Mp&mB$7(3@T8C%D$ zHFVY(TcXOi8Zy=s80!g)^#sN~2xt(dlDvl9)eI;Tm6k(!s8DG-zkjFhM-ylGR;IlH8KNY{$iG(_fSwCOlN^7g8*4>bDg_m cuzuYFi@P)Zg^G{Z2Yif|Xim^cE6w!pe^y(GDF6Tf delta 1527 zcmai!Sx*yD6vzKF&|W&7VpIf6TNY)}vJ@0>K}A$l6a+UE0cAiaOGSi&Y|5hIf*Q!Y z`(WamCK@y*n)m^X&wdVHeb9K$Or4n^i9Fmn_i}#!d$!wG*)OwZzyAL81waL!D+r=Z zpk0BCHV*>m5V)$qWp1wVaVIYtFI@uN3cR?^jy;U_dJsjQ2mKiEU=T3{X}H07r@#*Okx-^?1>ONKMxup?ksA^@{)2MIc4Wn2Zl*PG^uAp$|_c9~MFY-=p2nwrBm`@)~$Z4G~f z`T;(>WM&yEsLq!iLOx6AFlq^Rrl9}ydSiCA+a1{7;3XWv(RDHxYcto@fz8a1(XDkj z&LaA-n$ctzzLzF1YH()D+*ZrnIAP4#NlMq88$Kx^B~!DWtW!A6`RL!(aE+}wh^>ej znmNV{`YlaA8qi1t;Kv!VWU`wQ8a2LBhsH2JbcaUB(g;}^Axop#Y>@ui=P$D37^8-c zJ8EJ#^lZZahc6gmfAg(OQ7xuvRA(HF*XrH51XG3{PI(J-VY{skC!6|hL9mg3*3p46RN(mXJMHB>DF42I}4@D)SpnjEQ zjSYN8kqMPxWtrwwlu^+lwh=A3&>{szv`|4o*+PAz=AV0>_c@36oOACTs~D^3X{96$ zpr$B<(H;#HqCE0PQ8W29DAdH4s5-fsPKQia6rG{&5cO!XzE^{RdL{BA<&M>F!U=kA zLI=Gt(J1+Y_OMNs9D;RmO-)06LtSNUv9F=3W<$Njs7$je78$HoCC031N~~FlQ*;sW zW_(g?;oPqckrq50TS`WoSt(I$!9Q{J2ELhamunMN2b=9}rn&BOP(6u#SO;7{+5c2N zo;-;cQ4xAniZ_N12$jCEIPaUWD%fe}|>#WmQ46LABxa0|0B zAbt0ckNa4P2Uv!OSb;}ag~wQfCn&`rsxgE*3}Y*vVjG@uqpL|DmByEd#w#S?HJo@O z=YGr1bf5Y`Wu_j z#J?~SB$lXQ@+A#C>?u&gp;Cl2**K7)aZ!d#HHk4#nt5d9fec@C9AZdE3dO@qHeTTM zMcSonIxIAUk9!LvlO;Kz(MTNM;fr6Y3W#pmv#A8*>2RI0y}g xTEDDNHLk)u{G71U`CK$cTkDJ5q_kSM#FYh@g5lV#mE>pe% zl@vBm8-;a%A_k;TR0mN+hoA@#QENdP^&}VW8t5MNCaF)CTLU^$X+SD(5o4CH5qD_X zh+8ycqz@F1J5r8n=_dRT<}{&kOwX}fEW)a(Lbr%4lgJh}lgJTvP32L2oU-GcS@oov zO`=Yi;|tkGQd0;no>hyu(GlcBxnuFD&R~gqE#o+0^9h zz<=XLccJYf?6`zHbi#)#*obayMGs$aKX&yZ6@9Rw9|eeGEgqmkHr8Sgbr?d6%no9N zk9(T5#Zv;qIJMY2=kZa9ZC=-oM^NwtDxSiEQ8*+!@f<~Xfi-v~``(}mZ?O&UupQ&r zg$eAzB=+Jx>M?~@Oye+Sa00V9iI3dw?XZ24jh~T;FUZ9l-1vrad}nt_v+`3;esQd1 zxAI%kA4w&w`TR-(>6qtAUyHIJ>93^C{MF}GiJ+3;WBzik@k>>ts#5Ee4EX^KJmIfa zGNF)JHrY8=s&j3rSFy@OUrIJm4nHex&UC;^t58gN2#}LE1)4JoW!GwGRK&LfH5o2x zZs_FU`9K9tabeKLJImJ7Yo092=PpSvB~??mob0n+LmI9_N0+?e4HV-hM}sxg$&g$BGucemV-lO($fQ0w8%XbC GVg~?L%MC05 delta 55 zcmX@gdX#m;VMf7x1{S6Q22Q3z20o@D24SY+$yXSoCTBB=O?F{YpS%J{H!`U+)=k!D K5}mw{i5&o${SKc1 diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.class index cdf37ae70b9262e1ba877a2fe06b867ef4c935e5..eaeb09cef1282f4393d2e8e6f0d082a7d09c2137 100644 GIT binary patch literal 13059 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 N0M~mXQLb^`{{a-%BN+ey literal 13103 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 JE*!vj{{ey|pL+lR delta 4893 zcmai233wIN75>lL=4IX_xmigE03YjgJ zIC80qCKYoqaIYmbj?9&2N9IxBU--8r^Bq|rmpS+dA2@gnk2rW=t&deagWo5DPPgut z6JD;6g^ny@F0xpzbYzKKWyw-UmdSDlui(|hSf_8?!P|J#C9a$^u99b_L9NDPWwX(^Q z&5m3r*ITm1ksFkZgsdak)0^j1)HN?ycyZH=in_$D5+(ELt%d1(g00K4HcGsP>#R3y zEhQ~md2}@ibTtd=Y8KShtfQ-0a#ypY)J3?EzF-RN04}0G)#o?Rzu4zb<2Wp@#>ch9 zF2GD*2L+hr^A(`c=TD>0GPe&noBky}U;AI`^R<7I&!0nouItCWjGNgo5A)jrHGu^_ zUjZ-k`3iWs&({R5@c9erFY@_|>0jydm(agT{dkhHrEFN{>#&@D+~=>LztZQgqJOo| zzlQ#5pTCCwTA#m;{(7Ikf&NDNC#Gt4Eo;IVsWs90=W0$t>TbAqPfE)P6W)2U>rzJP~tI}z?6!kvh*=TQWw9l=Q=*t%C~dac_#O%a!a z4d_asyUD>eWMDf=@JpP4doT+3@(p(K{dRHv-H(~rjb{9s6==g6Jj}ZNmJ!dQ6@S3v z_%k=E|KJ7um;2Dmc$acNUdKW1MThZ@1n{0j@V;c?11ZI4(gz3RMC^}C1$N8HxL=0g zkc?zk&HWx^5hjRVaOfC5Z?_KOq-5J+Cb*qX9Rl}ey0tujDj2zgu`wpNo2l25tu^eW zFJN;eKaXG0igM$43HQ;m0GVFRchju_QjHeAi5~1j`L4CBP=*X5P%VcqkzRO!RtP6Z z0U4-8n1B1o!-I(6A%>4Y_7Mz0MBE=BbCiYO9D+lcXe=sidiVh3Aj14*E_?7ua)OMd z))^28-lLL}39Z#__?DABA*f+?r@N`CAMvQ-ln4EO- zXyHNUra!xQqnmzzI846>V$u`&tU#IcMi1J3r5{F0f7HnUOqYRJzzMWaDsiQp;-);1 zV}X+(Sy@`oa(pFi31_ND+7dkHCaP`E(+auSMG)xwHO@j>T+eY$hC!8NSc9#i?7_>e zB^?Vj#2wS|x+KX-<7!BSS0uy3MJ983$KYYU;Bb5J3m9>n=)M0FJ@UBGfANM+3@q(` zy3VJ3r9(y|Bx5)~$0Aq8k;)0a*e=PDbs~olh!k+;{56TP?HCjiC3QrZNR&xLnf!lH zcn4Az6Gdfxe7Q^|N&``*@qRcRon)2|rLaRThPm)M<)W-U2IW$sG!bPkQJRUe;5$)l zyoi6eD0|CFE03<;k=1CBHC$U8F;mu~Q8r*U`!~xbccdz=qDD@M9o#I#FsSEFr>nP+ zht*5&L=5oA)6sQ3%}=tS)_oB-rH2v|y5z@SK7gRNYIy6@1lhSdIny$WBDWz{bQ7%5 zHiX=rCFt8(w)l9;^syaAAbq$VF|Tpo_7IDy^(WMVVx78@f>91`WY;&mu8CK=j<-*o!@Qm+}kA?Fl`vxf?W1*2sgB$N5`mp8TH;VQE{b(VO1^2Pla{w7`BV^hxhno zW`mREF)bL@hT%nRIQ>D42=K%@cIV&itB=8lth`>A_+{Y7(eVj1^1FZ@JT4HwDf~bl zPW5-;>^Tlj+}6*XB+yAI8na@rx8aPeU?fX#JEQfY<4u_i&TziTBx_R3(GR!-kk!jxb3}fE&j4boMXJnfX zJR`?^=oz`@BhSb)AJd3)uzd50*VM`E^^5|u&oc_mr=C${KJ$#u=5x;|HeYx~iTTnq zO3i-HC^KJqM!7lQ8C}dl&**Bt_Ka@k8#Utfrn@=hHT5uuJ)>tpbt^`ia+hBvimZf^ zG=-BaMUo_0Nsgi^iXthBtQ1Aj6h&z%ifoS}jvq^LP<`x!w-`)`2jQ*gD?(N7|+(TctJlK6UXyAX9~Zn^)t7L z-z=B&UnEO;l&$9X(PsWvL-u24U>Ifv)}k@+9KVzWpK;&- GKK~YO>u!z! diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TileProp.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TileProp.class index 4b29fcf728387ef0dc8adeb0dcb4619b34360122..9b4e2bd9c60a7e5f353e7396103c5a0314d5d034 100644 GIT binary patch literal 2897 zcmb7_-*Xg25XXBi_j9vHFanD42MXvVgd8d;N{DE}LGVbTIRZv_*xYTxPz?Y?;?Roh&FCt4(i!a53y) z|3p*w{FQ!p%a2-V>B(l;_JR#B(i{&a^T|UUE1GMz!*0D5Mtfe+ski(n@}fQ_bl|Vy zXg^A{9}h!3YhlMvmVu5lp-Lf6qkL_d5lUEGF*+TqO^Zq)KTSAZdw!iuI4H5YFDDLx zpbj<-r}DK$P8&xW^dIOvj*L-M(s3iz9s8kt8LNYdd~K6=yV$)kYKM!210nXW5BkG( z)1jl|yTc~%d84R`YRv;pt77$F%&IJzK9;bOj!>>~sN8`F>5XBN`KVD;)-jYY_oRY_ z{jswi_M^7nK-Uyi_nSAzSJkDr=(I~O(4C!7an&Q!`Y+mQp zH+b$8hi~%eH9Dzi_W#@yMMp=k$?Dc4zn!4e1l~-dD&?34qZ|Vn4<_S*Wjx4?2b}TX zGaiV>gUEQ$8V_LO!E8LR;ipLP!^56IREJmag_(ay{bkb5!WPYBk>1AGO%v!Hsv%M| zO*62EH~&q!KdjBCgv~_fXm+r90Z*Faqh_WaQ*Ly$V`k4#fzFx=C(^9J@r=egG4*+x z6F|oPv_NViNS!V`2XgK)joBcx06Cul!i{2(cj-L=ByTHnK?HdppXXH0LyF{Wkc$Ah zlmWswg+VTfttr?bmqm~dVy%>d!6${-)oWmx-;6m5`eBFIPd@nG{IMT$1a z51TlOhnhjIi>+~Okncp0hTIz02KfOXKW2dNpMpVdh>BEg zke@`5o3bKR8{}tz{E`8}zbXb<78N;SgZwIhD7qypa>NGt4IsZ~fbc(+K|VJ>mF9oh CAzt|a literal 2710 zcmb7_SyR+N5XXC#y$D%RJn_I=mqXSAFF-t2SJ4&J#l^y>umlW-#7eSQYLyTAb$rk& zDXV<&1NfmV|2R!X%faJ-cXK{@}8 z)o`MB@GJ|;hf!dAE72=KnPs;r6D$boUU$NVAG>8j-{txITg!E=MHh(;x4GtcekjwV zmjeF{mY3Vh`Q^ZAM2_zX%1%0-6HN)~Dh}2GR`!<=-&=J&d#1UzXa{p~#=ffGu-v*8 zIBd5j)6pv@6f|0G_-my(KUlZirP7=o1Xj?*gyY&zu(cgTjvcm5d}3zBj;2A3JyDEI z7+dM$G$Z7&I3vrmr#PrB5d33@y~XY8oWekg*?(2UCa9x;jqa>e67_M&KnO6C!B9Lf%ofJ1!SvkYFYuS zn{BSjUD?MRR^k!TRkoztWWl}CZZdDxv5cDE3>tO??GaS?*QHTDiY6VS<0kE-T_*L> zZj<)VUX%8*xt|W0)X$@XJUYbUFs~lrxdAqh(k?+G|8o`u?d;ru*~L}65z%qnm|k2w zlTr+VQHoil29DGqk{VD_gG*|lNew!w0Vp*Xr3R+dAcgKH!QTsc0#*rHKxc-2koYFu zPC{noWR^~0Y{m|Bn$Exybe4*cTZ6w->WdOQpa~`#q@h;u6uvOUTMZrBpj2mTL(ZO{ z44sr2_QhVU?HP^h!_>nxq5RL@9O z1)0)g91-(t~uXAPWF_nE=Ai6ocH<-Wo#%S=55u z(%%|G1z82i>jV&fCmH0n_KftXAf6WFj{c1Fs2~AA!UPb0s2QZJZH=jdtZPB;>RV%~ sAnyV4ApwN{6by1tTakha@=*&?(O0CPf_wtV=L8V`RWZnY`IbNU3kmE=kpKVy diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TilePropCodex.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TilePropCodex.class index e075da80157ffa2bd11cc49cb7130bb4a4208694..81dc0ccf6099f619c4ba64e890e7fbf18098f822 100644 GIT binary patch delta 1383 zcmYk6X>b%(5XXPB*<@xXFJu!$i=ZWnelV15DG)peLbybU!59yW*Rt7=g-s^e-GoDN z@d6d^5f$$Xyif_zB?2NUih`nedUxky^*=!_daW1Hb~zOV>&CDJi3o$qTqTMb`o0V`zq zip@4(8+P!G;afHs&S9#>F)^<-(%_}KqDjBP-c|4&-}}a?D5z#<&rwb&5DKN^nL4fG zN8AO)KNx;wmmyBGzup~g{pSDS?zDFM+lwa;sFsfaEL`M_MJf_m4qw)>{zTJcjq{hA z5zXVpQ%R6gDwx1T@kZ#&$xISyg4j>tRFRN%GPQ!I$!qpS)rmAkEd2=nBNPFf(c!Gjw@mwAn^Kc=X_Q!%&g1;O6BlCr zB?+!x!97jNCI|9On##dBDtb8~$BD}&Es!sz+ppXAKe6E=q0^_#5M`PKxO(T5&X1NJ zI#N5_lUBc9TAzJsefDPQ2^11Aqb>Od$W_P_tS#+7Wu#8JfBD1nJbHe}ap^R=6Vvli aE&L+riti_WPug9t!(dSnfJr_@4e6d|M%YKoV%xdRe9g= z-WozGHrt`8{W2A>-PZep1-ZkDuL0;#oJy<2^5Q@q{h4#hit?ozzl z$12|AbFbokKKCo>0d-dRJgE4P&%=t3_&lokm@X@Id0bn5!skhKo(fpS)4Hryi8WrB zXFQ(mk2p~s4iy;C)xd>$&u#_YkA(|1;aXC zv<=~Lx$6xZ=(kJ4BS*bd$ji}OGKItp8yWC;#juG%yDmJ+f0e0**BG+f!?XKd=M9fH z4R7(bLt%MKs^}M2n$`iwwhT zb?{Oh&9Ov!k>LZjIrv@a&erz1>3N0^b=yyNx5ZM)RHtFP?uS}B`%)c-kFuNb&O|Jo zNVOY2RzDn1cB}ejG#fr)heWzkNsWA}PH16sGHLiMYsa(p=j@G7YezNRT5+X_| z(>O(Tt2m5PsTZqW;-}Fd7M#iHoRLK^2eTT*I!mG>2<;aM*JHXQ|3yiY$BYnp%w(3N z)Y{&H8B%b#V04WZ9EmHxLxqUX&WcauY$;7v%EN8+IHyATmQzr&3{fVJ(v^fYwj#1% zT886SP*6FhxNLwUGmP7SUzs7AVZ2y_6wTR4aq)x<&Vnh=#3#4q|@jrv}Chd`9(00y`R|2&y>(9zUFpGPMU76{0Awk B_wN7z diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv index 988a3c4e6..ca21bdb5e 100644 --- a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv +++ b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv @@ -1,46 +1,46 @@ - "id";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"drop";"fall";"friction" -# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky | Opacity/Lumcolor: 40-step RGB - "0";"TILE_AIR" ; "1641"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0";"16" - "1";"TILE_STONE" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "0";"16" - "2";"TILE_DIRT" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "3";"TILE_GRASS" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "4";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "4"; "0";"16" - "5";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "5"; "0";"16" - "6";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "6"; "0";"16" - "7";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "7"; "0";"16" - "8";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "8"; "0";"16" - "9";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "9"; "0";"16" - "10";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "10"; "0";"16" - "11";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "11"; "0";"16" - "12";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "12"; "0";"16" - "13";"TILE_SAND" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "13"; "1";"16" - "14";"TILE_GRAVEL" ; "8205"; "6"; "0"; "N/A"; "1"; "0"; "0"; "14"; "1";"16" + "id";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"opaque";"drop";"fall";"friction" +# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky | Opacity/Lumcolor: 40-step RGB | Opaque: whether the tile completely hides wall behind + "0";"TILE_AIR" ; "1641"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0";"16" + "1";"TILE_STONE" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "1"; "0";"16" + "2";"TILE_DIRT" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "1"; "2"; "0";"16" + "3";"TILE_GRASS" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "1"; "2"; "0";"16" + "4";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "1"; "4"; "0";"16" + "5";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "1"; "5"; "0";"16" + "6";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "1"; "6"; "0";"16" + "7";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "1"; "7"; "0";"16" + "8";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "1"; "8"; "0";"16" + "9";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "1"; "9"; "0";"16" + "10";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "1"; "10"; "0";"16" + "11";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "1"; "11"; "0";"16" + "12";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "12"; "0";"16" + "13";"TILE_SAND" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "1"; "13"; "1";"16" + "14";"TILE_GRAVEL" ; "8205"; "6"; "0"; "N/A"; "1"; "0"; "0"; "1"; "14"; "1";"16" - "15";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "15"; "0";"16" - "16";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "16"; "0";"16" - "17";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "17"; "0";"16" - "18";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "18"; "0";"16" - "19";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "19"; "0";"16" - "20";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "20"; "0";"16" - "21";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "21"; "0";"16" - "22";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "22"; "0";"16" - "23";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "23"; "0";"16" - "24";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "24"; "0";"16" - "25";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "25"; "0";"16" - "26";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "26"; "0";"16" + "15";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "15"; "0";"16" + "16";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "16"; "0";"16" + "17";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "17"; "0";"16" + "18";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "18"; "0";"16" + "19";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "19"; "0";"16" + "20";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "20"; "0";"16" + "21";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "21"; "0";"16" + "22";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "22"; "0";"16" + "23";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "23"; "0";"16" + "24";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "24"; "0";"16" + "25";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "25"; "0";"16" + "26";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "1"; "26"; "0";"16" - "27";"TILE_SNOW" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16" - "28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16" - "29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8" - "30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "5009"; "30"; "0"; "8" + "27";"TILE_SNOW" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "1"; "27"; "0";"16" + "28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "N/A"; "1"; "0"; "0"; "0"; "28"; "0";"16" + "29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "29"; "0"; "8" + "30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "5009"; "0"; "30"; "0"; "8" # see scandinavian name set female of this tile id! - "31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "31"; "0";"16" - "32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "32"; "0";"16" - "33";"TILE_PLATFORM_EBONY" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "33"; "0";"16" - "34";"TILE_PLATFORM_BIRCH" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "34"; "0";"16" - "35";"TILE_PLATFORM_BLOODROSE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "35"; "0";"16" + "31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "31"; "0";"16" + "32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "32"; "0";"16" + "33";"TILE_PLATFORM_EBONY" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "33"; "0";"16" + "34";"TILE_PLATFORM_BIRCH" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "34"; "0";"16" + "35";"TILE_PLATFORM_BLOODROSE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "35"; "0";"16" - "36";"TILE_TORCH" ; "0"; "0"; "0"; "N/A"; "0"; "0";"63412"; "36"; "0";"16" + "36";"TILE_TORCH" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "63412"; "0"; "36"; "0";"16" # 63412 (ffa44e) : real candlelight colour taken from properly configured camera. -"239";"TILE_WATER" ; "6522"; "100"; "1"; "2"; "0"; "0"; "0"; "239"; "0";"16" -"255";"TILE_LAVA" ; "62358"; "100"; "1"; "2"; "0"; "0";"48320"; "239"; "0";"16" +"239";"TILE_WATER" ; "6522"; "100"; "1"; "2"; "0"; "0"; "0"; "0"; "239"; "0";"16" +"255";"TILE_LAVA" ; "62358"; "100"; "1"; "2"; "0"; "0"; "48320"; "0"; "239"; "0";"16" diff --git a/res/graphics/sprites/test_player.png b/res/graphics/sprites/test_player.png index e50d61a9ad10ff57e01004af88c8f23de9e964a4..c2e35e1913453ca9c44b66786eb5fa189c925ade 100644 GIT binary patch delta 3205 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 VB#CU(+uSUF%hcEcU3bGJ{=Z|l8omGk diff --git a/src/com/Torvald/Terrarum/Actors/AI/ActorAI.java b/src/com/Torvald/Terrarum/Actors/AI/ActorAI.java new file mode 100644 index 000000000..a9fed8b0d --- /dev/null +++ b/src/com/Torvald/Terrarum/Actors/AI/ActorAI.java @@ -0,0 +1,7 @@ +package com.Torvald.Terrarum.Actors.AI; + +/** + * Created by minjaesong on 16-03-02. + */ +public interface ActorAI { +} diff --git a/src/com/Torvald/Terrarum/Actors/AIControlled.java b/src/com/Torvald/Terrarum/Actors/AIControlled.java index af4c2a575..aeda95cc8 100644 --- a/src/com/Torvald/Terrarum/Actors/AIControlled.java +++ b/src/com/Torvald/Terrarum/Actors/AIControlled.java @@ -1,10 +1,12 @@ package com.Torvald.Terrarum.Actors; +import com.Torvald.Terrarum.Actors.AI.ActorAI; + /** * Created by minjaesong on 16-01-31. */ public interface AIControlled { - void attachAI(); + void attachAI(ActorAI ai); } diff --git a/src/com/Torvald/Terrarum/Actors/NPCIntelligentBase.java b/src/com/Torvald/Terrarum/Actors/NPCIntelligentBase.java index 9b35bc87b..9d597c374 100644 --- a/src/com/Torvald/Terrarum/Actors/NPCIntelligentBase.java +++ b/src/com/Torvald/Terrarum/Actors/NPCIntelligentBase.java @@ -1,5 +1,6 @@ package com.Torvald.Terrarum.Actors; +import com.Torvald.Terrarum.Actors.AI.ActorAI; import com.Torvald.Terrarum.Actors.Faction.Faction; import com.Torvald.Terrarum.GameItem.InventoryItem; import com.Torvald.Terrarum.Terrarum; @@ -14,19 +15,18 @@ import java.util.HashSet; public class NPCIntelligentBase extends ActorWithBody implements AIControlled, Pocketed, CanBeStoredAsItem, Factionable, Landholder { - private InventoryItem itemData; - // private ActorAI ai; + private InventoryItem itemData; // keep it for extendibility, like Carriers in SC1 + private ActorAI ai; private ActorInventory inventory; private HashSet factionSet = new HashSet<>(); + /** + * Absolute tile index. index(x, y) = y * map.width + x
+ * The arraylist will be saved in JSON format with GSON. + */ private ArrayList houseTiles = new ArrayList<>(); - @Override - public void attachAI() { - - } - @Override public void assignFaction(Faction f) { factionSet.add(f); @@ -143,4 +143,9 @@ public class NPCIntelligentBase extends ActorWithBody implements AIControlled, P public void overwriteInventory(ActorInventory inventory) { this.inventory = inventory; } + + @Override + public void attachAI(ActorAI ai) { + this.ai = ai; + } } diff --git a/src/com/Torvald/Terrarum/Game.java b/src/com/Torvald/Terrarum/Game.java index 55a02232d..d3e858eeb 100644 --- a/src/com/Torvald/Terrarum/Game.java +++ b/src/com/Torvald/Terrarum/Game.java @@ -156,7 +156,7 @@ public class Game extends BasicGameState { } } ); - + MapDrawer.update(gc, delta_t); MapCamera.update(gc, delta_t); diff --git a/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java b/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java index 958d8b68f..b2dae6e75 100644 --- a/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java +++ b/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java @@ -108,33 +108,35 @@ public class LightmapRenderer { //System.out.println(for_x_start); //System.out.println(for_x_end); - for (int y = for_y_start; y < for_y_end; y++) { - for (int x = for_x_start; x < for_x_end; x++) { - staticLightMap[y][x] = calculate(x, y); + try { + for (int y = for_y_start; y < for_y_end; y++) { + for (int x = for_x_start; x < for_x_end; x++) { + staticLightMap[y][x] = calculate(x, y); + } + } + + // Round 4 + for (int y = for_y_end - 1; y > for_y_start; y--) { + for (int x = for_x_start; x < for_x_end; x++) { + staticLightMap[y][x] = calculate(x, y); + } + } + + // Round 3 + for (int y = for_y_end - 1; y > for_y_start; y--) { + for (int x = for_x_end - 1; x >= for_x_start; x--) { + staticLightMap[y][x] = calculate(x, y); + } + } + + // Round 2 + for (int y = for_y_start; y < for_y_end; y++) { + for (int x = for_x_end - 1; x >= for_x_start; x--) { + staticLightMap[y][x] = calculate(x, y); + } } } - - // Round 4 - for (int y = for_y_end - 1; y > for_y_start; y--) { - for (int x = for_x_start; x < for_x_end; x++) { - staticLightMap[y][x] = calculate(x, y); - } - } - - // Round 3 - for (int y = for_y_end - 1; y > for_y_start; y--) { - for (int x = for_x_end - 1; x >= for_x_start; x--) { - staticLightMap[y][x] = calculate(x, y); - } - } - - // Round 2 - for (int y = for_y_start; y < for_y_end; y++) { - for (int x = for_x_end - 1; x >= for_x_start; x--) { - staticLightMap[y][x] = calculate(x, y); - } - } - + catch (ArrayIndexOutOfBoundsException e) {} } public static void draw(Graphics g) { @@ -256,94 +258,88 @@ public class LightmapRenderer { } private static char calculate(int x, int y){ - if (!outOfBounds(x, y)){ + char lightLevelThis = 0; + int thisTerrain = Terrarum.game.map.getTileFromTerrain(x, y); + int thisWall = Terrarum.game.map.getTileFromWall(x, y); + char thisTileLuminosity = TilePropCodex.getProp(thisTerrain).getLuminosity(); + char thisTileOpacity = TilePropCodex.getProp(thisTerrain).getOpacity(); + char sunLight = Terrarum.game.map.getGlobalLight(); - char lightLevelThis = 0; - int thisTerrain = Terrarum.game.map.getTileFromTerrain(x, y); - int thisWall = Terrarum.game.map.getTileFromWall(x, y); - char thisTileLuminosity = TilePropCodex.getProp(thisTerrain).getLuminosity(); - char thisTileOpacity = TilePropCodex.getProp(thisTerrain).getOpacity(); - char sunLight = Terrarum.game.map.getGlobalLight(); - - // MIX TILE - // open air - if (thisTerrain == AIR && thisWall == AIR) { - lightLevelThis = sunLight; - } - // luminous tile transparent (allows sunlight to pass) - else if (thisWall == AIR && thisTileLuminosity > 0) { - char darkenSunlight = darkenColoured(sunLight, thisTileOpacity); - lightLevelThis = screenBlend(darkenSunlight, thisTileLuminosity); - } - // luminous tile (opaque) - else if (thisWall != AIR && thisTileLuminosity > 0) { - lightLevelThis = thisTileLuminosity; - } - // END MIX TILE - - // mix lantern - for (LightmapLantern lantern : lanterns) { - if (lantern.getX() == x && lantern.getY() == y) { - lightLevelThis = screenBlend(lightLevelThis, lantern.getIntensity()); - break; - } - } - - // mix luminous actor - // test player TODO for all actor.Luminous in the game - int tileX = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedX() / TSIZE); - int tileY = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedY() / TSIZE) - - 1; - char actorLuminosity = Terrarum.game.getPlayer().getLuminance(); - if (x == tileX && y == tileY) { - lightLevelThis = screenBlend(lightLevelThis, actorLuminosity); - } - - - // calculate ambient - char ambient = 0; char nearby = 0; - findNearbyBrightest: - for (int yoff = -1; yoff <= 1; yoff++) { - for (int xoff = -1; xoff <= 1; xoff++) { - /** - * filter for 'v's as: - * +-+-+-+ - * |a|v|a| - * +-+-+-+ - * |v| |v| - * +-+-+-+ - * |a|v|a| - * +-+-+-+ - */ - if (xoff != yoff && -xoff != yoff) { // 'v' tiles - if (!outOfMapBounds(x + xoff, y + yoff)) { - nearby = staticLightMap[y + yoff][x + xoff]; - } - } - else if (xoff != 0 && yoff != 0) { // 'a' tiles - if (!outOfMapBounds(x + xoff, y + yoff)) { - nearby = darkenUniformInt(staticLightMap[y + yoff][x + xoff] - , 2); //2 - // mix some to have more 'spreading' - // so that light spreads in a shape of an octagon instead of a diamond - } - } - else { - nearby = 0; // exclude 'me' tile - } - - ambient = maximiseRGB(ambient, nearby); // keep base value as brightest nearby - } - } - - ambient = darkenColoured(ambient, thisTileOpacity); // get real ambient by appling opacity value - - // mix and return lightlevel and ambient - return maximiseRGB(lightLevelThis, ambient); + // MIX TILE + // open air + if (thisTerrain == AIR && thisWall == AIR) { + lightLevelThis = sunLight; } - else { - throw new IllegalArgumentException("Out of bounds of lightMap"); + // luminous tile transparent (allows sunlight to pass) + else if (thisWall == AIR && thisTileLuminosity > 0) { + char darkenSunlight = darkenColoured(sunLight, thisTileOpacity); + lightLevelThis = screenBlend(darkenSunlight, thisTileLuminosity); } + // luminous tile (opaque) + else if (thisWall != AIR && thisTileLuminosity > 0) { + lightLevelThis = thisTileLuminosity; + } + // END MIX TILE + + // mix lantern + for (LightmapLantern lantern : lanterns) { + if (lantern.getX() == x && lantern.getY() == y) { + lightLevelThis = screenBlend(lightLevelThis, lantern.getIntensity()); + break; + } + } + + // mix luminous actor + // test player TODO for all actor.Luminous in the game + int tileX = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedX() / TSIZE); + int tileY = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedY() / TSIZE) + - 1; + char actorLuminosity = Terrarum.game.getPlayer().getLuminance(); + if (x == tileX && y == tileY) { + lightLevelThis = screenBlend(lightLevelThis, actorLuminosity); + } + + + // calculate ambient + char ambient = 0; char nearby = 0; + findNearbyBrightest: + for (int yoff = -1; yoff <= 1; yoff++) { + for (int xoff = -1; xoff <= 1; xoff++) { + /** + * filter for 'v's as: + * +-+-+-+ + * |a|v|a| + * +-+-+-+ + * |v| |v| + * +-+-+-+ + * |a|v|a| + * +-+-+-+ + */ + if (xoff != yoff && -xoff != yoff) { // 'v' tiles + if (!outOfMapBounds(x + xoff, y + yoff)) { + nearby = staticLightMap[y + yoff][x + xoff]; + } + } + else if (xoff != 0 && yoff != 0) { // 'a' tiles + if (!outOfMapBounds(x + xoff, y + yoff)) { + nearby = darkenUniformInt(staticLightMap[y + yoff][x + xoff] + , 2); //2 + // mix some to have more 'spreading' + // so that light spreads in a shape of an octagon instead of a diamond + } + } + else { + nearby = 0; // exclude 'me' tile + } + + ambient = maximiseRGB(ambient, nearby); // keep base value as brightest nearby + } + } + + ambient = darkenColoured(ambient, thisTileOpacity); // get real ambient by appling opacity value + + // mix and return lightlevel and ambient + return maximiseRGB(lightLevelThis, ambient); } /** diff --git a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java index 638ebab33..2ce042e5c 100644 --- a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java +++ b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java @@ -4,6 +4,7 @@ import com.Torvald.Terrarum.*; import com.Torvald.Terrarum.Actors.Player; import com.Torvald.Terrarum.GameMap.GameMap; import com.Torvald.Terrarum.GameMap.MapLayer; +import com.Torvald.Terrarum.TileProperties.TilePropCodex; import com.jme3.math.FastMath; import org.lwjgl.opengl.GL11; import org.newdawn.slick.*; @@ -398,7 +399,7 @@ public class MapCamera { } private static boolean isOpaque(int x) { - return !(x == GRASS || x == AIR); + return TilePropCodex.getProp(x).isOpaque(); } public static int getCameraX() { diff --git a/src/com/Torvald/Terrarum/TileProperties/TileProp.java b/src/com/Torvald/Terrarum/TileProperties/TileProp.java index 14207596b..aabe80637 100644 --- a/src/com/Torvald/Terrarum/TileProperties/TileProp.java +++ b/src/com/Torvald/Terrarum/TileProperties/TileProp.java @@ -8,7 +8,7 @@ public class TileProp { private int id; private String name; - private char opacity; + private char opacity; // colour attenuation private int strength; @@ -19,6 +19,8 @@ public class TileProp { private boolean wallable; + private boolean opaque; // hides wall or not + private char luminosity; private int drop; @@ -129,4 +131,12 @@ public class TileProp { void setFriction(int friction) { this.friction = friction; } + + public boolean isOpaque() { + return opaque; + } + + public void setOpaque(boolean opaque) { + this.opaque = opaque; + } } diff --git a/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java b/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java index 4061ef708..fb2e73f35 100644 --- a/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java +++ b/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java @@ -66,8 +66,9 @@ public class TilePropCodex { prop.setSolid(boolVal(record, "solid")); prop.setWallable(boolVal(record, "wall")); prop.setFallable(boolVal(record, "fall")); + prop.setOpaque(boolVal(record, "opaque")); - if (prop.isFluid()) prop.setViscocity(intVal(record, "opacity")); + if (prop.isFluid()) prop.setViscocity(intVal(record, "viscosity")); System.out.print(prop.getId()); System.out.println("\t" + prop.getName()); diff --git a/src/com/Torvald/Terrarum/TileProperties/propdata.csv b/src/com/Torvald/Terrarum/TileProperties/propdata.csv index 988a3c4e6..246027201 100644 --- a/src/com/Torvald/Terrarum/TileProperties/propdata.csv +++ b/src/com/Torvald/Terrarum/TileProperties/propdata.csv @@ -1,46 +1,49 @@ - "id";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"drop";"fall";"friction" -# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky | Opacity/Lumcolor: 40-step RGB - "0";"TILE_AIR" ; "1641"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0";"16" - "1";"TILE_STONE" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "0";"16" - "2";"TILE_DIRT" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "3";"TILE_GRASS" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "4";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "4"; "0";"16" - "5";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "5"; "0";"16" - "6";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "6"; "0";"16" - "7";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "7"; "0";"16" - "8";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "8"; "0";"16" - "9";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "9"; "0";"16" - "10";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "10"; "0";"16" - "11";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "11"; "0";"16" - "12";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "12"; "0";"16" - "13";"TILE_SAND" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "13"; "1";"16" - "14";"TILE_GRAVEL" ; "8205"; "6"; "0"; "N/A"; "1"; "0"; "0"; "14"; "1";"16" + "id";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"opaque";"drop";"fall";"friction" + "0";"TILE_AIR" ; "1641"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16" + "1";"TILE_STONE" ; "8205"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0";"16" + "2";"TILE_DIRT" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "0";"16" + "3";"TILE_GRASS" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "0";"16" + "4";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "4"; "0";"16" + "5";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "0";"16" + "6";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "6"; "0";"16" + "7";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "7"; "0";"16" + "8";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "0";"16" + "9";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "9"; "0";"16" + "10";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "10"; "0";"16" + "11";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "11"; "0";"16" + "12";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "12"; "0";"16" + "13";"TILE_SAND" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "13"; "1";"16" + "14";"TILE_GRAVEL" ; "8205"; "6"; "0"; "0"; "1"; "0"; "0"; "1"; "14"; "1";"16" - "15";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "15"; "0";"16" - "16";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "16"; "0";"16" - "17";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "17"; "0";"16" - "18";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "18"; "0";"16" - "19";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "19"; "0";"16" - "20";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "20"; "0";"16" - "21";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "21"; "0";"16" - "22";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "22"; "0";"16" - "23";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "23"; "0";"16" - "24";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "24"; "0";"16" - "25";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "25"; "0";"16" - "26";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "26"; "0";"16" + "15";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "15"; "0";"16" + "16";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "16"; "0";"16" + "17";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "17"; "0";"16" + "18";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "18"; "0";"16" + "19";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "19"; "0";"16" + "20";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "20"; "0";"16" + "21";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "21"; "0";"16" + "22";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "22"; "0";"16" + "23";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "23"; "0";"16" + "24";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "24"; "0";"16" + "25";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "25"; "0";"16" + "26";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "26"; "0";"16" - "27";"TILE_SNOW" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16" - "28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16" - "29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8" - "30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "5009"; "30"; "0"; "8" + "27";"TILE_SNOW" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "27"; "0";"16" + "28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "0"; "1"; "0"; "0"; "0"; "28"; "0";"16" + "29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "29"; "0"; "8" + "30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "0"; "1"; "1"; "5009"; "0"; "30"; "0"; "8" # see scandinavian name set female of this tile id! - "31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "31"; "0";"16" - "32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "32"; "0";"16" - "33";"TILE_PLATFORM_EBONY" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "33"; "0";"16" - "34";"TILE_PLATFORM_BIRCH" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "34"; "0";"16" - "35";"TILE_PLATFORM_BLOODROSE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "35"; "0";"16" + "31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "31"; "0";"16" + "32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "32"; "0";"16" + "33";"TILE_PLATFORM_EBONY" ; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "33"; "0";"16" + "34";"TILE_PLATFORM_BIRCH" ; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "34"; "0";"16" + "35";"TILE_PLATFORM_BLOODROSE" ; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "35"; "0";"16" - "36";"TILE_TORCH" ; "0"; "0"; "0"; "N/A"; "0"; "0";"63412"; "36"; "0";"16" + "36";"TILE_TORCH" ; "0"; "0"; "0"; "0"; "0"; "0"; "63412"; "0"; "36"; "0";"16" # 63412 (ffa44e) : real candlelight colour taken from properly configured camera. -"239";"TILE_WATER" ; "6522"; "100"; "1"; "2"; "0"; "0"; "0"; "239"; "0";"16" -"255";"TILE_LAVA" ; "62358"; "100"; "1"; "2"; "0"; "0";"48320"; "239"; "0";"16" +"239";"TILE_WATER" ; "6522"; "100"; "1"; "16"; "0"; "0"; "0"; "0"; "239"; "0";"16" +"255";"TILE_LAVA" ; "62358"; "100"; "1"; "16"; "0"; "0"; "48320"; "0"; "239"; "0";"16" +# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky +# Opacity/Lumcolor: 40-step RGB +# Opaque: whether the tile completely hides wall behind +# Viscosity: (walkspeedmax) * (1 + (n/16)) \ No newline at end of file diff --git a/work_files/Tools/b24_col_to_40step_col.py b/work_files/Tools/b24_col_to_40step_col.py index bc46bf745..223c58f5f 100644 --- a/work_files/Tools/b24_col_to_40step_col.py +++ b/work_files/Tools/b24_col_to_40step_col.py @@ -34,3 +34,4 @@ def colFromNum(raw): print(colFromNum(9979)) print(intFromRGB24(255, 164, 78)) +print(intFromCol(6, 10, 18))