Моддинг

@ardyc

The basics

Все проекты начинаются с получения минимальных исходников на сторонних сайтах типа github/minecraftforge и тп. Там будет сборочный файл и все настройки.

Intellij автоматически соберет проект, когда вы его откроете.

Config files

Одни из самых главных файлов конфигураций

  • build.gradle

  • src/main/resources/META-INF/mods.toml

В них производятся основные конфигурации

  • modid - в mods.toml

  • список зависимостей - в build.gradle

Лучше не трогать build.gradle по пустякам - он оч привередлив.

Main class

Главным классом мода считается класс, который помечен аннотацией @Mod("modid")

От него начинаются все пляски

В методе init начинаются разделения на серверную и клиентскую часть. (Ну по крайней мере так делаю я)

init 
{
    val bus = KotlinModLoadingContext.get().getKEventBus()
    bus.addListener(LevelingSystemCore::clientStuff)
    bus.addListener(LevelingSystemCore::serverStuff)
    PackageRegistry.register()
}

fun clientStuff(event: FMLClientSetupEvent){
    EVENT_BUS.register(ClientEventHandler())
}
fun serverStuff(event: FMLDedicatedServerSetupEvent) {
    EVENT_BUS.register(ServerEventHandler())
}

Примерно так начинается каждый мод.

В классах ServerEventHandler и ClientEventHandler описывается логика действий для серверной и клиентской части

class ClientEventHandler {

    @SubscribeEvent
    fun renderOverlay(event: RenderGameOverlayEvent.Pre) {
       // some code
    }

    @SubscribeEvent
    fun menuBuilding(event: MenuBuildingEvent) {
        // some code 
    }

}

Пример класса ClientEventHandler в котором ловятся 2 ивента

RenderGameOverlayEvent - отвечает за отрисовку интерфейса в процессе игры

MenuBuildingEvent - (из saoui) отвечает за построение меню в saoui

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

Собственно на этом пока всё. Реально. Особо больше нечего рассказать. Каждая следующая фича используется конкретными модификациями. Всё что есть не получится описать. Однако думаю базы моддинга достаточно для того, чтобы изменить его.

Так же можно использовать любые гайды, просто нужно иметь ввиду что все они на java. Однако вы спокойно можете пихнуть Java файл в ваш котлин мод и использовать его. Котлин это поддерживает.

Last updated