Remove more old code
This commit is contained in:
parent
a8227a964d
commit
7f27141a16
|
|
@ -1,21 +0,0 @@
|
||||||
package org.embeddedt.modernfix;
|
|
||||||
|
|
||||||
import com.google.common.cache.CacheLoader;
|
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
|
||||||
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
public class FileWalker extends CacheLoader<Pair<Path, Integer>, List<Path>> {
|
|
||||||
public static final FileWalker INSTANCE = new FileWalker();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Path> load(Pair<Path, Integer> key) throws Exception {
|
|
||||||
try(Stream<Path> stream = Files.walk(key.getLeft(), key.getRight())) {
|
|
||||||
return stream.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
package org.embeddedt.modernfix.sound;
|
|
||||||
|
|
||||||
import com.mojang.blaze3d.audio.SoundBuffer;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
|
|
||||||
public class SoundBufferCache extends LinkedHashMap<ResourceLocation, CompletableFuture<SoundBuffer>> {
|
|
||||||
@Override
|
|
||||||
protected boolean removeEldestEntry(Map.Entry<ResourceLocation, CompletableFuture<SoundBuffer>> eldest) {
|
|
||||||
return super.removeEldestEntry(eldest);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
package org.embeddedt.modernfix.tickables;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
public class LoadableTickableObject<T> implements TickableObject {
|
|
||||||
private volatile int ticksInactive = 0;
|
|
||||||
private final int timeout;
|
|
||||||
private final Supplier<T> loader;
|
|
||||||
private final Consumer<T> finalizer;
|
|
||||||
private volatile T theObject = null;
|
|
||||||
|
|
||||||
public LoadableTickableObject(int timeout, Supplier<T> loader, Consumer<T> finalizer) {
|
|
||||||
this(timeout, loader, finalizer, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public LoadableTickableObject(int timeout, Supplier<T> loader, Consumer<T> finalizer, @Nullable T initialValue) {
|
|
||||||
this.timeout = timeout;
|
|
||||||
this.loader = loader;
|
|
||||||
this.finalizer = finalizer;
|
|
||||||
this.theObject = initialValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public T get() {
|
|
||||||
synchronized (this) {
|
|
||||||
ticksInactive++;
|
|
||||||
T obj = theObject;
|
|
||||||
if(obj == null) {
|
|
||||||
obj = loader.get();
|
|
||||||
theObject = obj;
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public final void tick() {
|
|
||||||
synchronized (this) {
|
|
||||||
ticksInactive++;
|
|
||||||
if(ticksInactive >= this.timeout) {
|
|
||||||
finalizer.accept(theObject);
|
|
||||||
theObject = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
package org.embeddedt.modernfix.tickables;
|
|
||||||
|
|
||||||
public interface TickableObject {
|
|
||||||
void tick();
|
|
||||||
}
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
package org.embeddedt.modernfix.tickables;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
|
||||||
|
|
||||||
public class TickableObjectManager {
|
|
||||||
private static final List<TickableObject> TICKABLE_OBJECT_LIST = new CopyOnWriteArrayList<>();
|
|
||||||
|
|
||||||
public static void register(TickableObject object) {
|
|
||||||
TICKABLE_OBJECT_LIST.add(object);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void runTick() {
|
|
||||||
for(TickableObject o : TICKABLE_OBJECT_LIST) {
|
|
||||||
o.tick();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
package org.embeddedt.modernfix.util;
|
|
||||||
|
|
||||||
import org.embeddedt.modernfix.ModernFix;
|
|
||||||
|
|
||||||
public enum BakeReason {
|
|
||||||
FREEZE,
|
|
||||||
REMOTE_SNAPSHOT_INJECT,
|
|
||||||
LOCAL_SNAPSHOT_INJECT,
|
|
||||||
REVERT,
|
|
||||||
UNKNOWN;
|
|
||||||
private static BakeReason currentBakeReason = null;
|
|
||||||
private static boolean bakeReasonWarned = false;
|
|
||||||
|
|
||||||
public static BakeReason getCurrentBakeReason() {
|
|
||||||
if(currentBakeReason == null && !bakeReasonWarned) {
|
|
||||||
ModernFix.LOGGER.warn("No bake reason found, mixin probably not applied correctly", new IllegalStateException());
|
|
||||||
bakeReasonWarned = false;
|
|
||||||
}
|
|
||||||
return currentBakeReason;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setCurrentBakeReason(BakeReason reason) {
|
|
||||||
currentBakeReason = reason;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
package org.embeddedt.modernfix.util;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
|
||||||
import com.google.common.collect.Interner;
|
|
||||||
import com.google.common.collect.Interners;
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Replacement backing map for CompoundTags that interns keys.
|
|
||||||
*/
|
|
||||||
public class CanonizingStringMap<T> extends HashMap<String, T> {
|
|
||||||
private static final Interner<String> KEY_INTERNER = Interners.newWeakInterner();
|
|
||||||
|
|
||||||
private static String intern(String key) {
|
|
||||||
return key != null ? KEY_INTERNER.intern(key) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CanonizingStringMap() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public T put(String key, T value) {
|
|
||||||
return super.put(intern(key), value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void putAll(Map<? extends String, ? extends T> m) {
|
|
||||||
if(m.isEmpty())
|
|
||||||
return;
|
|
||||||
HashMap<String, T> tmp = new HashMap<>();
|
|
||||||
m.forEach((k, v) -> tmp.put(intern(k), v));
|
|
||||||
super.putAll(tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void putAllWithoutInterning(Map<? extends String, ? extends T> m) {
|
|
||||||
super.putAll(m);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <T> CanonizingStringMap<T> deepCopy(CanonizingStringMap<T> incomingMap, Function<T, T> deepCopier) {
|
|
||||||
CanonizingStringMap<T> newMap = new CanonizingStringMap<>();
|
|
||||||
newMap.putAllWithoutInterning(Maps.transformValues(incomingMap, deepCopier));
|
|
||||||
return newMap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,162 +0,0 @@
|
||||||
package org.embeddedt.modernfix.util;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
import com.mojang.serialization.Lifecycle;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.world.level.*;
|
|
||||||
import net.minecraft.core.RegistryAccess;
|
|
||||||
import net.minecraft.world.Difficulty;
|
|
||||||
import net.minecraft.world.level.dimension.end.EndDragonFight;
|
|
||||||
import net.minecraft.world.level.levelgen.WorldOptions;
|
|
||||||
import net.minecraft.world.level.storage.WorldData;
|
|
||||||
import net.minecraft.world.level.storage.ServerLevelData;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class DummyServerConfiguration implements WorldData {
|
|
||||||
@Override
|
|
||||||
public WorldDataConfiguration getDataConfiguration() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setDataConfiguration(WorldDataConfiguration arg) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Set<String> getRemovedFeatureFlags() {
|
|
||||||
return Collections.emptySet();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean wasModded() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Set<String> getKnownServerBrands() {
|
|
||||||
return ImmutableSet.of("forge");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setModdedInfo(String name, boolean isModded) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CompoundTag getCustomBossEvents() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setCustomBossEvents(CompoundTag nbt) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ServerLevelData overworldData() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public LevelSettings getLevelSettings() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CompoundTag createTag(RegistryAccess registries, CompoundTag hostPlayerNBT) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isHardcore() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getVersion() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getLevelName() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GameType getGameType() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setGameType(GameType type) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean getAllowCommands() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Difficulty getDifficulty() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setDifficulty(Difficulty difficulty) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isDifficultyLocked() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setDifficultyLocked(boolean locked) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GameRules getGameRules() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CompoundTag getLoadedPlayerTag() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public EndDragonFight.Data endDragonFightData() {
|
|
||||||
return EndDragonFight.Data.DEFAULT;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setEndDragonFightData(EndDragonFight.Data data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public WorldOptions worldGenOptions() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFlatWorld() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isDebugWorld() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Lifecycle worldGenSettingsLifecycle() {
|
|
||||||
return Lifecycle.stable();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,132 +0,0 @@
|
||||||
package org.embeddedt.modernfix.util;
|
|
||||||
|
|
||||||
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Simple forwarding map implementation that allows layering multiple maps together.
|
|
||||||
*/
|
|
||||||
public class LayeredForwardingMap<K, V> implements Map<K, V> {
|
|
||||||
private final Map<K, V>[] layers;
|
|
||||||
|
|
||||||
public LayeredForwardingMap(Map<K, V>[] layers) {
|
|
||||||
if(layers.length < 1)
|
|
||||||
throw new IllegalArgumentException();
|
|
||||||
for(Map<K, V> layer : layers) {
|
|
||||||
if(layer == null)
|
|
||||||
throw new IllegalArgumentException();
|
|
||||||
}
|
|
||||||
this.layers = layers;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int size() {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEmpty() {
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
if(!map.isEmpty())
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean containsKey(Object key) {
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
if(map.containsKey(key))
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean containsValue(Object value) {
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
if(map.containsValue(value))
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public V get(Object key) {
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
V value = map.get(key);
|
|
||||||
if(value != null)
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public V put(K key, V value) {
|
|
||||||
if(value == null)
|
|
||||||
throw new IllegalArgumentException();
|
|
||||||
V originalValue = null;
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
V oldVal = map.remove(key);
|
|
||||||
if(originalValue == null)
|
|
||||||
originalValue = oldVal;
|
|
||||||
map.put(key, value);
|
|
||||||
}
|
|
||||||
return originalValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public V remove(Object key) {
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
map.remove(key);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void putAll(@NotNull Map<? extends K, ? extends V> m) {
|
|
||||||
for(V value : m.values()) {
|
|
||||||
if(value == null)
|
|
||||||
throw new IllegalArgumentException();
|
|
||||||
}
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
map.putAll(m);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void clear() {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public Set<K> keySet() {
|
|
||||||
Set<K> keys = new ObjectOpenHashSet<>();
|
|
||||||
for(Map<K, V> map : layers) {
|
|
||||||
keys.addAll(map.keySet());
|
|
||||||
}
|
|
||||||
return Collections.unmodifiableSet(keys);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public Collection<V> values() {
|
|
||||||
Set<K> keys = keySet();
|
|
||||||
List<V> vals = new ArrayList<>();
|
|
||||||
for(K key : keys) {
|
|
||||||
vals.add(get(key));
|
|
||||||
}
|
|
||||||
return vals;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public Set<Entry<K, V>> entrySet() {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
package org.embeddedt.modernfix.forge.mixin.perf.reduce_blockstate_cache_rebuilds;
|
|
||||||
|
|
||||||
import com.google.common.collect.Multimap;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraftforge.registries.ForgeRegistry;
|
|
||||||
import net.minecraftforge.registries.GameData;
|
|
||||||
import org.embeddedt.modernfix.util.BakeReason;
|
|
||||||
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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Mixin(GameData.class)
|
|
||||||
public class GameDataMixin {
|
|
||||||
@Inject(method = "freezeData", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;forEach(Ljava/util/function/BiConsumer;)V", ordinal = 1), remap = false)
|
|
||||||
private static void markFreezeBakeReason(CallbackInfo ci) {
|
|
||||||
BakeReason.setCurrentBakeReason(BakeReason.FREEZE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "freezeData", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/registries/GameData;fireRemapEvent(Ljava/util/Map;Z)V"), remap = false)
|
|
||||||
private static void markEmptyBakeReason1(CallbackInfo ci) {
|
|
||||||
BakeReason.setCurrentBakeReason(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "revertTo", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;forEach(Ljava/util/function/BiConsumer;)V", ordinal = 1), remap = false)
|
|
||||||
private static void markRevertBakeReason(CallbackInfo ci) {
|
|
||||||
BakeReason.setCurrentBakeReason(BakeReason.REVERT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "revertTo", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/BiMap;forEach(Ljava/util/function/BiConsumer;)V", ordinal = 1, shift = At.Shift.AFTER), remap = false)
|
|
||||||
private static void markEmptyBakeReason2(CallbackInfo ci) {
|
|
||||||
BakeReason.setCurrentBakeReason(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "injectSnapshot", at = @At("HEAD"), remap = false)
|
|
||||||
private static void markSnapshotInjectBakeReason(Map<ResourceLocation, ForgeRegistry.Snapshot> snapshot, boolean injectFrozenData, boolean isLocalWorld, CallbackInfoReturnable<Multimap<ResourceLocation, ResourceLocation>> cir) {
|
|
||||||
BakeReason.setCurrentBakeReason(isLocalWorld ? BakeReason.LOCAL_SNAPSHOT_INJECT : BakeReason.REMOTE_SNAPSHOT_INJECT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "injectSnapshot", at = @At("RETURN"), remap = false)
|
|
||||||
private static void markEmptyBakeReason2(Map<ResourceLocation, ForgeRegistry.Snapshot> snapshot, boolean injectFrozenData, boolean isLocalWorld, CallbackInfoReturnable<Multimap<ResourceLocation, ResourceLocation>> cir) {
|
|
||||||
BakeReason.setCurrentBakeReason(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user