[MCP] Как добавить блок в игру?
Категория: FAQ
Я решил начать серию уроков о MCP Хоть мой учебник и под 1.7.3, надеюсь что там и так будет всё понятно
До кого не доходит как это делать скриншоты внизу!!!
Внимание!!! Все файлы создавать в папке \src\minecraft\net\minecraft\src
Для начала давайте создадим новый файлик посредством нотепада. Называться он будет mod_gcc.java.
Он служит для складывания всей информации о блоках, рецептах, etc.
Впишем такую строчку (используйте Notepad++).
Она включает магию которая даст возможность данному файлику работать с Кубокрафтом.
После чего добавим еще две строчечки, но сначала делаем пробел.
Здесь мы создаем класс.
Пишем в 5 строке вот такие словечки про наш кубик, тут мы его регистрируем.
Давайте попробуем разобрать данную неразбериху.
newblock - это название, точнее регистр блока (не путайте с обычным названием, или консоль ошибок покарает вас! ).
Ну а вот тут у нас как раз и обычное название.
Число 101 - айди блока.
Число 0 - не трогайте, это индексация текстуры по terrain.png, оно вообще не понадобится. Пусть стоит в фазе нуля.
Тут у нас крепкость указана. На сколько силен блок, так сказать Вполне реально хватит и 0.5F если это блок похожий на землю (по скорости разрушения).
Устойчивость от взрыва. 0.3F отлично вписывается.
Сделан специально чтобы полностью до конца объявить регистр.
Сохраняем файл как java
Теперь давайте создадим специальный файлик BlockNew.java (по названию блока) который определит наш кубик в игре.
Вписываем в первую строчку магические буковки, опять.
Затем импортируем еще одну магию которая даст нам возможность использовать переменную Random.
Потом создаем публичный класс (не забудьте название).
После чего копипастим вот это.
Тут у нас получается что мы объявляем блок, делаем его настоящим (материальным) и задаем свойство (каждое свойство имеет ряд своих особенностей, типа звуков и т.п).
Дальше объявляем выбрасывание и его ID.
сохраняем файл как java
открываем mod_gcc.java
Добавим четыре строчки для определения версии вашего мода.
Ну а теперь перейдем непосредственно к написанию рецепта.
Запишем вот это:
И начнем творить.
Регистрируем блок строкой:
Добавляем название блока в игре.
И запюливаем сам рецептик.
Разберем?
При крафте появляется newblock в количестве 1 (изменяйте как душе угодно до 64).
Тут сложно объяснить, но надеюсь вы поймёте
Одна решетка обозначает одну ячейку сверху вниз (это может быть и верстак, если решеток более 3 в одной строке).
Т.е. в нашем случае мы заполняем обычной землей (Block.dirt) все крафт-ячейки в инвентаре (их 4).
Вот и всё! Хотя нет, надо ещё добавить текстуру для блока!
Сначала ищем картинку 16*16 пикселей. это и будет нашей текстурой.
Временно кидаем ее в папку jars/bin.
Заходим в папку bin, находим minecraft.jar, открываем ее посредством WinRar или 7-zip и создаем там папочку textures.
И в эту папочку кидаем нашу текстуру java.png.
Теперь открываем mod_gcc.java и добавляем строчки рядом с рецептом.
Разбираем.
Сразу предупреждаю, не забывайте изменять название регистра здесь.
Не знаю зачем оно, но вроде индексирует размеры блоков внутри terrain.png. Оставляем как есть.
Ну а тут, непосредственно, указывается путь к текстуре. В нашем случае это java.png в папке textures.
Вот как бы и всё! Запускаем recompile.bat и проверяем на наличие ошибок. Если будут ошибки в коментарии не пишите!!! Recompile.bat точно показывает в какой строчке ошибка.
Если нет ошибок то запускаем startclient.bat и проверяем! Ну а когда вы точно решили что мод готов - запускайте reobfuscate.bat, проходите в папочку reobf и все содержимое кидайте в файл minecraft.jar специально подготовленной для этого игры.
Если вам понравилось ставте + если у большей части получилось то выложу как добавить предмет в игру)
файл mod_gcc.java
Внимание! На скриншоте написана версия 1.7_03. Измените её на вашу!!!
файл BlockNew.java
То, что я использовал в качестве текстуры)))
В игре
До кого не доходит как это делать скриншоты внизу!!!
Глава 1. Добавление блока в игру
Внимание!!! Все файлы создавать в папке \src\minecraft\net\minecraft\src
Для начала давайте создадим новый файлик посредством нотепада. Называться он будет mod_gcc.java.
Он служит для складывания всей информации о блоках, рецептах, etc.
Впишем такую строчку (используйте Notepad++).
package net.minecraft.src;
Она включает магию которая даст возможность данному файлику работать с Кубокрафтом.
После чего добавим еще две строчечки, но сначала делаем пробел.
public class mod_gcc extends BaseMod{
Здесь мы создаем класс.
public static Block newblock = new BlockNew(101, 0).setHardness(0.5F).setResistance(1.0F).setBlockName("newblock");
Пишем в 5 строке вот такие словечки про наш кубик, тут мы его регистрируем.
Давайте попробуем разобрать данную неразбериху.
public static Block newblock
newblock - это название, точнее регистр блока (не путайте с обычным названием, или консоль ошибок покарает вас! ).
new BlockNew(101, 0)
Ну а вот тут у нас как раз и обычное название.
Число 101 - айди блока.
Число 0 - не трогайте, это индексация текстуры по terrain.png, оно вообще не понадобится. Пусть стоит в фазе нуля.
setHardness(0.5F)
Тут у нас крепкость указана. На сколько силен блок, так сказать Вполне реально хватит и 0.5F если это блок похожий на землю (по скорости разрушения).
setResistance(0.3F)
Устойчивость от взрыва. 0.3F отлично вписывается.
setBlockName("newblock")
Сделан специально чтобы полностью до конца объявить регистр.
Сохраняем файл как java
Теперь давайте создадим специальный файлик BlockNew.java (по названию блока) который определит наш кубик в игре.
Вписываем в первую строчку магические буковки, опять.
package net.minecraft.src;
Затем импортируем еще одну магию которая даст нам возможность использовать переменную Random.
import java.util.Random;
Потом создаем публичный класс (не забудьте название).
public class BlockNew extends Block{
После чего копипастим вот это.
public BlockNew(int i, int j) { super(i, j, Material.ground); }
Тут у нас получается что мы объявляем блок, делаем его настоящим (материальным) и задаем свойство (каждое свойство имеет ряд своих особенностей, типа звуков и т.п).
Дальше объявляем выбрасывание и его ID.
public int idDropped(int i, int j) { return mod_gcc.newblock.blockID; } public int quantityDropped(Random random) { return 1; }}
сохраняем файл как java
Как добавить рецепт крафта???
открываем mod_gcc.java
Добавим четыре строчки для определения версии вашего мода.
public String Version() { return "Ваша версия minecraft`а"; }
Ну а теперь перейдем непосредственно к написанию рецепта.
Запишем вот это:
public mod_gcc() {
И начнем творить.
Регистрируем блок строкой:
ModLoader.RegisterBlock(newblock);
Добавляем название блока в игре.
ModLoader.AddName(newblock, "GCC");
И запюливаем сам рецептик.
ModLoader.AddRecipe(new ItemStack(newblock, 1), new Object[]{ "##", "##", Character.valueOf('#'), Block.dirt});
Разберем?
(new ItemStack(newblock, 1)
При крафте появляется newblock в количестве 1 (изменяйте как душе угодно до 64).
new Object[]{ "##", "##", Character.valueOf('#'), Block.dirt
Тут сложно объяснить, но надеюсь вы поймёте
Одна решетка обозначает одну ячейку сверху вниз (это может быть и верстак, если решеток более 3 в одной строке).
Т.е. в нашем случае мы заполняем обычной землей (Block.dirt) все крафт-ячейки в инвентаре (их 4).
Вот и всё! Хотя нет, надо ещё добавить текстуру для блока!
Добавляем текстуру
Сначала ищем картинку 16*16 пикселей. это и будет нашей текстурой.
Временно кидаем ее в папку jars/bin.
Заходим в папку bin, находим minecraft.jar, открываем ее посредством WinRar или 7-zip и создаем там папочку textures.
И в эту папочку кидаем нашу текстуру java.png.
Теперь открываем mod_gcc.java и добавляем строчки рядом с рецептом.
newblock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/textures/java.png");
Разбираем.
newblock.blockIndexInTexture
Сразу предупреждаю, не забывайте изменять название регистра здесь.
ModLoader.addOverride("/terrain.png"
Не знаю зачем оно, но вроде индексирует размеры блоков внутри terrain.png. Оставляем как есть.
"/textures/java.png"
Ну а тут, непосредственно, указывается путь к текстуре. В нашем случае это java.png в папке textures.
Вот как бы и всё! Запускаем recompile.bat и проверяем на наличие ошибок. Если будут ошибки в коментарии не пишите!!! Recompile.bat точно показывает в какой строчке ошибка.
Если нет ошибок то запускаем startclient.bat и проверяем! Ну а когда вы точно решили что мод готов - запускайте reobfuscate.bat, проходите в папочку reobf и все содержимое кидайте в файл minecraft.jar специально подготовленной для этого игры.
Если вам понравилось ставте + если у большей части получилось то выложу как добавить предмет в игру)
Скриншоты
файл mod_gcc.java
Внимание! На скриншоте написана версия 1.7_03. Измените её на вашу!!!
файл BlockNew.java
То, что я использовал в качестве текстуры)))
В игре