Skip to content

Commit e178f93

Browse files
committed
Rewrite of the render-engine and big performance improvements
- changed most immutable vectors with mutable ones - dropped 1.12.2 support - improved caching and block/chunk access - much more smaller tweaks
1 parent 8838bd6 commit e178f93

File tree

178 files changed

+1323
-26647
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+1323
-26647
lines changed

BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/BlueMapService.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import de.bluecolored.bluemap.core.MinecraftVersion;
3131
import de.bluecolored.bluemap.core.config.*;
3232
import de.bluecolored.bluemap.core.debug.DebugDump;
33-
import de.bluecolored.bluemap.core.debug.OneBlockWorld;
3433
import de.bluecolored.bluemap.core.logger.Logger;
3534
import de.bluecolored.bluemap.core.map.BmMap;
3635
import de.bluecolored.bluemap.core.map.hires.RenderSettings;
@@ -136,9 +135,6 @@ private synchronized void loadWorldsAndMaps() throws IOException, InterruptedExc
136135
maps = new HashMap<>();
137136
worlds = new HashMap<>();
138137

139-
ConfigManager configManager = getConfigManager();
140-
configManager.loadResourceConfigs(configFolder, getResourcePack());
141-
142138
for (MapConfig mapConfig : getRenderConfig().getMapConfigs()) {
143139
String id = mapConfig.getId();
144140
String name = mapConfig.getName();
@@ -160,7 +156,7 @@ private synchronized void loadWorldsAndMaps() throws IOException, InterruptedExc
160156
World world = worlds.get(worldUUID);
161157
if (world == null) {
162158
try {
163-
world = MCAWorld.load(worldFolder.toPath(), worldUUID, minecraftVersion, configManager.getBlockIdConfig(), configManager.getBlockPropertiesConfig(), configManager.getBiomeConfig(), worldNameProvider.apply(worldUUID), mapConfig.isIgnoreMissingLightData());
159+
world = MCAWorld.load(worldFolder.toPath(), worldUUID, worldNameProvider.apply(worldUUID), mapConfig.isIgnoreMissingLightData());
164160
worlds.put(worldUUID, world);
165161
} catch (MissingResourcesException e) {
166162
throw e; // rethrow this to stop loading and display resource-missing message
@@ -230,7 +226,10 @@ public synchronized ResourcePack getResourcePack() throws IOException, Interrupt
230226

231227
if (resourceExtensionsFile.exists()) FileUtils.forceDelete(resourceExtensionsFile);
232228
FileUtils.forceMkdirParent(resourceExtensionsFile);
233-
FileUtils.copyURLToFile(Plugin.class.getResource("/de/bluecolored/bluemap/" + minecraftVersion.getResource().getResourcePrefix() + "/resourceExtensions.zip"), resourceExtensionsFile, 10000, 10000);
229+
URL resourceExtensionsUrl = Objects.requireNonNull(
230+
Plugin.class.getResource("/de/bluecolored/bluemap/" + minecraftVersion.getResource().getResourcePrefix() + "/resourceExtensions.zip")
231+
);
232+
FileUtils.copyURLToFile(resourceExtensionsUrl, resourceExtensionsFile, 10000, 10000);
234233

235234
//find more resource packs
236235
File[] resourcePacks = resourcePackFolder.listFiles();
@@ -243,7 +242,7 @@ public synchronized ResourcePack getResourcePack() throws IOException, Interrupt
243242
resources.add(resourceExtensionsFile);
244243

245244
try {
246-
resourcePack = new ResourcePack(minecraftVersion);
245+
resourcePack = new ResourcePack();
247246
if (textureExportFile.exists()) resourcePack.loadTextureFile(textureExportFile);
248247
resourcePack.load(resources);
249248
resourcePack.saveTextureFile(textureExportFile);

BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/commands/Commands.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,8 @@
5959
import de.bluecolored.bluemap.core.logger.Logger;
6060
import de.bluecolored.bluemap.core.map.BmMap;
6161
import de.bluecolored.bluemap.core.map.MapRenderState;
62-
import de.bluecolored.bluemap.core.mca.ChunkAnvil112;
6362
import de.bluecolored.bluemap.core.resourcepack.ParseResourceException;
6463
import de.bluecolored.bluemap.core.world.Block;
65-
import de.bluecolored.bluemap.core.world.Chunk;
6664
import de.bluecolored.bluemap.core.world.World;
6765

6866
import java.io.IOException;
@@ -528,24 +526,21 @@ public int debugBlockCommand(CommandContext<S> context) {
528526
new Thread(() -> {
529527
// collect and output debug info
530528
Vector3i blockPos = position.floor().toInt();
531-
Block block = world.getBlock(blockPos);
532-
Block blockBelow = world.getBlock(blockPos.add(0, -1, 0));
529+
Block<?> block = new Block<>(world, blockPos.getX(), blockPos.getY(), blockPos.getZ());
530+
Block<?> blockBelow = new Block<>(null, 0, 0, 0).copy(block, 0, -1, 0);
533531

534-
String blockIdMeta = "";
535-
String blockBelowIdMeta = "";
532+
// populate lazy-loaded values
533+
block.getBlockState();
534+
block.getBiomeId();
535+
block.getLightData();
536536

537-
Vector2i chunkPos = world.getChunkGrid().getCell(blockPos.toVector2(true));
538-
Chunk chunk = world.getChunk(chunkPos.getX(), chunkPos.getY());
537+
blockBelow.getBlockState();
538+
blockBelow.getBiomeId();
539+
blockBelow.getLightData();
539540

540-
if (chunk instanceof ChunkAnvil112) {
541-
blockIdMeta = " (" + ((ChunkAnvil112) chunk).getBlockIdMeta(blockPos) + ")";
542-
blockBelowIdMeta = " (" + ((ChunkAnvil112) chunk).getBlockIdMeta(blockPos.add(0, -1, 0)) + ")";
543-
}
544-
545541
source.sendMessages(Arrays.asList(
546-
Text.of(TextColor.GOLD, "Block at you: ", TextColor.WHITE, block, TextColor.GRAY, blockIdMeta),
547-
Text.of(TextColor.GOLD, "Block below you: ", TextColor.WHITE, blockBelow, TextColor.GRAY, blockBelowIdMeta),
548-
Text.of(TextColor.GOLD, "Chunk: ", TextColor.WHITE, chunk)
542+
Text.of(TextColor.GOLD, "Block at you: ", TextColor.WHITE, block),
543+
Text.of(TextColor.GOLD, "Block below you: ", TextColor.WHITE, blockBelow)
549544
));
550545
}).start();
551546

BlueMapCore/src/main/java/de/bluecolored/bluemap/core/config/BiomeConfig.java

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)