Skip to content

Commit edddc4f

Browse files
committed
Add pig renderer
1 parent d4b818e commit edddc4f

File tree

5 files changed

+67
-3
lines changed

5 files changed

+67
-3
lines changed

core/src/main/java/de/bluecolored/bluemap/core/map/hires/entity/EntityRendererType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public interface EntityRendererType extends Keyed, EntityRendererFactory {
4444
EntityRendererType OCELOT = new Impl(Key.minecraft("ocelot"), OcelotRenderer::new);
4545
EntityRendererType CHICKEN = new Impl(Key.minecraft("chicken"), ChickenRenderer::new);
4646
EntityRendererType FOX = new Impl(Key.minecraft("fox"), FoxRenderer::new);
47+
EntityRendererType PIG = new Impl(Key.minecraft("pig"), PigRenderer::new);
4748

4849
Registry<EntityRendererType> REGISTRY = new Registry<>(
4950
DEFAULT,
@@ -53,7 +54,8 @@ public interface EntityRendererType extends Keyed, EntityRendererFactory {
5354
CAT,
5455
OCELOT,
5556
CHICKEN,
56-
FOX
57+
FOX,
58+
PIG
5759
);
5860

5961
/**
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package de.bluecolored.bluemap.core.map.hires.entity;
2+
3+
import de.bluecolored.bluemap.core.map.TextureGallery;
4+
import de.bluecolored.bluemap.core.map.hires.RenderSettings;
5+
import de.bluecolored.bluemap.core.map.hires.TileModelView;
6+
import de.bluecolored.bluemap.core.resources.ResourcePath;
7+
import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack;
8+
import de.bluecolored.bluemap.core.resources.pack.resourcepack.entitystate.Part;
9+
import de.bluecolored.bluemap.core.resources.pack.resourcepack.model.Model;
10+
import de.bluecolored.bluemap.core.util.Key;
11+
import de.bluecolored.bluemap.core.world.Entity;
12+
import de.bluecolored.bluemap.core.world.block.BlockNeighborhood;
13+
import de.bluecolored.bluemap.core.world.mca.entity.AgeEntity;
14+
15+
public class PigRenderer extends ResourceModelRenderer {
16+
17+
private final ResourcePath<Model>
18+
PIG_ADULT = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/pig/adult"),
19+
PIG_BABY = new ResourcePath<>(Key.MINECRAFT_NAMESPACE, "entity/pig/baby");
20+
21+
public PigRenderer(ResourcePack resourcePack, TextureGallery textureGallery, RenderSettings renderSettings) {
22+
super(resourcePack, textureGallery, renderSettings);
23+
}
24+
25+
@Override
26+
public void render(Entity entity, BlockNeighborhood block, Part part, TileModelView tileModel) {
27+
if (!(entity instanceof AgeEntity pig)) return;
28+
29+
// choose correct model
30+
ResourcePath<Model> model;
31+
if (pig.getAge() < 0) {
32+
model = PIG_BABY;
33+
} else {
34+
model = PIG_ADULT;
35+
}
36+
37+
// render chosen model
38+
super.render(entity, block, model.getResource(resourcePack::getModel), TintColorProvider.NO_TINT, tileModel);
39+
40+
// apply part transform
41+
if (part.isTransformed())
42+
tileModel.transform(part.getTransformMatrix());
43+
}
44+
45+
}

core/src/main/java/de/bluecolored/bluemap/core/world/mca/entity/EntityType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,16 @@ public interface EntityType extends Keyed {
3939
EntityType OCELOT = new Impl(Key.minecraft("ocelot"), Ocelot.class);
4040
EntityType CHICKEN = new Impl(Key.minecraft("chicken"), AgeEntity.class);
4141
EntityType FOX = new Impl(Key.minecraft("fox"), Fox.class);
42+
EntityType PIG = new Impl(Key.minecraft("pig"), Pig.class);
4243

4344
Registry<EntityType> REGISTRY = new Registry<>(
4445
LLAMA,
4546
BEE,
4647
CAT,
4748
OCELOT,
4849
CHICKEN,
49-
FOX
50+
FOX,
51+
PIG
5052
);
5153

5254
Class<? extends Entity> getEntityClass();
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package de.bluecolored.bluemap.core.world.mca.entity;
2+
3+
import de.bluecolored.bluenbt.NBTName;
4+
import lombok.EqualsAndHashCode;
5+
import lombok.Getter;
6+
import lombok.ToString;
7+
8+
@Getter
9+
@EqualsAndHashCode(callSuper = true)
10+
@ToString
11+
@SuppressWarnings("FieldMayBeFinal")
12+
public class Pig extends AgeEntity {
13+
14+
@NBTName("Saddle") boolean hasSaddle;
15+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"parts": [
3-
{ "model": "minecraft:entity/pig/adult" }
3+
{ "renderer": "minecraft:pig" }
44
]
55
}

0 commit comments

Comments
 (0)