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 00000000..43cf3a6b Binary files /dev/null and b/src/main/resources/assets/betterend/textures/entity/end_slime.png differ 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 00000000..2e5dcc8a Binary files /dev/null and b/src/main/resources/assets/betterend/textures/entity/end_slime_glow.png differ