( +3.10 3,1 0.00 )

[Guide][1.9] Моддинг 1.9 #4 Blocks

Автор: CheshirX
[Guide][1.9] Моддинг 1.9 #4 Blocks
Доброго времени суток, уважаемые читатели! Сегодня я научу вас созданию блоков с помощью модификаций! genius . Для начала создаём ТРИ папки, одна в главной директории - blocks, другая в ней - block и blocks в /никнейм\./мод\.client.render./тут!\. В папке blocks создаём класс Blocks и пишем что-то вроде этого:
package /никнейм\./мод\.blocks; import /никнейм\./мод\.blocks.block.BaseBlock; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraftforge.fml.common.registry.GameRegistry; public final class Blocks { public static Block baseBlock; public static void createBlocks() { GameRegistry.registerBlock(baseBlock = new BaseBlock("base_block", Material.iron, 3, 15, "pickaxe", 1), "base_block"); } }
Разборка: public static Block baseBlock; - переменная типа Block. GameRegistry.registerBlock(baseBlock = new BaseBlock("base_block", Material.iron, 3, 15, "pickaxe", 1), "base_block"); - регистрирует блок. baseBlock - наша переменная. BaseBlock - наш класс, который мы создадим. Material.iron - материал нашего блока это железо(через точку можно выбрать свой). Далее это скорость добычи и взрывоустойчивость, 3 - это скорость добычи 3 секунды. Далее идёт инструмент добычи. Может быть "pickaxe || shovel || axe" и название.[/spoiler] Теперь там где подчёркнуто красным - BaseBlock, задерживаем курсор и выбираем create class там пишем вот это:
package /никнейм\./мод\.blocks.block; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; public class BaseBlock extends Block{ public BaseBlock(String unlocalizedName, Material material, float hardness, float resistance, String harvestT, int harvestL) { super(material); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(CreativeTabs.tabBlock); this.setHardness(hardness); this.setResistance(resistance); this.setHarvestLevel(harvestT, harvestL); } }
Заходим в CommonProxy и в методе preInit пишем вот это - HEBlocks.createBlocks(); Теперь в оставшейся папке - render.blocks создаём класс с названием registerBlockRenderer. Там вписываем примерно это:
package /никнейм\./мод\.client.render.blocks; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.Item; import /никнейм\./мод\./Мод\; import /никнейм\./мод\.blocks.Blocks; public final class BlockRenderRegister { public static void registerBlockRenderer() { reg(Blocks.baseBlock); } public static String modid = /Мод\.modid; public static void reg(Block block) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher() .register(Item.getItemFromBlock(block), 0, new ModelResourceLocation(modid + ":" + block.getUnlocalizedName().substring(5), "inventory")); } }
И последнее с самим блоком - в ClientProxy в методе Init добавляем это - BlockRenderRegister.registerBlockRenderer(); Всё! Вуаля! Блок создан! Такой фиолетово-чёрный troll Осталось сделать для него модель и текстуру. Текстуру мы пихаем в новую папку - blocks которая находится в папке под названием textures. А что делать с моделями? У блока 3 модели, как поставленный блок, как предмет и как блок. В нашей директории(assets./modid\) создаём папку blockstates и файл base_block.json:
{ "variants": { "normal": { "model": "/modid\:base_block" } } }
Далее в папке models создаём папку block а в ней файл base_block.json: [spoiler]
{ "parent": "block/cube_all", "textures": { "all": "/modid\:blocks/base_block[.png]"// без .пнг } }
И как предмет создаём в папке item файл base_block.json
{ "parent": "/modid\:block/base_block" }
Теперь заходим в игру, и смотрим вкладку блоков, там появился наш! Если были какие-то проблемы сложности спрашивайте! Я не кусаюсь batrollface Вам писал CheshirX, до скорого!
  1. Олдфаги

    24 марта 2016 13:32

    0

    Эммм
    Это что за х**нь?
    В просмотре всё было нормально, а тут каша какая-то?
    МБ можешь исправить пожалуйста! megayeah

    Блин, оказывается сайт переделали =(
    А я об этом и не знал =( И вышло как-то криво!

    Не бросайтесь пожалуйста помидорами! sad-crying
  2. Олдфаги

    24 марта 2016 13:47

    0

    Сейчас создаю новую статью, полную копию только под новую версию.
  3. XXXL ПХЛ

    24 марта 2016 13:48

    +1

    Наконец-то! Теперь можно и блоки делать! А блин, как?

    genius
  4. Олдфаги

    24 марта 2016 14:09

    0

    Блин надеюсь хорошие люди сделают что-то с этой статьёй, так как я нифига не понимаю в новом редакторе статьи....
  5. XXXL ПХЛ

    24 марта 2016 14:11

    -4

    Цитата: CheshirX
    Блин надеюсь хорошие люди сделают что-то с этой статьёй, так как я нифига не понимаю в новом редакторе статьи....

    Звать надо МБ, пока ничего не ставлю...
  6. ТруЪ Олдфаги-с

    24 марта 2016 16:52

    0

    Эммм.А че надо то

    Тут так много текста и спойлеров, что если запихать цитаты в спойлер, будет хужеъ
    Я конечно эти спойлеры поправлю, если не понравится - дайте знать
  7. Посетители

    24 марта 2016 16:57

    0

    Эмм x2. Сорян, но эти спойлеры и у меня остаются. И через полное редактирование, и через быстрое. Жалуйся одменам axez
    Если надо - могу сами теги спойлера убрать, дабы их в тексте не было
  8. Олдфаги

    24 марта 2016 17:15

    0

    porludom,
    Сойдёт, главное чтобы текст был читаемым =)
  9. Посетители

    24 марта 2016 18:30

    0

    Убрал спойлеры
  10. Модератор

    24 марта 2016 18:38

    0

    Сложно че-то ololosha Но за старания 5м
  11. Олдфаги

    24 марта 2016 18:38

    0

    Пасиб.
  12. Олдфаги

    24 марта 2016 20:06

    0

    вот новая новость - тик-так тык
Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию.

Последние сообщения с форума

Название темы
Статистика
Последнее сообщение

Просмотров: 86

Ответов: 0

Просмотров: 7203

Ответов: 162

Просмотров: 145377

Ответов: 693

Просмотров: 1261

Ответов: 14