From ce0eb74cf6687f4d49501150ebd8656275dc5980 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 5 Oct 2020 21:07:58 +0300 Subject: [PATCH] End slime --- .../ru/betterend/entity/EntityEndSlime.java | 29 +++++++++++++++++ .../entity/render/RendererEntityEndSlime.java | 30 ++++++++++++++++++ .../ru/betterend/registry/EntityRegistry.java | 2 ++ .../registry/EntityRenderRegistry.java | 2 ++ .../betterend/textures/entity/end_slime.png | Bin 0 -> 3112 bytes .../textures/entity/end_slime_glow.png | Bin 0 -> 2043 bytes 6 files changed, 63 insertions(+) create mode 100644 src/main/java/ru/betterend/entity/EntityEndSlime.java create mode 100644 src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java create mode 100644 src/main/resources/assets/betterend/textures/entity/end_slime.png create mode 100644 src/main/resources/assets/betterend/textures/entity/end_slime_glow.png diff --git a/src/main/java/ru/betterend/entity/EntityEndSlime.java b/src/main/java/ru/betterend/entity/EntityEndSlime.java new file mode 100644 index 00000000..6b069fb4 --- /dev/null +++ b/src/main/java/ru/betterend/entity/EntityEndSlime.java @@ -0,0 +1,29 @@ +package ru.betterend.entity; + +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.mob.SlimeEntity; +import net.minecraft.particle.ParticleEffect; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.world.World; + +public class EntityEndSlime extends SlimeEntity { + public EntityEndSlime(EntityType entityType, World world) { + super(entityType, world); + } + + public static DefaultAttributeContainer.Builder createMobAttributes() { + return LivingEntity.createLivingAttributes() + .add(EntityAttributes.GENERIC_MAX_HEALTH, 1.0D) + .add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 1.0D) + .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D) + .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.15D); + } + + @Override + protected ParticleEffect getParticles() { + return ParticleTypes.PORTAL; + } +} diff --git a/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java b/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java new file mode 100644 index 00000000..60b72ccd --- /dev/null +++ b/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java @@ -0,0 +1,30 @@ +package ru.betterend.entity.render; + +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.SlimeEntityRenderer; +import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; +import net.minecraft.client.render.entity.model.SlimeEntityModel; +import net.minecraft.entity.mob.SlimeEntity; +import net.minecraft.util.Identifier; +import ru.betterend.BetterEnd; + +public class RendererEntityEndSlime extends SlimeEntityRenderer { + private static final Identifier TEXTURE = BetterEnd.makeID("textures/entity/end_slime.png"); + private static final RenderLayer GLOW = RenderLayer.getEyes(BetterEnd.makeID("textures/entity/end_slime_glow.png")); + + public RendererEntityEndSlime(EntityRenderDispatcher entityRenderDispatcher) { + super(entityRenderDispatcher); + this.addFeature(new EyesFeatureRenderer>(this) { + @Override + public RenderLayer getEyesTexture() { + return GLOW; + } + }); + } + + @Override + public Identifier getTexture(SlimeEntity entity) { + return TEXTURE; + } +} \ No newline at end of file diff --git a/src/main/java/ru/betterend/registry/EntityRegistry.java b/src/main/java/ru/betterend/registry/EntityRegistry.java index e972de5f..f7d4ddba 100644 --- a/src/main/java/ru/betterend/registry/EntityRegistry.java +++ b/src/main/java/ru/betterend/registry/EntityRegistry.java @@ -11,10 +11,12 @@ import net.minecraft.entity.SpawnGroup; import net.minecraft.entity.attribute.DefaultAttributeContainer.Builder; import net.minecraft.util.registry.Registry; import ru.betterend.BetterEnd; +import ru.betterend.entity.EntityEndSlime; import ru.betterend.entity.EntityDragonfly; public class EntityRegistry { public static final EntityType DRAGONFLY = register("dragonfly", SpawnGroup.AMBIENT, 0.6F, 0.5F, EntityDragonfly::new, EntityDragonfly.createMobAttributes()); + public static final EntityType END_SLIME = register("end_slime", SpawnGroup.AMBIENT, 0.6F, 0.5F, EntityEndSlime::new, EntityEndSlime.createMobAttributes()); public static void register() {} diff --git a/src/main/java/ru/betterend/registry/EntityRenderRegistry.java b/src/main/java/ru/betterend/registry/EntityRenderRegistry.java index 0e1bbf8f..6459bddf 100644 --- a/src/main/java/ru/betterend/registry/EntityRenderRegistry.java +++ b/src/main/java/ru/betterend/registry/EntityRenderRegistry.java @@ -4,11 +4,13 @@ import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.MobEntityRenderer; import net.minecraft.entity.EntityType; import ru.betterend.entity.render.RendererEntityDragonfly; +import ru.betterend.entity.render.RendererEntityEndSlime; public class EntityRenderRegistry { public static void register() { register(EntityRegistry.DRAGONFLY, RendererEntityDragonfly.class); + register(EntityRegistry.END_SLIME, RendererEntityEndSlime.class); } private static void register(EntityType type, Class> renderer) { diff --git a/src/main/resources/assets/betterend/textures/entity/end_slime.png b/src/main/resources/assets/betterend/textures/entity/end_slime.png new file mode 100644 index 0000000000000000000000000000000000000000..43cf3a6b4b9ba637b68c2325def8cb22023a4b64 GIT binary patch literal 3112 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/entity/end_slime_glow.png b/src/main/resources/assets/betterend/textures/entity/end_slime_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5dcc8a7fd6a1a6bfef9c136b813b8a4420422d GIT binary patch literal 2043 zcmb_dOKjXk7;dF zn-ru92?-9oZxup9Di?$b;#7oG4&30tp_g(YDi?$h>K%c~cpq+pwjork2&!oy0? zY-KI?IR~?_gb4F!sUODNS`g+=_hW=tX(oEK9YhuB&ez{aVn8a=is3>xuF_6W-%99( zt;HtZTE#YzPM;Fz`VI#OX@0{wP#0M{HY>!vMhFFx!3EJ zdRmDkZCSBxTZXEvs(@R7bTi6OA4KW#F+z=|I0@n`V3C+3B9E1bn$u@0S~R~7910` zgkeFEW(ynKjZr`*TBps;n99pEW$Ov13maVK@!Xr(sU{R<9VcpOELp5p^Tb%< z(-zsjbgHb&5>Cw3X#*9m>olS?LlLHpT1Db+mx6#e)blOV zG%a9QrVl(z*Ma5v1Zb2HLst#xm+AO?jp6k?x%v5FofC#R#ywUO*$^wL2cYipaA4g4 zwq;>p7}PTjg0NRE)I6UAywy;5Cu**Wa702qicO0GN-P^_SoZ)zkN^uBz77r3(6O2q z^gZS=$~^Zk<+)5p4RaQ?N2_jd>c7Cx$$5A1L*j5X1d{h=_$@=m8t%)ukZ=AfG}XYpOw%^4R-{>TSm;kNe{R)sKRMJ1A;X{zaFi2lr=x z-7*w9$)8>Q{=fP&sMcYr$^Wdv!Mh#b{c%b2VUjP4DaId)IY=WOs)SFu_rJUP1D}v_ zqc-1cef#^(kEbu6dGz($hcBIgM-TfK5BS3OnYm%;zxSPslPpQ{mA8+Kac&jGWF7n kPtG3u{MKL`3$NS}*0!IR`SP6mQ@+tySgc(;d-1iu0Te@t!T