From fd058e9004d5b35669a23752d2215ec1c8ea7564 Mon Sep 17 00:00:00 2001 From: Song Minjae Date: Mon, 7 Mar 2016 01:14:50 +0900 Subject: [PATCH] buoyancy partially implemented (jump gets higher in water), fluidal movement resistance was failed to implement Former-commit-id: 9a5275809b11c8597cdcc59bc8845f80eeb6bb56 Former-commit-id: 4946a70b3a0bab66fd6817859bf03517d3a1152e --- .../Terrarum/Actors/ActorWithBody.class | Bin 15626 -> 18398 bytes .../Actors/ItemProperties/Material.class | Bin 0 -> 932 bytes .../ItemProperties/MaterialFactory.class | Bin 0 -> 356 bytes .../com/Torvald/Terrarum/Actors/Player.class | Bin 10489 -> 10489 bytes .../com/Torvald/Terrarum/MECHNANICS | 8 +- .../Terrarum/MapDrawer/MapCamera.class | Bin 10108 -> 9776 bytes .../Terrarum/TileProperties/TileProp.class | Bin 3285 -> 3503 bytes .../TileProperties/TilePropCodex.class | Bin 4753 -> 5308 bytes .../Terrarum/TileProperties/propdata.csv | 110 +++++----- .../Terrarum/Actors/ActorWithBody.java | 204 ++++++++++++++++-- .../Actors/ItemProperties/Material.java | 41 ++++ .../ItemProperties/MaterialFactory.java | 12 ++ src/com/Torvald/Terrarum/Actors/Player.java | 5 +- src/com/Torvald/Terrarum/MECHNANICS | 8 +- .../Torvald/Terrarum/MapDrawer/MapCamera.java | 12 +- .../Terrarum/TileProperties/TileProp.java | 20 +- .../TileProperties/TilePropCodex.java | 21 +- .../Terrarum/TileProperties/propdata.csv | 110 +++++----- 18 files changed, 399 insertions(+), 152 deletions(-) create mode 100644 out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ItemProperties/Material.class create mode 100644 out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ItemProperties/MaterialFactory.class create mode 100644 src/com/Torvald/Terrarum/Actors/ItemProperties/Material.java create mode 100644 src/com/Torvald/Terrarum/Actors/ItemProperties/MaterialFactory.java diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ActorWithBody.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ActorWithBody.class index 44c56cd2cb74004082ca1a54c81650c347c3ce14..1ba4a221d65e10d56ee129ce07c3b0131d24a9f1 100644 GIT binary patch literal 18398 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 CbmC(G literal 15626 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 literal 0 HcmV?d00001 diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ItemProperties/MaterialFactory.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ItemProperties/MaterialFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..988c20c657c6384de726a9e23322779e69a2c0af GIT binary patch literal 356 zcmbV|&q~8U5XQer^G9Q}MSKBo>cPEu(jtgZ5Yj3bdf#jp-I8Qwvnlvko&*m*fDa|k z7Ed0XfgkgI1M|UreSdrcxWFXG2>TfhGK>l7)O5yQ6GkVeOG12WSDG*`O{W(_TWeRz zx?$(Av`RKh=}geSX6&C$PnedxWg>AbAnyutO$F|2*nSiZCOqL literal 0 HcmV?d00001 diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class index 14b6d945e6e030b0590df029b8e6b9a5e70d856e..ee24d1984fb164cfc2be25dc9a9b9283c49e6d1e 100644 GIT binary patch delta 4509 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 Km}I@|EBH6l#GhUO diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MECHNANICS b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MECHNANICS index 29f9f4fbf..87969412c 100644 --- a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MECHNANICS +++ b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MECHNANICS @@ -93,4 +93,10 @@ == Custom pattern making == - Players can create their own décors (hang on wall), dresses. - - Two looms (216 colour mode, 4096 colour mode) \ No newline at end of file + - Two looms (216 colour mode, 4096 colour mode) + + +== Food/Potion dose == + + Scale ^ 3 ^ (3/4) + = (ThisWgt / TargetWgt) ^ (3/4) diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class index 6be81442b78f706472021623cd68d8108e95c13e..7de878be7fcb7604d913c3ea6c8a967b85ab0e78 100644 GIT binary patch delta 3764 zcmai033OED75?sQZ|2QQh#?b_kT3}(0Ryrbg6yE7fKv6SM@y9wtH>510dWbK5k!>8 z79N`c!y=nVBP0q_RJ0paq!wFii?mgwi?xcDY7q_4@4lInj3K9;lYIaE|9AI$-+h1c z^?S!hj$Al+2tcvCWMV2l4Il}p4SeRu=Su#|gd1m+`nMln==!A}|IziV!dC{)1(1TT zO?-o91Lr-ZiylFMn+ql`3aKO!Pw5~%OA?nUZt$J7!u}Mdm=O9mO^Fh zu9kbKhRYR-OzA1T+>whHFDm~PhV(Y2kMuRApY+$0D;0{>sR5>x$UqY}$yGraB!l&A zh{8}qhM5>A!xcs-jAUYDlqpxsH32D=(WaD!J%O*oMTe3yA8uE-K+cYWLrLHyUNwzB~d&&+y z->I-m;aP><3ePF*QTUNUgTnI)dlmL6G%7SHyrA%+!hVGV3Q>h0D;z|5(}twmd=cdF z1)a)QI|HV63@KB~<*clev$AiTm3`x^Y!_!`p`DeT!!-+Yxfk3|+Jy(WXR%xM4{=|W zu%Aae^AU+DU?({WsuLJgK_p?X3LZ(=&*OeU!hRw5k0$Jue^J6-`5#NzFXsO7z6l3U z&?8pXiHLP{R+f@$E~8k6<&0{DT@tFCw325<XnNDe-469&sRZ6ohSWVi)bq$B#TC5|r!uF-x2{z`!U^dg4%>v9rA+vTZ z*PEG~TbPgsxh`PfY9p6p7+8q)c#5l1bxwQ+`8QxAJqX}w)H^o5N)Jagj#OF)<90Jr zKl?X{?c3^aa*M8HY{F(r2CyZjfl}kCQKPb==<4xAkrzeoKJHy;)x3h5S5k8=f{eXY zvxW8faW}2FYE#F7ItRE*;iW5(D*IrkVZoA|5+h`Uyj!Kvc4bWS?F;$qvB$2=2nUz) z+!w_a^;l?c$hbXHn574yV2Dl???k7NKZ+~s(Ba$1-ofS~Lv~&`zQ{*>qY+kC|NSW0 zN9&uUOzy$}$8E4A1q^5nORyH2j2!yhi>WN8&%>FJvGjN%wsClFXA*ZHQj1-Dvg~-8;qjM97fE{Kp6~9B=}gb zAywd9q999$=gBBAWDavt&aOz7a&S!1e2z>6XBB&|ms}4HESCEPdu!Ij}2KIL+#E@1g!!llgcCoN>}o6npA;r5?B(uk^VK9DPKkIREH?$Q-*9}}UnMpo+3YNM)6 zKBbqFPb6#9?3LY5*pA12o3`JN*BnaolEo2;avcozGdB;jr6Qw+{ZZBb!g^M>R|)#cXEN>EV?-HHB~L@6W*<>t9}-9J9yr zGP}1ryD%Y*{+3pFj}uXom(n%le1l?vEoO@T7<)ov+2qilrx9UoFmb*qG0qxt{;56A zw6>hf$@%B@IMd^t5vqc_`14$3WY#y4=@KAC^2(EAE*n&584JyDFlc>=p&iV{s2yN`xq b%}|9d_L;(pRD6kB(ahVB;GcZx!YBU)yyKfB delta 4186 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 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 6859500e0c27a677083909d18bf09bfec4cb6b68..5fe549ac165a3e27650282bb00136412441f28dc 100644 GIT binary patch literal 3503 zcmb7`+ix316vodwzQwVdG&JQ>ZUqWX+9tG6ptKE?q=6JCX_GXifdU(Q<7}|k?e03L zNIZbV14ul8!~;k?fW!lc2au?cc;FAV8{G4p(Ok#yiT;YKUl?v6XvaD)2PN*ww@{hTAY)-AW{$9Ir2<48V=LocYuTNtQ$ zL1YFpn~kHjhvRL+Z8;wGv-SmT2 zXQgy4Y~4a1-E0>wzqy-~-wgd~?6(5spZ5blo_1uQJidk#%(QA)Y`EeF-eSAC;f1T6 zeMT#-s@qs|L!WWCGaYaFkt36pYO6W5+6s5vMr~@<3qv<-qr-1_R{-FJvF}B@A+*TU zy?7qyz@CsV6Lq3=d7cP^80;|*VyM^7p?}fnd#F6FDvZgU31j8`<6OFcC6;<+z~(4K z0ZF@E>GBMx4PhGU)~(MFX7r<+AI){DgnZN~kI`;Ny1dTpF=Q_&#T&y+tsg6{bj!+} zI?aL~UEeJi3Hnh9>sR*Fx`ffaF?E_X<a{8JZ0}N2;C`^uYKK*C4mZP*QtyIH@^L9jS;mWUNXCkCnC5^nyDH2a=m>j}0VmN7?8{GY4o$VmUmUE0|8sxdYi z#Y;qFL{fx9D@8uzfoMD^jR&al*x7h68xL&bL2f+YjR&UjIEV2#it#v&@i>t2I1~I) zai|gO1fnT;2R<|Lr#QcxX~$u+rZX!i&@Of+$Vr(*TXXo>PPD5RFDB1y20CGA3 zgastX8F>NLRwVtKrN|itMC3(zshiwaZZIDYU$h2OXtPL^`kjn`me1-_}io6PImnLU}ET|wC zan4S1zcf%JXM52^6ATB^Q57n(`~Z+26F~U4L6B>zA_r}dpHz@FU6F$}$j<=zB>{xL MM+CWUKC^HA2X7p*xc~qF literal 3285 zcmb7`OK%)S5XY<6`}Ss@$Lon^cf!o9 z1L6P@2as|Ai33O+-~;3kBqAgZd;mTa;$J=cO1tL3rK+pDtLxWQ-97WqzkmHrL@!ah zNHg?dfezCqi!BycS$xD|o5eL2AG7#`#iuN;v$(;+X0gMf$)c4bCr7)AQf^C;T2Yj3 z*&Vy>C`xzj4%AHjroC@hJiFVjG@`)mwigxU{9AU@jlO_ORZ%{S0;k)K_7r7yy`Ela zTTx-(4V!*EEfe}4_vdfho@eiPSU8I{KI@@T^m-k)>xX*1bSv<0p^w#apCrFKbjt4r zZZmTIF8nXJT{l`%G*O=21a8%DVX>*Y+jUlZogF9Gh~v!E{if}0+JVbzJW`$&(}~IPgrntyK9`YGe%a< z4Qp|6;E(d;G1~7)m$%v5g7@aAW)>!lnecD)i^%K7&7vD_4U5C^Mpg-{)yFDZ!sxio zSy|S_&S4~Ou@AQfnPZ=E8{ujXgd4NqS{oh?Mj2UoH$m-Y(c=T!RJH_G|?t7M7 zPtplRXa3JgQ#3ugb!$5}oo0mP5996=O;L)u&`L3y)}YfGfLeo5YhY>(Qmp~2HF&iK znbttp8uVIY16pGbT4Ni~CrNQyAj_~S&YtnSRx9NJbqf#&H9EJe@L z0_20ve^BbK;e1MP=6GlO&P&*NibKsEzfY-A=%VgDO&NsX@Wsx8;oFO^_{s zTulJs*MmW-Vnzxk$TbmUSM}^l1o;*q-z9+Xr;9<}6VJ#Y6XcEnLbNKMkwYfP_W=1J0ffJu46-I> zWXc5jQ3P3+Gcsj@`~;An6F~Um%^>fK8JRXgei1+veIRFK+64I(AipJm@ZSc5H1yYP F<3A@ik469h 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 a6f7bdfa88098cfd58e20cab52f90d4537b41257..7c72dbd9f6197806646497441143c56b856c5c52 100644 GIT binary patch delta 2316 zcmZ`)33Qaz75?5V`TzWRNhXtozyy4| z9r0i?+Oas7i6x_R6!sZSwO{lsE9=8zg$Z`AyWT#^o6^VPIE8}`>d0n79Tc{XO=nW+ za4;7;yC{Mo=?G~UBs?cLsK%m1eFcf7CQJ2I8ZWpkNedQl`dkP2t3%kY5@ z{~-CN59>Alg?}5^sqrEHqfqNWi={f|_s%^n6iMe|siek7Sgi3QoT>3Kb}2O3FS(lR zyUV7SpWsuCPw-#+y|PyGfA~zJ5AWMPV?yzBe4+8B0C2^^8X06Y{*SK|+~Gu2W4EwI zDjf{Pa_cnqC@7dj8A(QS16nCjd$Q?JR4bS8W;~w=rQ)fKR&KHNgn53gJdRyhLMpFg z*Pn@n2)dZms!Rml{&-#hoQ^ZJGL%V4HWjBtmCMGnHW-gG)5c=g(+<0B)i$=wNEkYRg1mD(^AWReRnwQwE4g|HCm04;TbVHy(?EmLb*9@ zOE`}zuyt;^SJ?@xP+?^wxvoeu%fi|_tV_n%bH6B6h$JG(Twf#`%jSZ~P(-0TO1oep z7>(FxR)ibajzTb=kM#B%s!^-4szu`*thaYo%uwU)R{eq6->$0cZtUU10CvCvXOf&n zp2N!ZcspMiRwvkRRL(3ep{AWzs2TyBh?A)8;7wnOlgS-T`7$gg2Q0)XIFYsfT9|L%0mAr12LRv&=xqgK~rsp~>+yxt+n>q+MI!4KxnIH?@SC6YWc@x=uQQ z;!*H&?LZ}Fz=tWQ!Bot~ObEUfI@X|#So-0T5Qq|~{JJpUU=|DpT*n%SwK-W=NmhGO zbvKW>uDbD12{Ve$l?*0fh!WGV+6go4+)d{eR*5Yif~*S6EBQXOw^h%sD51T5qJQEb z#%;12eESv0l`xfpX@i(v!VGc;JKRiiKXABN^)(=k*yT*$I{sH$^ywofdfX%O>DnBU0}=o!12HZFd7 zYWOV~LhN^JgOskMJVbfe$tq(hA1vvYOimqgSVJmY9#aZVAV1a;w97$K2iG3PbsIR% zz&c)Jc2wq`Pl^DuSJyNbr9@@ifs?cEXjOYdS246i9y*yzAI|$HFRBEf(;TLfkuU;2 z-$3Jv&179p*@t4rN5nMtPN^|Gr54UAqBtBWPe*|~;fteqX>B z9-&z{QZtC|`{+DWz$&LaY2M&9n9erHx#W&AxO1oBoW=uJU`&za;43(cVaYIt=5J&8 z{!Es0_yRMn9g(GZL>4y`gUN$5oTHCj6ey#4@7w)$i@(NPB-6^W*|YqOo%_I!=2S_4 h-8k3LpQoBh`E05E)Hv0IG1$bt9L%Q8Ww;zyd<_X~!~OsO delta 1779 zcmZ8h33O9M6um#&{QOSRv|taE17d+AZNbo%MGHcK7U+U3BBd9|S9%?xibkcnG$+@@Ef-N5a*g9Go>aTl}P&6Bk{ z?qPecj{Df&uj2u>59)Y`?K&L~vt6&_5w?%&*ueHN9gh=9Tl<-Qo<5^vGuth!daI6S zd9uyGb9kPI7dYRG0xt=?ylILyOLGufp`Nt0h}9Yj`j_XbfHr8;Y{J0)QO)ZTZ(x@O-x$-3$KugI z^TfJ%gBgmYyYQwDZ;^T1hnU1Wcvs*(iTCk=hA#61tpR`7^p{U6TNJEoj)%=Ai4RdB z(ToKWA7QuZbWPRw;A4qB_(Y8tef7QACsB@FDkl0RKEvk{UvOqyI3y9qe2FiyUxPi= zI8Wj$hQe$P1jF&g5?|vR4LZrIYnm5tkocCj^+-!&(2ST-iSKyd5sI445(jwC5wd8$ zxBTj(;b2PP4?K6)M_Lk`voBbrOfr zDe((_)!=Ro$AV_e()b(pOZ?6WG`GYb*eCF(#9ufpaRj?1f(TK^f@Y(Cni*C7T|L#O zdX5_E-sr$l{H+eUv+ZU0XOr7-YHQqmlsBzawWY1}$XH!`I%nZZs1h0S2pp3*uGuA` zh^Z}dh~`v>;oQFxY>!;g48B++2qxGpcpAb-qX}Eywbo$GaUe$zV(8_6W9488!Kn*z`LHAh# zGaYba7G{%6CAq94GCSGQjc{i7=zy;rC@SCXc6XGVrh_W};kb0Loh*nN&Sj7&t)>oWZlSE!#erA3L&PZYap@9}U zi;&+!g9sILfKFRPXt0Hb5E^QsVT8`M&^d&PEi^nYi4pDa(89SE#mJ3t(^^InqX=z5 zmzt;1HM1m%th_`LqsbzvMb{VR%3N=_ujayH<+o>qr0WK1q7e+-9kBS%t1Wg<0Za;^Uu01dX(B@Y`fI^+e|B2|iOQ zDs)Pe_hgj!L=-p837agThsoa|CZMI^C*+81pRb`u?f;cDoWdzi-Yt>3TRsC(7h;x_ z;;uQhrCjCIIZ}5vhm`dp-F@i+^r33!SZw@8fNoZuxGQlhszu|f7|`ew;h>>AuA({n ME+e0-aSfLL3shKL*8l(j 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 cfdcc704d..e9cf2b356 100644 --- a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv +++ b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv @@ -1,60 +1,56 @@ - "id";"dmg";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"opaque";"drop";"ddmg";"fall";"friction" - "0"; "0";"TILE_AIR" ; "1641"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16" - "1"; "0";"TILE_STONE" ; "8205"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0";"16" - "1"; "1";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "1"; "0";"16" - "2"; "0";"TILE_DIRT" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0";"16" - "2"; "1";"TILE_GRASS" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "1"; "0";"16" - - "3"; "0";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0";"16" - "3"; "1";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "1"; "0";"16" - "3"; "2";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "2"; "0";"16" - "3"; "3";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "3"; "0";"16" - - "4"; "0";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "0"; "0";"16" - "4"; "1";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "1"; "0";"16" - "4"; "2";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "2"; "0";"16" - "4"; "3";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "3"; "0";"16" - - "5"; "0";"TILE_SAND" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "0"; "1";"16" - "5"; "1";"TILE_SAND_WHITE" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "1"; "1";"16" - "5"; "2";"TILE_SAND_RED" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "2"; "1";"16" - "5"; "3";"TILE_SAND" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "3"; "1";"16" - "5"; "4";"TILE_SAND_BLACK" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "4"; "1";"16" - - "6"; "0";"TILE_GRAVEL" ; "8205"; "6"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "0"; "1";"16" - "6"; "1";"TILE_GRAVEL_GREY" ; "8205"; "6"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "1"; "1";"16" - - "7"; "0";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "0"; "0";"16" - "7"; "1";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "1"; "0";"16" - "7"; "2";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "2"; "0";"16" - "7"; "3";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "3"; "0";"16" - "7"; "4";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "4"; "0";"16" - "7"; "5";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "5"; "0";"16" - - "8"; "0";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "0"; "0";"16" - "8"; "1";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "1"; "0";"16" - "8"; "2";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "2"; "0";"16" - "8"; "3";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "3"; "0";"16" - "8"; "4";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "4"; "0";"16" - "8"; "5";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "5"; "0";"16" - - "9"; "0";"TILE_SNOW" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "0"; "0";"16" - "9"; "1";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "0"; "1"; "0"; "0"; "0"; "9"; "1"; "0";"16" - "9"; "2";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "2"; "0"; "8" - "9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "0"; "1"; "1"; "5009"; "0"; "9"; "3"; "0"; "8" - - "10"; "0";"TILE_PLATFORM_STONE" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16" - "10"; "1";"TILE_PLATFORM_WOODEN" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16" - "10"; "2";"TILE_PLATFORM_EBONY" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16" - "10"; "3";"TILE_PLATFORM_BIRCH" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16" - "10"; "4";"TILE_PLATFORM_BLOODROSE" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16" - - "11"; "0";"TILE_TORCH" ; "0"; "0"; "0"; "0"; "0"; "0"; "63412"; "0"; "11"; "0"; "0";"16" -# 63412 (ffa44e) : real candlelight colour taken from properly configured camera. -"254"; "15";"TILE_WATER" ; "6522"; "100"; "1"; "16"; "0"; "0"; "0"; "0"; "-1"; "-1"; "0";"16" -"255"; "15";"TILE_LAVA" ; "62358"; "100"; "1"; "16"; "0"; "0"; "48320"; "0"; "-1"; "-1"; "0";"16" + "id";"dmg";"name" ;"opacity";"strength";"spcg";"fluid";"movr";"solid";"wall";"lumcolor";"opaque";"drop";"ddmg";"fall";"friction" + "0"; "0";"TILE_AIR" ; "1641"; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16" + "1"; "0";"TILE_STONE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0";"16" + "1"; "1";"TILE_STONE_QUARRIED" ; "8205"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "1"; "0";"16" + "2"; "0";"TILE_DIRT" ; "8205"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0";"16" + "2"; "1";"TILE_GRASS" ; "8205"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "1"; "0";"16" + "3"; "0";"TILE_PLANK_NORMAL" ; "8205"; "12"; "740"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0";"16" + "3"; "1";"TILE_PLANK_EBONY" ; "8205"; "12";"1200"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "1"; "0";"16" + "3"; "2";"TILE_PLANK_BIRCH" ; "8205"; "12"; "670"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "2"; "0";"16" + "3"; "3";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "900"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "3"; "0";"16" + "4"; "0";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "740"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "0"; "0";"16" + "4"; "1";"TILE_TRUNK_EBONY" ; "8205"; "12";"1200"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "1"; "0";"16" + "4"; "2";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "670"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "2"; "0";"16" + "4"; "3";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "900"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "3"; "0";"16" + "5"; "0";"TILE_SAND" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "0"; "1";"16" + "5"; "1";"TILE_SAND_WHITE" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "1"; "1";"16" + "5"; "2";"TILE_SAND_RED" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "2"; "1";"16" + "5"; "3";"TILE_SAND" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "3"; "1";"16" + "5"; "4";"TILE_SAND_BLACK" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "4"; "1";"16" + "6"; "0";"TILE_GRAVEL" ; "8205"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "0"; "1";"16" + "6"; "1";"TILE_GRAVEL_GREY" ; "8205"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "1"; "1";"16" + "7"; "0";"TILE_ORE_MALACHITE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "0"; "0";"16" + "7"; "1";"TILE_ORE_HEMATITE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "1"; "0";"16" + "7"; "2";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "2"; "0";"16" + "7"; "3";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "3"; "0";"16" + "7"; "4";"TILE_ORE_RUTILE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "4"; "0";"16" + "7"; "5";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "5"; "0";"16" + "8"; "0";"TILE_GEM_RUBY" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "0"; "0";"16" + "8"; "1";"TILE_GEM_EMERALD" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "1"; "0";"16" + "8"; "2";"TILE_GEM_SAPPHIRE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "2"; "0";"16" + "8"; "3";"TILE_GEM_TOPAZ" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "3"; "0";"16" + "8"; "4";"TILE_GEM_DIAMOND" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "4"; "0";"16" + "8"; "5";"TILE_GEM_AMETHYST" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "5"; "0";"16" + "9"; "0";"TILE_SNOW" ; "8205"; "6"; "500"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "0"; "0";"16" + "9"; "1";"TILE_ICE_FRAGILE" ; "3282"; "1"; "930"; "0"; "0"; "1"; "0"; "0"; "0"; "9"; "1"; "0";"16" + "9"; "2";"TILE_ICE_NATURAL" ; "6564"; "25"; "930"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "2"; "0"; "8" + "9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25";"2785"; "0"; "0"; "1"; "1"; "5009"; "0"; "9"; "3"; "0"; "8" + "10"; "0";"TILE_PLATFORM_STONE" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16" + "10"; "1";"TILE_PLATFORM_WOODEN" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16" + "10"; "2";"TILE_PLATFORM_EBONY" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16" + "10"; "3";"TILE_PLATFORM_BIRCH" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16" + "10"; "4";"TILE_PLATFORM_BLOODROSE" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16" + "11"; "0";"TILE_TORCH" ; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "63412"; "0"; "11"; "0"; "0";"16" +"254"; "15";"TILE_WATER" ; "6522"; "100";"1000"; "1"; "16"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16" +"255"; "15";"TILE_LAVA" ; "62358"; "100";"2600"; "1"; "48"; "0"; "0"; "48320"; "0"; "N/A"; "N/A"; "0";"16" # Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky # Opacity/Lumcolor: 40-step RGB # Opaque: whether the tile completely hides wall behind -# Solid: whether the tile has collision -# Viscosity: (walkspeedmax) * (1 + (n/16)) \ No newline at end of file +# Solid: whether the tile has full collision +# movr: Movement resistance, (walkspeedmax) / (1 + (n/16)), 16 halves movement speed +# spcg: specific gravity, aka density. [g/l] +# Defalut torch should have a colour of 63412 (ffa44e) : real candlelight colour taken from properly configured camera. +# Assume magical ice as Ice-X. +# References: +# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html +# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html \ No newline at end of file diff --git a/src/com/Torvald/Terrarum/Actors/ActorWithBody.java b/src/com/Torvald/Terrarum/Actors/ActorWithBody.java index 4d3c0ed17..822905eba 100644 --- a/src/com/Torvald/Terrarum/Actors/ActorWithBody.java +++ b/src/com/Torvald/Terrarum/Actors/ActorWithBody.java @@ -2,6 +2,7 @@ package com.Torvald.Terrarum.Actors; import com.Torvald.Rand.HQRNG; import com.Torvald.Terrarum.*; +import com.Torvald.Terrarum.GameMap.GameMap; import com.Torvald.Terrarum.MapDrawer.MapDrawer; import com.Torvald.Terrarum.TileProperties.TilePropCodex; import com.Torvald.spriteAnimation.SpriteAnimation; @@ -47,6 +48,7 @@ public class ActorWithBody implements Actor, Visible, Glowing { private boolean noSubjectToGrav = false; private boolean noCollideWorld = false; + private boolean noSubjectToFluidResistance = false; int baseSpriteWidth, baseSpriteHeight; @@ -58,15 +60,13 @@ public class ActorWithBody implements Actor, Visible, Glowing { /** * Physical properties */ - @NonZero - private volatile float scale = 1; + @NonZero private volatile float scale = 1; @NonZero private volatile float mass = 2f; private final float MASS_LOWEST = 2f; /** Valid range: [0, 1] */ private float elasticity = 0; private final float ELASTICITY_MAX = 0.993f; - @NoNegative - private float buoyancy = 0; + @NoNegative private float density = 1000; private static final int TSIZE = MapDrawer.TILE_SIZE; private static int AUTO_CLIMB_RATE = TSIZE / 8; @@ -119,12 +119,15 @@ public class ActorWithBody implements Actor, Visible, Glowing { */ public final int INVINCIBILITY_TIME = 500; + private GameMap map; + /** * Give new random ReferenceID and initialise ActorValue */ public ActorWithBody() { referenceID = new HQRNG().nextLong(); actorValue = new ActorValue(); + map = Terrarum.game.map; } /** @@ -176,6 +179,7 @@ public class ActorWithBody implements Actor, Visible, Glowing { if (this instanceof Player) { noSubjectToGrav = isPlayerNoClip(); noCollideWorld = isPlayerNoClip(); + noSubjectToFluidResistance = isPlayerNoClip(); } if (mass < MASS_LOWEST) mass = MASS_LOWEST; // clamp to minimum possible mass @@ -183,16 +187,24 @@ public class ActorWithBody implements Actor, Visible, Glowing { baseSpriteHeight = sprite.getHeight(); baseSpriteWidth = sprite.getWidth(); } - gravitation = Terrarum.game.map.getGravitation(); + gravitation = map.getGravitation(); AUTO_CLIMB_RATE = (int) Math.min(TSIZE / 8 * FastMath.sqrt(scale), TSIZE); if (!isNoSubjectToGrav()) { applyGravitation(); + applyBuoyancy(); } // hard limit velocity if (veloX > VELO_HARD_LIMIT) veloX = VELO_HARD_LIMIT; if (veloY > VELO_HARD_LIMIT) veloY = VELO_HARD_LIMIT; + // limit velocity by fluid resistance + //int tilePropResistance = getTileMvmtRstc(); + //if (!noSubjectToFluidResistance) { + // veloX *= mvmtRstcToMultiplier(tilePropResistance); + // veloY *= mvmtRstcToMultiplier(tilePropResistance); + //} + // Set 'next' positions to fiddle with updateNextHitboxFromVelo(); @@ -207,6 +219,8 @@ public class ActorWithBody implements Actor, Visible, Glowing { updateHorizontalPos(); updateVerticalPos(); } + + updateHitboxX(); updateHitboxY(); @@ -237,7 +251,11 @@ public class ActorWithBody implements Actor, Visible, Glowing { float A = scale * scale; float D = DRAG_COEFF * 0.5f * 1.292f * veloY * veloY * A; - veloY += clampCeil(((W - D) / mass) * SI_TO_GAME_ACC * G_MUL_PLAYABLE_CONST + int fluidResistance = getTileMvmtRstc(); + + veloY += clampCeil( + ((W - D) / mass) * SI_TO_GAME_ACC * G_MUL_PLAYABLE_CONST + * mvmtRstcToMultiplier(fluidResistance) // eliminate shoot-up from fluids , VELO_HARD_LIMIT ); } @@ -453,7 +471,7 @@ public class ActorWithBody implements Actor, Visible, Glowing { } // evaluate - if (TilePropCodex.getProp(Terrarum.game.map.getTileFromTerrain(tileX, tileY)).isSolid()) { + if (TilePropCodex.getProp(map.getTileFromTerrain(tileX, tileY)).isSolid()) { contactAreaCounter += 1; } } @@ -461,6 +479,146 @@ public class ActorWithBody implements Actor, Visible, Glowing { return contactAreaCounter; } + /** + * [N] = [kg * m / s^2] + * F(bo) = density * submerged_volume * gravitational_acceleration [N] + */ + private void applyBuoyancy() { + int fluidDensity = getTileDensity(); + int fluidResistance = getTileMvmtRstc(); + float submergedVolume = getSubmergedVolume(); + + if (!isPlayerNoClip() && !grounded) { + // System.out.println("density: "+density); + veloY -= ((fluidDensity - this.density) + * map.getGravitation() * submergedVolume + * Math.pow(mass, -1) + * mvmtRstcToMultiplier(fluidResistance) // eliminate shoot-up + * SI_TO_GAME_ACC); + } + } + + private float getSubmergedVolume(){ + float GAME_TO_SI_VOL = FastMath.pow((1f/METER), 3); + + if( density > 0 ){ + return FastMath.clamp( + (nextHitbox.getPointedY() - getFluidLevel()) // submerged height + * nextHitbox.getWidth() * nextHitbox.getWidth() + * GAME_TO_SI_VOL + , 0 + , nextHitbox.getHeight() + * nextHitbox.getWidth() * nextHitbox.getWidth() + * GAME_TO_SI_VOL + ); + //System.out.println("fluidHeight: "+fluidHeight+", submerged: "+submergedVolume); + //submergedHeight / TILE_SIZE * 1^2 (pixel to meter) + } + else{ + return 0; + } + } + + private int getFluidLevel(){ + int tilePosXStart = Math.round(nextHitbox.getPosX() / TSIZE); + int tilePosXEnd = Math.round(nextHitbox.getHitboxEnd().getX() / TSIZE); + int tilePosY = Math.round(nextHitbox.getPosY() / TSIZE); + + int fluidHeight = 2147483647; + + for (int x = tilePosXStart; x <= tilePosXEnd; x++) { + int tile = map.getTileFromTerrain(x, tilePosY); + if ( TilePropCodex.getProp(tile).isFluid() + && tilePosY * TSIZE < fluidHeight ){ + fluidHeight = tilePosY * TSIZE; + } + } + + return fluidHeight; + } + + /** + * Get highest friction value from feet tiles. + * @return + */ + private int getTileFriction(){ + int friction = 0; + + int tilePosXStart = Math.round(nextHitbox.getPosX() / TSIZE); + int tilePosXEnd = Math.round(nextHitbox.getHitboxEnd().getX() / TSIZE); + int tilePosY = Math.round(nextHitbox.getPointedY() / TSIZE); + + //get density + for (int x = tilePosXStart; x <= tilePosXEnd; x++) { + int tile = map.getTileFromTerrain(x, tilePosY); + if (TilePropCodex.getProp(tile).isFluid()) { + int thisFluidDensity = TilePropCodex.getProp(tile).getFriction(); + + if (thisFluidDensity > friction) friction = thisFluidDensity; + } + } + + return friction; + } + + /** + * Get highest movement resistance value from tiles that the body occupies. + * @return + */ + private int getTileMvmtRstc(){ + int resistance = 0; + + int tilePosXStart = Math.round(nextHitbox.getPosX() / TSIZE); + int tilePosYStart = Math.round(nextHitbox.getPosY() / TSIZE); + int tilePosXEnd = Math.round(nextHitbox.getHitboxEnd().getX() / TSIZE); + int tilePosYEnd = Math.round(nextHitbox.getHitboxEnd().getY() / TSIZE); + + //get density + for (int y = tilePosYStart; y <= tilePosYEnd; y++) { + for (int x = tilePosXStart; x <= tilePosXEnd; x++) { + int tile = map.getTileFromTerrain(x, y); + if (TilePropCodex.getProp(tile).isFluid()) { + int thisFluidDensity = TilePropCodex.getProp(tile).getMovementResistance(); + + if (thisFluidDensity > resistance) resistance = thisFluidDensity; + } + } + } + + return resistance; + } + + /** + * Get highest density (specific gravity) value from tiles that the body occupies. + * @return + */ + private int getTileDensity() { + int density = 0; + + int tilePosXStart = Math.round(nextHitbox.getPosX() / TSIZE); + int tilePosYStart = Math.round(nextHitbox.getPosY() / TSIZE); + int tilePosXEnd = Math.round(nextHitbox.getHitboxEnd().getX() / TSIZE); + int tilePosYEnd = Math.round(nextHitbox.getHitboxEnd().getY() / TSIZE); + + //get density + for (int y = tilePosYStart; y <= tilePosYEnd; y++) { + for (int x = tilePosXStart; x <= tilePosXEnd; x++) { + int tile = map.getTileFromTerrain(x, y); + if (TilePropCodex.getProp(tile).isFluid()) { + int thisFluidDensity = TilePropCodex.getProp(tile).getDensity(); + + if (thisFluidDensity > density) density = thisFluidDensity; + } + } + } + + return density; + } + + private float mvmtRstcToMultiplier(int viscosity) { + return 1f / (1 + (viscosity / 16f)); + } + private void clampHitbox() { hitbox.setPositionFromPoint( clampW(hitbox.getPointedX()) @@ -575,8 +733,8 @@ public class ActorWithBody implements Actor, Visible, Glowing { if (x < TSIZE + nextHitbox.getWidth() / 2) { return TSIZE + nextHitbox.getWidth() / 2; } - else if (x >= Terrarum.game.map.width * TSIZE - TSIZE - nextHitbox.getWidth() / 2) { - return Terrarum.game.map.width * TSIZE - 1 - TSIZE - nextHitbox.getWidth() / 2; + else if (x >= map.width * TSIZE - TSIZE - nextHitbox.getWidth() / 2) { + return map.width * TSIZE - 1 - TSIZE - nextHitbox.getWidth() / 2; } else { return x; @@ -587,8 +745,8 @@ public class ActorWithBody implements Actor, Visible, Glowing { if (y < TSIZE + nextHitbox.getHeight()) { return TSIZE + nextHitbox.getHeight(); } - else if (y >= Terrarum.game.map.height * TSIZE - TSIZE - nextHitbox.getHeight()) { - return Terrarum.game.map.height * TSIZE - 1 - TSIZE - nextHitbox.getHeight(); + else if (y >= map.height * TSIZE - TSIZE - nextHitbox.getHeight()) { + return map.height * TSIZE - 1 - TSIZE - nextHitbox.getHeight(); } else { return y; @@ -599,8 +757,8 @@ public class ActorWithBody implements Actor, Visible, Glowing { if (x < 0) { return 0; } - else if (x >= Terrarum.game.map.width) { - return Terrarum.game.map.width - 1; + else if (x >= map.width) { + return map.width - 1; } else { return x; @@ -611,8 +769,8 @@ public class ActorWithBody implements Actor, Visible, Glowing { if (x < 0) { return 0; } - else if (x >= Terrarum.game.map.height) { - return Terrarum.game.map.height - 1; + else if (x >= map.height) { + return map.height - 1; } else { return x; @@ -747,10 +905,18 @@ public class ActorWithBody implements Actor, Visible, Glowing { return noCollideWorld; } + public boolean isNoSubjectToFluidResistance() { + return noSubjectToFluidResistance; + } + public void setNoCollideWorld(boolean noCollideWorld) { this.noCollideWorld = noCollideWorld; } + public void setNoSubjectToFluidResistance(boolean noSubjectToFluidResistance) { + this.noSubjectToFluidResistance = noSubjectToFluidResistance; + } + public void setElasticity(float elasticity) { if (elasticity < 0) throw new IllegalArgumentException("[ActorWithBody] " + elasticity + ": valid elasticity value is [0, 1]."); @@ -762,11 +928,11 @@ public class ActorWithBody implements Actor, Visible, Glowing { else this.elasticity = elasticity * ELASTICITY_MAX; } - public void setBuoyancy(float buoyancy) { - if (buoyancy < 0) - throw new IllegalArgumentException("[ActorWithBody] " + buoyancy + ": buoyancy cannot be negative."); + public void setDensity(int density) { + if (density < 0) + throw new IllegalArgumentException("[ActorWithBody] " + density + ": density cannot be negative."); - this.buoyancy = buoyancy; + this.density = density; } } diff --git a/src/com/Torvald/Terrarum/Actors/ItemProperties/Material.java b/src/com/Torvald/Terrarum/Actors/ItemProperties/Material.java new file mode 100644 index 000000000..9c74cf3ea --- /dev/null +++ b/src/com/Torvald/Terrarum/Actors/ItemProperties/Material.java @@ -0,0 +1,41 @@ +package com.Torvald.Terrarum.Actors.ItemProperties; + +/** + * Created by minjaesong on 16-03-06. + */ +public class Material { + + /** How sharp the material is. Default to 1000.*/ + int maxEdge; + /** Self-explanatory. [kPa in Vickers hardness]*/ + int hardness; + /** Self-explanatory. [g/l]*/ + int density; + + public Material() { + } + + public int getMaxEdge() { + return maxEdge; + } + + void setMaxEdge(int maxEdge) { + this.maxEdge = maxEdge; + } + + public int getHardness() { + return hardness; + } + + void setHardness(int hardness) { + this.hardness = hardness; + } + + public int getDensity() { + return density; + } + + void setDensity(int density) { + this.density = density; + } +} diff --git a/src/com/Torvald/Terrarum/Actors/ItemProperties/MaterialFactory.java b/src/com/Torvald/Terrarum/Actors/ItemProperties/MaterialFactory.java new file mode 100644 index 000000000..1eb09d4d7 --- /dev/null +++ b/src/com/Torvald/Terrarum/Actors/ItemProperties/MaterialFactory.java @@ -0,0 +1,12 @@ +package com.Torvald.Terrarum.Actors.ItemProperties; + +/** + * Created by minjaesong on 16-03-06. + */ +public class MaterialFactory { + + /** + * Load from CSV + */ + +} diff --git a/src/com/Torvald/Terrarum/Actors/Player.java b/src/com/Torvald/Terrarum/Actors/Player.java index b27f7bfc7..5a1ad88b1 100644 --- a/src/com/Torvald/Terrarum/Actors/Player.java +++ b/src/com/Torvald/Terrarum/Actors/Player.java @@ -1,6 +1,5 @@ package com.Torvald.Terrarum.Actors; -import com.Torvald.Rand.Fudge3; import com.Torvald.Terrarum.Actors.Faction.Faction; import com.Torvald.Terrarum.GameControl.EnumKeyFunc; import com.Torvald.Terrarum.GameControl.KeyMap; @@ -61,7 +60,7 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Fac private HashSet factionSet = new HashSet<>(); - private final float BASE_BUOYANCY = 0.98f; + private final int BASE_DENSITY = 1020; /** @@ -75,7 +74,7 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Fac super(); referenceID = PLAYER_REF_ID; setVisible(true); - super.setBuoyancy(BASE_BUOYANCY); + super.setDensity(BASE_DENSITY); } @Override diff --git a/src/com/Torvald/Terrarum/MECHNANICS b/src/com/Torvald/Terrarum/MECHNANICS index 29f9f4fbf..87969412c 100644 --- a/src/com/Torvald/Terrarum/MECHNANICS +++ b/src/com/Torvald/Terrarum/MECHNANICS @@ -93,4 +93,10 @@ == Custom pattern making == - Players can create their own décors (hang on wall), dresses. - - Two looms (216 colour mode, 4096 colour mode) \ No newline at end of file + - Two looms (216 colour mode, 4096 colour mode) + + +== Food/Potion dose == + + Scale ^ 3 ^ (3/4) + = (ThisWgt / TargetWgt) ^ (3/4) diff --git a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java index 582a3336d..5e5c6dae3 100644 --- a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java +++ b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java @@ -81,11 +81,9 @@ public class MapCamera { * will blend colour using colour multiplication * i.e. red hues get lost if you dive into the water */ - private static Byte[] TILES_BLEND_MUL = { - (byte)224, (byte)225, (byte)226, (byte)227, (byte)228, (byte)229, (byte)230, (byte)231 - , (byte)232, (byte)233, (byte)234, (byte)235, (byte)236, (byte)237, (byte)238, (byte)239 - , (byte)240, (byte)241, (byte)242, (byte)243, (byte)244, (byte)245, (byte)246, (byte)247 - , (byte)248, (byte)249, (byte)250, (byte)251, (byte)252, (byte)253, (byte)254, (byte)255 + private static Integer[] TILES_BLEND_MUL = { + TileNameCode.WATER + , TileNameCode.LAVA }; /** @@ -225,7 +223,9 @@ public class MapCamera { // on top of the previously drawn tile // TODO check wether it works as intended when skybox is dark // add instruction "if (!isBlendMul((byte) thisTile))" - drawTile(mode, x, y, thisTileX, thisTileY); + if (!isBlendMul(thisTile)) { + drawTile(mode, x, y, thisTileX, thisTileY); + } } } } diff --git a/src/com/Torvald/Terrarum/TileProperties/TileProp.java b/src/com/Torvald/Terrarum/TileProperties/TileProp.java index 44d6b521a..6d4476568 100644 --- a/src/com/Torvald/Terrarum/TileProperties/TileProp.java +++ b/src/com/Torvald/Terrarum/TileProperties/TileProp.java @@ -13,8 +13,10 @@ public class TileProp { private int strength; + private int density; + private boolean fluid; - private int viscocity; + private int movementResistance; private boolean solid; // transparent or not @@ -79,12 +81,12 @@ public class TileProp { this.fluid = fluid; } - public int getViscocity() { - return viscocity; + public int getMovementResistance() { + return movementResistance; } - void setViscocity(int viscocity) { - this.viscocity = viscocity; + void setMovementResistance(int movementResistance) { + this.movementResistance = movementResistance; } public boolean isSolid() { @@ -158,4 +160,12 @@ public class TileProp { public void setOpaque(boolean opaque) { this.opaque = opaque; } + + public int getDensity() { + return density; + } + + public void setDensity(int density) { + this.density = density; + } } diff --git a/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java b/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java index b2fe47d9a..d42335797 100644 --- a/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java +++ b/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java @@ -75,6 +75,7 @@ public class TilePropCodex { prop.setOpacity((char) intVal(record, "opacity")); prop.setStrength(intVal(record, "strength")); + prop.setDensity(intVal(record, "spcg")); prop.setLuminosity((char) intVal(record, "lumcolor")); prop.setDrop(intVal(record, "drop")); prop.setDropDamage(intVal(record, "ddmg")); @@ -86,14 +87,17 @@ public class TilePropCodex { prop.setFallable(boolVal(record, "fall")); prop.setOpaque(boolVal(record, "opaque")); - if (prop.isFluid()) prop.setViscocity(intVal(record, "viscosity")); + if (prop.isFluid()) prop.setMovementResistance(intVal(record, "movr")); - System.out.print(prop.getId()); + System.out.print(formatNum3(prop.getId()) + ":" + formatNum2(prop.getDamage())); System.out.println("\t" + prop.getName()); } private static int intVal(CSVRecord rec, String s) { - return Integer.decode(rec.get(s)); + int ret = -1; + try { ret = Integer.decode(rec.get(s)); } + catch (NullPointerException e) {} + return ret; } private static boolean boolVal(CSVRecord rec, String s) { @@ -103,4 +107,15 @@ public class TilePropCodex { public static int indexDamageToArrayAddr(int index, int damage) { return (index * (PairedMapLayer.RANGE) + damage); } + + private static String formatNum3(int i) { + if (i < 10) return "00" + i; + else if (i < 100) return "0" + i; + else return String.valueOf(i); + } + + private static String formatNum2(int i) { + if (i < 10) return "0" + i; + else return String.valueOf(i); + } } diff --git a/src/com/Torvald/Terrarum/TileProperties/propdata.csv b/src/com/Torvald/Terrarum/TileProperties/propdata.csv index cfdcc704d..e9cf2b356 100644 --- a/src/com/Torvald/Terrarum/TileProperties/propdata.csv +++ b/src/com/Torvald/Terrarum/TileProperties/propdata.csv @@ -1,60 +1,56 @@ - "id";"dmg";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"opaque";"drop";"ddmg";"fall";"friction" - "0"; "0";"TILE_AIR" ; "1641"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16" - "1"; "0";"TILE_STONE" ; "8205"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0";"16" - "1"; "1";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "1"; "0";"16" - "2"; "0";"TILE_DIRT" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0";"16" - "2"; "1";"TILE_GRASS" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "1"; "0";"16" - - "3"; "0";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0";"16" - "3"; "1";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "1"; "0";"16" - "3"; "2";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "2"; "0";"16" - "3"; "3";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "3"; "0";"16" - - "4"; "0";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "0"; "0";"16" - "4"; "1";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "1"; "0";"16" - "4"; "2";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "2"; "0";"16" - "4"; "3";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "3"; "0";"16" - - "5"; "0";"TILE_SAND" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "0"; "1";"16" - "5"; "1";"TILE_SAND_WHITE" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "1"; "1";"16" - "5"; "2";"TILE_SAND_RED" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "2"; "1";"16" - "5"; "3";"TILE_SAND" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "3"; "1";"16" - "5"; "4";"TILE_SAND_BLACK" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "4"; "1";"16" - - "6"; "0";"TILE_GRAVEL" ; "8205"; "6"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "0"; "1";"16" - "6"; "1";"TILE_GRAVEL_GREY" ; "8205"; "6"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "1"; "1";"16" - - "7"; "0";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "0"; "0";"16" - "7"; "1";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "1"; "0";"16" - "7"; "2";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "2"; "0";"16" - "7"; "3";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "3"; "0";"16" - "7"; "4";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "4"; "0";"16" - "7"; "5";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "5"; "0";"16" - - "8"; "0";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "0"; "0";"16" - "8"; "1";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "1"; "0";"16" - "8"; "2";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "2"; "0";"16" - "8"; "3";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "3"; "0";"16" - "8"; "4";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "4"; "0";"16" - "8"; "5";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "5"; "0";"16" - - "9"; "0";"TILE_SNOW" ; "8205"; "6"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "0"; "0";"16" - "9"; "1";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "0"; "1"; "0"; "0"; "0"; "9"; "1"; "0";"16" - "9"; "2";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "2"; "0"; "8" - "9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "0"; "1"; "1"; "5009"; "0"; "9"; "3"; "0"; "8" - - "10"; "0";"TILE_PLATFORM_STONE" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16" - "10"; "1";"TILE_PLATFORM_WOODEN" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16" - "10"; "2";"TILE_PLATFORM_EBONY" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16" - "10"; "3";"TILE_PLATFORM_BIRCH" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16" - "10"; "4";"TILE_PLATFORM_BLOODROSE" ; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16" - - "11"; "0";"TILE_TORCH" ; "0"; "0"; "0"; "0"; "0"; "0"; "63412"; "0"; "11"; "0"; "0";"16" -# 63412 (ffa44e) : real candlelight colour taken from properly configured camera. -"254"; "15";"TILE_WATER" ; "6522"; "100"; "1"; "16"; "0"; "0"; "0"; "0"; "-1"; "-1"; "0";"16" -"255"; "15";"TILE_LAVA" ; "62358"; "100"; "1"; "16"; "0"; "0"; "48320"; "0"; "-1"; "-1"; "0";"16" + "id";"dmg";"name" ;"opacity";"strength";"spcg";"fluid";"movr";"solid";"wall";"lumcolor";"opaque";"drop";"ddmg";"fall";"friction" + "0"; "0";"TILE_AIR" ; "1641"; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16" + "1"; "0";"TILE_STONE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0";"16" + "1"; "1";"TILE_STONE_QUARRIED" ; "8205"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "1"; "0";"16" + "2"; "0";"TILE_DIRT" ; "8205"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0";"16" + "2"; "1";"TILE_GRASS" ; "8205"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "1"; "2"; "1"; "0";"16" + "3"; "0";"TILE_PLANK_NORMAL" ; "8205"; "12"; "740"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0";"16" + "3"; "1";"TILE_PLANK_EBONY" ; "8205"; "12";"1200"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "1"; "0";"16" + "3"; "2";"TILE_PLANK_BIRCH" ; "8205"; "12"; "670"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "2"; "0";"16" + "3"; "3";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "900"; "0"; "0"; "1"; "1"; "0"; "1"; "3"; "3"; "0";"16" + "4"; "0";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "740"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "0"; "0";"16" + "4"; "1";"TILE_TRUNK_EBONY" ; "8205"; "12";"1200"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "1"; "0";"16" + "4"; "2";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "670"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "2"; "0";"16" + "4"; "3";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "900"; "0"; "0"; "1"; "0"; "0"; "1"; "3"; "3"; "0";"16" + "5"; "0";"TILE_SAND" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "0"; "1";"16" + "5"; "1";"TILE_SAND_WHITE" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "1"; "1";"16" + "5"; "2";"TILE_SAND_RED" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "2"; "1";"16" + "5"; "3";"TILE_SAND" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "3"; "1";"16" + "5"; "4";"TILE_SAND_BLACK" ; "8205"; "6";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "5"; "4"; "1";"16" + "6"; "0";"TILE_GRAVEL" ; "8205"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "0"; "1";"16" + "6"; "1";"TILE_GRAVEL_GREY" ; "8205"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "6"; "1"; "1";"16" + "7"; "0";"TILE_ORE_MALACHITE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "0"; "0";"16" + "7"; "1";"TILE_ORE_HEMATITE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "1"; "0";"16" + "7"; "2";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "2"; "0";"16" + "7"; "3";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "3"; "0";"16" + "7"; "4";"TILE_ORE_RUTILE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "4"; "0";"16" + "7"; "5";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "7"; "5"; "0";"16" + "8"; "0";"TILE_GEM_RUBY" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "0"; "0";"16" + "8"; "1";"TILE_GEM_EMERALD" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "1"; "0";"16" + "8"; "2";"TILE_GEM_SAPPHIRE" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "2"; "0";"16" + "8"; "3";"TILE_GEM_TOPAZ" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "3"; "0";"16" + "8"; "4";"TILE_GEM_DIAMOND" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "4"; "0";"16" + "8"; "5";"TILE_GEM_AMETHYST" ; "8205"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "1"; "8"; "5"; "0";"16" + "9"; "0";"TILE_SNOW" ; "8205"; "6"; "500"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "0"; "0";"16" + "9"; "1";"TILE_ICE_FRAGILE" ; "3282"; "1"; "930"; "0"; "0"; "1"; "0"; "0"; "0"; "9"; "1"; "0";"16" + "9"; "2";"TILE_ICE_NATURAL" ; "6564"; "25"; "930"; "0"; "0"; "1"; "1"; "0"; "1"; "9"; "2"; "0"; "8" + "9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25";"2785"; "0"; "0"; "1"; "1"; "5009"; "0"; "9"; "3"; "0"; "8" + "10"; "0";"TILE_PLATFORM_STONE" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16" + "10"; "1";"TILE_PLATFORM_WOODEN" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16" + "10"; "2";"TILE_PLATFORM_EBONY" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16" + "10"; "3";"TILE_PLATFORM_BIRCH" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16" + "10"; "4";"TILE_PLATFORM_BLOODROSE" ; "0"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16" + "11"; "0";"TILE_TORCH" ; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "63412"; "0"; "11"; "0"; "0";"16" +"254"; "15";"TILE_WATER" ; "6522"; "100";"1000"; "1"; "16"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16" +"255"; "15";"TILE_LAVA" ; "62358"; "100";"2600"; "1"; "48"; "0"; "0"; "48320"; "0"; "N/A"; "N/A"; "0";"16" # Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky # Opacity/Lumcolor: 40-step RGB # Opaque: whether the tile completely hides wall behind -# Solid: whether the tile has collision -# Viscosity: (walkspeedmax) * (1 + (n/16)) \ No newline at end of file +# Solid: whether the tile has full collision +# movr: Movement resistance, (walkspeedmax) / (1 + (n/16)), 16 halves movement speed +# spcg: specific gravity, aka density. [g/l] +# Defalut torch should have a colour of 63412 (ffa44e) : real candlelight colour taken from properly configured camera. +# Assume magical ice as Ice-X. +# References: +# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html +# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html \ No newline at end of file