Иконка ресурса

Gradle task, который реплейсит строки с MCP именами их SRG вариантами

necauqua

когда-то был anti344
Администратор
1,216
27
172
necauqua добавил(а) новый ресурс:

Gradle task, который реплейсит строки с MCP именами их SRG вариантами - "макрос", или "умный реплейс сурсов", можно адаптировать для любого постпроцессинга

Ещё один кусочек из chiseled-me.
Тут хитрости с доставанием и считываением маппингов можно повырезать и просто обрабатывать исходные файлы каким-либо хитрым образом, заимплементив что-то вроде макросов, к примеру.

Тут вызовы метода srg с литеральной строкой и опциональным числом (вроде srg("hello") или srg("player", 3)) реплейсятся строками вроде "field_123".
Число - индекс нужно в том случае, если существуют несколько переменных...

Узнать больше об этом ресурсе...
 
7,099
324
1,509
А можно подробнее про usage?
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Весь кусок можно запихать себе в build.gradle и куски кода вида srg("mcpFieldName") будут заменяться строчками "field_123e" и так далее.
Ну и обрезанный вариант, где ты в groovy-скрипте, коим является файл build.gradle, можешь любым угодным образом менять текст исходных файлов.
 
7,099
324
1,509
А зачем это делать?
 

tox1cozZ

aka Agravaine
8,454
598
2,890
Я для деление на клиент-сервер использовать буду.
Чтобы без всяких переменных и аннотаций.
Java:
// Server only start

public void onServerTick(){
    
}

public void sendPacketsToClient(){
    
}

// Server only end
И типа весь код между двумя комментами он вырежет и в классах его не будет.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Он это делает "налету" когда собираешь мод? То есть твои исходники из папочки никак не пострадают?
Ну блин, а нафига-то было бы делать чтобы исходники страдали.

Деление на клиент-сервер это интересно, потому-что я не придумал как нормально это делать отдельно для двух артефактов (типа чтобы в deobf джарнике он не реплейсил, или реплейсил на мцп-шные имена - хотя я и хызы, надо ли это, не тестил).
 
Сверху