Skip to content

Commit

Permalink
fix: Move client tick event registration into a client mod initializer
Browse files Browse the repository at this point in the history
  • Loading branch information
Steveplays28 committed Dec 9, 2023
1 parent 7edce48 commit 6f1280d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
package com.github.steveplays28.realisticsleep;

import com.github.steveplays28.realisticsleep.api.RealisticSleepApi;
import com.github.steveplays28.realisticsleep.config.RealisticSleepConfig;
import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.autoconfig.serializer.GsonConfigSerializer;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.entity.event.v1.EntitySleepEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.ActionResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -42,16 +38,5 @@ public void onInitialize() {

return ActionResult.PASS;
}));

// Tick the world renderer faster while sleeping
ClientTickEvents.START_WORLD_TICK.register(this::tickWorldRendererFasterWhileSleeping);
}

private void tickWorldRendererFasterWhileSleeping(ClientWorld world) {
if (RealisticSleepApi.isSleeping(world)) {
for (int i = 0; i < config.worldRendererTickSpeedMultiplier; i++) {
MinecraftClient.getInstance().worldRenderer.tick();
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.github.steveplays28.realisticsleep.client.compat;

import com.github.steveplays28.realisticsleep.api.RealisticSleepApi;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.world.ClientWorld;

import static com.github.steveplays28.realisticsleep.RealisticSleep.config;

@Environment(EnvType.CLIENT)
public class RealisticSleepClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
ClientTickEvents.START_WORLD_TICK.register(this::tickWorldRendererFasterWhileSleeping);
}

private void tickWorldRendererFasterWhileSleeping(ClientWorld world) {
if (RealisticSleepApi.isSleeping(world)) {
for (int i = 0; i < config.worldRendererTickSpeedMultiplier; i++) {
MinecraftClient.getInstance().worldRenderer.tick();
}
}
}
}
3 changes: 3 additions & 0 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
"main": [
"com.github.steveplays28.realisticsleep.RealisticSleep"
],
"client": [
"com.github.steveplays28.realisticsleep.client.compat.RealisticSleepClient"
],
"modmenu": [
"com.github.steveplays28.realisticsleep.client.compat.ModMenuIntegration"
]
Expand Down

0 comments on commit 6f1280d

Please sign in to comment.