Skip to content

Commit

Permalink
feat: add SubstitutionLogModel
Browse files Browse the repository at this point in the history
  • Loading branch information
sekwah41 committed May 5, 2022
1 parent c579372 commit cc9e0d6
Show file tree
Hide file tree
Showing 6 changed files with 144 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.sekwah.narutomod.client.model.entity;

import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.Model;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.renderer.RenderType;

public class SubstitutionLogModel extends Model {

private final ModelPart main;

public SubstitutionLogModel(ModelPart modelPart)
{
super(RenderType::entitySolid);
this.main = modelPart.getChild("main");
}


public static LayerDefinition createLayer() {

MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot();

PartDefinition main = partdefinition.addOrReplaceChild("main",
CubeListBuilder.create()
.mirror(true)
.texOffs(0, 0)
.addBox(-2F, 0F, -2F, 4, 8, 4)
, PartPose.offsetAndRotation(0F, 0F, 0F, (float) Math.PI, 0F, 0F));

main.addOrReplaceChild("Shape2",
CubeListBuilder.create()
.mirror(true)
.texOffs(16, 0)
.addBox(-0.2666667F, 2F, -1.866667F, 4, 1, 1)
, PartPose.offsetAndRotation(0F, 0F, 0F, 0.4461433F, 0F, 0F));

main.addOrReplaceChild("Shape3",
CubeListBuilder.create()
.mirror(true)
.texOffs(26, 0)
.addBox(2.066667F, 1.733333F, 0F, 2, 2, 0)
, PartPose.offsetAndRotation(0F, 0F, 0F, 0F, 0F, -0.3717861F));

return LayerDefinition.create(meshdefinition, 64, 64);
}

@Override
public void renderToBuffer(PoseStack matrixStack, VertexConsumer vertexConsumer, int p_225598_3_, int p_225598_4_, float p_225598_5_, float p_225598_6_, float p_225598_7_, float p_225598_8_) {
this.main.render(matrixStack, vertexConsumer, p_225598_3_, p_225598_4_, p_225598_5_, p_225598_6_, p_225598_7_, p_225598_8_);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.sekwah.narutomod.NarutoMod;
import com.sekwah.narutomod.block.NarutoBlocks;
import com.sekwah.narutomod.client.model.entity.SubstitutionLogModel;
import com.sekwah.narutomod.client.model.jutsu.FireballJutsuModel;
import com.sekwah.narutomod.client.model.jutsu.WaterBulletModel;
import com.sekwah.narutomod.client.renderer.entity.*;
Expand All @@ -10,6 +11,7 @@
import com.sekwah.narutomod.client.renderer.entity.jutsuprojectile.FireballJutsuRenderer;
import com.sekwah.narutomod.client.renderer.entity.jutsuprojectile.WaterBulletJutsuRenderer;
import com.sekwah.narutomod.entity.NarutoEntities;
import com.sekwah.narutomod.entity.SubstitutionLogEntity;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
Expand Down Expand Up @@ -45,6 +47,9 @@ public class NarutoRenderEvents {
public static final ModelLayerLocation WATER_BULLET_LAYER =
new ModelLayerLocation(new ResourceLocation(NarutoMod.MOD_ID, "water_bullet"), "main");

public static final ModelLayerLocation SUBSTITUTION_LOG_LAYER =
new ModelLayerLocation(new ResourceLocation(NarutoMod.MOD_ID, "substitution_log"), "main");

@SubscribeEvent
public static void entityRenderers(EntityRenderersEvent.RegisterRenderers event) {
event.registerEntityRenderer(NarutoEntities.KUNAI.get(), KunaiRenderer::new);
Expand All @@ -56,6 +61,8 @@ public static void entityRenderers(EntityRenderersEvent.RegisterRenderers event)
event.registerEntityRenderer(NarutoEntities.FIREBALL_JUTSU.get(), FireballJutsuRenderer::new);
event.registerEntityRenderer(NarutoEntities.WATER_BULLET_JUTSU.get(), WaterBulletJutsuRenderer::new);

event.registerEntityRenderer(NarutoEntities.SUBSTITUTION_LOG.get(), SubstitutionLogRenderer::new);

}

public static void registerRenderTypes() {
Expand All @@ -73,8 +80,13 @@ public static void layerDefinitions(EntityRenderersEvent.RegisterLayerDefinition
event.registerLayerDefinition(ANBU_MASK_LAYER, () -> AnbuMaskModel.createLayer(true));
event.registerLayerDefinition(ANBU_MASK_WITHOUT_EARS_LAYER, () -> AnbuMaskModel.createLayer(false));
event.registerLayerDefinition(HEADBAND_LAYER, HeadbandModel::createLayer);

// Jutsu
event.registerLayerDefinition(FIREBALL_LAYER, FireballJutsuModel::createLayer);
event.registerLayerDefinition(WATER_BULLET_LAYER, WaterBulletModel::createLayer);

// Entity
event.registerLayerDefinition(SUBSTITUTION_LOG_LAYER, SubstitutionLogModel::createLayer);
}

/* @SubscribeEvent
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.sekwah.narutomod.client.renderer.entity;

import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.sekwah.narutomod.client.model.entity.SubstitutionLogModel;
import com.sekwah.narutomod.client.model.jutsu.FireballJutsuModel;
import com.sekwah.narutomod.client.renderer.NarutoRenderEvents;
import com.sekwah.narutomod.entity.SubstitutionLogEntity;
import com.sekwah.narutomod.entity.jutsuprojectile.FireballJutsuEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;


public class SubstitutionLogRenderer extends EntityRenderer<SubstitutionLogEntity> {
public static final ResourceLocation SUBSTITUTION_LOG = new ResourceLocation("narutomod", "textures/entity/jutsu/substitution.png");
private static final RenderType RENDER_TYPE = RenderType.entitySolid(SUBSTITUTION_LOG);
private final SubstitutionLogModel model;

public SubstitutionLogRenderer(EntityRendererProvider.Context manager) {
super(manager);
this.model = new SubstitutionLogModel(manager.bakeLayer(NarutoRenderEvents.SUBSTITUTION_LOG_LAYER));
}

@Override
public void render(SubstitutionLogEntity substitutionLogEntity, float p_114486_, float partial, PoseStack poseStack, MultiBufferSource multiBufferSource, int p_114490_) {
VertexConsumer vertexconsumer = multiBufferSource.getBuffer(RENDER_TYPE);
poseStack.pushPose();
poseStack.translate(0,substitutionLogEntity.getBbHeight() / 2f,0);

this.model.renderToBuffer(poseStack, vertexconsumer, p_114490_, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F);
poseStack.popPose();
super.render(substitutionLogEntity, p_114486_, partial, poseStack, multiBufferSource, p_114490_);
}

@Override
public ResourceLocation getTextureLocation(SubstitutionLogEntity p_114482_) {
return SUBSTITUTION_LOG;
}

}
4 changes: 4 additions & 0 deletions src/main/java/com/sekwah/narutomod/entity/NarutoEntities.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ public class NarutoEntities {
public static final RegistryObject<EntityType<WaterBulletJutsuEntity>> WATER_BULLET_JUTSU = register("water_bullet_jutsu",
EntityType.Builder.<WaterBulletJutsuEntity>of(WaterBulletJutsuEntity::new, MobCategory.MISC).fireImmune().sized(0.3F, 0.3F).clientTrackingRange(4).updateInterval(10));


public static final RegistryObject<EntityType<SubstitutionLogEntity>> SUBSTITUTION_LOG = register("substitution_log",
EntityType.Builder.of(SubstitutionLogEntity::new, MobCategory.MISC).fireImmune().sized(0.3F, 0.3F).clientTrackingRange(4).updateInterval(10));

private static <T extends Entity> RegistryObject<EntityType<T>> register(String key, EntityType.Builder<T> builder) {
return ENTITIES.register(key, () -> builder.build(key));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.sekwah.narutomod.entity;

import net.minecraft.network.protocol.Packet;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkHooks;

public class SubstitutionLogEntity extends Mob {

protected SubstitutionLogEntity(EntityType<? extends Mob> p_21368_, Level p_21369_) {
super(p_21368_, p_21369_);
}

@Override
protected void defineSynchedData() {

}

@Override
public Packet<?> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
}
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit cc9e0d6

Please sign in to comment.