End fish prototype

This commit is contained in:
paulevsGitch 2020-10-23 20:04:37 +03:00
parent df8e285757
commit 4237f5bdca
12 changed files with 152 additions and 11 deletions

View file

@ -22,7 +22,6 @@ import net.minecraft.world.World;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.dimension.DimensionType;
import net.minecraft.world.gen.feature.ConfiguredFeatures;
import ru.betterend.client.ERenderLayer;
import ru.betterend.client.IRenderTypeable;
import ru.betterend.interfaces.TeleportingEntity;

View file

@ -0,0 +1,13 @@
package ru.betterend.entity;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.entity.Entity;
public abstract class BlockBenchModel<T extends Entity> extends EntityModel<T> {
protected void setRotationAngle(ModelPart modelRenderer, float x, float y, float z) {
modelRenderer.pitch = x;
modelRenderer.yaw = y;
modelRenderer.roll = z;
}
}

View file

@ -0,0 +1,33 @@
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.passive.SchoolingFishEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.sound.SoundEvent;
import net.minecraft.world.World;
public class EntityEndFish extends SchoolingFishEntity {
public EntityEndFish(EntityType<EntityEndFish> entityType, World world) {
super(entityType, world);
}
@Override
protected ItemStack getFishBucketItem() {
return null;
}
@Override
protected SoundEvent getFlopSound() {
return null;
}
public static DefaultAttributeContainer.Builder createMobAttributes() {
return LivingEntity.createLivingAttributes()
.add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)
.add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D)
.add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.5D);
}
}

View file

@ -2,11 +2,11 @@ package ru.betterend.entity.model;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.client.util.math.MatrixStack;
import ru.betterend.entity.BlockBenchModel;
import ru.betterend.entity.EntityDragonfly;
public class ModelEntityDragonfly extends EntityModel<EntityDragonfly> {
public class ModelEntityDragonfly extends BlockBenchModel<EntityDragonfly> {
private final ModelPart model;
private final ModelPart head;
private final ModelPart tail;
@ -99,10 +99,4 @@ public class ModelEntityDragonfly extends EntityModel<EntityDragonfly> {
public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) {
model.render(matrices, vertices, light, overlay);
}
public void setRotationAngle(ModelPart modelRenderer, float x, float y, float z) {
modelRenderer.pitch = x;
modelRenderer.yaw = y;
modelRenderer.roll = z;
}
}

View file

@ -0,0 +1,70 @@
package ru.betterend.entity.model;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.util.math.MatrixStack;
import ru.betterend.entity.BlockBenchModel;
import ru.betterend.entity.EntityEndFish;
public class ModelEntityEndFish extends BlockBenchModel<EntityEndFish> {
private final ModelPart model;
private final ModelPart fin_top;
private final ModelPart fin_bottom;
private final ModelPart flipper;
private final ModelPart fin_right;
private final ModelPart fin_left;
public ModelEntityEndFish() {
textureWidth = 32;
textureHeight = 32;
model = new ModelPart(this);
model.setPivot(0.0F, 20.0F, 0.0F);
model.setTextureOffset(0, 0).addCuboid(-1.0F, -2.0F, -4.0F, 2.0F, 4.0F, 8.0F, 0.0F);
fin_top = new ModelPart(this);
fin_top.setPivot(0.0F, -2.0F, -4.0F);
model.addChild(fin_top);
setRotationAngle(fin_top, -0.6981F, 0.0F, 0.0F);
fin_top.setTextureOffset(0, 6).addCuboid(0.0F, -8.0F, 0.0F, 0.0F, 8.0F, 6.0F, 0.0F);
fin_bottom = new ModelPart(this);
fin_bottom.setPivot(0.0F, 2.0F, -4.0F);
model.addChild(fin_bottom);
setRotationAngle(fin_bottom, 0.6981F, 0.0F, 0.0F);
fin_bottom.setTextureOffset(0, 6).addCuboid(0.0F, 0.0F, 0.0F, 0.0F, 8.0F, 6.0F, 0.0F);
flipper = new ModelPart(this);
flipper.setPivot(0.0F, 0.0F, 2.0F);
model.addChild(flipper);
setRotationAngle(flipper, -0.7854F, 0.0F, 0.0F);
flipper.setTextureOffset(0, 15).addCuboid(0.0F, -5.0F, 0.0F, 0.0F, 5.0F, 5.0F, 0.0F);
fin_right = new ModelPart(this);
fin_right.setPivot(-1.0F, 0.0F, -1.0F);
model.addChild(fin_right);
setRotationAngle(fin_right, 1.5708F, 0.7854F, 0.0F);
fin_right.setTextureOffset(0, 25).addCuboid(-3.7071F, 0.7071F, -1.5F, 3.0F, 0.0F, 3.0F, 0.0F);
fin_left = new ModelPart(this);
fin_left.setPivot(1.0F, 0.0F, -1.0F);
model.addChild(fin_left);
setRotationAngle(fin_left, 1.5708F, -0.7854F, 0.0F);
fin_left.setTextureOffset(0, 25).addCuboid(0.7071F, 0.7071F, -1.5F, 3.0F, 0.0F, 3.0F, 0.0F, true);
}
@Override
public void setAngles(EntityEndFish entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
}
@Override
public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) {
RenderSystem.enableCull();
model.render(matrices, vertices, light, overlay);
RenderSystem.disableCull();
}
}

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.MobEntityRenderer;
import net.minecraft.client.render.entity.feature.EyesFeatureRenderer;
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<EntityEndFish, ModelEntityEndFish> {
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"));
public RendererEntityEndFish(EntityRenderDispatcher entityRenderDispatcher) {
super(entityRenderDispatcher, new ModelEntityEndFish(), 0.5f);
this.addFeature(new EyesFeatureRenderer<EntityEndFish, ModelEntityEndFish>(this) {
@Override
public RenderLayer getEyesTexture() {
return GLOW;
}
});
}
@Override
public Identifier getTexture(EntityEndFish entity) {
return TEXTURE;
}
}

