Привязка текстуры

Версия Minecraft
1.12.2

sk9zist :l

Исправился
981
18
158
Нужно отрисовать на координатах моего блока окружность с кастомной текстурой так, чтобы она не растягивалась и не искажалась в принципе, как ее отрисовывать?
 
Так рендер то останется таким же. Чтобы привязать в блоку, просто бери координаты этого блока и рисуй там. GLStateManager.translate(x, y, z)
Окей. Просто всё, что я знаю на счёт этого всего, так это то - что TileEntity нужно создавать в классе блока для него. (Но тайл энтити только если нужна анимированная картинка)
 
Тайл необязательно для анимированной картинки. Но тайл больше нужен, когда блок интерактивный. Если у тебя он таковой и есть, то его и используй.
Если нет, то отлавливай событие рендера и там рисуй. Какое, честно не знаю) :)
 
Включаешь прозрачность, настраиваешь альфу
Сохраняешь координаты
Меняешь координаты на место, где должна быть окружность
Рисуешь квадрат с текстурой или любое другое что взбредёт в голову
Восстанавливаешь координаты
Отключаешь прозрачность


А как получить координаты моего блока в эвенте:
Ну, можешь попробовать создать лист с коордами блоков и по нему рендерить ;)

Посмотри рендер снежка

Как привязать текстуру? Смотри рендер снежка
Как поворачивать EntityFX к игроку? Смотри рендер снежка
Как сделать бросаемый предмет? Смотри код снежка
Как сделать снежок? Смотри снежок

Снежок - универсальная помощь мододелу!
 
Последнее редактирование:
Рисуешь квадрат с текстурой или любое другое что взбредёт в голову
Я ж в начале сказал, окружность мне нада. А как текстурка прилепить? Я указал ResourceLocation на textures/gui/0.png (или в какую папку надо пихать текстуры такого типа)
 
Я ж в начале сказал, окружность мне нада. А как текстурка прилепить? Я указал ResourceLocation на textures/gui/0.png (или в какую папку надо пихать текстуры такого типа)
Квадрат есть квадрат, я сказал врубить альфу для того, чтобы прозрачные детали не были белыми. Просто лепишь тектуру круга. Для прилепления текстуры пишешь это:

Прилепление текстуры:
//В классе:
private ResourceLocation texture = new ResourceLocation(Main.MODID, "yourfolderwithtexture/yourtexture.png");
/*
Первый аргумент - id твоего мода, его желательно хранить в константе во избежание последующего геморроя. Второй аргумент - текстура, путь начинается с assets/твойmodid/. Допустим, надо загрузить текстуру круга (circle.png) в папке "custom" для мода с modid "test". Пишешь так: new ResourceLocation("test", "custom/circle.png");
Грубо говоря, часть "assets/modid/" подставляется автоматически, её писать не надо.
*/


//Далее, перед самим рендером пишешь это:
Minecraft.getMinecraft().getTextureManager().bindTexture(texture); //Аргументом является ResourceLocation.
 
Последнее редактирование:
Прилепление текстуры:
Я примерно так и написал уже.
private ResourceLocation texture =
Только тут надо static делать.
У меня так:
Java:
private static ResourceLocation texture = new ResourceLocation(Main.MODID + ":textures/gui/0.png");
~~
Просто лепишь тектуру круга.
Можно просто текстуру круга забиндить? А я рисовал окружность тесселятором...
~~
Сейчас у меня вот такой код:
евенты:
GlStateManager.pushMatrix();
GlStateManager.enableAlpha();
GlStateManager.translate(-7, 72, 10);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
GlStateManager.disableAlpha();
GlStateManager.popMatrix();
Но текстура не рендериться. Её нет просто на координатах -7 72 10. Как быть?
(сам эвент рабочий, в консоль выводит тестовое мсг)
 
Последнее редактирование:
Только тут надо static делать.
Ну да. И почему у тебя текстура находится в папке текстур графического интерфейса?


Но текстура не рендериться. Её нет просто на координатах -7 72 10. Как быть?
А что ты ожидаешь от того, что просто сместишь матрицу и забиндишь текстуру? Надо рисовать квадрат с текстурой через тесселятор или напрямую через GL (для настоящих ценителей).
 
в папке текстур графического интерфейса?
Так я ж говорю. Я не знаю куда пихать кастомные текстуры, которые надо в мире рендерить (в какую папку). Я просто от себя какую-то папку написал и туда текстуру засунул, указал.

~~
Просто вот так нельзя наверное?
Java:
":textures/0.png"
 
Поменял путь на:
Java:
private static ResourceLocation texture = new ResourceLocation(Main.MODID + ":textures/my/0.png");
Но всё равно в мире не видно. Ошибок никаких в консоли нет.
 
квадрат рисуешь с текстурой?
Да уже и квадрат пробовал.
Вот весь код:

Java:
@SubscribeEvent
    public static void WorldLastEvent(RenderWorldLastEvent e)
    {
        GlStateManager.pushMatrix();
        GlStateManager.enableAlpha();
        GlStateManager.translate(-7, 72, 10);
        Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
        GlStateManager.disableAlpha();
        GlStateManager.popMatrix();
    }
Попробовал поменять местами, т.к. частая проблема, но не помогло:

Java:
GlStateManager.pushMatrix();
        Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
        GlStateManager.enableAlpha();
        GlStateManager.translate(-7, 72, 10);
        GlStateManager.disableAlpha();
        GlStateManager.popMatrix();
 
Последнее редактирование:
Назад
Сверху