minecraft-src/net/minecraft/client/renderer/texture/atlas/SpriteSource.java
2025-07-04 03:45:38 +03:00

38 lines
1.3 KiB
Java

package net.minecraft.client.renderer.texture.atlas;
import com.mojang.serialization.MapCodec;
import java.util.function.Function;
import java.util.function.Predicate;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.texture.SpriteContents;
import net.minecraft.resources.FileToIdConverter;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.packs.resources.Resource;
import net.minecraft.server.packs.resources.ResourceManager;
@Environment(EnvType.CLIENT)
public interface SpriteSource {
FileToIdConverter TEXTURE_ID_CONVERTER = new FileToIdConverter("textures", ".png");
void run(ResourceManager resourceManager, SpriteSource.Output output);
MapCodec<? extends SpriteSource> codec();
@Environment(EnvType.CLIENT)
public interface Output {
default void add(ResourceLocation location, Resource resource) {
this.add(location, spriteResourceLoader -> spriteResourceLoader.loadSprite(location, resource));
}
void add(ResourceLocation location, SpriteSource.SpriteSupplier sprite);
void removeAll(Predicate<ResourceLocation> predicate);
}
@Environment(EnvType.CLIENT)
public interface SpriteSupplier extends Function<SpriteResourceLoader, SpriteContents> {
default void discard() {
}
}
}