Main.java

net.minecraft.client.data.Main

信息

  • 全限定名:net.minecraft.client.data.Main
  • 类型:public class
  • 包:net.minecraft.client.data
  • 源码路径:src/main/java/net/minecraft/client/data/Main.java
  • 起始行号:L22
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

public static void main(String[] args) @ L23

  • 方法名:main
  • 源码定位:L23
  • 返回类型:void
  • 修饰符:public static

参数:

  • args: String[]

说明:

TODO

public static void addClientProviders(DataGenerator generator, boolean client) @ L47

  • 方法名:addClientProviders
  • 源码定位:L47
  • 返回类型:void
  • 修饰符:public static

参数:

  • generator: DataGenerator
  • client: boolean

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class Main {
    @SuppressForbidden(reason = "System.out needed before bootstrap")
    public static void main(String[] args) throws IOException {
        SharedConstants.tryDetectVersion();
        OptionParser parser = new OptionParser();
        OptionSpec<Void> helpOption = parser.accepts("help", "Show the help menu").forHelp();
        OptionSpec<Void> clientOption = parser.accepts("client", "Include client generators");
        OptionSpec<Void> allOption = parser.accepts("all", "Include all generators");
        OptionSpec<String> outputOption = parser.accepts("output", "Output folder").withRequiredArg().defaultsTo("generated");
        OptionSet optionSet = parser.parse(args);
        if (!optionSet.has(helpOption) && optionSet.hasOptions()) {
            Path output = Paths.get(outputOption.value(optionSet));
            boolean allOptions = optionSet.has(allOption);
            boolean client = allOptions || optionSet.has(clientOption);
            Bootstrap.bootStrap();
            ClientBootstrap.bootstrap();
            DataGenerator generator = new DataGenerator.Cached(output, SharedConstants.getCurrentVersion(), true);
            addClientProviders(generator, client);
            generator.run();
            Util.shutdownExecutors();
        } else {
            parser.printHelpOn(System.out);
        }
    }
 
    public static void addClientProviders(DataGenerator generator, boolean client) {
        DataGenerator.PackGenerator clientVanillaPack = generator.getVanillaPack(client);
        clientVanillaPack.addProvider(ModelProvider::new);
        clientVanillaPack.addProvider(EquipmentAssetProvider::new);
        clientVanillaPack.addProvider(WaypointStyleProvider::new);
        clientVanillaPack.addProvider(AtlasProvider::new);
    }
}

引用的其他类

  • SharedConstants

    • 引用位置: 方法调用
    • 关联成员: SharedConstants.getCurrentVersion(), SharedConstants.tryDetectVersion()
  • ClientBootstrap

    • 引用位置: 方法调用
    • 关联成员: ClientBootstrap.bootstrap()
  • DataGenerator

    • 引用位置: 参数/方法调用/构造调用
    • 关联成员: Cached(), DataGenerator.Cached()
  • Bootstrap

    • 引用位置: 方法调用
    • 关联成员: Bootstrap.bootStrap()
  • Util

    • 引用位置: 方法调用
    • 关联成员: Util.shutdownExecutors()