diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/RenderManager.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/RenderManager.java index 7c9935e0..53f1ac9c 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/RenderManager.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/RenderManager.java @@ -265,7 +265,7 @@ public void readState(DataInputStream in, Collection mapTypes) throws I tiles.add(tile); } - createTickets(mapType, tiles); + if (mapType != null) createTickets(mapType, tiles); } //read tasks diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/commands/Commands.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/commands/Commands.java index 8fc439a5..3404c6bb 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/commands/Commands.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/plugin/commands/Commands.java @@ -87,7 +87,7 @@ public void init() { // commands LiteralCommandNode baseCommand = literal("bluemap") - .requires(requirements("bluemap.status")) + .requires(requirementsUnloaded("bluemap.status")) .executes(this::statusCommand) .build(); @@ -255,7 +255,7 @@ private Optional parseWorld(String worldName) { private Optional parseMap(String mapId) { for (MapType map : plugin.getMapTypes()) { - if (map.getName().equalsIgnoreCase(mapId)) { + if (map.getId().equalsIgnoreCase(mapId)) { return Optional.of(map); } } @@ -277,6 +277,11 @@ private Optional parseUUID(String uuidString) { public int statusCommand(CommandContext context) { CommandSource source = commandSourceInterface.apply(context.getSource()); + if (!plugin.isLoaded()) { + source.sendMessage(Text.of(TextColor.RED, "BlueMap is not loaded! Try /bluemap reload")); + return 0; + } + source.sendMessages(helper.createStatusMessage()); return 1; } diff --git a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/blockmodel/ResourceModelBuilder.java b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/blockmodel/ResourceModelBuilder.java index 3acc10de..b5515cd4 100644 --- a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/blockmodel/ResourceModelBuilder.java +++ b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/blockmodel/ResourceModelBuilder.java @@ -189,8 +189,17 @@ private void createElementFace(BlockStateModel model, TransformedBlockModelResou Texture texture = face.getTexture(); int textureId = texture.getId(); - ExtendedFace f1 = new ExtendedFace(c0, c1, c2, uvs[0], uvs[1], uvs[2], textureId); - ExtendedFace f2 = new ExtendedFace(c0, c2, c3, uvs[0], uvs[2], uvs[3], textureId); + ExtendedFace f1; + ExtendedFace f2; + + try { + f1 = new ExtendedFace(c0, c1, c2, uvs[0], uvs[1], uvs[2], textureId); + f2 = new ExtendedFace(c0, c2, c3, uvs[0], uvs[2], uvs[3], textureId); + } catch (ArithmeticException ex) { + // This error is thrown when a model defined a face that has no surface (all 3 points are on one line) + // we catch it here and simply ignore the face + return; + } //tint the face Vector3f color = Vector3f.ONE; diff --git a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/resourcepack/BlockModelResource.java b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/resourcepack/BlockModelResource.java index 13e767a0..47fce7ad 100644 --- a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/resourcepack/BlockModelResource.java +++ b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/resourcepack/BlockModelResource.java @@ -269,7 +269,6 @@ private BlockModelResource buildNoReset(String modelPath, boolean renderElements for (Entry entry : config.getNode("textures").getChildrenMap().entrySet()) { if (entry.getKey().equals(JSON_COMMENT)) continue; - textures.putIfAbsent(entry.getKey().toString(), entry.getValue().getString(null)); } @@ -426,6 +425,8 @@ private Vector4f readVector4f(ConfigurationNode node) throws ParseResourceExcept } private Texture getTexture(String key) throws NoSuchElementException, FileNotFoundException, IOException { + if (key.isEmpty() || key.equals("#")) throw new NoSuchElementException("Empty texture key or name!"); + if (key.charAt(0) == '#') { String value = textures.get(key.substring(1)); if (value == null) throw new NoSuchElementException("There is no texture defined for the key " + key); diff --git a/BlueMapCore/src/main/webroot/js/libs/shaders/HiresVertexShader.js b/BlueMapCore/src/main/webroot/js/libs/shaders/HiresVertexShader.js index 0feab341..e0f1cfe1 100644 --- a/BlueMapCore/src/main/webroot/js/libs/shaders/HiresVertexShader.js +++ b/BlueMapCore/src/main/webroot/js/libs/shaders/HiresVertexShader.js @@ -25,6 +25,7 @@ import { ShaderChunk } from 'three'; const HIRES_VERTEX_SHADER = ` +#define EPSILON 1e-6 ${ShaderChunk.logdepthbuf_pars_vertex} attribute float ao; diff --git a/BlueMapCore/src/main/webroot/js/libs/shaders/LowresVertexShader.js b/BlueMapCore/src/main/webroot/js/libs/shaders/LowresVertexShader.js index ae9a4485..8cd668f5 100644 --- a/BlueMapCore/src/main/webroot/js/libs/shaders/LowresVertexShader.js +++ b/BlueMapCore/src/main/webroot/js/libs/shaders/LowresVertexShader.js @@ -25,6 +25,7 @@ import { ShaderChunk } from 'three'; const LOWRES_VERTEX_SHADER = ` +#define EPSILON 1e-6 ${ShaderChunk.logdepthbuf_pars_vertex} varying vec3 vPosition; diff --git a/BlueMapForge/build.gradle b/BlueMapForge/build.gradle index 88cf872c..eea31226 100644 --- a/BlueMapForge/build.gradle +++ b/BlueMapForge/build.gradle @@ -20,7 +20,7 @@ configurations { } dependencies { - minecraft 'net.minecraftforge:forge:1.15.2-31.1.0' + minecraft 'net.minecraftforge:forge:1.14.4-28.2.0' include (project(':BlueMapCommon')) { //exclude dependencies provided by forge @@ -33,7 +33,7 @@ dependencies { } build.dependsOn shadowJar { - destinationDir = file '../build/unsupported' + destinationDir = file '../build/release' archiveFileName = "BlueMap-${version}-forge.jar" configurations = [project.configurations.include] diff --git a/BlueMapForge/src/main/resources/META-INF/mods.toml b/BlueMapForge/src/main/resources/META-INF/mods.toml index 253c1248..94389c57 100644 --- a/BlueMapForge/src/main/resources/META-INF/mods.toml +++ b/BlueMapForge/src/main/resources/META-INF/mods.toml @@ -20,6 +20,6 @@ A 3d-map of your Minecraft worlds view-able in your browser using three.js (WebG [[dependencies.bluemap]] modId="minecraft" mandatory=true - versionRange="[1.15.2]" + versionRange="[1.14.4]" ordering="NONE" side="SERVER" \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 65f6b8f7..bc6dfb76 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -coreVersion=0.7.0 +coreVersion=0.8.0 targetVersion=mc1.13 \ No newline at end of file