More slimes
This commit is contained in:
parent
ce0eb74cf6
commit
0b0fed1e00
5 changed files with 97 additions and 31 deletions
|
@ -1,15 +1,26 @@
|
|||
package ru.betterend.entity;
|
||||
|
||||
import net.minecraft.entity.EntityData;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.SpawnReason;
|
||||
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.mob.SlimeEntity;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.particle.ParticleEffect;
|
||||
import net.minecraft.particle.ParticleTypes;
|
||||
import net.minecraft.world.LocalDifficulty;
|
||||
import net.minecraft.world.ServerWorldAccess;
|
||||
import net.minecraft.world.World;
|
||||
import ru.betterend.registry.BiomeRegistry;
|
||||
|
||||
public class EntityEndSlime extends SlimeEntity {
|
||||
private static final TrackedData<Boolean> MOSSY = DataTracker.registerData(EntityEndSlime.class, TrackedDataHandlerRegistry.BOOLEAN);
|
||||
|
||||
public EntityEndSlime(EntityType<EntityEndSlime> entityType, World world) {
|
||||
super(entityType, world);
|
||||
}
|
||||
|
@ -21,9 +32,32 @@ public class EntityEndSlime extends SlimeEntity {
|
|||
.add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D)
|
||||
.add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.15D);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, EntityData entityData, CompoundTag entityTag) {
|
||||
EntityData data = super.initialize(world, difficulty, spawnReason, entityData, entityTag);
|
||||
if (world.getRandom().nextBoolean() && BiomeRegistry.getFromBiome(world.getBiome(getBlockPos())) == BiomeRegistry.FOGGY_MUSHROOMLAND) {
|
||||
this.setMossy(true);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initDataTracker() {
|
||||
super.initDataTracker();
|
||||
this.dataTracker.startTracking(MOSSY, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ParticleEffect getParticles() {
|
||||
return ParticleTypes.PORTAL;
|
||||
}
|
||||
|
||||
protected void setMossy(boolean mossy) {
|
||||
this.dataTracker.set(MOSSY, mossy);
|
||||
}
|
||||
|
||||
public boolean isMossy() {
|
||||
return this.dataTracker.get(MOSSY);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,9 +8,11 @@ import net.minecraft.client.render.entity.model.SlimeEntityModel;
|
|||
import net.minecraft.entity.mob.SlimeEntity;
|
||||
import net.minecraft.util.Identifier;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.entity.EntityEndSlime;
|
||||
|
||||
public class RendererEntityEndSlime extends SlimeEntityRenderer {
|
||||
private static final Identifier TEXTURE = BetterEnd.makeID("textures/entity/end_slime.png");
|
||||
private static final Identifier TEXTURE_MOSSY = BetterEnd.makeID("textures/entity/end_slime_mossy.png");
|
||||
private static final RenderLayer GLOW = RenderLayer.getEyes(BetterEnd.makeID("textures/entity/end_slime_glow.png"));
|
||||
|
||||
public RendererEntityEndSlime(EntityRenderDispatcher entityRenderDispatcher) {
|
||||
|
@ -25,6 +27,6 @@ public class RendererEntityEndSlime extends SlimeEntityRenderer {
|
|||
|
||||
@Override
|
||||
public Identifier getTexture(SlimeEntity entity) {
|
||||
return TEXTURE;
|
||||
return ((EntityEndSlime) entity).isMossy() ? TEXTURE_MOSSY : TEXTURE;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue