104 lines
2.4 KiB
Java
104 lines
2.4 KiB
Java
package io.gitlab.jfronny.translater.transformer;
|
|
|
|
import io.gitlab.jfronny.translater.IMinecraftClientMixin;
|
|
import io.gitlab.jfronny.translater.Translater;
|
|
import net.minecraft.client.MinecraftClient;
|
|
|
|
import java.util.Collection;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
public class TransformingMap implements Map<String, String> {
|
|
private final Map<String, String> backer;
|
|
private final ITransformer transformer;
|
|
public boolean initializing;
|
|
public int initI;
|
|
public int initMax;
|
|
|
|
public TransformingMap(Map<String, String> m, ITransformer t) {
|
|
backer = m;
|
|
transformer = t;
|
|
}
|
|
|
|
public void init() {
|
|
Collection<String> strings = backer.values();
|
|
initI = 0;
|
|
initMax = strings.size();
|
|
initializing = true;
|
|
for (String value : strings) {
|
|
if (Translater.Cli()) {
|
|
initI++;
|
|
Translater.Log("Transforming " + initI + "/" + initMax);
|
|
}
|
|
if (Translater.Gui() && initI % 10 == 0)
|
|
((IMinecraftClientMixin) MinecraftClient.getInstance()).forceRender();
|
|
transformer.transform(value);
|
|
}
|
|
initializing = false;
|
|
}
|
|
|
|
@Override
|
|
public int size() {
|
|
return backer.size();
|
|
}
|
|
|
|
@Override
|
|
public boolean isEmpty() {
|
|
return backer.isEmpty();
|
|
}
|
|
|
|
@Override
|
|
public boolean containsKey(Object o) {
|
|
return backer.containsKey(o);
|
|
}
|
|
|
|
@Override
|
|
public boolean containsValue(Object o) {
|
|
return backer.containsValue(o);
|
|
}
|
|
|
|
@Override
|
|
public String get(Object o) {
|
|
return transformer.transform(backer.get(o));
|
|
}
|
|
|
|
@Override
|
|
public String put(String s, String s2) {
|
|
transformer.transform(s2);
|
|
return backer.put(s, s2);
|
|
}
|
|
|
|
@Override
|
|
public String remove(Object o) {
|
|
return backer.remove(o);
|
|
}
|
|
|
|
@Override
|
|
public void putAll(Map<? extends String, ? extends String> map) {
|
|
for (String value : map.values()) {
|
|
transformer.transform(value);
|
|
}
|
|
backer.putAll(map);
|
|
}
|
|
|
|
@Override
|
|
public void clear() {
|
|
backer.clear();
|
|
}
|
|
|
|
@Override
|
|
public Set<String> keySet() {
|
|
return backer.keySet();
|
|
}
|
|
|
|
@Override
|
|
public Collection<String> values() {
|
|
return backer.values();
|
|
}
|
|
|
|
@Override
|
|
public Set<Entry<String, String>> entrySet() {
|
|
return backer.entrySet();
|
|
}
|
|
}
|