fix mem leak & increase perf

This commit is contained in:
dfsek 2020-12-14 02:19:18 -07:00
parent ebe887def0
commit 2215c8a98c
2 changed files with 8 additions and 2 deletions

View File

@ -36,10 +36,13 @@ import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class TerraFabricPlugin implements TerraPlugin, ModInitializer { public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
private final Map<Long, TerraWorld> worldMap = new HashMap<>();
private static TerraFabricPlugin instance; private static TerraFabricPlugin instance;
private final TerraChunkGeneratorCodec chunkGeneratorCodec = new TerraChunkGeneratorCodec(this); private final TerraChunkGeneratorCodec chunkGeneratorCodec = new TerraChunkGeneratorCodec(this);
@ -72,7 +75,10 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
@Override @Override
public TerraWorld getWorld(World world) { public TerraWorld getWorld(World world) {
return new TerraWorld(world, getRegistry().get("DEFAULT"), this); return worldMap.computeIfAbsent(world.getSeed(), w -> {
logger.info("Loading world " + w);
return new TerraWorld(world, getRegistry().get("DEFAULT"), this);
});
} }
@Override @Override

View File

@ -40,7 +40,7 @@ public class FabricWorldChunkRegion implements World {
@Override @Override
public String getName() { public String getName() {
return getWorldFolder().getName(); return delegate.chunk.toString();
} }
@Override @Override