refactor: switch to EnumSet for heightmaps to improve performance (#2248)

This commit is contained in:
Jordan 2023-05-27 13:25:07 +01:00 committed by GitHub
parent 3041ff3e50
commit a553961c05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 6 deletions

View File

@ -9,7 +9,7 @@ import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@ -95,7 +95,7 @@ public interface IChunkSet extends IBlocks, OutputExtent {
}
default Map<HeightMapType, int[]> getHeightMaps() {
return new HashMap<>();
return new EnumMap<>(HeightMapType.class);
}
@Override

View File

@ -15,7 +15,7 @@ import com.sk89q.worldedit.world.block.BlockTypesCache;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@ -40,7 +40,7 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet {
public BlockVector3ChunkMap<CompoundTag> tiles;
public HashSet<CompoundTag> entities;
public HashSet<UUID> entityRemoves;
public Map<HeightMapType, int[]> heightMaps;
public EnumMap<HeightMapType, int[]> heightMaps;
private boolean fastMode = false;
private int bitMask = -1;
@ -93,7 +93,7 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet {
@Override
public Map<HeightMapType, int[]> getHeightMaps() {
return heightMaps == null ? new HashMap<>() : heightMaps;
return heightMaps == null ? new EnumMap<>(HeightMapType.class) : heightMaps;
}
@Override
@ -177,7 +177,7 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet {
@Override
public void setHeightMap(HeightMapType type, int[] heightMap) {
if (heightMaps == null) {
heightMaps = new HashMap<>();
heightMaps = new EnumMap<>(HeightMapType.class);
}
heightMaps.put(type, heightMap);
}