MineLittlePony/src/main/java/com/minelittlepony/client/FabMod.java

48 lines
1.7 KiB
Java
Raw Normal View History

2019-05-27 17:59:15 +02:00
package com.minelittlepony.client;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.EntityRenderer;
import net.minecraft.entity.Entity;
2019-05-28 01:50:45 +02:00
import com.minelittlepony.client.settings.ClientPonyConfig;
2019-05-27 17:59:15 +02:00
import com.minelittlepony.hdskins.mixin.MixinEntityRenderDispatcher;
2019-05-28 01:50:45 +02:00
import com.minelittlepony.settings.SensibleJsonConfig;
2019-05-27 17:59:15 +02:00
import java.nio.file.Path;
import java.util.function.Function;
public class FabMod implements ClientModInitializer, IModUtilities {
private final MineLPClient mlp = new MineLPClient(this);
@Override
public void onInitializeClient() {
2019-05-28 01:50:45 +02:00
mlp.init(SensibleJsonConfig.of(getConfigDirectory(), ClientPonyConfig::new));
2019-05-27 17:59:15 +02:00
mlp.postInit(MinecraftClient.getInstance());
}
@Override
public <T extends BlockEntity> void addRenderer(Class<T> type, BlockEntityRenderer<T> renderer) {
}
@Override
public <T extends Entity> void addRenderer(Class<T> type, Function<EntityRenderDispatcher, EntityRenderer<T>> renderer) {
EntityRenderDispatcher mx = MinecraftClient.getInstance().getEntityRenderManager();
((MixinEntityRenderDispatcher)mx).getRenderers().put(type, renderer.apply(mx));
}
@Override
public Path getConfigDirectory() {
return FabricLoader.getInstance().getConfigDirectory().toPath();
}
@Override
public Path getAssetsDirectory() {
return FabricLoader.getInstance().getGameDirectory().toPath().resolve("assets");
}
}