From e76577328c382ea3b97d5ed7a23fcf450a9279c9 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Fri, 23 Oct 2020 20:48:13 +0300 Subject: [PATCH] Scale and variants --- .../ru/betterend/entity/EntityEndFish.java | 22 +++++++++++++ .../entity/render/RendererEntityEndFish.java | 31 +++++++++++++++--- .../textures/entity/end_fish/end_fish_0.png | Bin 0 -> 2467 bytes .../entity/end_fish/end_fish_0_glow.png | Bin 0 -> 1963 bytes .../textures/entity/end_fish/end_fish_1.png | Bin 0 -> 2460 bytes .../entity/end_fish/end_fish_1_glow.png | Bin 0 -> 2119 bytes .../textures/entity/end_fish/end_fish_2.png | Bin 2467 -> 2574 bytes .../entity/end_fish/end_fish_2_glow.png | Bin 1963 -> 2187 bytes .../textures/entity/end_fish/end_fish_3.png | Bin 0 -> 2601 bytes .../entity/end_fish/end_fish_3_glow.png | Bin 0 -> 2274 bytes .../textures/entity/end_fish/end_fish_4.png | Bin 0 -> 2608 bytes .../entity/end_fish/end_fish_4_glow.png | Bin 0 -> 2267 bytes 12 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_0.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_0_glow.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_1.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_1_glow.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_3.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_3_glow.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_4.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_4_glow.png diff --git a/src/main/java/ru/betterend/entity/EntityEndFish.java b/src/main/java/ru/betterend/entity/EntityEndFish.java index a62b1901..af6304c5 100644 --- a/src/main/java/ru/betterend/entity/EntityEndFish.java +++ b/src/main/java/ru/betterend/entity/EntityEndFish.java @@ -4,15 +4,29 @@ import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.attribute.DefaultAttributeContainer; import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.data.DataTracker; +import net.minecraft.entity.data.TrackedData; +import net.minecraft.entity.data.TrackedDataHandlerRegistry; import net.minecraft.entity.passive.SchoolingFishEntity; import net.minecraft.item.ItemStack; import net.minecraft.sound.SoundEvent; import net.minecraft.world.World; public class EntityEndFish extends SchoolingFishEntity { + public static final int VARIANTS = 5; + private static final TrackedData VARIANT = DataTracker.registerData(EntityEndFish.class, TrackedDataHandlerRegistry.BYTE); + private static final TrackedData SCALE = DataTracker.registerData(EntityEndFish.class, TrackedDataHandlerRegistry.BYTE); + public EntityEndFish(EntityType entityType, World world) { super(entityType, world); } + + @Override + protected void initDataTracker() { + super.initDataTracker(); + this.dataTracker.startTracking(VARIANT, (byte) this.getRandom().nextInt(VARIANTS)); + this.dataTracker.startTracking(SCALE, (byte) this.getRandom().nextInt(255)); + } @Override protected ItemStack getFishBucketItem() { @@ -30,4 +44,12 @@ public class EntityEndFish extends SchoolingFishEntity { .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D) .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.5D); } + + public int getVariant() { + return (int) this.dataTracker.get(VARIANT); + } + + public float getScale() { + return ((int) this.dataTracker.get(SCALE) & 255) / 512F + 0.6F; + } } diff --git a/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java b/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java index b5719da6..1bfc97c0 100644 --- a/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java +++ b/src/main/java/ru/betterend/entity/render/RendererEntityEndFish.java @@ -1,30 +1,53 @@ package ru.betterend.entity.render; +import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.render.entity.MobEntityRenderer; import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; import ru.betterend.BetterEnd; import ru.betterend.entity.EntityEndFish; import ru.betterend.entity.model.ModelEntityEndFish; public class RendererEntityEndFish extends MobEntityRenderer { - private static final Identifier TEXTURE = BetterEnd.makeID("textures/entity/end_fish/end_fish_2.png"); - private static final RenderLayer GLOW = RenderLayer.getEyes(BetterEnd.makeID("textures/entity/end_fish/end_fish_2_glow.png")); + private static final Identifier[] TEXTURE = new Identifier[EntityEndFish.VARIANTS]; + private static final RenderLayer[] GLOW = new RenderLayer[EntityEndFish.VARIANTS]; public RendererEntityEndFish(EntityRenderDispatcher entityRenderDispatcher) { super(entityRenderDispatcher, new ModelEntityEndFish(), 0.5f); this.addFeature(new EyesFeatureRenderer(this) { @Override public RenderLayer getEyesTexture() { - return GLOW; + return GLOW[0]; + } + + @Override + public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, EntityEndFish entity, float limbAngle, float limbDistance, float tickDelta, float animationProgress, float headYaw, float headPitch) { + VertexConsumer vertexConsumer = vertexConsumers.getBuffer(GLOW[entity.getVariant()]); + this.getContextModel().render(matrices, vertexConsumer, 15728640, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); } }); } + @Override + protected void scale(EntityEndFish entity, MatrixStack matrixStack, float f) { + float scale = entity.getScale(); + matrixStack.scale(scale, scale, scale); + } + @Override public Identifier getTexture(EntityEndFish entity) { - return TEXTURE; + return TEXTURE[entity.getVariant()]; + } + + static { + for (int i = 0; i < EntityEndFish.VARIANTS; i++) { + TEXTURE[i] = BetterEnd.makeID("textures/entity/end_fish/end_fish_" + i + ".png"); + GLOW[i] = RenderLayer.getEyes(BetterEnd.makeID("textures/entity/end_fish/end_fish_" + i + "_glow.png")); + } } } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_0.png b/src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_0.png new file mode 100644 index 0000000000000000000000000000000000000000..75ea4153a6f8e5526c5fe8c5c7705df25796a44a GIT binary patch literal 2467 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 delta 852 zcmeAZSu8xkf{AV6Myn}ItOf>FMh25FGpRvY|ClUP43bll(o&NRbyLiZ4RlisO_Fsj z%+oA%%`Hq*l8lT~%u+2ACr2@BO@7X%vUvrw3lniV1lVMtmKd@XPVQm1t+!Ea31DDg zTH)#97!q;#X}ERH;CTTNSc0Se4Dik%=Y8V{SykgUuVJh)zgw zTeG3Wk;g~pK#u@7$3_vBAi)b_pR(t!n$VwYT`2RZ;{C*FBAkmHz8HPs+xgLZP4zq5 z=P~LnL0$Wgo;}8tg~I_>wFmXCEO^~8Ro^Mt=8KgT(*-t(4pZ?3 zd|sKsb_}<-uy%Y(lG^g}i%i2c!G(T_&$T{C>#gekY3HMm&B(Z{QC~jr`yL=?!GYLq z53Wmn;F|x$f5EP-Mi!Hh&zcoHF6*1;RBUnDd9~%%%m*ybbKdMJ4zyXZIB_S(8zYB$ z+imqENeHMDg zOuIZ|Zy`_mvhU8lHSNE*HaSE%p8aIr_4$q|>z`#=H=E^_6?|g7wz0kGX~H@Ni<#e7 zT=&{w{Qkjp-NIw`#bG`x7P8&R=W&^`pf+z!|8onTyG zyT7!P?VHbmdI`DY>5nqKlf4e#AE62 zPAz?2FB**x+w-`#<~U;CKkGh zMuuj(sfm_JW~P>g78Z%dlcSimRFYDSO^giF40KbBlFW3C3{6sXEzAu~bxjPCOwCga zlMPIbQa7()c3~pUNC7q(s4EQF3iS&z@=NlIGx7_pT=J7kb5rw59P^S>i%as0itQ9^ zic-?7oD$Qatei}{$$89HLN@v!aUc((03s|FmSUEeY-C_!plfcCn5dg(YLcjHnP_I9 zYnGUpWN4ghVvv?%iKG>52*hxFu9!TZ&7uD9p|o`j3=GRWT^vI^jwdHbur5vzxgfiv z*2ez%@8A?c1#u0JZH+z|f6UF_ulx0tE0W~|D;M7*gT(36gYvYEZrDuTR_3v+mHF)g zl{JNoVhaC$ez>`NZu`TDd%EvWI3=cVTQM!&Emq#(qE+9_2NxBd&PK*9zrMXY{NDWi|GGauwcHJP?6dfM79W`6b$E_VRIdPYLuBK&MAzL@thm@D a7#Mzh^_-=VF!=@0$qb&ZelF{r5}E+-MY$CK delta 344 zcmeAcT+Khhf{AV6Myn}ItOf>FMi!GVGpRvY|ClUPjLega(vp)+bd5}m&2%jjP11Ce z42(>5EmF))&5YA5Qj$!QCPy)AO@7X%vUvrw3lniV1lVMtmKd@XPVQm1t>?I_bdrIA zVS}fOV~EG`_0~b?MNNXuJKefi$^fB*k~ zZ(kZF6pTwtO;5F0ENS_9o+5O|%&X`1=v%L?J%es3YF?RcvGnR|UP+eaD+XCCJr>Bm zQlr#+7cVLyE07ccS|cG9p)HootcVK4>CnIg7?8tm{N!8j;g~GB@e;e2@~SzoLe8tz zU~z4MPpq9TauS|38q19Eh#&+FfJH*Vu+B%^c$Ak%V{@9su_(lt?#8ptfLN(_0+yp_ z5VKnygh<;M%*k142gNbAQ5ZwfPLgtxG)qu4PdRv&!{Q$tMbjidU*s7ZkAT z-QBoo_8B5&v1z%BI$fKh*!r3Zh)A!}{1{AE{6-DXV0Hl2^jiEyUP-?Ws;{oz=Hw)X zg%lw<>=NO0nDyjnf$&3zlS8$JP!Kw^?@B#Q@iw~CjsH=7ytrZo2nQf~gOd1v&*$1) zdxdWNeRut@`H<$jGiEjN?=Jk)ubrOHM!V7Us2=a^7!XMGcy!lW%thM;$}b6oUEo-P zbJ;jT5d175N-ja7pa5waWJXm4<$vRn96)3!v`L*V00_U`1_%x~D8d1NK(nF^#o;dF zin7Kel2^|qioEPZK|-Qa=$JBxiSrRXBu-cuMyAlv`8njo?nM?$H&4DN+gG~%hm!Hr zizoKE)Zvi#eetR{{p*bE*1Kn?OjOqnuU@;gcx}_*?9}yxOK@ww_4ciM$8@j!Zming zd|-Cgww9)8Q*!B|it$S)w-)X5gqF|T5^34f(6Fg_*OJ=g-96^r)REco78~eL8E+lczs;%#%1RfANg4Z5!IAU9;xd zyag-2Z2S0!#b^7mGtaaojWkyDT{Y;l19K;*voB4nx1Pwr(l&g1|Ncw$-!BS(ifwo$ z_0+|CKRA4@Y4w1ow1eko)v4{?r(Yg7?4F}lwNC^;K81bvX8o_f^*LXFy}e;!D1Tmg z^Qd<=ZJncFCk{Qf|7c+O>!a@*pET(==Y^9)*QM7f9qINl54+z!YyO$b&n@u0IA+@H FKLE0Dk!Jt^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_3_glow.png b/src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_3_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0b15c7a0646a7823fda348d8aa2e37ec65b1ec GIT binary patch literal 2274 zcmb_eTWl0n7+$GdT11i7P>Gmvh*E{KbLP5pCM<2)Ewswgrqob)ku&F<*&Vw(GtNxA zTdYAFBO2dHyd;RIi4Q_}(FY!o#Hbj&ycl1N555>fj2a)P!83aUu`La8lbJa)^PTU% zegFLX+Sq}88@jf1rBbO4Bg6S|eif2q-70=w=>7E!zjOw}hoe+#eRp!)m3s5--c)Ms z5AMWdJXzRp5xRtY#dmD<%`3ow~tv0$^J>t)5O7cPo|OS9r3y#NbAj+NZu zV<9_u?7##$HboE>`*#bwY8EG`uow%qO4*C7T2`#{T6~>6mPDZriKnvSU}8|1EQ|>` zKV*WQHUN<|MaZDEY(S)FI|T*G83|@2Sp`tGpkb*w7}Nh;4s5&WhaAMhKOl zP3uL?H1UKd8KWmaKc9C57N#_}u`3T^nJw3SL59mPX4 z+@oe}i=v~6*?>voEb^yA!iHwJ#ceIef|4KmQORE-j`r(zG=Y^18IJvM!uQLqLXEXp zgj_Buj4AXTay{x-qsJ3N%{?rSW0n;as6Ze?pr{kFYC+Rd^&OBeU;|p&)I3N{Qw8VFmLr%_WNM%gR z07jt+|bB83%y{z-H2Cjw%H;F*>lZR*%j(qvM@>Ho)t+_XGX>5V|S4}t<0ka zZMDQW=`zJ{z#`v?t2ktXMV`}@=u2A4{|L`4@4c2mR8biO)X*u&7)d^nYy*cG8N_qV zn9ZxawD&T!G`Xe5JM_LuPfFM;GX4dX#5<2?WvX2wo?E-?e~m{SQ$xVE9TgC2+7vRI$uizm_oD3Hjtkk0 zm?*==kTkz8Ymm3ABLi$8MTU^~ze-oiMGZ_8$Qd#w#=y}v3=lRTFfg`dmGIW5=q9eZ zhmCNht~&Ym@vk1G_Y0f*hChC3e`$f7JGU?ybsxU_%hg@?{scQW>K9M<|Mvc+hqk=& z?Yi^Z4qeHec>3h%i>H1c==&4A^WoN=8=w8_!s`Q@N+%xZ=%0S!)BG>yD@T5O;=TJi z-#xwgvNrm`tDENcKBngSwtF9q-qY{RJ^y6)Cs)5eyLL@a<*D_;<*%>Ef9&WuQk#G9 wn^m8G_SW%d9=<+z?b`KIkDMIecPZ78>cIo)HSyKaLT^T*`w^3W$j&HrAg|iHst#6ifb+fH{Zivm+ zYpGgZVOIF3i?SZELq(U6y*d)bXqzo}Qgsx{^N~qND5z>4^3=|^NkUaTl*~9-!X?-lClFZ21cC*Oiv}*5;V8g}z$tP9k@}E0T1*LurM@YtSoq09 zhD#-os2!cQZmS$NBBPgRrGhsEQ8KXNHe8`YvYSdJ9jj$M@q*t0A z5-Uxn5Q(N~H6v9fTrj#CMrpdSX?E)KMn7a zHWEpr4Ri8BtSFURmuREBCW`1%WayPK8BJb@BaZGA77gj9ZiMtJc>`4pb7s0W`W2#Mc(-ru&$_qntz2VvKY`~5r_+=Mqm)pQ7xE==J$(5nqfjsMnygk ziKW_ARS`K302jl$D49oYO5hzl<(62ELW09BxCMs{QBo~l@6+W-ZKGY&vWe1M^#Q(zeYpp)a2PBk-PD&A5sd^xM7O2LdQ7hnaRQz%&w zuqw%c86`KQB*mowPKM3^2#~~|alLw2kNI^4*POEqoiLVIs2aF?HK{F9h8CnoVUU=xxOldFzHpApM)8Dz^sBXlpn-3y%vAbSJH35g;!Va za0v>_AwVfkUZGr0tDXWQQ32$13Aok>Nm6I_U8!e)=wLeC_#f4$iYtep7DV_BN|XOR zpKEjN6}s{F-SxlbLtF38q}AxZyYNrHc6vS^??%g`Myj&~FqrP~#ICoPo8cu8P$Y_% z1dbBi4uO)S07uD+TT%d$5W~RSgo?2GZ(NEK$}GT})a8bd3h)j{3D5~BCxjBi$qpPx zxQr{onv_UiJ(mRXvJ(XhNlf8m${ME6NBodJVUdPS5yR(aMNm9vvvr?VhnVG zpz-&dCVkg=UeCU;XUTini=T3qM^;H6&dvGpO+8c)|EPZ8)cQqW*S-t)eX+}RX2q?e zdR&Z;?KLL;Y0J`)BaTHVNUO!L8q}Ys{EFXzeRyks0QQy-${@*&FLV zdwTf!&-Tf~H?=L$ekr&Vri#|K?jC=bU~b;r-f;e>)0<=Am-sowd(IwzO=>w8uV33M zMJFHZ`2O~XCVo(jM*Kh2w!2g)LsAcO>J|i5Ww-t*rm%d3hN;pvTEk62&7eENo>J@uQiCb73Isu;4lpy_nK z=5OzQXG0F({lN7rKY8oEp?fMvsjnRUyxYXH)AZ#}8-tXoM}{>St4hW`*thtZMJ;FR ze%NyG#rTbjH#cqSxarq5uCZ!mFIXmK2M+zJJ zf)0J~6JM?9>0K~N>bK;j!X96Jcj(-!p}`HkSI@rm@TK4Pt;;zv*#C_E_MP%;4c33U NqRGX+#)5fue*k<$kT(DT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_4_glow.png b/src/main/resources/assets/betterend/textures/entity/end_fish/end_fish_4_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..76517568e22334549c22ddaab0993c971a68f296 GIT binary patch literal 2267 zcmb_eU1%It6yAunX>3cS1w%y{rVmZAcjw-jo!Px(HZ|Q%OtjmdbVJg&+`0G8?vUM? z>CB|NiAtgfk|(R+OHojw5B5RvK?QwitAe#uC=R4Vt zlr~eS`W;#~Y?VnAOsNxJK}i^=)BrNt!TB>mr4gJ_g;#i$yHO~xsDl+%Dik{K6=|#0 z4mym6jtNDr+*U+~#aW*#V?6X`0?LPuiHJMe!u+xqd12YRMIN1>JK6YVF5o2cf}-bD z+KoEcW|4BaxG@>2Z^ChzR||K=fm+Y-Jc)Q#R-p<3ftH-#1-EyHKG*?=BOJ+#HD;RpOuBwq~kD? zTeg90odQEoVZe+O1SD-(AeFWWhZrGSYpNB`=RG1XCq!O{;jhm4rju7c@ zsHix%UC)#Z`hqgQjJ?;%Zrzty;fXwc5Chmg9TzQ?t66MxY)-}j^+o8 zBcIW!-gQe;+b%r#RIUEk{J9BspLBoU$otRiD=*V`4lGapvf;?xXV>*?z63XH`Srus z=dZqbrf~7%yAw}lFKmANG87z6T8Qs zAD`|XRc@hkk##3-q7a xSn8sezBu*43-bei{Q38_El<3)G_}x`*x7ez`)`NN566E$Mu+z2-`+d*>_5P(-p&93 literal 0 HcmV?d00001