Войти или зарегистрироваться

Туториал [1.7.10-1.8] [Vanilla + Forge] Minecraft Coder Pack. Как сделать красивые прозрачные кнопки.

Упс, проглядел. А код вот:
Java:
if ((double)this.updateCounter < 1.0E-4D)
{
            this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
            this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
            this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
            this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
            this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
}
else
{
            this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
            this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
}
Java:
float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F);
f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32);
GL11.glScalef(f1, f1, f1);
this.drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256);
Спасибо, сейчас попробую)
Упс, проглядел. А код вот:
Java:
if ((double)this.updateCounter < 1.0E-4D)
{
            this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
            this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
            this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
            this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
            this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
}
else
{
            this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
            this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
}
Java:
float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F);
f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32);
GL11.glScalef(f1, f1, f1);
this.drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256);
А не подскажете, как сплеши перевернуть? (Изменить угол наклона)
Спасибо, сейчас попробую)

А не подскажете, как сплеши перевернуть? (Изменить угол наклона)
Сам разобрался, выше есть строчка:
Код:
        GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
Там меняем -20.0F на 0 и всё
 
EvilEnginer или другие пользователи форума.
Подскажите пожалуйста где можно найти BatterFonts под последний optifine ?? версия 1.7.10
 
Последнее редактирование:
Работает?) Я вообще беттер фонтс переписал в сам форж)
 
В 1.8 появилась новая кнопка - Блокировать мировую сложность. Для нее тоже надо сделать "Aero" кнопки. Вот то, как я это замутил:

Vanilla 1.8
Вся работа происходит в классе GuiLockIconButton.java

Добавляем новый импорт - нужен для загрузки иконки.
Java:
import net.minecraft.util.ResourceLocation;

Теперь уже в теле класса добавляем:
Java:
protected static final ResourceLocation buttonTextures = new ResourceLocation("textures/gui/lock.png");
В папке 1.8.jar/assets/minecraft/textures/gui/ создаем картинку с именем lock.png (лучше скопировать widgets.png и перерисовать :) кнопку замка)

Находим метод
Java:
public void drawButton
Находим в нем строчку
Java:
mc.getTextureManager().bindTexture(GuiButton.buttonTextures);
и заменяем ее на:
Java:
mc.getTextureManager().bindTexture(GuiLockIconButton.buttonTextures);
Иконка переназначена!

Находим строчку
Java:
this.drawTexturedModalRect(this.xPosition, this.yPosition, var5.func_178910_a(), var5.func_178912_b(), this.width, this.height);
и после нее пишем:
Java:
      if (var5 == GuiLockIconButton.Icon.LOCKED_DISABLED || var5 == GuiLockIconButton.Icon.LOCKED_HOVER || var5 == GuiLockIconButton.Icon.LOCKED)
       {
         drawBorderedRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height, 1, 0x90FFFFFF, 0x90000000);
       }
       else
       { 
         if (var4)
         {
           drawBorderedRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height, 1, 0x90FFFFFF, 0x90000000);
         }
         else
         {
           drawBorderedRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height, 1, 0x90FFFFFF, 0x60000000);
         }
       }

Все :)

Скриншоты:
1.17fb7.png

20b5e0.png


P.S. Вот мой lock.png
 
Последнее редактирование:
В 1.8 появилась новая кнопка - Блокировать мировую сложность. Для нее тоже надо сделать "Aero" кнопки. Вот то, как я это замутил:
Сяп за фикс MrGiperCreeper - тема обновлена, запостил линк на фикс. Сам фикс целиком добавить не могу - достиг лимита знаков в теме.
 
== ERRORS FOUND in JAVA CODE ==

src\minecraft\net\minecraft\client\gui\GuiScreenOptionsSounds.java:121: error: c
annot find symbol
this.drawBorderedRect(this.xPosition + (int)(this.sliderValue *
(float)(this.width - 8)), this.yPosition, this.xPosition + (int)(this.sliderValu
e * (float)(this.width - 8)) + 8, this.yPosition + this.height, 1, 0x90FFFFFF, 0
x90000000);
^

symbol: variable sliderValue
src\minecraft\net\minecraft\client\gui\GuiScreenOptionsSounds.java:121: error: c
annot find symbol
this.drawBorderedRect(this.xPosition + (int)(this.sliderValue *
(float)(this.width - 8)), this.yPosition, this.xPosition + (int)(this.sliderValu
e * (float)(this.width - 8)) + 8, this.yPosition + this.height, 1, 0x90FFFFFF, 0
x90000000);

^

symbol: variable sliderValue
2 errors
==================
Что делать подскажите?
 
Ошибка: переменная sliderValue не существует. Решение: отмени замену и посмотри название ванильной переменной (что-то типа field_что-то). Замени sliderValue на field_что-то
 
Вот исправленный метод рендера рамки. Теперь в нижних углах пиксели не выделяются на общем фоне (например, рамка серая, а 2 нижних угловых пиксели белые).
Java:
public void drawBorderedRect(int x, int y, int x1, int y1, int size, int borderC, int insideC)
{
    drawRect(x + size, y + size, x1 - size, y1 - size, insideC);
    drawRect(x + size, y + size, x1, y, borderC);
    drawRect(x, y, x + size, y1 - 1, borderC);
    drawRect(x1, y1 - 1, x1 - size, y + size, borderC);
    drawRect(x, y1 - size, x1, y1, borderC);
}
 
Последнее редактирование:
Кодерпак ведь ставится на чистую, немодифицированную версию клиента. В шапке есть код для майна с форджем. Т.е. если я в дальнейшем хочу установить в клиент фордж, мне нужно вставлять этот код?
 
Кодерпак ведь ставится на чистую, немодифицированную версию клиента. В шапке есть код для майна с форджем. Т.е. если я в дальнейшем хочу установить в клиент фордж, мне нужно вставлять этот код?
Если используется майн с Forge, то тебе нужно использовать ForgeGradle который можно скачать с http://files.minecraftforge.net/ там ссылки src есть - это то что нужно.
 
Последнее редактирование:
Если используется майн с Forge, то тебе нужно использовать ForgeGradle который можно скачать с http://files.minecraftforge.net/ там ссылки src есть - это то что нужно.
Спасибо, уже прочитал про него. Подскажите еще, я пока хочу попробовать на ванильном майне подредактировать исходники. Запустил decompile.bat, выбрал рабочую область в эклипсе, все есть. Но теперь эклипс выдает ошибки.
Не находит класс Start, хотя я вижу его в default package, из-за чего не могу запустить и проверить это под эклипсом. Клиент был немодифицированный, всего три папки лежало в .minecraft, как и сказано в шапке.
 

Вложения:

  • myScreenshit_001_2015-01_06_02_18_47.png
    myScreenshit_001_2015-01_06_02_18_47.png
    27,4 КБ · Просмотры: 35
Назад
Верх