Моддинг
@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