package com.macfpsboost;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.particle.ParticleManager;
import net.minecraft.entity.Entity;
public class MacFpsBoostMod implements ClientModInitializer {
private static final double ENTITY_CULL_DISTANCE_SQ = 128 * 128;
private static final int MAX_PARTICLES = 4000;
@Override
public void onInitializeClient() {
System.out.println("[OptiMac] Initialized for Minecraft 1.21.11 — author: L1nKar");
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (client.world == null || client.player == null) {
return;
}
optimizeEntities(client);
optimizeParticles(client);
optimizeRendering(client);
});
}
private void optimizeEntities(MinecraftClient client) {
for (Entity entity : client.world.getEntities()) {
if (entity == client.player) continue;
double distance = entity.squaredDistanceTo(client.player);
if (distance > ENTITY_CULL_DISTANCE_SQ) {
entity.setInvisible(true);
} else {
entity.setInvisible(false);
}
}
}
private void optimizeParticles(MinecraftClient client) {
ParticleManager particles = client.particleManager;
try {
int count = particles.particles.size();
if (count > MAX_PARTICLES) {
int remove = count - MAX_PARTICLES;
for (int i = 0; i < remove; i++) {
particles.particles.clear();
}
}
} catch (Exception ignored) {
}
}
private void optimizeRendering(MinecraftClient client) {
client.worldRenderer.reload();
}
}