Skip to content

Commit

Permalink
Add chicken renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
MiraculixxT committed Jan 24, 2025
1 parent bb95be0 commit a238ffa
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package de.bluecolored.bluemap.core.map.hires.entity;

import de.bluecolored.bluemap.core.map.TextureGallery;
import de.bluecolored.bluemap.core.map.hires.RenderSettings;
import de.bluecolored.bluemap.core.map.hires.TileModelView;
import de.bluecolored.bluemap.core.resources.ResourcePath;
import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack;
import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part;
import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model;
import de.bluecolored.bluemap.core.util.Key;
import de.bluecolored.bluemap.core.world.Entity;
import de.bluecolored.bluemap.core.world.block.BlockNeighborhood;
import de.bluecolored.bluemap.core.world.mca.entity.AgeEntity;

public class ChickenRenderer extends ResourceModelRenderer {

private final ResourcePath<Model>
CHICKEN_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/chicken/adult"),
CHICKEN_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/chicken/baby");

public ChickenRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) {
super(resourcePack, textureGallery, renderSettings);
}

@Override
public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) {
if (!(entity instanceof AgeEntity chicken)) return;

// choose correct model
ResourcePath<Model> model;
if (chicken.getAge() < 0) {
model = CHICKEN_BABY;
} else {
model = CHICKEN_ADULT;
}

// render chosen model
super.render(entity, block, model.getResource(resourcePack::getModel), TintColorProvider.NO_TINT, tileModel);

// apply part transform
if (part.isTransformed())
tileModel.transform(part.getTransformMatrix());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,16 @@ public interface EntityRendererType extends Keyed, EntityRendererFactory {
EntityRendererType BEE = new Impl(Key.minecraft("bee"), BeeRenderer::new);
EntityRendererType CAT = new Impl(Key.minecraft("cat"), CatRenderer::new);
EntityRendererType OCELOT = new Impl(Key.minecraft("ocelot"), OcelotRenderer::new);
EntityRendererType CHICKEN = new Impl(Key.minecraft("chicken"), ChickenRenderer::new);

Registry<EntityRendererType> REGISTRY = new Registry<>(
DEFAULT,
MISSING,
LLAMA,
BEE,
CAT,
OCELOT
OCELOT,
CHICKEN
);

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,14 @@ public interface EntityType extends Keyed {
EntityType BEE = new Impl(Key.minecraft("bee"), Bee.class);
EntityType CAT = new Impl(Key.minecraft("cat"), Cat.class);
EntityType OCELOT = new Impl(Key.minecraft("ocelot"), Ocelot.class);
EntityType CHICKEN = new Impl(Key.minecraft("chicken"), AgeEntity.class);

Registry<EntityType> REGISTRY = new Registry<>(
LLAMA,
BEE,
CAT,
OCELOT
OCELOT,
CHICKEN
);

Class<? extends Entity> getEntityClass();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"parts": [
{ "model": "minecraft:entity/chicken/adult" }
{ "renderer": "minecraft:chicken" }
]
}

0 comments on commit a238ffa

Please sign in to comment.