Различные модели игроков.

Версия Minecraft
1.7.10
API
Forge
56
1
Всем здравствуйте!
---
Краткое описание вопроса:
Хочу сделать уникальные модели для игрока каждой расы. Но, если игрок меняет расу, то у него все игроки получают такую модель, а другие игроки этого не видят. Ну и соответственно так быть не должно. Каждый игрок должен иметь отдельную модель, которая отличается от моделей других игроков и её видят все игроки.
---
Пока я не понимаю как можно рендерить энтити игрока по разному. Пытался создавать новые классы игрока, но мне это не помогло, т.к почти везде будет вылезать classCastException.
Уже почитал несколько тем на этом форуме про IExtendedEntityProperties, но не могу понять как можно прикрутить его к моей проблеме. Я совсем недавно начал пытаться создавать моды, возможно по этому не хватает знаний. Можете подсказать, как решить данный вопрос? Или скинуть ссылочку на решение подобных проблем?
Заранее спасибо всем кто откликнется!
(P.s я не делаю мод сам с нуля, а переделываю исходники другого мода)
 
Решение
Сохраняешь расу игрока в IEEP, а в общем рендере, ориентируясь на это значение, ставишь нужные модели. Вроде, еще придется делать синхронизацию между игроками через пакеты.
56
1
Вот такой IEEP у меня получился:
Код IEEP:
public class WFMPlayer implements IExtendedEntityProperties {

    public final static String PLAYER_NAME = "WFMPlayer";
    private EntityPlayer player;
    private String faction;

    @Override
    public void init(Entity entity, World world) {
    }


    public WFMPlayer(EntityPlayer player, String faction)
    {
        this.player = player;
        this.faction = faction;
    }

    public static final void register(EntityPlayer player, String faction)
    {
        player.registerExtendedProperties(WFMPlayer.PLAYER_NAME, new WFMPlayer(player, faction));
    }

    public static final WFMPlayer get(EntityPlayer player)
    {
        return (WFMPlayer) player.getExtendedProperties(PLAYER_NAME);
    }

    @Override
    public void saveNBTData(NBTTagCompound compound)
    {
        NBTTagCompound properties = new NBTTagCompound();
        properties.setString("CurrentFaction", this.faction);
        compound.setTag(PLAYER_NAME, properties);

    }

    public String getFaction() {
        return faction;
    }

    @Override
    public void loadNBTData(NBTTagCompound compound)
    {
        NBTTagCompound properties = (NBTTagCompound) compound.getTag(PLAYER_NAME);
        this.faction = properties.getString("CurrentFaction");
        System.out.println("[TUT PROPS] Faction from NBT: " + this.faction);
    }
}
 
56
1
Возникла ещё одна проблема. С превращением в моба(Когда запускаю мод из среды разработки) проблем нет, всё работает хорошо. Но, когда захожу в мультиплеер по локальной сети(У меня и брата ноутбуки соединены напрямую, поэтому мы можем зайти в мир, который просто открыли для сети), тут вылезает две проблемы:
1. Модель игрока, который превратился в моба видна только ему, хотя я вроде бы использовал sendToAll когда отправлял пакет.
2. Когда в его поле зрения находится другой игрок, и он кликает или жмет шифт, то эти действия воспроизводятся не у него, а у игрока, которого он видит.
В чем тут может быть дело?
 
Сверху