From 65efbe33dac39d5b3c1213b736711859c22d0cbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Thu, 1 May 2014 16:09:19 +0200 Subject: [PATCH] prettier rat tail --- res/img/dudes-b.png | Bin 875 -> 0 bytes res/img/dudes.png | Bin 835 -> 1529 bytes res/img/dudes.xcf | Bin 8601 -> 9195 bytes src/mightypork/rogue/Res.java | 3 ++- src/mightypork/rogue/world/entity/Entity.java | 4 +++- .../world/entity/entities/PlayerEntity.java | 6 ++++++ .../world/entity/entities/RatEntity.java | 2 +- .../entity/renderers/EntityRendererMobLR.java | 2 +- .../rogue/world/gen/LevelGenerator.java | 2 +- .../world/level/render/MapRenderContext.java | 5 +++++ 10 files changed, 19 insertions(+), 5 deletions(-) delete mode 100644 res/img/dudes-b.png diff --git a/res/img/dudes-b.png b/res/img/dudes-b.png deleted file mode 100644 index bba1327bfb4b07a0fa35d7ff5118fff02ce90605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqitVW|ZuZHtFM& z?QwQ5za)BSL3fUxknjx7=ETAh1>Yz70h3=RDD2uM;56|{0(Zvj6ORM>WBOnBZ=RsM z^Sk!WnA@*E*XZ4U@BBVPw{`RGJ#j(x-~R52S*<#=FmsFET;DD7`TM6EKd>o$u72!B zsK|w^t=}JqzC6FAQ-`H}p&Jux$@0s=QCcZe z=SPQaz8SLl=9TvIsh*dD6s<2TxhGTS-MVHOP=4mw9kH_n%IlOO53*JGXYF>c+V|_J z6QgQo-CChN({8oSd3?`XzRV}?w(YBoF7=c@r6>Hq_%4V&VY#m4#@F>H;t#}S+1F=V znF?ARtJk^lXU6B9EI+!R=eeZ+Eu+epZW0_|1V4uiyD?* z^}Rl6$*aWgYHRa$of9?v5cFyC9tOR&4U3f*Kkxs}Ussy*|Jeqob^E8!lArc^_Tfjr z?mzEdkZ{q7>&E2zKd*b=pW7Wi`R(l8z5mpon0~PT?EP;~y1xHhasTu?ai2FbFtOGI zuPGG?n51O#!HHQ#)415`#m|<${!I-{m4V_4^BEL*yDuEL@O^*mwSdQqpRs>l)aU<) zi9^gFi@Evzee2Bk^Y2WIzVq_G^O+4l5AIp*BY8|@c4(OvTom`JG&9#sA2_L-8Sm?n2%3CL_uS3j3^P6?6#gX=cd(_44x%lp+I21(lx_vlZX79!Dv3H9qKKeHqQ<7JQS@|Et*h>i z#u?1U*_QNFqQy2O&a%xUqzU%tkJvZwy>I6GX5M@A=FPk9<>7`ACy@c?gm3~mJWM}1njEF?=8pBcn5m)(0C0jk`VXHJ&N|04YQ|4T zZnLGhxlnfPQT_{OChU;0-cuBYj^JBTMhVJQTvL(Z!qlU;rm&W0f58`#1`Ar({nMts zvk&-t_6){k@mWzt$J^(92C<=$rOk zLlQXIh+1_PL#L&xEHyyg3VsSk>>ij(mXk7~O4Bvr4^&q3_#zsWErXN>P<3{o-;ALS zoSW}!@`CyF4Cwap%F+_Q>>Y$~*yOpKTwPyA?qF?2lJ7RC7J&*@LTSBVnT&L@%;}fL zFi_UEoH^~hA~}0QE8C`G`VF%;ET(3}59dOV5#Vb-)`Mjeq1(oly*8+@W~@q)A97-S zBBhZFTZ+$EDvj6hQXVwJM_<)g$@Tqs)f#l^HcsH7BXCXhz zLY_IHYB+`hCUerc2m7YC*U=EjJddf%4>a-2J@Jj3Qe7`d=lXuA^bg|fA%8fh|6&aC z(7JYqJ8STm$h{V-xmr#qqm9bbk?Qdi6O4?Jwz zsewXibcllm0GN}PV>={V&g^Sg0xz|U<{;ClTu6tIcXqcLHb2c0`>fbR$y-k#62ere z6i9mFR`NnJU~R%)0Wws|vlsL-RE6v_4Kz@IlT&|7wgN<=OYFk|muxlhjsm5-4s40% z?&#|3YEARL8v&@2ahr0w{vOjwX4@3s6*T;z){~$mOTMhBX%-yguu-*t79{9sDwb%{ z{26LmgX{QF9HFIck~2f6Wsp%!(|IiF7N-$^V~gOM{dlZsWZJz42M z5w0X8P#DWbwx+F z*G=H=4;PJ5YEGz^7%#|x5;TKQGyN}x{0@M3* z(#j#gK&tM1HBAIr+Ss7)$lrB+dTS`OGh?S43M`Ym>(@g~gk5uK_ATO40JuihKtmQ| zY)%|0nA}S`>V8i^s&oM7N17qC^%fGLQ)N}O?Db=wBtD-H2ZDMih{t9jqTZt;k!oTe z@le%9ng{I)i^VEeiYnU`2n1DuP2J^xyS-Xur2ETgq5EDIj40%fN4PXtce1(zFcFqG z%lqEvs&NerVJ78EQu}uZ?15SJhv@KUL9TXXem=gwjbr!_+|mNf*uY9VnndzwQzXsV z=`ux`g(W2y)?#(D%+`p^L_lUV&aok?xYY<2CzH$;cR;2W>xA$1CO3qp5_y9;3UQh! z@hS+^@S36?vI|K*buTP$PSwt7Y3J~f|JACtzEG9lNQHerUj%_48E|*;KsTSo-~10? CqP6mf>fHhYSz?{XHqmz`(#+;1OBOz`!jG!i)^F=12eq*-JcqUD@xkh>00+ zo9KETofxfN&$Qap#WAGf*4vwg`NHWE>>rLF2skLPWQB(Jl$m;xZy2ZWPgvRP{_TXe zhER#7k52D|6EcRWFWDWYo?>^%UHZAfVZ*Ji0H4Jk0?I2Q`xtx99k={;RMTzOeSa&> zzQ1<=FMrbO(XMN@0I+?G(3%`8JjoDXJy6o6_>-}7>cF#U*QvGH3+%HczFMrv+ z|G!s%W%j>K|Gxcly7j*7(%rLZzZPzvU-#ne@@(&k-*(U4a{sN*D#Q0R(g|&B*S4F7 zU3%L)wIo8h{!U!{j2(>6=EPgprx)@1h)vf&7M5)~>-ziS2?iYp69nr2UGD7YSbObN zh--Tkm<) zMcGMc*6sLSm7?Ly`g(u+AFul?*P>tdsys?~6Cb#(@wjEp=Xf2xKLI<`e#g}PD6T(O z&UwO2^Y)jA6YJNV=w-iq>`?1Rd7U^}-Q%D4%B%Ag%=<4@8`P`)> z1Ot;A;&~O6lAd1Loq2wFLG4W5Dd)9!Gwx*;;aPKpfjhqbv)`F5`*P~+*1!1$jI$c% z(|iSYUSFT4H1nCf;pS)0Kl|<4H%XrPGp|lXjJ|P0N5}EKD|q{j%oEhl-13AZdcFYQ}(R#x| zB+EwGO&`c%WNxcS$@sF$A)3gCoFYY0=!RPkAXy-x%pMRNP%dNa-JYJVd|y@d&vm{rc5=)jem{UU_x?_0ygC&f3eX0>4YPk-isAN?c~q>OblV!G_;` zXjQa}XmggP-Z!D&LVxTG%r2Zh_sT1)XE(qLg5Nl~zItk7wLQPNw(;V8>nF=UCE{w; zwO3A^SzS1@zSgD;+EP4ne&daoSLe^4dwH#WqVY)Q%;|G4pIe`QM0X48XI?lp|HNZY z=-+LKCoOaWLtnVf&9wvYbqZsZGu=#9f7BbgjZKiHrAvk(sqh4|iIG70)iw$ZcopPu{WsrKLh2vRt_ z;5UWFN2Ji|mZt8ErO}CRm*_@`K2oBOmgr+8`Z#FX&3@A$I3Ismcw}pV$T_Q#V%^Yn zevSM3bW-kI5yC?tKJYHuHDdRvgGU!0eSG0j<>gd8r>4~ne_`RN$Dexq@dY)d_Km6! zvLvr6>C1%!t5sF0f5o{H4?nr)`|7q>LQMKKRk=cv*5V7pD{<@(hhQpKMv#84YGrXv zeUa9Bh>_ zy3=*K&IPAiQx+J(iXNCD=_KdFXwvCk=vKR!kX&v<`elg2CKZ!T{2L6DowQ^G^TDeU zsu^eo`V*@DMtPvcI3J7=aynHt)=J~J11F69&2D$o*)&`kN&U^rrtBthhkEJ8W_1&H zh-b7pig$NOO>N3}N{t5KHYLGnC3hv-jOn8p|>C3dCE50SHu;Qm2j@Z83@B44|8ReEjlv@fn z7Q&}DUw`Xz|MKO&kI1{}8_Z|SOoEOYhRXMIWk)%o^!H!8aJk>Zvw@StFVtONC)~gG ziPnZk_d^w`Yj5@XPCxBoE+@SCxyG(sfhD40j#gD14*g6QK_3o>Z}KZ7k;R%K^z5xUM z-sQ`x2M-_kp|uF@LpU89al%}m=AyUYn^7-P9X;ZD9Nk63!HsodGh$#zB%L?k)+PqN zF@Y#5YdGP!q(BQw^GR=Do@V+s9F=p{T+SD0MJ3_ey?&)X?hTk(!jz9S>4gKPq;Nce zIX%bfCE=UY8{-xcyKnYoKkkJL3r5n|V!NuY#^G*H_R>DWQ@&H}jYA(orfIDiOdo;|g$4)WyEfz`qm^wypAc<+PvJde&h zj3vaRhpMqolGdWu-uh>sd3$?cD(fRiKVsD=#HboM6X7Y0qISErSJ@l4B203~OGE#^_etX*(^ajjCaQ5v=He8In$N9*kn9 z=iAkG@_d_IZbN!yh{Glov8114m~5pbBO@5`uzd>94D=>cy`}O%i*Y^}BjmJDHMG(= zYQYI3Z@JxGc9soSMpAFNvMk$4)S_Oxv|L@r9pV`+kD{$DQd7$^Le;nmZdnpU)!0Ht z*g{cYzk{N%m8vbdh0MQW0rmhie*y|SsoIe{P&i=$_9sv^yb~vsdPqK`Ay1xwFR%q3 z8bQt|Og&)wg19DK@hoA56))v*Q!Bi@YLGHjgA{HofKRik;jwCXs2adL#>^y$b)%2BMApLKhoIxIxOu6DhP5ERU_E* zGF=3Hu(wxA_XklB>=mdCZWJi0Mp+r#Ct&ie_T@XcohXQ+k|7x+1sDU&HFIR#dj}3H zVG=91qYRd-{tK#V8#9!X{ec%)vl<3dg6ZI$5|2>WPNE%?>339%)g!nb?UW71!FE{# zxqrK5>&;a&VmoQs;&9b7Ca@WdO``!5K}mxqvhs0N@4#T&ln>28+t^EbhftJ{ZCfI) zGR17$@)2BR;({4dS`22&2kB(nmWUn1xGf(6A^?GaK^EIW+>V2-ynOr?)gtg%15iE! zC(z|1*nwa_*uh{llnQ8gfk)B_pe6&zAfS*#gAwA)>?dGWA@x8bX~3i=^@Y2OD!iET zQ4FWhXP&QM8>FS*^L{hh@K{-f{H=BGo22GB; zF8q85b_iQ#j9zRyP3O4NME*Cx2v+pK3`r+B0i(%c^ZsVFncUwbm)nq{3~|_`VzTId z3&Z4MS~4<%5yAYQgJz(ZP!+S~ffnO@FhT)NbIzGFTp3BlTxCu+ z6L*n%>Fiu}4tI!WG&gb^4N_Bc(nbEC1ve)NPAl2K4s9U4vqxw+jZ`&c136q+fIR@s zQ$eH(0bvz#0Fenr2l6T1rqwipD{B=q$fS0Wr*={%wUfFfwF?B*O@Y)7OsHE@JKc=b zE`&|(KT!1maTr)>(YA-OI+KpnK+6`+{yGt%V=^u!| znzgCD4Aa44LLI5y6($V}wP;eiE6N6uY0DbS%ZsiVF>6L_CyO?5&kAD#abDIarFLqR zQ~RvmTv=+@9JGzSq<07{rS@57k36-{BASZSZZMPDN$06u+$FU)5Vzx?F`3#0^K&`1 zQ?MThq;@o>c6_-qWRcn-ppZj#Y8Tk2sVJp((#Qu)?OMzWQhQG8)Q$xGfKB8xdfzdr zoBcN>rZmmIt{df~GrX?%soA&OzotN#enwSALl+J9w{K%bR~am$P0u;UxW9^+V}z3;?dN=pcGJl1rbJ8yIkR$ zvA!!@GW@{;e^yQVKTzrC_*yx}H`Qm9j1PuBzNvl!dM17v zZ4qzralPoqzKUzH^q)~v@mTrlY4p#UuXelW^+!7NKH?MR9ehf|SKEvAMWtu-Fr$YV zKf;^t81LhlF*?}u@IL+lXeX+C=0un^!mM6YFS@a(qFN+9%o>gH{Q$E@m_@(+q1P{Y z=snDeDIC0t;jKTPRbWqUoW@77!? zFssWL#H=o6(Ps|ydJh)84J$pXi$7vqp-Sx#kMHQu*@kZ7&x3njI``_@>U`-hgzT?_ z??dzJ`s<*@Wt!iEf3UNzaKNLPh} zZ_%VGK4{hCw!Y|m%w_|AELA!^7jA4Ha%DfTwN5#du#Ol7((O%|gemqMvPI`BB zG(Q5};%JJ##L?biM;9VEx|KPaUz{|Tc{kNQuY+|_J`4*}D%Bav}=E;<=Sk|d{K`S}c{R&QHBpXv- zEpqh^=c$f6J$oa&^;Ackr@K4hx1Rcr;6%U^Ap0XY0vyeI(qGniI;2iv-R^EubpDy&rUEn zYkzGgnA2Q{`91uSB`%?7!wKf$U!naIG=G;&d-!*d_0j%{_74I$)A^;wGv0s1!^Cs8 GiGKs+ya)CG literal 8601 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 diff --git a/src/mightypork/rogue/Res.java b/src/mightypork/rogue/Res.java index c87f2ff..a65672b 100644 --- a/src/mightypork/rogue/Res.java +++ b/src/mightypork/rogue/Res.java @@ -76,9 +76,10 @@ public final class Res { textures.addQuad("panel", gui.makeQuad(0, 3.75, 4, .25)); // sprites - texture = textures.loadTexture("mob", "/res/img/dudes-b.png", FilterMode.NEAREST, WrapMode.CLAMP); + texture = textures.loadTexture("mob", "/res/img/dudes.png", FilterMode.NEAREST, WrapMode.CLAMP); tiles = texture.grid(8, 8); textures.addSheet("sprite.player", tiles.makeSheet(0, 0, 4, 1)); + textures.addSheet("sprite.rat", tiles.makeSheet(0, 1, 4, 1)); // small sheet texture = textures.loadTexture("tiles", "/res/img/tiles16.png", FilterMode.NEAREST, WrapMode.CLAMP); diff --git a/src/mightypork/rogue/world/entity/Entity.java b/src/mightypork/rogue/world/entity/Entity.java index 3365901..b57e372 100644 --- a/src/mightypork/rogue/world/entity/Entity.java +++ b/src/mightypork/rogue/world/entity/Entity.java @@ -151,7 +151,9 @@ public abstract class Entity implements IonObjBundled, Updateable { @DefaultImpl public final void render(MapRenderContext context) { - getRenderer().render(context); + if (context.getTile(getCoord()).isExplored()) { + getRenderer().render(context); + } } diff --git a/src/mightypork/rogue/world/entity/entities/PlayerEntity.java b/src/mightypork/rogue/world/entity/entities/PlayerEntity.java index d263fc1..82a9b50 100644 --- a/src/mightypork/rogue/world/entity/entities/PlayerEntity.java +++ b/src/mightypork/rogue/world/entity/entities/PlayerEntity.java @@ -116,4 +116,10 @@ public class PlayerEntity extends Entity { { return EntityType.PLAYER; } + + @Override + public void receiveAttack(Entity attacker, int attackStrength) + { + // FIXME ignore attack + } } diff --git a/src/mightypork/rogue/world/entity/entities/RatEntity.java b/src/mightypork/rogue/world/entity/entities/RatEntity.java index 07a06da..f57111b 100644 --- a/src/mightypork/rogue/world/entity/entities/RatEntity.java +++ b/src/mightypork/rogue/world/entity/entities/RatEntity.java @@ -53,7 +53,7 @@ public class RatEntity extends Entity { protected EntityRenderer getRenderer() { if (renderer == null) { - renderer = new EntityRendererMobLR(this, "sprite.player"); + renderer = new EntityRendererMobLR(this, "sprite.rat"); } return renderer; diff --git a/src/mightypork/rogue/world/entity/renderers/EntityRendererMobLR.java b/src/mightypork/rogue/world/entity/renderers/EntityRendererMobLR.java index 329f061..8d550ea 100644 --- a/src/mightypork/rogue/world/entity/renderers/EntityRendererMobLR.java +++ b/src/mightypork/rogue/world/entity/renderers/EntityRendererMobLR.java @@ -44,7 +44,7 @@ public class EntityRendererMobLR extends EntityRenderer { final Vect visualPos = entity.pos.getVisualPos(); Rect spriteRect = Rect.make(visualPos.x() * w, visualPos.y() * w, w, w); - spriteRect = spriteRect.shrink(w * 0.1); + spriteRect = spriteRect.shrink(w * 0.05); Render.quadTextured(spriteRect, q); } diff --git a/src/mightypork/rogue/world/gen/LevelGenerator.java b/src/mightypork/rogue/world/gen/LevelGenerator.java index 392a011..e6a66d2 100644 --- a/src/mightypork/rogue/world/gen/LevelGenerator.java +++ b/src/mightypork/rogue/world/gen/LevelGenerator.java @@ -45,7 +45,7 @@ public class LevelGenerator { // spawn rats final Coord pos = Coord.make(0, 0); - for (int i = 0; i < 1; i++) { // 4+complexity + rand.nextInt(1+complexity) + for (int i = 0; i < 4+complexity + rand.nextInt(1+complexity); i++) { final Entity e = Entities.RAT.createEntity(world); diff --git a/src/mightypork/rogue/world/level/render/MapRenderContext.java b/src/mightypork/rogue/world/level/render/MapRenderContext.java index 0aceb8b..4d8a6e5 100644 --- a/src/mightypork/rogue/world/level/render/MapRenderContext.java +++ b/src/mightypork/rogue/world/level/render/MapRenderContext.java @@ -5,6 +5,7 @@ import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.math.constraints.rect.builders.TiledRect; import mightypork.rogue.world.level.MapAccess; +import mightypork.rogue.world.tile.Tile; public abstract class MapRenderContext { @@ -33,4 +34,8 @@ public abstract class MapRenderContext { { return mapRect; } + + public Tile getTile(Coord pos) { + return map.getTile(pos); + } }