Minecraft Modding
Учебник по созданию Minecraft модов
mode_editРедактировать

Система лутаlink

Сундукиlink

Перейдём в наш класс EventsHandler и добавим такой метод:

@SubscribeEvent
public void onLoot(LootTableLoadEvent e)
{
    if (LootTableList.CHESTS_SPAWN_BONUS_CHEST.equals(e.getName()))
    {
        ResourceLocation loc = new ResourceLocation("tut", "chests/tut_spawn_bonus_chest");
        LootTable customLootTable = e.getLootTableManager().getLootTableFromLocation(loc);
        e.setTable(customLootTable);
    }
}

Для сундуков существует множество таблица:

В условии мы получаем лист со всеми Loot таблицами, которые существуют в Minecraft. В данном случаи мы получаем LootTable бонусного сундука. (Это тот, что спавнится рядом с нами если при создании мира выбрана опция спавна бонусного сундуку)

Перейдём по пути:

└── src    
    └── main
        └── resources
            └── assets
                └── tut

И создадим в папке tut папку loot_tables и в ней ещё одну папку chests. Создадим в папке chests файл с таким название tut_spawn_bonus_chest и форматом .json.

Содержание файла:

{
    "pools": [
        {
            "name": "chest_1",
            "rolls": 2,
            "entries": [
                {
                    "type": "item",
                    "name": "minecraft:dimond",
                    "weight": 24
                },
                {
                    "type": "item",
                    "name": "minecraft:golden_apple",
                    "weight": 15,
                    "functions": [
                        {
                            "function": "minecraft:set_data",
                            "data": 1
                        },
                        {
                            "function": "minecraft:set_count",
                            "count": {
                                "min": 1,
                                "max": 2
                            }
                        }
                    ]
                },
                {
                    "type": "block",
                    "name": "minecraft:wool",
                    "weight": 5,
                    "functions": [
                        {
                            "function": "minecraft:set_data",
                            "data": {
                                "min": 0,
                                "max": 5
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

Заходим в игру, создаём мир и в настройках ставим "Бонусный сундук". Открываем его и видим, что в нём присутствуют некоторые предметы, которые мы указали в json файле.

Сущностиlink

TODO

Рыбалкаlink

Перейдём в наш класс EventsHandler и добавим в метод onLoot, такой код:

if (LootTableList.GAMEPLAY_FISHING_FISH.equals(e.getName()))
{
    ResourceLocation loc = new ResourceLocation("tut", "gameplay/fishing/tut_fish");
    LootTable customLootTable = e.getLootTableManager().getLootTableFromLocation(loc);
    e.setTable(customLootTable);
}

Для рыбалки существует несколько таблица:

Перейдём по пути:

└── src    
    └── main
        └── resources
            └── assets
                └── tut
                    └── loot_tables

И создадим в папке loot_tables папку gameplay и в ней папку fishing. Создадим файл tut_fish формата .json.

Содержание файла:

Ivasik
Автор
mcmodding.ru v1.1.1