View file

@ -7,7 +7,6 @@ import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import ru.betterend.blocks.RunedFlavolite;
import ru.betterend.registry.ItemRegistry;
import ru.betterend.util.PortalFrameHelper;

View file

@ -7,7 +7,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.math.BlockPos;
import ru.betterend.interfaces.TeleportingEntity;
@Mixin(ServerPlayerEntity.class)

View file

@ -12,6 +12,7 @@ import net.minecraft.entity.attribute.DefaultAttributeContainer.Builder;
import net.minecraft.util.registry.Registry;
import ru.betterend.BetterEnd;
import ru.betterend.entity.EntityDragonfly;
import ru.betterend.entity.EntityEndFish;
import ru.betterend.entity.EntityEndSlime;
import ru.betterend.util.MHelper;
import ru.betterend.util.SpawnHelper;
@ -19,6 +20,7 @@ import ru.betterend.util.SpawnHelper;
public class EntityRegistry {
public static final EntityType<EntityDragonfly> DRAGONFLY = register("dragonfly", SpawnGroup.AMBIENT, 0.6F, 0.5F, EntityDragonfly::new, EntityDragonfly.createMobAttributes(), true, MHelper.color(32, 42, 176), MHelper.color(115, 225, 249));
public static final EntityType<EntityEndSlime> END_SLIME = register("end_slime", SpawnGroup.MONSTER, 2F, 2F, EntityEndSlime::new, EntityEndSlime.createMobAttributes(), false, MHelper.color(28, 28, 28), MHelper.color(99, 11, 99));
public static final EntityType<EntityEndFish> END_FISH = register("end_fish", SpawnGroup.WATER_AMBIENT, 0.5F, 0.5F, EntityEndFish::new, EntityEndFish.createMobAttributes(), true, MHelper.color(120, 206, 255), MHelper.color(3, 50, 76));
public static void register() {
SpawnHelper.restrictionLand(END_SLIME, EntityEndSlime::canSpawn);

View file

@ -4,6 +4,7 @@ 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.RendererEntityEndFish;
import ru.betterend.entity.render.RendererEntityEndSlime;
public class EntityRenderRegistry {
@ -11,6 +12,7 @@ public class EntityRenderRegistry {
public static void register() {
register(EntityRegistry.DRAGONFLY, RendererEntityDragonfly.class);
register(EntityRegistry.END_SLIME, RendererEntityEndSlime.class);
register(EntityRegistry.END_FISH, RendererEntityEndFish.class);
}
private static void register(EntityType<?> type, Class<? extends MobEntityRenderer<?, ?>> renderer) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB