Update Kirin and HDSkins

This commit is contained in:
Sollace 2019-06-02 19:20:00 +02:00
parent 91f445e1fa
commit cc1bbbbd7b
9 changed files with 10 additions and 116 deletions

View file

@ -18,5 +18,5 @@ org.gradle.daemon=false
# Dependencies
fabric_version=0.3.0+
kirin_version=57995a8ac5
hd_skins_version=26667716ca
kirin_version=b69d6643c8
hd_skins_version=b4327b9cf9

View file

@ -5,28 +5,16 @@ import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
import net.fabricmc.fabric.api.client.keybinding.KeyBindingRegistry;
import net.fabricmc.fabric.api.event.client.ClientTickCallback;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.options.KeyBinding;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
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.client.util.InputUtil;
import net.minecraft.entity.Entity;
import net.minecraft.util.Identifier;
import com.minelittlepony.client.gui.hdskins.MineLPHDSkins;
import com.minelittlepony.client.mixin.MixinBlockEntityRenderDispatcher;
import com.minelittlepony.client.settings.ClientPonyConfig;
import com.minelittlepony.hdskins.mixin.MixinEntityRenderDispatcher;
import com.minelittlepony.settings.JsonConfig;
import com.minelittlepony.common.client.IModUtilities;
import javax.annotation.Nullable;
import java.nio.file.Path;
import java.util.function.Function;
public class FabMod implements ClientModInitializer, ClientTickCallback, IModUtilities {
@Nullable
@ -43,8 +31,6 @@ public class FabMod implements ClientModInitializer, ClientTickCallback, IModUti
} else {
mlp = new MineLPClient(this);
}
mlp.init(JsonConfig.of(getConfigDirectory().resolve("minelp.json"), ClientPonyConfig::new));
}
@Override
@ -77,27 +63,4 @@ public class FabMod implements ClientModInitializer, ClientTickCallback, IModUti
KeyBindingRegistry.INSTANCE.register(binding);
return binding;
}
@Override
public <T extends BlockEntity> void addRenderer(Class<T> type, BlockEntityRenderer<T> renderer) {
MixinBlockEntityRenderDispatcher mx = ((MixinBlockEntityRenderDispatcher)BlockEntityRenderDispatcher.INSTANCE);
mx.getRenderers().put(type, renderer);
renderer.setRenderManager(BlockEntityRenderDispatcher.INSTANCE);
}
@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");
}
}

View file

@ -1,29 +0,0 @@
package com.minelittlepony.client;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.options.KeyBinding;
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;
import java.nio.file.Path;
import java.util.function.Function;
public interface IModUtilities {
<T extends BlockEntity> void addRenderer(Class<T> type, BlockEntityRenderer<T> renderer);
<T extends Entity> void addRenderer(Class<T> type, Function<EntityRenderDispatcher, EntityRenderer<T>> renderer);
default boolean hasFml() {
return false;
}
default KeyBinding registerKeybind(String category, int key, String bindName) {
return new KeyBinding(category, key, bindName);
}
Path getConfigDirectory();
Path getAssetsDirectory();
}

View file

@ -4,6 +4,9 @@ import com.minelittlepony.MineLittlePony;
import com.minelittlepony.client.gui.GuiPonySettings;
import com.minelittlepony.client.pony.PonyManager;
import com.minelittlepony.client.render.tileentities.skull.PonySkullRenderer;
import com.minelittlepony.client.settings.ClientPonyConfig;
import com.minelittlepony.common.client.IModUtilities;
import com.minelittlepony.settings.JsonConfig;
import com.minelittlepony.settings.PonyConfig;
import net.minecraft.ChatFormat;
@ -43,10 +46,8 @@ public class MineLPClient extends MineLittlePony {
public MineLPClient(IModUtilities utils) {
utilities = utils;
}
protected void init(PonyConfig newConfig) {
config = newConfig;
config = JsonConfig.of(utils.getConfigDirectory().resolve("minelp.json"), ClientPonyConfig::new);
ponyManager = new PonyManager(config);
keyBinding = utilities.registerKeybind("key.categories.misc", GLFW.GLFW_KEY_F9, "key.minelittlepony.settings");
}

View file

@ -6,7 +6,6 @@ import java.util.function.Function;
import com.google.common.collect.Maps;
import com.minelittlepony.client.gui.hdskins.DummyPony;
import com.minelittlepony.client.gui.hdskins.RenderDummyPony;
import com.minelittlepony.client.mixin.MixinRenderManager;
import com.minelittlepony.client.model.races.PlayerModels;
import com.minelittlepony.client.render.LevitatingItemRenderer;
import com.minelittlepony.client.render.IPonyRender;
@ -68,7 +67,7 @@ public class PonyRenderManager {
private void addPlayerSkin(EntityRenderDispatcher manager, boolean slimArms, PlayerModels playerModel) {
RenderPonyPlayer renderer = playerModel.createRenderer(manager, slimArms);
((MixinRenderManager)manager).getMutableSkinMap().put(playerModel.getId(slimArms), renderer);
MineLPClient.getInstance().getModUtilities().addRenderer(playerModel.getId(slimArms), renderer);
}
/**

View file

@ -2,7 +2,7 @@ package com.minelittlepony.client.gui.hdskins;
import net.minecraft.client.MinecraftClient;
import com.minelittlepony.client.IModUtilities;
import com.minelittlepony.common.client.IModUtilities;
import com.minelittlepony.client.MineLPClient;
import com.minelittlepony.client.PonySkinModifier;
import com.minelittlepony.client.PonySkinParser;
@ -11,7 +11,6 @@ import com.minelittlepony.hdskins.HDSkins;
import com.minelittlepony.hdskins.net.LegacySkinServer;
import com.minelittlepony.hdskins.net.SkinServer;
import com.minelittlepony.hdskins.net.ValhallaSkinServer;
import com.minelittlepony.settings.PonyConfig;
/**
* All the interactions with HD Skins.
@ -24,11 +23,6 @@ public class MineLPHDSkins extends MineLPClient {
public MineLPHDSkins(IModUtilities utils) {
super(utils);
}
@Override
protected void init(PonyConfig newConfig) {
super.init(newConfig);
// Register pony servers
SkinServer.defaultServers.add(new LegacySkinServer(MINELP_LEGACY_SERVER, MINELP_LEGACY_GATEWAY));

View file

@ -1,17 +0,0 @@
package com.minelittlepony.client.mixin;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import java.util.Map;
@Mixin(BlockEntityRenderDispatcher.class)
public interface MixinBlockEntityRenderDispatcher {
@Accessor("renderers")
Map<Class<? extends BlockEntity>, BlockEntityRenderer<? extends BlockEntity>> getRenderers();
}

View file

@ -1,15 +0,0 @@
package com.minelittlepony.client.mixin;
import java.util.Map;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.PlayerEntityRenderer;
@Mixin(EntityRenderDispatcher.class)
public interface MixinRenderManager {
@Accessor("modelRenderers")
Map<String, PlayerEntityRenderer> getMutableSkinMap();
}

View file

@ -6,12 +6,10 @@
"compatibilityLevel": "JAVA_8",
"client": [
"IResizeable",
"MixinBlockEntityRenderDispatcher",
"MixinDefaultPlayerSkin",
"MixinFirstPersonRenderer",
"MixinGlStateManager",
"MixinItemRenderer",
"MixinRenderManager",
"MixinThreadDownloadImageData"
]
}