LINUX.ORG.RU
ФорумTalks

Поговорим о майнтесте и его «движке»

 , , ,


0

4

Собственно сюда я буду писать всякие интересные факты, которые можно узнать в попытках запилить мод под эту игру (пусть будет минибложек, у мертвопрога есть, у метапрога есть, теперь и у меня есть). Ну для затравочки начну с самого интересного:

1. Майнтест не умеет в альфа канал. Точнее умеет, но только для воды. В остальных случаях блок должен быть абсолютно прозрачным или абсолютно непрозрачным. Т.е. никаких вам полупрозрачностей (привет окрашенному стеклу и всяким интересным эффектам, например попытке запила инструмента, который бы показывал какие-то мультиблочные штуки, как их надо строить). А всё потому что разработчики основного движка не осилили z-буффер. Помогать им я не намерен, когда всё настолько плохо что нет полноценного z-буффера, то надо переписывать всё с нуля, а разработчиков бить по пальцам, чтобы больше не говнокодили. Такие дела.

2. Система крафта говно. Нельзя взаимодействовать с метадатой при крафте, вместо этого захардкожена починка инструмента, та-дам в коде на крестах в основном движке игры.

ЗЫ

Ребят, если вы когда-то кодите, пожалуйста, думайте головой как это делать.

★★★★★

Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

О чём и речь.

Ну нет же. Речь ты вёл об отсутствии полупрозрачности вообще. И какие-то бредни про отсутствие z-буфера. И ещё что-то про недокументированные фичи, хотя на странице https://dev.minetest.net/minetest.register_node#Node_definition чёрным по белому написано про параметры use_texture_alpha и alpha. Ну и конечно про «бить по пальцам».

Возможно, ты имел в виду что-то другое, и это всё были на самом деле загадки и отсылки. Ну, знаешь, для избранных. Чтобы всякий плебс не догадался. И мы провалили тест.

i-rinat ★★★★★
()

2 не понял про что а 1 я бы подумал головой и именно так бы и сделал - ценой поддержки шашечки сомнительной ценности можно сильно упростить и ускорить движок, как в том месте где ищутся видимые блоки, так и во время рендеринга где минимизируется overdraw.

slovazap ★★★★★
()
Ответ на: комментарий от i-rinat

Ага, в ноде регистрируется, а в панели и инвентаре вообще нет, для панели почему-то не годится, хотя может ещё какие-то параметры нужны, но скорее всего ещё 1 текстурку надо рисовать.

peregrine ★★★★★
() автор топика
Ответ на: комментарий от peregrine

Ну кагбэ все треды с этим тегом долго не жили.

Вот у @Spoofing тег куда успешнее, зря не упомянули.

mertvoprog
()

Лучше и внимательнее читать документацию надо, прежде чем критиковать недостатки Майнтеста.

Майнтест не умеет в альфа канал.

Умеет и уже давно. И уровень прозрачности можно устанавливать не только для воды, но и для всех остальных типов нодов. Есть два параметра - use_texture_alpha и alpha. Первый включает/отключает прозрачность из текстуры: https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L7348 Второй задает значение прозрачности от 0 до 255, только странно что про него теперь нету в lua_api.txt, раньше было.

PS: в 5.4.0 у use_texture_alpha уже изменился диапазон принимаемых значений, теперь вместо булеан (deprecated) используются opaque, clip и blend.

Задать полупрозрачность пикселей текстуры можно с помощью специальных модификаторов текстур ([no_alpha, [opacity), если на них еще не было: https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L7348

Нельзя взаимодействовать с метадатой при крафте

Можно, внутри коллбэка minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)). Он вызывается во время крафтинга. Так как в него передается itemstack объект, то можно получить доступ к метадате с помощью itemstack:get_meta().

Andrey001
()
Последнее исправление: Andrey001 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.