Removed MixinMinecraftClient

This commit is contained in:
Sollace 2019-06-02 14:52:06 +02:00
parent 3ee6109cac
commit d590c8d9d6
3 changed files with 25 additions and 33 deletions

View file

@ -3,6 +3,7 @@ package com.minelittlepony.client;
import net.fabricmc.api.ClientModInitializer;
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;
@ -21,14 +22,21 @@ import com.minelittlepony.client.settings.ClientPonyConfig;
import com.minelittlepony.hdskins.mixin.MixinEntityRenderDispatcher;
import com.minelittlepony.settings.JsonConfig;
import javax.annotation.Nullable;
import java.nio.file.Path;
import java.util.function.Function;
public class FabMod implements ClientModInitializer, IModUtilities {
public class FabMod implements ClientModInitializer, ClientTickCallback, IModUtilities {
@Nullable
private MineLPClient mlp;
private boolean firstTick = true;
@Override
public void onInitializeClient() {
MineLPClient mlp;
ClientTickCallback.EVENT.register(this);
if (FabricLoader.getInstance().isModLoaded("hdskins")) {
mlp = new MineLPHDSkins(this);
@ -39,6 +47,21 @@ public class FabMod implements ClientModInitializer, IModUtilities {
mlp.init(JsonConfig.of(getConfigDirectory().resolve("minelp.json"), ClientPonyConfig::new));
}
@Override
public void tick(MinecraftClient client) {
if (mlp == null) {
return;
}
if (firstTick) {
firstTick = false;
mlp.postInit(client);
} else {
mlp.onTick(client, client.world != null && client.player != null);
}
}
@Override
public KeyBinding registerKeybind(String category, int key, String bindName) {
// normalize Fabric's behavior

View file

@ -1,30 +0,0 @@
package com.minelittlepony.client.mixin;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.minelittlepony.client.MineLPClient;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.WindowEventHandler;
import net.minecraft.util.NonBlockingThreadExecutor;
import net.minecraft.util.snooper.SnooperListener;
@Mixin(MinecraftClient.class)
public abstract class MixinMinecraftClient extends NonBlockingThreadExecutor<Runnable> implements SnooperListener, WindowEventHandler, AutoCloseable {
public MixinMinecraftClient() { super(null); }
@Inject(method = "init()V", at = @At("RETURN"))
private void onInit(CallbackInfo info) {
MineLPClient.getInstance().postInit((MinecraftClient)(Object)this);
}
@Inject(method = "tick()V", at = @At("RETURN"))
private void onTick(CallbackInfo info) {
MinecraftClient self = (MinecraftClient)(Object)this;
MineLPClient.getInstance().onTick(self, self.world != null && self.player != null);
}
}

View file

@ -11,7 +11,6 @@
"MixinFirstPersonRenderer",
"MixinGlStateManager",
"MixinItemRenderer",
"MixinMinecraftClient",
"MixinRenderManager",
"MixinThreadDownloadImageData"
]