Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Визуальная часть CustomMob exp 3.1

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
16 Апр 2026
Сообщения
28
Реакции
0
Выберите загрузчик игры
  1. OptiFine
Всем здравствуйте и до свидания,прикол модуля заменяет текстуру игрока на моба.ss:
Пожалуйста, авторизуйтесь для просмотра ссылки.

package DickRecode.functions.impl.player;

import DickRecode.events.EventTarget;
import DickRecode.events.EventUpdate;
import DickRecode.functions.api.Category;
import DickRecode.functions.api.Function;
import DickRecode.functions.api.FunctionRegister;
import DickRecode.functions.settings.impl.ModeSetting;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;

@FunctionRegister(
name = "CustomMob",
description = "кастомный моб",
type = Category.Player
)
public class Morph extends Function {

public ModeSetting mob = new ModeSetting("Моб",
"None",
"None",
"Creeper", "Zombie", "Skeleton", "Spider", "Enderman",
"Blaze", "Ghast", "Slime", "Magma Cube", "Wither Skeleton",
"Piglin", "Hoglin", "Zoglin", "Pig", "Cow", "Chicken",
"Sheep", "Wolf", "Cat", "Fox", "Rabbit", "Horse"
);

public Morph() {
addSettings(mob);
}

@Override
public void onEnable() {
super.onEnable();
updateMorph();
}

@Override
public void onDisable() {
super.onDisable();
if (mc.player != null) {
mc.player.isMorphed = false;
mc.player.currentMorph = null;
}
}

@EventTarget
public void onUpdate(EventUpdate e) {
if (mc.player == null) return;
updateMorph();
}

private void updateMorph() {
String selected = mob.get();

if (selected.equals("None")) {
mc.player.isMorphed = false;
mc.player.currentMorph = null;
return;
}

if (mc.player.isMorphed && mc.player.currentMorph != null &&
mc.player.currentMorph.getType().getName().getString().equalsIgnoreCase(selected)) {
return;
}

EntityType<?> type = getEntityType(selected);
if (type != null) {
try {
mc.player.currentMorph = (LivingEntity) type.create(mc.world);
if (mc.player.currentMorph != null) {
mc.player.isMorphed = true;
}
} catch (Exception ex) {
System.out.println("Failed to create morph: " + selected);
}
}
}

private EntityType<?> getEntityType(String name) {
switch (name) {
case "Creeper": return EntityType.CREEPER;
case "Zombie": return EntityType.ZOMBIE;
case "Skeleton": return EntityType.SKELETON;
case "Spider": return EntityType.SPIDER;
case "Enderman": return EntityType.ENDERMAN;
case "Blaze": return EntityType.BLAZE;
case "Ghast": return EntityType.GHAST;
case "Slime": return EntityType.SLIME;
case "Magma Cube": return EntityType.MAGMA_CUBE;
case "Wither Skeleton": return EntityType.WITHER_SKELETON;
case "Piglin": return EntityType.PIGLIN;
case "Hoglin": return EntityType.HOGLIN;
case "Zoglin": return EntityType.ZOGLIN;
case "Pig": return EntityType.PIG;
case "Cow": return EntityType.COW;
case "Chicken": return EntityType.CHICKEN;
case "Sheep": return EntityType.SHEEP;
case "Wolf": return EntityType.WOLF;
case "Cat": return EntityType.CAT;
case "Fox": return EntityType.FOX;
case "Rabbit": return EntityType.RABBIT;
case "Horse": return EntityType.HORSE;
default: return null;
}
}
}
Идем в класс ClientPlayerEntity и вставляем на 122 строке это:
public LivingEntity currentMorph = null;
public boolean isMorphed = false;
Потом идем в класс PlayerRenderer и заменяем метод public void render(примерно 65 строка) на этот:
public void render(AbstractClientPlayerEntity entityIn, float entityYaw, float partialTicks, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int packedLightIn) {
if (entityIn instanceof ClientPlayerEntity && ((ClientPlayerEntity)entityIn).isMorphed && ((ClientPlayerEntity)entityIn).currentMorph != null) {
LivingEntity morph = ((ClientPlayerEntity)entityIn).currentMorph;
EntityRenderer renderer = this.renderManager.getRenderer(morph);
if (renderer != null) {
morph.setPosition(entityIn.getPosX(), entityIn.getPosY(), entityIn.getPosZ());

morph.rotationYaw = entityIn.rotationYaw;
morph.prevRotationYaw = entityIn.prevRotationYaw;
morph.renderYawOffset = entityIn.renderYawOffset;
morph.prevRenderYawOffset = entityIn.prevRenderYawOffset;
morph.rotationYawHead = entityIn.rotationYawHead;
morph.prevRotationYawHead = entityIn.prevRotationYawHead;
morph.rotationPitch = entityIn.rotationPitch;
morph.prevRotationPitch = entityIn.prevRotationPitch;

renderer.render(morph, entityYaw, partialTicks, matrixStackIn, bufferIn, packedLightIn);
return;
}
}
// ========================================================

this.setModelVisibilities(entityIn);
super.render(entityIn, entityYaw, partialTicks, matrixStackIn, bufferIn, packedLightIn);
}
 
1776859886463.png
 
Назад
Сверху Снизу