- 61
- 1
- 0
http://forum.mcmodding.ru/%D0%A2%D0%B5%D0%BC%D0%B0-%D0%A2%D1%83%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB-%D0%9C%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC-%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B0%D0%BD%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B3%D1%83%D0%B8-%D0%B2-%D0%B8%D0%B3%D1%80%D0%B5
Туториал маленький и очень простой, но думаю, что кому-то да пригодится.(Переделано)
Весь урок будет основываться на событиях. Если вы не знаете что это такое и как ими пользоваться - загляните сюда .
Итак, начнем.
Для начала, создадим класс с именем ChangeGUIPosition.
Напишем в него это:
Код:
Код:
@SubscribeEvent
public void render(RenderGameOverlayEvent.Pre event){
if(event.type == ElementType.FOOD){
GL11.glPushMatrix();
GL11.glTranslatef(0.0F, -10.0F, 0.0F);
}
}
@SubscribeEvent
public void render(RenderGameOverlayEvent.Post event){
if(event.type == ElementType.FOOD){
GL11.glPopMatrix();
}
}
Вместо ElementType.FOOD пишите любое другое гуи.
Пример:
Код:
ElementType.FOOD - Индикатор еды
ElementType.ARMOR - Индикатор брони
ElementType.BOSSHEALTH - Индикатор здоровья у боссов
ElementType.HOTBAR - Положение быстрого инвентаря
ElementType.CHAT - Положение чата
ElementType.PLAYER_LIST - Положение списка игроков
Здесь пишите координаты, на сколько и куда хотите сместить по x, y, z: GL11.glTranslatef(0.0F, -10.0F, 0.0F).
Вот и все.
Регистрируем Client Proxy в главном классе : //Могу ошибаться , если что поправьте
Код:
Код:
@SidedProxy(clientSide = "com.name.mod.proxy.ClientProxy")
public static ClientProxy proxy;
@Instance("Название мода")
public static Mod instance;
public static final Logger logger = LogManager.getLogger(MODID); + ведение логов
@EventHandler
public void preLoad(FMLPreInitializationEvent event){
proxy.preInit();
}
Осталось только зарегистрировать наш ивент в Client Proxy:
Код:
Код:
public void init() {
MinecraftForge.EVENT_BUS.register(new ChangeGUIPosition());
}
Поворот - GL11.glRotatef(angle, x, y, z);
Отмена - event.setCanceled(true);
Отдельная благодарность , тем кто помогает игрокам.