Skip to content

Commit

Permalink
Add Bigger baby villager heads (Close #354)
Browse files Browse the repository at this point in the history
  • Loading branch information
juancarloscp52 committed Aug 10, 2024
1 parent 6fc92c9 commit d1d5de1
Show file tree
Hide file tree
Showing 15 changed files with 110 additions and 8 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ BedrockIfy is a fabric Minecraft Mod that implements some useful Minecraft Bedro
- Disable flying momentum (Drift) in creative mode.
- Stop elytra flying by pressing space on air.
- Bedrock bonemeal functionality for flowers and sugar cane.
- Bigger baby villager heads.

Bedrockify also includes "eye-candy" features like the ability use the rotating title screen background in all option screens instead of the boring vanilla dirt background.
All Features are customizable through the In-Game BedrockIfy Settings Menu!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public enum ButtonPosition {
public boolean sheepColors = true;
public boolean hideEditionBranding = false;
public boolean hotBarOverhang = true;
public boolean babyVillagerHeads = true;

public boolean isPickupAnimationsEnabled() {
return pickupAnimations;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ public Screen getConfigScreen(Screen parent){
*
*/
visualImprovements.addEntry(entryBuilder.startBooleanToggle(Text.translatable("bedrockify.options.fishingBobber3D"), settingsClient.fishingBobber3D).setDefaultValue(true).setSaveConsumer(newValue -> settingsClient.fishingBobber3D=newValue).build());
visualImprovements.addEntry(entryBuilder.startBooleanToggle(Text.translatable("bedrockify.options.babyVillagerHeads"), settingsClient.babyVillagerHeads).setDefaultValue(true).setSaveConsumer(newValue -> settingsClient.babyVillagerHeads=newValue).build());
visualImprovements.addEntry(entryBuilder.startSelector(Text.translatable("bedrockify.options.idleAnimation"), new Float []{0.0f,0.5f,1.0f,1.5f,2.0f,2.5f,3.0f,4.0f}, settingsClient.idleAnimation).setDefaultValue(1.0f).setNameProvider((value)-> Text.literal("x"+ value)).setSaveConsumer((newValue)-> settingsClient.idleAnimation=newValue).build());
visualImprovements.addEntry(entryBuilder.startBooleanToggle(Text.translatable("bedrockify.options.eatingAnimations"), settingsClient.eatingAnimations).setDefaultValue(true).setSaveConsumer(newValue -> settingsClient.eatingAnimations=newValue).build());
visualImprovements.addEntry(entryBuilder.startBooleanToggle(Text.translatable("bedrockify.options.bedrockShading"), settingsClient.bedrockShading).setTooltip(wrapLines(Text.translatable("bedrockify.options.bedrockShading.tooltip"))).setDefaultValue(true).setSaveConsumer(newValue -> {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package me.juancarloscp52.bedrockify.mixin.client.features.babyVillagerHeads;

import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.client.render.entity.model.SinglePartEntityModel;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(SinglePartEntityModel.class)
public abstract class SinglePartEntityModelMixin <E extends Entity> extends EntityModel<E> {

@Inject(method = "render", at = @At("HEAD"), cancellable = true)
protected void injectCustomBabyRender(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, int color, CallbackInfo ci){
//Empty injection to be modified in child mixin (see https://www.fabricmc.net/wiki/tutorial:mixinheritance)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package me.juancarloscp52.bedrockify.mixin.client.features.babyVillagerHeads;

import com.google.common.collect.ImmutableList;
import me.juancarloscp52.bedrockify.client.BedrockifyClient;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.entity.model.EntityModelPartNames;
import net.minecraft.client.render.entity.model.VillagerResemblingModel;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(VillagerResemblingModel.class)
public abstract class VillagerResemblingModelMixin<T extends Entity> extends SinglePartEntityModelMixin<T> {

@Shadow @Final private ModelPart rightLeg;
@Shadow @Final private ModelPart leftLeg;
@Shadow @Final private ModelPart head;
@Unique
public ModelPart body;
@Unique
public ModelPart arms;

@Inject(method = "<init>", at=@At("RETURN"))
private void ctr(ModelPart root, CallbackInfo ci){
this.body = root.getChild(EntityModelPartNames.BODY);
this.arms = root.getChild(EntityModelPartNames.ARMS);
}

//Override parent injection with baby villager renderer. For more information see: https://www.fabricmc.net/wiki/tutorial:mixinheritance
@Override
protected void injectCustomBabyRender(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, int color, CallbackInfo ci) {
if(this.child && BedrockifyClient.getInstance().settings.babyVillagerHeads){
// Render scaled head.
float scale = 1.5f;
matrices.push();
matrices.scale(scale,scale,scale);
this.getHeadParts().forEach(modelPart -> modelPart.render(matrices,vertices,light,overlay,color));
matrices.pop();

// Render rest of the body.
this.getBodyParts().forEach(modelPart -> modelPart.render(matrices,vertices,light,overlay,color));
ci.cancel();
}
}

@Unique
public Iterable<ModelPart> getHeadParts() {
return ImmutableList.of(this.head);
}

@Unique
protected Iterable<ModelPart> getBodyParts() {
return ImmutableList.of(this.body, this.rightLeg, this.leftLeg, this.arms);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public class MixinFeatureManager {
features.put("client.features.hudOpacity.appleskin", true);
features.put("client.features.hudOpacity.detailArmorBar", true);
features.put("client.features.editionBranding", true);
features.put("client.features.babyVillagerHeads", true);

}

Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/bedrockify/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
"bedrockify.options.elytraStop": "Elytra Flight Cancelling:",
"bedrockify.options.hudOpacity": "Hud Opacity:",
"bedrockify.options.fishingBobber3D": "3D Fishing Bobber:",
"bedrockify.options.babyVillagerHeads": "Bigger Baby Villager Heads:",
"bedrockify.options.elytraStop.tooltip": "Press space while flying with elytra to stop flying mid air.",
"bedrockify.options.bedrockCauldron": "Bedrock Cauldron functionality:",
"bedrockify.options.bedrockCauldron.tooltip": "Toggles Bedrock Cauldron functionality, enabling cauldrons to hold tinted water and potions. Disabling this option won't remove cauldrons holding the new special liquids that already exist in the world.",
Expand Down
4 changes: 3 additions & 1 deletion src/main/resources/assets/bedrockify/lang/es_ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"bedrockify.options.withBackground": "Con fondo",
"bedrockify.options.settings": "Ajustes de BedrockIfy",
"bedrockify.options.screenSafeArea": "Área segura de pantalla:",
"bedrockify.options.HotBarOverhang": "Mostrar sobresaliente del selector de hotbar:",
"bedrockify.options.ignoreBorder": "Overlay ignorará el área segura:",
"bedrockify.options.coordinatesPosition": "Posición del texto de coordenadas:",
"bedrockify.options.showCoordinates": "Mostrar coordenadas:",
Expand Down Expand Up @@ -75,6 +76,7 @@
"bedrockify.options.elytraStop.tooltip": "Presiona espacio para parar el vuelo con élitros estando en el aire.",
"bedrockify.options.hudOpacity": "Opacidad del HUD:",
"bedrockify.options.fishingBobber3D": "Cebo 3D al pescar:",
"bedrockify.options.babyVillagerHeads": "Cabezas grandes para aldeanos bebés:",
"bedrockify.options.bedrockCauldron": "Usar Caldero de Bedrock Edition:",
"bedrockify.options.bedrockCauldron.tooltip": "Activa la funcionalidad de calderos como Bedrock Edition, esto permite a los calderos contener agua tintada y pociones. Desactivar esta opcion no eliminará los calderos que contengan estos liquidos que existan ya en el mundo.",
"bedrockify.options.sheepcolors": "Colores en ovejas esquiladas:",
Expand All @@ -89,7 +91,7 @@
"bedrockify.loadingTips.9": "¡Las camas son geniales! Fabrica una para pasar la noche y establecer tu punto de regeneración.",
"bedrockify.loadingTips.10": "Ten cuidado cuando nades. Si pasas demasiado tiempo bajo el agua, te quedarás sin aire.",
"bedrockify.loadingTips.11": "El modo supervivencia tiene 4 niveles de dificultad diferentes: pacífica, fácil, normal y difícil. ¡También puedes jugar en el modo creativo y conseguir recursos infinitos!",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§a§b§r §f§k§a§b§r",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§lsecret§r §f§k§lstuff",
"bedrockify.loadingTips.13": "¡Los gólems de hierro lucharán por ti!",
"bedrockify.loadingTips.14": "Dale un hueso a un lobo para domesticarlo. Luego, podrás pedirle que se siente o te siga.",
"bedrockify.loadingTips.16": "Recoge cuero de las vacas y utilízalo para fabricar armaduras y libros.",
Expand Down
4 changes: 3 additions & 1 deletion src/main/resources/assets/bedrockify/lang/es_cl.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"bedrockify.options.withBackground": "Con fondo",
"bedrockify.options.settings": "Ajustes de BedrockIfy",
"bedrockify.options.screenSafeArea": "Área segura de pantalla:",
"bedrockify.options.HotBarOverhang": "Mostrar sobresaliente del selector de hotbar:",
"bedrockify.options.ignoreBorder": "Overlay ignorará el área segura:",
"bedrockify.options.coordinatesPosition": "Posición del texto de coordenadas:",
"bedrockify.options.showCoordinates": "Mostrar coordenadas:",
Expand Down Expand Up @@ -75,6 +76,7 @@
"bedrockify.options.elytraStop.tooltip": "Presiona espacio para parar el vuelo con élitros estando en el aire.",
"bedrockify.options.hudOpacity": "Opacidad del HUD:",
"bedrockify.options.fishingBobber3D": "Cebo 3D al pescar:",
"bedrockify.options.babyVillagerHeads": "Cabezas grandes para aldeanos bebés:",
"bedrockify.options.bedrockCauldron": "Usar Caldero de Bedrock Edition:",
"bedrockify.options.bedrockCauldron.tooltip": "Activa la funcionalidad de calderos como Bedrock Edition, esto permite a los calderos contener agua tintada y pociones. Desactivar esta opcion no eliminará los calderos que contengan estos liquidos que existan ya en el mundo.",
"bedrockify.options.sheepcolors": "Colores en ovejas esquiladas:",
Expand All @@ -89,7 +91,7 @@
"bedrockify.loadingTips.9": "¡Las camas son geniales! Fabrica una para pasar la noche y establecer tu punto de regeneración.",
"bedrockify.loadingTips.10": "Ten cuidado cuando nades. Si pasas demasiado tiempo bajo el agua, te quedarás sin aire.",
"bedrockify.loadingTips.11": "El modo supervivencia tiene 4 niveles de dificultad diferentes: pacífica, fácil, normal y difícil. ¡También puedes jugar en el modo creativo y conseguir recursos infinitos!",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§a§b§r §f§k§a§b§r",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§lsecret§r §f§k§lstuff",
"bedrockify.loadingTips.13": "¡Los gólems de hierro lucharán por ti!",
"bedrockify.loadingTips.14": "Dale un hueso a un lobo para domesticarlo. Luego, podrás pedirle que se siente o te siga.",
"bedrockify.loadingTips.16": "Recoge cuero de las vacas y utilízalo para fabricar armaduras y libros.",
Expand Down
4 changes: 3 additions & 1 deletion src/main/resources/assets/bedrockify/lang/es_ec.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"bedrockify.options.withBackground": "Con fondo",
"bedrockify.options.settings": "Ajustes de BedrockIfy",
"bedrockify.options.screenSafeArea": "Área segura de pantalla:",
"bedrockify.options.HotBarOverhang": "Mostrar sobresaliente del selector de hotbar:",
"bedrockify.options.ignoreBorder": "Overlay ignorará el área segura:",
"bedrockify.options.coordinatesPosition": "Posición del texto de coordenadas:",
"bedrockify.options.showCoordinates": "Mostrar coordenadas:",
Expand Down Expand Up @@ -75,6 +76,7 @@
"bedrockify.options.elytraStop.tooltip": "Presiona espacio para parar el vuelo con élitros estando en el aire.",
"bedrockify.options.hudOpacity": "Opacidad del HUD:",
"bedrockify.options.fishingBobber3D": "Cebo 3D al pescar:",
"bedrockify.options.babyVillagerHeads": "Cabezas grandes para aldeanos bebés:",
"bedrockify.options.bedrockCauldron": "Usar Caldero de Bedrock Edition:",
"bedrockify.options.bedrockCauldron.tooltip": "Activa la funcionalidad de calderos como Bedrock Edition, esto permite a los calderos contener agua tintada y pociones. Desactivar esta opcion no eliminará los calderos que contengan estos liquidos que existan ya en el mundo.",
"bedrockify.options.sheepcolors": "Colores en ovejas esquiladas:",
Expand All @@ -89,7 +91,7 @@
"bedrockify.loadingTips.9": "¡Las camas son geniales! Fabrica una para pasar la noche y establecer tu punto de regeneración.",
"bedrockify.loadingTips.10": "Ten cuidado cuando nades. Si pasas demasiado tiempo bajo el agua, te quedarás sin aire.",
"bedrockify.loadingTips.11": "El modo supervivencia tiene 4 niveles de dificultad diferentes: pacífica, fácil, normal y difícil. ¡También puedes jugar en el modo creativo y conseguir recursos infinitos!",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§a§b§r §f§k§a§b§r",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§lsecret§r §f§k§lstuff",
"bedrockify.loadingTips.13": "¡Los gólems de hierro lucharán por ti!",
"bedrockify.loadingTips.14": "Dale un hueso a un lobo para domesticarlo. Luego, podrás pedirle que se siente o te siga.",
"bedrockify.loadingTips.16": "Recoge cuero de las vacas y utilízalo para fabricar armaduras y libros.",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/bedrockify/lang/es_es.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
"bedrockify.options.elytraStop.tooltip": "Presiona espacio para parar el vuelo con élitros estando en el aire.",
"bedrockify.options.hudOpacity": "Opacidad del HUD:",
"bedrockify.options.fishingBobber3D": "Cebo 3D al pescar:",
"bedrockify.options.babyVillagerHeads": "Cabezas grandes para aldeanos bebés:",
"bedrockify.options.bedrockCauldron": "Usar Caldero de Bedrock Edition:",
"bedrockify.options.bedrockCauldron.tooltip": "Activa la funcionalidad de calderos como Bedrock Edition, esto permite a los calderos contener agua tintada y pociones. Desactivar esta opcion no eliminará los calderos que contengan estos liquidos que existan ya en el mundo.",
"bedrockify.options.sheepcolors": "Colores en ovejas esquiladas:",
Expand Down
4 changes: 3 additions & 1 deletion src/main/resources/assets/bedrockify/lang/es_mx.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"bedrockify.options.withBackground": "Con fondo",
"bedrockify.options.settings": "Ajustes de BedrockIfy",
"bedrockify.options.screenSafeArea": "Área segura de pantalla:",
"bedrockify.options.HotBarOverhang": "Mostrar sobresaliente del selector de hotbar:",
"bedrockify.options.ignoreBorder": "Overlay ignorará el área segura:",
"bedrockify.options.coordinatesPosition": "Posición del texto de coordenadas:",
"bedrockify.options.showCoordinates": "Mostrar coordenadas:",
Expand Down Expand Up @@ -75,6 +76,7 @@
"bedrockify.options.elytraStop.tooltip": "Presiona espacio para parar el vuelo con élitros estando en el aire.",
"bedrockify.options.hudOpacity": "Opacidad del HUD:",
"bedrockify.options.fishingBobber3D": "Cebo 3D al pescar:",
"bedrockify.options.babyVillagerHeads": "Cabezas grandes para aldeanos bebés:",
"bedrockify.options.bedrockCauldron": "Usar Caldero de Bedrock Edition:",
"bedrockify.options.bedrockCauldron.tooltip": "Activa la funcionalidad de calderos como Bedrock Edition, esto permite a los calderos contener agua tintada y pociones. Desactivar esta opcion no eliminará los calderos que contengan estos liquidos que existan ya en el mundo.",
"bedrockify.options.sheepcolors": "Colores en ovejas esquiladas:",
Expand All @@ -89,7 +91,7 @@
"bedrockify.loadingTips.9": "¡Las camas son geniales! Fabrica una para pasar la noche y establecer tu punto de regeneración.",
"bedrockify.loadingTips.10": "Ten cuidado cuando nades. Si pasas demasiado tiempo bajo el agua, te quedarás sin aire.",
"bedrockify.loadingTips.11": "El modo supervivencia tiene 4 niveles de dificultad diferentes: pacífica, fácil, normal y difícil. ¡También puedes jugar en el modo creativo y conseguir recursos infinitos!",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§a§b§r §f§k§a§b§r",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§lsecret§r §f§k§lstuff",
"bedrockify.loadingTips.13": "¡Los gólems de hierro lucharán por ti!",
"bedrockify.loadingTips.14": "Dale un hueso a un lobo para domesticarlo. Luego, podrás pedirle que se siente o te siga.",
"bedrockify.loadingTips.16": "Recoge cuero de las vacas y utilízalo para fabricar armaduras y libros.",
Expand Down
4 changes: 3 additions & 1 deletion src/main/resources/assets/bedrockify/lang/es_uy.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"bedrockify.options.withBackground": "Con fondo",
"bedrockify.options.settings": "Ajustes de BedrockIfy",
"bedrockify.options.screenSafeArea": "Área segura de pantalla:",
"bedrockify.options.HotBarOverhang": "Mostrar sobresaliente del selector de hotbar:",
"bedrockify.options.ignoreBorder": "Overlay ignorará el área segura:",
"bedrockify.options.coordinatesPosition": "Posición del texto de coordenadas:",
"bedrockify.options.showCoordinates": "Mostrar coordenadas:",
Expand Down Expand Up @@ -75,6 +76,7 @@
"bedrockify.options.elytraStop.tooltip": "Presiona espacio para parar el vuelo con élitros estando en el aire.",
"bedrockify.options.hudOpacity": "Opacidad del HUD:",
"bedrockify.options.fishingBobber3D": "Cebo 3D al pescar:",
"bedrockify.options.babyVillagerHeads": "Cabezas grandes para aldeanos bebés:",
"bedrockify.options.bedrockCauldron": "Usar Caldero de Bedrock Edition:",
"bedrockify.options.bedrockCauldron.tooltip": "Activa la funcionalidad de calderos como Bedrock Edition, esto permite a los calderos contener agua tintada y pociones. Desactivar esta opcion no eliminará los calderos que contengan estos liquidos que existan ya en el mundo.",
"bedrockify.options.sheepcolors": "Colores en ovejas esquiladas:",
Expand All @@ -89,7 +91,7 @@
"bedrockify.loadingTips.9": "¡Las camas son geniales! Fabrica una para pasar la noche y establecer tu punto de regeneración.",
"bedrockify.loadingTips.10": "Ten cuidado cuando nades. Si pasas demasiado tiempo bajo el agua, te quedarás sin aire.",
"bedrockify.loadingTips.11": "El modo supervivencia tiene 4 niveles de dificultad diferentes: pacífica, fácil, normal y difícil. ¡También puedes jugar en el modo creativo y conseguir recursos infinitos!",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§a§b§r §f§k§a§b§r",
"bedrockify.loadingTips.12": "El mundo de Minecraft nunca dejará de sorprenderte. Encontrarás un montón de animales, plantas e incluso §f§k§lsecret§r §f§k§lstuff",
"bedrockify.loadingTips.13": "¡Los gólems de hierro lucharán por ti!",
"bedrockify.loadingTips.14": "Dale un hueso a un lobo para domesticarlo. Luego, podrás pedirle que se siente o te siga.",
"bedrockify.loadingTips.16": "Recoge cuero de las vacas y utilízalo para fabricar armaduras y libros.",
Expand Down
Loading

0 comments on commit d1d5de1

Please sign in to comment.