End slime

This commit is contained in:
paulevsGitch 2020-10-05 21:07:58 +03:00
parent d40a008c2c
commit ce0eb74cf6
6 changed files with 63 additions and 0 deletions

View file

@ -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<EntityEndSlime> 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;
}
}

View file

@ -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<SlimeEntity, SlimeEntityModel<SlimeEntity>>(this) {
@Override
public RenderLayer getEyesTexture() {
return GLOW;
}
});
}
@Override
public Identifier getTexture(SlimeEntity entity) {
return TEXTURE;
}
}

View file

@ -11,10 +11,12 @@ import net.minecraft.entity.SpawnGroup;
import net.minecraft.entity.attribute.DefaultAttributeContainer.Builder; import net.minecraft.entity.attribute.DefaultAttributeContainer.Builder;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.entity.EntityEndSlime;
import ru.betterend.entity.EntityDragonfly; import ru.betterend.entity.EntityDragonfly;
public class EntityRegistry { public class EntityRegistry {
public static final EntityType<EntityDragonfly> DRAGONFLY = register("dragonfly", SpawnGroup.AMBIENT, 0.6F, 0.5F, EntityDragonfly::new, EntityDragonfly.createMobAttributes()); public static final EntityType<EntityDragonfly> DRAGONFLY = register("dragonfly", SpawnGroup.AMBIENT, 0.6F, 0.5F, EntityDragonfly::new, EntityDragonfly.createMobAttributes());
public static final EntityType<EntityEndSlime> END_SLIME = register("end_slime", SpawnGroup.AMBIENT, 0.6F, 0.5F, EntityEndSlime::new, EntityEndSlime.createMobAttributes());
public static void register() {} public static void register() {}

View file

@ -4,11 +4,13 @@ import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
import net.minecraft.client.render.entity.MobEntityRenderer; import net.minecraft.client.render.entity.MobEntityRenderer;
import net.minecraft.entity.EntityType; import net.minecraft.entity.EntityType;
import ru.betterend.entity.render.RendererEntityDragonfly; import ru.betterend.entity.render.RendererEntityDragonfly;
import ru.betterend.entity.render.RendererEntityEndSlime;
public class EntityRenderRegistry { public class EntityRenderRegistry {
public static void register() { public static void register() {
register(EntityRegistry.DRAGONFLY, RendererEntityDragonfly.class); register(EntityRegistry.DRAGONFLY, RendererEntityDragonfly.class);
register(EntityRegistry.END_SLIME, RendererEntityEndSlime.class);
} }
private static void register(EntityType<?> type, Class<? extends MobEntityRenderer<?, ?>> renderer) { private static void register(EntityType<?> type, Class<? extends MobEntityRenderer<?, ?>> renderer) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB