72 lines
2.3 KiB
Java
72 lines
2.3 KiB
Java
package net.minecraft.client.data.models;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.function.BiConsumer;
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.resources.WaypointStyle;
|
|
import net.minecraft.data.CachedOutput;
|
|
import net.minecraft.data.DataProvider;
|
|
import net.minecraft.data.PackOutput;
|
|
import net.minecraft.resources.ResourceKey;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.world.waypoints.WaypointStyleAsset;
|
|
import net.minecraft.world.waypoints.WaypointStyleAssets;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class WaypointStyleProvider implements DataProvider {
|
|
private final PackOutput.PathProvider pathProvider;
|
|
|
|
public WaypointStyleProvider(PackOutput packOutput) {
|
|
this.pathProvider = packOutput.createPathProvider(PackOutput.Target.RESOURCE_PACK, "waypoint_style");
|
|
}
|
|
|
|
private static void bootstrap(BiConsumer<ResourceKey<WaypointStyleAsset>, WaypointStyle> consumer) {
|
|
consumer.accept(
|
|
WaypointStyleAssets.DEFAULT,
|
|
new WaypointStyle(
|
|
128,
|
|
332,
|
|
List.of(
|
|
ResourceLocation.withDefaultNamespace("default_0"),
|
|
ResourceLocation.withDefaultNamespace("default_1"),
|
|
ResourceLocation.withDefaultNamespace("default_2"),
|
|
ResourceLocation.withDefaultNamespace("default_3")
|
|
)
|
|
)
|
|
);
|
|
consumer.accept(
|
|
WaypointStyleAssets.BOWTIE,
|
|
new WaypointStyle(
|
|
64,
|
|
332,
|
|
List.of(
|
|
ResourceLocation.withDefaultNamespace("bowtie"),
|
|
ResourceLocation.withDefaultNamespace("default_0"),
|
|
ResourceLocation.withDefaultNamespace("default_1"),
|
|
ResourceLocation.withDefaultNamespace("default_2"),
|
|
ResourceLocation.withDefaultNamespace("default_3")
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public CompletableFuture<?> run(CachedOutput output) {
|
|
Map<ResourceKey<WaypointStyleAsset>, WaypointStyle> map = new HashMap();
|
|
bootstrap((resourceKey, waypointStyle) -> {
|
|
if (map.putIfAbsent(resourceKey, waypointStyle) != null) {
|
|
throw new IllegalStateException("Tried to register waypoint style twice for id: " + resourceKey);
|
|
}
|
|
});
|
|
return DataProvider.saveAll(output, WaypointStyle.CODEC, this.pathProvider::json, map);
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return "Waypoint Style Definitions";
|
|
}
|
|
}
|