This commit is contained in:
bbldrizzy committed 2026-10-23 00:28:57 +01:00
1 parent 83aea53e57
commit aa4f6b6ddc
842 files changed
+47284 -91563

No files matched your search

@@ -0,0 +1,58 @@
package dev.zprestige.prestige.math;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.network.BlockChangeListener;
import dev.zprestige.prestige.render.MinecraftAccess;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import net.minecraft.util.math.BlockPos;
public final class BlockChangeTracker implements MinecraftAccess {
public static final Map CLEARED_BLOCKS = new HashMap();
public static final Map EXPLOSIONS = new HashMap();
public static final Map PLACED_BLOCKS = new HashMap();
private static boolean listenerRegistered;
private BlockChangeTracker() {
}
private static void ensureListenerRegistered() {
if (!listenerRegistered && Prestige.eventBus != null) {
listenerRegistered = true;
Prestige.eventBus.register(new BlockChangeListener());
}
}
public static void markExplosion(BlockPos pos) {
ensureListenerRegistered();
EXPLOSIONS.put(pos.toImmutable(), System.currentTimeMillis());
}
public static boolean isRecentlyExploded(BlockPos pos) {
ensureListenerRegistered();
long now = System.currentTimeMillis();
Long clearedAt = (Long)CLEARED_BLOCKS.get(pos);
if (clearedAt != null && now - clearedAt < 300L) {
return true;
} else {
for (Entry explosion : (Iterable<Entry>)(EXPLOSIONS.entrySet())) {
if (now - (Long)explosion.getValue() <= 100L && ((BlockPos)explosion.getKey()).getSquaredDistance(pos) <= 42.25) {
return true;
}
}
return false;
}
}
public static boolean isRecentlyPlaced(BlockPos pos) {
ensureListenerRegistered();
Long placedAt = (Long)PLACED_BLOCKS.get(pos);
return placedAt != null && System.currentTimeMillis() - placedAt < 120L;
}
public static void markCleared(BlockPos pos, long time) {
CLEARED_BLOCKS.put(pos.toImmutable(), time);
}
}