minecraft-src/net/minecraft/client/data/Main.java
2025-07-04 03:45:38 +03:00

55 lines
2.2 KiB
Java

package net.minecraft.client.data;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.SharedConstants;
import net.minecraft.SuppressForbidden;
import net.minecraft.client.ClientBootstrap;
import net.minecraft.client.data.models.EquipmentAssetProvider;
import net.minecraft.client.data.models.ModelProvider;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.DataGenerator.PackGenerator;
import net.minecraft.obfuscate.DontObfuscate;
import net.minecraft.server.Bootstrap;
@Environment(EnvType.CLIENT)
public class Main {
@DontObfuscate
@SuppressForbidden(
reason = "System.out needed before bootstrap"
)
public static void main(String[] strings) throws IOException {
SharedConstants.tryDetectVersion();
OptionParser optionParser = new OptionParser();
OptionSpec<Void> optionSpec = optionParser.accepts("help", "Show the help menu").forHelp();
OptionSpec<Void> optionSpec2 = optionParser.accepts("client", "Include client generators");
OptionSpec<Void> optionSpec3 = optionParser.accepts("all", "Include all generators");
OptionSpec<String> optionSpec4 = optionParser.accepts("output", "Output folder").withRequiredArg().defaultsTo("generated");
OptionSet optionSet = optionParser.parse(strings);
if (!optionSet.has(optionSpec) && optionSet.hasOptions()) {
Path path = Paths.get(optionSpec4.value(optionSet));
boolean bl = optionSet.has(optionSpec3);
boolean bl2 = bl || optionSet.has(optionSpec2);
Bootstrap.bootStrap();
ClientBootstrap.bootstrap();
DataGenerator dataGenerator = new DataGenerator(path, SharedConstants.getCurrentVersion(), true);
addClientProviders(dataGenerator, bl2);
dataGenerator.run();
} else {
optionParser.printHelpOn(System.out);
}
}
public static void addClientProviders(DataGenerator dataGenerator, boolean toRun) {
PackGenerator packGenerator = dataGenerator.getVanillaPack(toRun);
packGenerator.addProvider(ModelProvider::new);
packGenerator.addProvider(EquipmentAssetProvider::new);
packGenerator.addProvider(AtlasProvider::new);
}
}