diff --git a/.gitignore b/.gitignore index a2ed0e7b6b..38da08f001 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ nbproject/ hs_err_pid* shader-dumps/ **/*.log +/src/main/resources/rs117/hd/scene/textures diff --git a/build.gradle b/build.gradle index 7244c66e81..74c3bd10cd 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,6 @@ plugins { } repositories { - mavenLocal() maven { url = 'https://repo.runelite.net' } @@ -36,6 +35,13 @@ tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } +tasks.register('prepareTextures', PrepareTexturesTask) { + testTexturesDir = file('src/test/resources/rs117/hd/scene/textures') + mainTexturesDir = file('src/main/resources/rs117/hd/scene/textures') +} + +processResources.dependsOn prepareTextures + //import groovy.json.JsonOutput // //import java.lang.reflect.Modifier diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 0000000000..24ad042323 --- /dev/null +++ b/buildSrc/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'groovy' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation localGroovy() +} diff --git a/buildSrc/src/main/groovy/PrepareTexturesTask.groovy b/buildSrc/src/main/groovy/PrepareTexturesTask.groovy new file mode 100644 index 0000000000..7294cb7111 --- /dev/null +++ b/buildSrc/src/main/groovy/PrepareTexturesTask.groovy @@ -0,0 +1,184 @@ +import org.gradle.api.DefaultTask +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.tasks.* + +import javax.imageio.ImageIO +import java.awt.image.BufferedImage +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.StandardCopyOption +import java.util.zip.CRC32 + +class PrepareTexturesTask extends DefaultTask { + @InputDirectory + File testTexturesDir + + @OutputDirectory + File mainTexturesDir + + @TaskAction + void prepare() { + def test = testTexturesDir.toPath() + def main = mainTexturesDir.toPath() + if (!Files.isDirectory(test)) return + + def cache = loadCache(test) + def normals = Files.isDirectory(test.resolve("normals")) ? test.resolve("normals") : test + def displacement = Files.isDirectory(test.resolve("displacement")) ? test.resolve("displacement") : test + + Files.createDirectories(main) + + // Combine _n + _d -> _nd + Files.list(normals).withCloseable { stream -> + stream.filter { Files.isRegularFile(it) && it.fileName.toString().toLowerCase().matches(".*_n\\.(png|jpg|jpeg)") }.each { nPath -> + def base = baseName(nPath.fileName.toString(), "_n") + def dPath = ["png", "jpg", "jpeg"].collect { displacement.resolve("${base}_d.${it}") }.find { Files.exists(it) } + def outName = "${base}_nd.png" + def outPath = main.resolve(outName) + + def nCrc = crc32(nPath) + def dCrc = dPath ? crc32(dPath) : null + if (Files.exists(outPath) && !shouldCombine(cache, outName, nCrc, dCrc)) return + + def nImg = ImageIO.read(nPath.toFile()) + if (!nImg) return + + def w = nImg.width + def h = nImg.height + def nRgba = nImg.type == BufferedImage.TYPE_INT_ARGB ? nImg : toRgba(nImg) + + def out + if (dPath) { + def dImg = ImageIO.read(dPath.toFile()) + if (dImg) { + if (dImg.width != w || dImg.height != h) { + def resized = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB) + resized.createGraphics().with { g -> + g.drawImage(dImg, 0, 0, w, h, null) + g.dispose() + } + dImg = resized + } + def dGray = toGrayscale(dImg) + out = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB) + for (y in 0.. + stream.filter { Files.isRegularFile(it) }.each { p -> + def name = p.fileName.toString().toLowerCase() + if (!(name ==~ imageExt)) return + if (name.matches(".*_n\\.(png|jpg|jpeg)") || name.matches(".*_d\\.(png|jpg|jpeg)")) return + def dest = main.resolve(p.fileName) + def crc = crc32(p) + if (Files.exists(dest) && !shouldCopy(cache, p.fileName.toString(), crc)) return + Files.copy(p, dest, StandardCopyOption.REPLACE_EXISTING) + putCopied(cache, p.fileName.toString(), crc) + copied++ + } + } + + saveCache(test, cache) + if (copied > 0) logger.lifecycle("Prepared {} textures -> {}", copied, main) + } + + static def baseName(filename, suffix) { + def l = filename.toLowerCase() + for (ext in ["png", "jpg", "jpeg"]) + if (l.endsWith("${suffix}.${ext}")) + return filename.substring(0, filename.length() - suffix.length() - ext.length() - 1) + return filename + } + + static def crc32(Path p) { + def crc = new CRC32() + Files.newInputStream(p).withCloseable { ins -> + def buf = new byte[8192] + int n + while ((n = ins.read(buf)) >= 0) crc.update(buf, 0, n) + } + return crc.value + } + + static def toRgba(BufferedImage img) { + def out = new BufferedImage(img.width, img.height, BufferedImage.TYPE_INT_ARGB) + out.graphics.drawImage(img, 0, 0, null) + return out + } + + static def toGrayscale(BufferedImage img) { + def gray = new BufferedImage(img.width, img.height, BufferedImage.TYPE_INT_ARGB) + for (y in 0..> 16) & 0xFF + def g = (rgb >> 8) & 0xFF + def b = rgb & 0xFF + def lum = (int)(0.299 * r + 0.587 * g + 0.114 * b) + gray.setRGB(x, y, (255 << 24) | (lum << 16) | (lum << 8) | lum) + } + return gray + } + + def loadCache(Path test) { + def cache = [:] + def cacheFile = test.resolve(".texture-cache.json") + if (Files.isRegularFile(cacheFile)) { + try { + def json = new groovy.json.JsonSlurper().parseText(Files.readString(cacheFile)) + if (json instanceof Map) cache = json + } catch (e) {} + } + return cache + } + + def saveCache(Path test, Map cache) { + try { + Files.writeString(test.resolve(".texture-cache.json"), new groovy.json.JsonBuilder(cache).toPrettyString().replaceAll("\\s+", " ").trim()) + } catch (e) {} + } + + static def shouldCombine(cache, outName, nCrc, dCrc) { + if (!cache[outName] || !(cache[outName] instanceof Map)) return true + def e = cache[outName] + if (e.n != Long.toHexString(nCrc)) return true + def cachedNull = e.d == null + if (cachedNull && dCrc == null) return false + if (!cachedNull && dCrc != null) return e.d != Long.toHexString(dCrc) + return true + } + + static def putCombined(cache, outName, nCrc, dCrc) { + cache[outName] = [n: Long.toHexString(nCrc), d: dCrc != null ? Long.toHexString(dCrc) : null] + } + + static def shouldCopy(cache, name, crc) { + return !cache[name] || cache[name] != Long.toHexString(crc) + } + + static def putCopied(cache, name, crc) { + cache[name] = Long.toHexString(crc) + } +} diff --git a/src/main/java/rs117/hd/scene/materials/Material.java b/src/main/java/rs117/hd/scene/materials/Material.java index 1eaf988cff..e1bbd4d6ef 100644 --- a/src/main/java/rs117/hd/scene/materials/Material.java +++ b/src/main/java/rs117/hd/scene/materials/Material.java @@ -43,9 +43,7 @@ public class Material { public int vanillaTextureIndex = -1; @JsonAdapter(Reference.Adapter.class) - private Material normalMap; - @JsonAdapter(Reference.Adapter.class) - private Material displacementMap; + private Material normalAndDisplacementMap; @JsonAdapter(Reference.Adapter.class) private Material roughnessMap; @JsonAdapter(Reference.Adapter.class) @@ -59,7 +57,7 @@ public class Material { private boolean unlit; @JsonAdapter(ColorUtils.LinearAdapter.class) public float brightness = 1; - private float displacementScale = .1f; + private Float displacementScale; private float flowMapStrength; private float[] flowMapDuration = { 0, 0 }; private float specularStrength; @@ -98,15 +96,15 @@ public void normalize(Map materials) { parent.normalize(materials); } - normalMap = resolveReference(normalMap, materials); - displacementMap = resolveReference(displacementMap, materials); + normalAndDisplacementMap = resolveReference(normalAndDisplacementMap, materials); roughnessMap = resolveReference(roughnessMap, materials); ambientOcclusionMap = resolveReference(ambientOcclusionMap, materials); flowMap = resolveReference(flowMap, materials); shadowAlphaMap = resolveReference(shadowAlphaMap, materials); - if (displacementScale == 0) - displacementMap = NONE.displacementMap; + if (displacementScale == null && parent != null) + displacementScale = parent.displacementScale; + flowMapDuration = ensureDefaults(flowMapDuration, NONE.flowMapDuration); scrollSpeed = ensureDefaults(scrollSpeed, NONE.scrollSpeed); textureScale = ensureDefaults(textureScale, NONE.textureScale); @@ -124,8 +122,7 @@ public void normalize(Map materials) { base = base.parent; modifiesVanillaTexture = base != NONE || - normalMap != null || - displacementMap != null || + normalAndDisplacementMap != null || roughnessMap != null || ambientOcclusionMap != null || flowMap != null || @@ -202,8 +199,15 @@ public void fillMaterialStruct( float scrollSpeedY = scrollSpeed[1] + vanillaScrollY; struct.colorMap.set(textureLayer); - struct.normalMap.set(getTextureLayer(normalMap)); - struct.displacementMap.set(getTextureLayer(displacementMap)); + if (normalAndDisplacementMap != null) { + int layer = getTextureLayer(normalAndDisplacementMap); + struct.normalMap.set(layer); + float scale = displacementScale != null ? displacementScale : 0; + struct.displacementMap.set(scale != 0 ? layer : -1); + } else { + struct.normalMap.set(-1); + struct.displacementMap.set(-1); + } struct.roughnessMap.set(getTextureLayer(roughnessMap)); struct.ambientOcclusionMap.set(getTextureLayer(ambientOcclusionMap)); struct.flowMap.set(getTextureLayer(flowMap)); @@ -214,7 +218,7 @@ public void fillMaterialStruct( (hasTransparency ? 1 : 0) ); struct.brightness.set(brightness); - struct.displacementScale.set(displacementScale); + struct.displacementScale.set(displacementScale != null ? displacementScale : 0); struct.specularStrength.set(specularStrength); struct.specularGloss.set(specularGloss); struct.flowMapStrength.set(flowMapStrength); diff --git a/src/main/resources/rs117/hd/scene/materials.json b/src/main/resources/rs117/hd/scene/materials.json index 671dfa3c6c..6b777a33d1 100644 --- a/src/main/resources/rs117/hd/scene/materials.json +++ b/src/main/resources/rs117/hd/scene/materials.json @@ -1141,11 +1141,11 @@ "specularGloss": 80.0 }, { - "name": "SMOOTH_SNOW_N" + "name": "SMOOTH_SNOW_ND" }, { "name": "SMOOTH_SNOW", - "normalMap": "SMOOTH_SNOW_N", + "normalAndDisplacementMap": "SMOOTH_SNOW_ND", "specularStrength": 0.4, "specularGloss": 20.0 }, @@ -1166,7 +1166,7 @@ }, { "name": "SMOOTH_SNOW_COLORED", - "normalMap": "SMOOTH_SNOW_N", + "normalAndDisplacementMap": "SMOOTH_SNOW_ND", "overrideBaseColor": true, "specularStrength": 0.4, "specularGloss": 20.0 @@ -1178,29 +1178,29 @@ "specularGloss": 120.0 }, { - "name": "SNOW_1_N" + "name": "SNOW_1_ND" }, { "name": "SNOW_1", - "normalMap": "SNOW_1_N", + "normalAndDisplacementMap": "SNOW_1_ND", "specularStrength": 0.4, "specularGloss": 20.0 }, { - "name": "SNOW_2_N" + "name": "SNOW_2_ND" }, { "name": "SNOW_2", - "normalMap": "SNOW_2_N", + "normalAndDisplacementMap": "SNOW_2_ND", "specularStrength": 0.4, "specularGloss": 20.0 }, { - "name": "SNOW_3_N" + "name": "SNOW_3_ND" }, { "name": "SNOW_3", - "normalMap": "SNOW_3_N", + "normalAndDisplacementMap": "SNOW_3_ND", "specularStrength": 0.4, "specularGloss": 20.0 }, @@ -1236,11 +1236,11 @@ "overrideBaseColor": true }, { - "name": "DIRT_1_N" + "name": "DIRT_1_ND" }, { "name": "DIRT_1", - "normalMap": "DIRT_1_N", + "normalAndDisplacementMap": "DIRT_1_ND", "specularStrength": 0.13, "specularGloss": 18.0 }, @@ -1267,21 +1267,21 @@ { "name": "DIRT_1_VERT", "parent": "DIRT_1", - "normalMap": null + "normalAndDisplacementMap": null }, { - "name": "DIRT_2_N" + "name": "DIRT_2_ND" }, { "name": "DIRT_2", - "normalMap": "DIRT_2_N", + "normalAndDisplacementMap": "DIRT_2_ND", "specularStrength": 0.13, "specularGloss": 18.0 }, { "name": "DIRT_2_VERT", "parent": "DIRT_2", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "DIRT_2_LIGHT", @@ -1299,18 +1299,18 @@ "brightness": 0.85 }, { - "name": "GRAVEL_N" + "name": "GRAVEL_ND" }, { "name": "GRAVEL", - "normalMap": "GRAVEL_N", + "normalAndDisplacementMap": "GRAVEL_ND", "specularStrength": 0.4, "specularGloss": 130.0 }, { "name": "VERTICAL_GRAVEL", "parent": "GRAVEL", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "GRAVEL_SEMI_LIGHT", @@ -1348,11 +1348,11 @@ "specularGloss": 380.0 }, { - "name": "MUD_1_N" + "name": "MUD_1_ND" }, { "name": "MUD_1", - "normalMap": "MUD_1_N", + "normalAndDisplacementMap": "MUD_1_ND", "specularStrength": 0.5, "specularGloss": 25.0 }, @@ -1362,48 +1362,49 @@ "brightness": 0.931 }, { - "name": "SAND_1_N" + "name": "SAND_1_ND" }, { "name": "SAND_1", - "normalMap": "SAND_1_N", + "normalAndDisplacementMap": "SAND_1_ND", "specularStrength": 0.2, "specularGloss": 10.0 }, { - "name": "SAND_2_N" + "name": "SAND_2_ND" }, { "name": "SAND_2", - "normalMap": "SAND_2_N", + "normalAndDisplacementMap": "SAND_2_ND", "specularStrength": 0.2, "specularGloss": 10.0 }, { - "name": "SAND_3_N" + "name": "SAND_3_ND" }, { "name": "SAND_3", - "normalMap": "SAND_3_N", + "normalAndDisplacementMap": "SAND_3_ND", "specularStrength": 0.2, "specularGloss": 10.0 }, { - "name": "SAND_4_N" + "name": "SAND_4_ND" }, { "name": "SAND_4", - "normalMap": "SAND_4_N", + "normalAndDisplacementMap": "SAND_4_ND", + "displacementScale": 0, "specularStrength": 0.2, "specularGloss": 10.0, "textureScale": [ 1, 1, 0.65 ] }, { - "name": "GRUNGE_1_N" + "name": "GRUNGE_1_ND" }, { "name": "GRUNGE_1", - "normalMap": "GRUNGE_1_N", + "normalAndDisplacementMap": "GRUNGE_1_ND", "specularStrength": 0.25, "specularGloss": 30.0 }, @@ -1441,11 +1442,11 @@ "specularGloss": 300.0 }, { - "name": "GRUNGE_2_N" + "name": "GRUNGE_2_ND" }, { "name": "GRUNGE_2", - "normalMap": "GRUNGE_2_N", + "normalAndDisplacementMap": "GRUNGE_2_ND", "specularStrength": 0.25, "specularGloss": 20.0 }, @@ -1472,23 +1473,23 @@ ] }, { - "name": "GRUNGE_3_N" + "name": "GRUNGE_3_ND" }, { "name": "GRUNGE_3", - "normalMap": "GRUNGE_3_N", + "normalAndDisplacementMap": "GRUNGE_3_ND", "specularStrength": 0.25, "specularGloss": 30.0 }, { "name": "GRUNGE_3_SMOOTH", "parent": "GRUNGE_3", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "GRUNGE_3_SMOOTH_LIGHT", "parent": "GRUNGE_3_LIGHT", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "GRUNGE_3_GLOSS", @@ -1555,7 +1556,7 @@ "flowMapStrength": 0.5, "brightness": 0.85, "specularGloss": 2, - "normalMap": "METALLIC_2_N", + "normalAndDisplacementMap": "METALLIC_2_ND", "flowMapDuration": [ 35.0, -35.0 @@ -1622,16 +1623,16 @@ { "name": "GRUNGE_3_DULL", "parent": "GRUNGE_3", - "normalMap": null, + "normalAndDisplacementMap": null, "specularStrength": 0.0, "specularGloss": 0.0 }, { - "name": "ROCK_1_N" + "name": "ROCK_1_ND" }, { "name": "ROCK_1", - "normalMap": "ROCK_1_N", + "normalAndDisplacementMap": "ROCK_1_ND", "specularStrength": 0.35, "specularGloss": 40.0 }, @@ -1643,14 +1644,14 @@ { "name": "ROCK_1_LIGHT_SMOOTH", "parent": "ROCK_1_LIGHT", - "normalMap": null + "normalAndDisplacementMap": null }, { - "name": "ROCK_2_N" + "name": "ROCK_2_ND" }, { "name": "ROCK_2", - "normalMap": "ROCK_2_N", + "normalAndDisplacementMap": "ROCK_2_ND", "brightness": 1.083, "specularStrength": 0.35, "specularGloss": 60.0 @@ -1661,15 +1662,11 @@ "brightness": 1.2 }, { - "name": "ROCK_3_D" - }, - { - "name": "ROCK_3_N" + "name": "ROCK_3_ND" }, { "name": "ROCK_3", - "normalMap": "ROCK_3_N", - "displacementMap": "ROCK_3_D", + "normalAndDisplacementMap": "ROCK_3_ND", "brightness": 1.083, "displacementScale": 0.15, "specularStrength": 0.4, @@ -1693,7 +1690,6 @@ { "name": "ROCK_3_VERY_LIGHT_SMOOTH", "parent": "ROCK_3", - "displacementMap": null, "textureScale": [ 1, 1, @@ -1704,8 +1700,7 @@ { "name": "ROCK_3_SMOOTH", "parent": "ROCK_3", - "displacementMap": null, - "displacementScale": 0.0, + "displacementScale": 0, "specularStrength": 0.3, "specularGloss": 40.0, "textureScale": [ @@ -1717,8 +1712,7 @@ { "name": "ROCK_3_SEMI_SMOOTH", "parent": "ROCK_3", - "displacementMap": null, - "displacementScale": 0.0, + "displacementScale": 0, "specularStrength": 0.3, "specularGloss": 40.0, "textureScale": [ @@ -1735,8 +1729,7 @@ { "name": "ROCK_3_SEMI_SMOOTH_LIGHT", "parent": "ROCK_3_LIGHT", - "displacementMap": null, - "displacementScale": 0.0, + "displacementScale": 0, "specularStrength": 0.3, "specularGloss": 40.0, "textureScale": [ @@ -1765,15 +1758,11 @@ "parent": "ROCK_3" }, { - "name": "ROCK_4_D" - }, - { - "name": "ROCK_4_N" + "name": "ROCK_4_ND" }, { "name": "ROCK_4", - "normalMap": "ROCK_4_N", - "displacementMap": "ROCK_4_D", + "normalAndDisplacementMap": "ROCK_4_ND", "brightness": 1.083, "displacementScale": 0.12, "specularStrength": 0.4, @@ -1796,15 +1785,11 @@ "specularStrength": 1.0 }, { - "name": "ROCK_5_D" - }, - { - "name": "ROCK_5_N" + "name": "ROCK_5_ND" }, { "name": "ROCK_5", - "normalMap": "ROCK_5_N", - "displacementMap": "ROCK_5_D", + "normalAndDisplacementMap": "ROCK_5_ND", "brightness": 1.083, "displacementScale": 0.12, "specularStrength": 0.4, @@ -1827,11 +1812,11 @@ "specularStrength": 1.0 }, { - "name": "ROCK_6_N" + "name": "ROCK_6_ND" }, { "name": "ROCK_6", - "normalMap": "ROCK_6_N" + "normalAndDisplacementMap": "ROCK_6_ND" }, { "name": "ROCK_6_DARK", @@ -1862,11 +1847,11 @@ "brightness": 0.75 }, { - "name": "CARPET_N" + "name": "CARPET_ND" }, { "name": "CARPET", - "normalMap": "CARPET_N", + "normalAndDisplacementMap": "CARPET_ND", "specularStrength": 0.25, "specularGloss": 30.0 }, @@ -1888,17 +1873,17 @@ { "name": "CARPET_LIGHT_SMOOTH", "parent": "CARPET_LIGHT", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "CARPET_VERY_LIGHT_SMOOTH", "parent": "CARPET_VERY_LIGHT", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "CARPET_SUPER_LIGHT_SMOOTH", "parent": "CARPET_SUPER_LIGHT", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "CARPET_SEMI_DARK", @@ -1919,38 +1904,30 @@ "brightness": 1.1 }, { - "name": "FALADOR_PATH_BRICK_N" - }, - { - "name": "FALADOR_PATH_BRICK_D" + "name": "FALADOR_PATH_BRICK_ND" }, { "name": "FALADOR_PATH_BRICK", - "normalMap": "FALADOR_PATH_BRICK_N", - "displacementMap": "FALADOR_PATH_BRICK_D", + "normalAndDisplacementMap": "FALADOR_PATH_BRICK_ND", "displacementScale": 0.06, "specularStrength": 0.25, "specularGloss": 30.0 }, { - "name": "BRICK_PATH_N" + "name": "BRICK_PATH_ND" }, { "name": "BRICK_PATH", - "normalMap": "BRICK_PATH_N", + "normalAndDisplacementMap": "BRICK_PATH_ND", "specularStrength": 0.3, "specularGloss": 30.0 }, { - "name": "JAGGED_STONE_TILE_D" - }, - { - "name": "JAGGED_STONE_TILE_N" + "name": "JAGGED_STONE_TILE_ND" }, { "name": "JAGGED_STONE_TILE", - "normalMap": "JAGGED_STONE_TILE_N", - "displacementMap": "JAGGED_STONE_TILE_D", + "normalAndDisplacementMap": "JAGGED_STONE_TILE_ND", "displacementScale": 0.05, "specularStrength": 0.5, "specularGloss": 30.0 @@ -1971,11 +1948,11 @@ "specularGloss": 70.0 }, { - "name": "TILES_2X2_1_N" + "name": "TILES_2X2_1_ND" }, { "name": "TILES_2X2_1", - "normalMap": "TILES_2X2_1_N" + "normalAndDisplacementMap": "TILES_2X2_1_ND" }, { "name": "TILES_2X2_1_GLOSS", @@ -1990,11 +1967,11 @@ "specularGloss": 300.0 }, { - "name": "TILES_2X2_2_N" + "name": "TILES_2X2_2_ND" }, { "name": "TILES_2X2_2", - "normalMap": "TILES_2X2_2_N", + "normalAndDisplacementMap": "TILES_2X2_2_ND", "specularStrength": 0.3, "specularGloss": 30.0 }, @@ -2020,11 +1997,11 @@ "name": "MARBLE_3" }, { - "name": "MARBLE_4_N" + "name": "MARBLE_4_ND" }, { "name": "MARBLE_4", - "normalMap": "MARBLE_4_N", + "normalAndDisplacementMap": "MARBLE_4_ND", "materialsToReplace": [ "MARBLE_DARK" ], @@ -2099,7 +2076,7 @@ }, { "name": "MARBLE_4_LOW_CONTRAST", - "normalMap": "MARBLE_4_N" + "normalAndDisplacementMap": "MARBLE_4_ND" }, { "name": "MARBLE_4_LOW_CONTRAST_GLOSS", @@ -2118,16 +2095,12 @@ "brightness": 2 }, { - "name": "LASSAR_UNDERCITY_TILE_N" - }, - { - "name": "LASSAR_UNDERCITY_TILE_D" + "name": "LASSAR_UNDERCITY_TILE_ND" }, { "name": "LASSAR_UNDERCITY_TILES", "parent": "MARBLE_2_SEMIGLOSS", - "normalMap": "LASSAR_UNDERCITY_TILE_N", - "displacementMap": "LASSAR_UNDERCITY_TILE_D", + "normalAndDisplacementMap": "LASSAR_UNDERCITY_TILE_ND", "displacementScale": 0.015 }, { @@ -2146,16 +2119,14 @@ { "name": "CAM_TORUM_TILES", "parent": "SMOOTH_STONE", - "normalMap": "LASSAR_UNDERCITY_TILE_N", - "displacementMap": "LASSAR_UNDERCITY_TILE_D", + "normalAndDisplacementMap": "LASSAR_UNDERCITY_TILE_ND", "ambientOcclusionMap": "CAM_TORUM_TILE_AO", "displacementScale": 0.025 }, { "name": "DARKMEYER_BRICK_PATH", "parent": "MARBLE_2", - "normalMap": "LASSAR_UNDERCITY_TILE_N", - "displacementMap": "LASSAR_UNDERCITY_TILE_D", + "normalAndDisplacementMap": "LASSAR_UNDERCITY_TILE_ND", "ambientOcclusionMap": "CAM_TORUM_TILE_AO", "displacementScale": 0.025, "textureScale": [ @@ -2218,11 +2189,11 @@ ] }, { - "name": "BARK_N" + "name": "BARK_ND" }, { "name": "BARK", - "normalMap": "BARK_N", + "normalAndDisplacementMap": "BARK_ND", "specularStrength": 0.3, "specularGloss": 30.0 }, @@ -2251,17 +2222,17 @@ "brightness": 1.553 }, { - "name": "BARK_STONEPINE_N" + "name": "BARK_STONEPINE_ND" }, { "name": "BARK_STONEPINE", - "normalMap": "BARK_STONEPINE_N", + "normalAndDisplacementMap": "BARK_STONEPINE_ND", "specularStrength": 0.3, "specularGloss": 30.0 }, { "name": "BARK_STONEPINE_2", - "normalMap": "BARK_STONEPINE_N", + "normalAndDisplacementMap": "BARK_STONEPINE_ND", "brightness": 1.277, "specularStrength": 0.3, "specularGloss": 30.0 @@ -2272,11 +2243,11 @@ "brightness": 1.277 }, { - "name": "LEAF_VEINS_N" + "name": "LEAF_VEINS_ND" }, { "name": "LEAF_VEINS", - "normalMap": "LEAF_VEINS_N", + "normalAndDisplacementMap": "LEAF_VEINS_ND", "specularStrength": 0.15, "specularGloss": 20.0 }, @@ -2314,11 +2285,11 @@ "brightness": 0.581 }, { - "name": "LEAVES_1_N" + "name": "LEAVES_1_ND" }, { "name": "LEAVES_1", - "normalMap": "LEAVES_1_N", + "normalAndDisplacementMap": "LEAVES_1_ND", "specularStrength": 0.15, "specularGloss": 5.0, "textureScale": [ @@ -2341,11 +2312,11 @@ "brightness": 0.881 }, { - "name": "WOOD_GRAIN_2_N" + "name": "WOOD_GRAIN_2_ND" }, { "name": "WOOD_GRAIN_2", - "normalMap": "WOOD_GRAIN_2_N", + "normalAndDisplacementMap": "WOOD_GRAIN_2_ND", "specularStrength": 0.3, "specularGloss": 30.0 }, @@ -2396,15 +2367,11 @@ ] }, { - "name": "WOOD_GRAIN_3_D" - }, - { - "name": "WOOD_GRAIN_3_N" + "name": "WOOD_GRAIN_3_ND" }, { "name": "WOOD_GRAIN_3", - "normalMap": "WOOD_GRAIN_3_N", - "displacementMap": "WOOD_GRAIN_3_D", + "normalAndDisplacementMap": "WOOD_GRAIN_3_ND", "specularStrength": 0.3, "specularGloss": 25.0 }, @@ -2468,15 +2435,11 @@ "replacementCondition": "legacyInfernalCape" }, { - "name": "HD_BRICK_N" - }, - { - "name": "HD_BRICK_D" + "name": "HD_BRICK_ND" }, { "name": "HD_BRICK", - "normalMap": "HD_BRICK_N", - "displacementMap": "HD_BRICK_D", + "normalAndDisplacementMap": "HD_BRICK_ND", "displacementScale": 0.05, "specularStrength": 0.3, "specularGloss": 20.0, @@ -2486,15 +2449,11 @@ "replacementCondition": "modelTextures" }, { - "name": "HD_ROOF_SHINGLES_N" - }, - { - "name": "HD_ROOF_SHINGLES_D" + "name": "HD_ROOF_SHINGLES_ND" }, { "name": "HD_ROOF_SHINGLES_1", - "normalMap": "HD_ROOF_SHINGLES_N", - "displacementMap": "HD_ROOF_SHINGLES_D", + "normalAndDisplacementMap": "HD_ROOF_SHINGLES_ND", "displacementScale": 0.11, "specularStrength": 0.35, "specularGloss": 40.0, @@ -2504,15 +2463,11 @@ "replacementCondition": "modelTextures" }, { - "name": "HD_BRICK_BROWN_N" - }, - { - "name": "HD_BRICK_BROWN_D" + "name": "HD_BRICK_BROWN_ND" }, { "name": "HD_BRICK_BROWN", - "normalMap": "HD_BRICK_BROWN_N", - "displacementMap": "HD_BRICK_BROWN_D", + "normalAndDisplacementMap": "HD_BRICK_BROWN_ND", "displacementScale": 0.05, "specularStrength": 0.35, "specularGloss": 20.0, @@ -2542,7 +2497,7 @@ }, { "name": "HD_ROOF_SHINGLES_2", - "normalMap": "HD_ROOF_SHINGLES_N", + "normalAndDisplacementMap": "HD_ROOF_SHINGLES_ND", "specularStrength": 0.3, "specularGloss": 30.0, "materialsToReplace": [ @@ -2551,16 +2506,12 @@ "replacementCondition": "modelTextures" }, { - "name": "HD_SIMPLE_GRAIN_WOOD_D" - }, - { - "name": "HD_SIMPLE_GRAIN_WOOD_N" + "name": "HD_SIMPLE_GRAIN_WOOD_ND" }, { "name": "HD_SIMPLE_GRAIN_WOOD", - "normalMap": "HD_SIMPLE_GRAIN_WOOD_N", - "displacementMap": "HD_SIMPLE_GRAIN_WOOD_D", - "displacementScale": 0.008, + "normalAndDisplacementMap": "HD_SIMPLE_GRAIN_WOOD_ND", + "displacementScale": 0.08, "specularStrength": 0.3, "specularGloss": 20.0, "materialsToReplace": [ @@ -2569,25 +2520,21 @@ "replacementCondition": "modelTextures" }, { - "name": "WORN_TILES_N" + "name": "WORN_TILES_ND" }, { "name": "WORN_TILES", - "normalMap": "WORN_TILES_N", + "normalAndDisplacementMap": "WORN_TILES_ND", "specularStrength": 0.2, "specularGloss": 25.0 }, { - "name": "HD_STONE_PATTERN_N" - }, - { - "name": "HD_STONE_PATTERN_D" + "name": "HD_STONE_PATTERN_ND" }, { "name": "HD_STONE_PATTERN", - "normalMap": "HD_STONE_PATTERN_N", - "displacementMap": "HD_STONE_PATTERN_D", - "displacementScale": 0.08, + "normalAndDisplacementMap": "HD_STONE_PATTERN_ND", + "displacementScale": 0.008, "specularStrength": 0.25, "specularGloss": 30.0, "materialsToReplace": [ @@ -2596,7 +2543,7 @@ "replacementCondition": "modelTextures" }, { - "name": "STONE_N" + "name": "STONE_ND" }, { "name": "STONE" @@ -2609,7 +2556,7 @@ { "name": "STONE_NORMALED", "parent": "STONE", - "normalMap": "STONE_N", + "normalAndDisplacementMap": "STONE_ND", "specularStrength": 0.3, "specularGloss": 30.0 }, @@ -2650,7 +2597,7 @@ }, { "name": "SMOOTH_STONE", - "normalMap": "STONE_N" + "normalAndDisplacementMap": "STONE_ND" }, { "name": "SMOOTH_STONE_SLIGHTLY_LIGHT", @@ -2674,17 +2621,17 @@ }, { "name": "GEM_STONE", - "normalMap": "METALLIC_2_N", + "normalAndDisplacementMap": "METALLIC_2_ND", "brightness": 1.1, "specularStrength": 1, "specularGloss": 30.0 }, { - "name": "WALL_STONE_N" + "name": "WALL_STONE_ND" }, { "name": "WALL_STONE", - "normalMap": "WALL_STONE_N" + "normalAndDisplacementMap": "WALL_STONE_ND" }, { "name": "WALL_STONE_LIGHT", @@ -2692,11 +2639,11 @@ "brightness": 1.261 }, { - "name": "METALLIC_1_N" + "name": "METALLIC_1_ND" }, { "name": "METALLIC_1", - "normalMap": "METALLIC_1_N", + "normalAndDisplacementMap": "METALLIC_1_ND", "specularStrength": 0.6, "specularGloss": 30.0 }, @@ -2726,7 +2673,7 @@ { "name": "METALLIC_1_LIGHT_SMOOTH", "parent": "METALLIC_1_LIGHT", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "METALLIC_1_LIGHT_SEMIGLOSS", @@ -2765,7 +2712,7 @@ { "name": "METALLIC_1_LIGHTER_SMOOTH", "parent": "METALLIC_1_LIGHTER", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "METALLIC_1_VERY_LIGHT", @@ -2775,7 +2722,7 @@ { "name": "METALLIC_1_VERY_LIGHT_SMOOTH", "parent": "METALLIC_1_VERY_LIGHT", - "normalMap": null + "normalAndDisplacementMap": null }, { "name": "METALLIC_1_LIGHT_LOW_GLOSS", @@ -2784,11 +2731,11 @@ "specularGloss": 20.0 }, { - "name": "METALLIC_2_N" + "name": "METALLIC_2_ND" }, { "name": "METALLIC_2", - "normalMap": "METALLIC_2_N", + "normalAndDisplacementMap": "METALLIC_2_ND", "specularStrength": 0.7, "specularGloss": 35.0 }, @@ -2862,7 +2809,7 @@ { "name": "ICE_4", "parent": "WHITE", - "normalMap": "WATER_NORMAL_MAP_2", + "normalAndDisplacementMap": "WATER_NORMAL_MAP_2", "specularStrength": 1.5, "specularGloss": 1000.0 }, @@ -2879,11 +2826,11 @@ "specularGloss": 80.0 }, { - "name": "HD_WOOD_PLANKS_1_N" + "name": "HD_WOOD_PLANKS_1_ND" }, { "name": "HD_WOOD_PLANKS_1", - "normalMap": "HD_WOOD_PLANKS_1_N", + "normalAndDisplacementMap": "HD_WOOD_PLANKS_1_ND", "specularStrength": 0.3, "specularGloss": 30.0, "materialsToReplace": [ @@ -2892,21 +2839,21 @@ "replacementCondition": "modelTextures" }, { - "name": "HD_WOOD_PLANKS_2_N" + "name": "HD_WOOD_PLANKS_2_ND" }, { "name": "HD_WOOD_PLANKS_2", - "normalMap": "HD_WOOD_PLANKS_2_N", + "normalAndDisplacementMap": "HD_WOOD_PLANKS_2_ND", "brightness": 1.083, "specularStrength": 0.3, "specularGloss": 40.0 }, { - "name": "HD_CRATE_N" + "name": "HD_CRATE_ND" }, { "name": "HD_CRATE", - "normalMap": "HD_CRATE_N", + "normalAndDisplacementMap": "HD_CRATE_ND", "brightness": 0.955, "specularStrength": 0.25, "specularGloss": 30.0, @@ -2916,11 +2863,11 @@ "replacementCondition": "modelTextures" }, { - "name": "HD_ROOF_BRICK_TILE_N" + "name": "HD_ROOF_BRICK_TILE_ND" }, { "name": "HD_ROOF_BRICK_TILE", - "normalMap": "HD_ROOF_BRICK_TILE_N", + "normalAndDisplacementMap": "HD_ROOF_BRICK_TILE_ND", "specularStrength": 0.3, "specularGloss": 30.0, "materialsToReplace": [ @@ -2931,7 +2878,7 @@ { "name": "HD_ROOF_BRICK_TILE_GREEN", "parent": "ROOF_BRICK_TILE_GREEN", - "normalMap": "HD_ROOF_BRICK_TILE_N", + "normalAndDisplacementMap": "HD_ROOF_BRICK_TILE_ND", "specularStrength": 0.3, "specularGloss": 30.0, "materialsToReplace": [ @@ -2942,7 +2889,7 @@ { "name": "HD_ROOF_BRICK_TILE_DARK", "parent": "ROOF_BRICK_TILE_DARK", - "normalMap": "HD_ROOF_BRICK_TILE_N", + "normalAndDisplacementMap": "HD_ROOF_BRICK_TILE_ND", "specularStrength": 0.3, "specularGloss": 30.0, "materialsToReplace": [ @@ -2963,15 +2910,11 @@ "specularGloss": 20.0 }, { - "name": "HD_CONCRETE_D" - }, - { - "name": "HD_CONCRETE_N" + "name": "HD_CONCRETE_ND" }, { "name": "HD_CONCRETE", - "normalMap": "HD_CONCRETE_N", - "displacementMap": "HD_CONCRETE_D", + "normalAndDisplacementMap": "HD_CONCRETE_ND", "brightness": 0.881, "displacementScale": 0.05, "specularStrength": 0.3, @@ -2983,15 +2926,15 @@ }, { "name": "HD_CONCRETE_FLAT", - "normalMap": null, + "normalAndDisplacementMap": null, "parent": "HD_CONCRETE" }, { - "name": "HD_HAY_N" + "name": "HD_HAY_ND" }, { "name": "HD_HAY", - "normalMap": "HD_HAY_N", + "normalAndDisplacementMap": "HD_HAY_ND", "specularStrength": 0.175, "specularGloss": 15.0, "materialsToReplace": [ @@ -3020,11 +2963,11 @@ "replacementCondition": "modelTextures" }, { - "name": "HD_SAND_BRICK_N" + "name": "HD_SAND_BRICK_ND" }, { "name": "HD_SAND_BRICK", - "normalMap": "HD_SAND_BRICK_N", + "normalAndDisplacementMap": "HD_SAND_BRICK_ND", "brightness": 0.881, "displacementScale": 0.05, "specularStrength": 0.3, @@ -3054,31 +2997,24 @@ "specularGloss": 20.0 }, { - "name": "ABYSSAL_D" - }, - { - "name": "ABYSSAL_N" + "name": "ABYSSAL_ND" }, { "name": "ABYSSAL", - "normalMap": "ABYSSAL_N", - "displacementMap": "ABYSSAL_D", + "normalAndDisplacementMap": "ABYSSAL_ND", "brightness": 1.612, "displacementScale": 0.2, "specularStrength": 4.5, "specularGloss": 400.0 }, { - "name": "ABYSSAL_2_D" - }, - { - "name": "ABYSSAL_2_N" + "name": "ABYSSAL_2_ND" }, { "name": "ABYSSAL_2", - "normalMap": "ABYSSAL_2_N", - "displacementMap": "ABYSSAL_2_D", + "normalAndDisplacementMap": "ABYSSAL_2_ND", "brightness": 1.323, + "displacementScale": 0.05, "specularStrength": 7.0, "specularGloss": 400.0 }, @@ -3103,20 +3039,20 @@ ] }, { - "name": "GROUND_WEB_1_N" + "name": "GROUND_WEB_1_ND" }, { "name": "GROUND_WEB_1", - "normalMap": "GROUND_WEB_1_N", + "normalAndDisplacementMap": "GROUND_WEB_1_ND", "specularStrength": 0.35, "specularGloss": 90.0 }, { - "name": "GROUND_WEB_2_N" + "name": "GROUND_WEB_2_ND" }, { "name": "GROUND_WEB_2", - "normalMap": "GROUND_WEB_2_N", + "normalAndDisplacementMap": "GROUND_WEB_2_ND", "specularStrength": 0.35, "specularGloss": 90.0 }, @@ -3126,11 +3062,11 @@ "brightness": 1.5 }, { - "name": "GROUND_WEB_3_N" + "name": "GROUND_WEB_3_ND" }, { "name": "GROUND_WEB_3", - "normalMap": "GROUND_WEB_3_N", + "normalAndDisplacementMap": "GROUND_WEB_3_ND", "specularStrength": 0.35, "specularGloss": 90.0 }, @@ -3361,7 +3297,7 @@ }, { "name": "WINTER_HD_ROOF_SHINGLES_1", - "normalMap": "HD_ROOF_SHINGLES_N", + "normalAndDisplacementMap": "HD_ROOF_SHINGLES_ND", "specularStrength": 0.5, "specularGloss": 30.0, "materialsToReplace": [ @@ -3371,7 +3307,7 @@ }, { "name": "WINTER_HD_ROOF_SHINGLES_2", - "normalMap": "HD_ROOF_SHINGLES_N", + "normalAndDisplacementMap": "HD_ROOF_SHINGLES_ND", "specularStrength": 0.3, "specularGloss": 30.0, "materialsToReplace": [ @@ -3381,7 +3317,7 @@ }, { "name": "WINTER_HD_ROOF_BRICK_TILES", - "normalMap": "HD_ROOF_BRICK_TILE_N", + "normalAndDisplacementMap": "HD_ROOF_BRICK_TILE_ND", "specularStrength": 0.3, "specularGloss": 30.0, "materialsToReplace": [ @@ -3411,8 +3347,7 @@ }, { "name": "WINTER_JAGGED_STONE_TILE", - "normalMap": "JAGGED_STONE_TILE_N", - "displacementMap": "JAGGED_STONE_TILE_D", + "normalAndDisplacementMap": "JAGGED_STONE_TILE_ND", "brightness": 1.159, "specularStrength": 0.6, "specularGloss": 30.0 diff --git a/src/main/resources/rs117/hd/utils/displacement.glsl b/src/main/resources/rs117/hd/utils/displacement.glsl index 4691931f06..a7b0e514dd 100644 --- a/src/main/resources/rs117/hd/utils/displacement.glsl +++ b/src/main/resources/rs117/hd/utils/displacement.glsl @@ -30,7 +30,8 @@ #if PARALLAX_OCCLUSION_MAPPING float sampleHeight(const Material material, const vec2 uv) { - return linearToSrgb(texture(textureArray, vec3(uv, material.displacementMap)).r); + vec4 tex = texture(textureArray, vec3(uv, material.displacementMap)); + return (material.normalMap == material.displacementMap) ? tex.a : linearToSrgb(tex.r); } void sampleDisplacementMap( diff --git a/src/test/resources/rs117/hd/scene/textures/.texture-cache.json b/src/test/resources/rs117/hd/scene/textures/.texture-cache.json new file mode 100644 index 0000000000..5f9d1aaba7 --- /dev/null +++ b/src/test/resources/rs117/hd/scene/textures/.texture-cache.json @@ -0,0 +1 @@ +{ "abyssal_2_nd.png": { "n": "5de13d04", "d": "54948041" }, "abyssal_nd.png": { "n": "e2ec7efa", "d": "8341eb0d" }, "bark_nd.png": { "n": "8c0813a3", "d": null }, "bark_stonepine_nd.png": { "n": "75a5f946", "d": null }, "brick_path_nd.png": { "n": "7e70b576", "d": null }, "carpet_nd.png": { "n": "48c3d437", "d": null }, "dirt_1_nd.png": { "n": "3dc7db32", "d": null }, "dirt_2_nd.png": { "n": "8df10b6d", "d": null }, "falador_path_brick_nd.png": { "n": "82ed560f", "d": "9e498b08" }, "gravel_nd.png": { "n": "d0eba81b", "d": null }, "ground_web_1_nd.png": { "n": "f6896195", "d": null }, "ground_web_2_nd.png": { "n": "7d2d20ed", "d": null }, "ground_web_3_nd.png": { "n": "c05d4d22", "d": null }, "grunge_1_nd.png": { "n": "8d4dee7f", "d": null }, "grunge_2_nd.png": { "n": "bcf4f25b", "d": null }, "grunge_3_nd.png": { "n": "cdc0271e", "d": null }, "hd_brick_brown_nd.png": { "n": "337ad552", "d": "86d918c9" }, "hd_brick_nd.png": { "n": "1da670c7", "d": "17c80faf" }, "hd_crate_nd.png": { "n": "726eca53", "d": null }, "hd_hay_nd.png": { "n": "fb7dda25", "d": null }, "hd_roof_brick_tile_nd.png": { "n": "92f1ca1", "d": null }, "hd_roof_shingles_nd.png": { "n": "f9fc9490", "d": "7696566" }, "hd_sand_brick_nd.png": { "n": "3ea7f74e", "d": null }, "hd_simple_grain_wood_nd.png": { "n": "777884d4", "d": "f9262e92" }, "hd_stone_pattern_nd.png": { "n": "f61c8e06", "d": "33a28943" }, "hd_wood_planks_1_nd.png": { "n": "11aca34c", "d": null }, "hd_wood_planks_2_nd.png": { "n": "acb08b82", "d": null }, "jagged_stone_tile_nd.png": { "n": "cadde30f", "d": "34bb29cc" }, "lassar_undercity_tile_nd.png": { "n": "9568d21", "d": "32808077" }, "leaf_veins_nd.png": { "n": "d2b5e9c", "d": null }, "leaves_1_nd.png": { "n": "6403583d", "d": null }, "marble_4_nd.png": { "n": "ee8ff790", "d": null }, "metallic_1_nd.png": { "n": "3426d9c0", "d": null }, "metallic_2_nd.png": { "n": "19bf3d5e", "d": null }, "mud_1_nd.png": { "n": "b4a7e131", "d": null }, "rock_1_nd.png": { "n": "110d2290", "d": null }, "rock_2_nd.png": { "n": "3a06d506", "d": null }, "rock_3_nd.png": { "n": "6d4dc54", "d": "f72b4dc1" }, "rock_4_nd.png": { "n": "73602352", "d": "a533aade" }, "rock_5_nd.png": { "n": "a46e393e", "d": "5fd92cca" }, "rock_6_nd.png": { "n": "bdb4e6da", "d": null }, "rope_nd.png": { "n": "1aee44f5", "d": null }, "sand_1_nd.png": { "n": "77991ca6", "d": null }, "sand_2_nd.png": { "n": "e1bcef59", "d": null }, "sand_3_nd.png": { "n": "b429645c", "d": null }, "sand_4_nd.png": { "n": "d3cfa9e9", "d": null }, "smooth_snow_nd.png": { "n": "b2cfd8a7", "d": null }, "snow_1_nd.png": { "n": "ed08361e", "d": null }, "snow_2_nd.png": { "n": "2003f2da", "d": null }, "snow_3_nd.png": { "n": "3930df93", "d": null }, "stone_nd.png": { "n": "49960bed", "d": null }, "tiles_2x2_1_nd.png": { "n": "830cb245", "d": null }, "tiles_2x2_2_nd.png": { "n": "6e05f305", "d": null }, "wall_stone_nd.png": { "n": "93f26bed", "d": null }, "wood_grain_2_nd.png": { "n": "1d841848", "d": null }, "wood_grain_3_nd.png": { "n": "765f7f46", "d": "91cb3185" }, "worn_tiles_nd.png": { "n": "8357862a", "d": null }, "000_licenses.txt": "1221814d", "abyssal.jpg": "a42256dc", "abyssal_2.jpg": "d90a5119", "autumn_leaves_orange_side.png": "1d3de69b", "autumn_leaves_orange_top.png": "40a85e2e", "autumn_leaves_red_side.png": "f7e65ab7", "autumn_leaves_red_top.png": "b74a1fb1", "autumn_leaves_yellow_side.png": "194a2ee2", "autumn_leaves_yellow_top.png": "ef44d472", "autumn_willow_leaves.png": "d13ca40a", "bark.jpg": "4d5e52ff", "bark_stonepine.jpg": "92179cbb", "bark_stonepine_2.jpg": "7920d6f6", "brick_path.jpg": "a0e73473", "burlap.jpg": "a53259bc", "cam_torum_tile_ao.png": "d6b1578c", "carpet.jpg": "a858d4a4", "caustics_map.jpg": "2178d0bf", "colored_grass.jpg": "d7a09b38", "dirt_1.jpg": "d62c0540", "dirt_2.jpg": "480c7693", "falador_path_brick.jpg": "3fefe00d", "fortis_roads.jpg": "6b1209d7", "gem_stone.jpg": "3bc056da", "grass_1.jpg": "9614b0d7", "grass_2.jpg": "5a75592e", "grass_3.jpg": "f19f71c", "gravel.jpg": "11eb3594", "ground_web_1.jpg": "c46da4b5", "ground_web_2.jpg": "74d27340", "ground_web_3.jpg": "7f0d70a9", "grunge_1.jpg": "df4b9bd5", "grunge_2.jpg": "5e0c7737", "grunge_3.jpg": "660b5f97", "hd_brick.jpg": "7f333eb", "hd_brick_brown.jpg": "35d54fab", "hd_concrete.jpg": "5a0dbb5e", "hd_crate.jpg": "6cd371e0", "hd_hay.jpg": "a852e49f", "hd_infernal_cape.jpg": "b9de0465", "hd_iron_bars.png": "c81bee79", "hd_lava_1.jpg": "4860ed35", "hd_lava_2.jpg": "4b90c603", "hd_lava_3.jpg": "3fa7fec7", "hd_magma_1.jpg": "26f25211", "hd_magma_2.jpg": "2cf46ce1", "hd_roof_brick_tile.jpg": "fb139114", "hd_roof_shingles_1.jpg": "ee48370e", "hd_roof_shingles_2.jpg": "a3af46e7", "hd_sand_brick.jpg": "8d3298c2", "hd_simple_grain_wood.jpg": "e95b558", "hd_stone_pattern.jpg": "43d0713", "hd_wood_planks_1.jpg": "e1f9b0db", "hd_wood_planks_2.jpg": "4228ec75", "jagged_stone_tile.jpg": "f3bc608a", "lava_flow_map.png": "dfbaa971", "leaf_a.png": "422fe423", "leaf_veins.jpg": "a7d4ec4a", "leaves_1.jpg": "2ff4a47e", "legacy_infernal_cape.jpg": "f9a6051f", "marble_1.jpg": "cac507e", "marble_2.jpg": "249f0cea", "marble_3.jpg": "a6fdbc35", "marble_4.jpg": "8a0caec7", "marble_4_low_contrast.jpg": "cd0a4dff", "metallic_1.jpg": "678b1efc", "metallic_2.jpg": "5fec7f71", "mud_1.jpg": "32f17bc8", "rock_1.jpg": "f587a55b", "rock_2.jpg": "2d32bd17", "rock_3.jpg": "39447877", "rock_4.jpg": "10b32e56", "rock_5.jpg": "61c85e4c", "rock_6.jpg": "b201a79e", "rope.jpg": "3b59c78d", "sand_1.jpg": "c1ccdcff", "sand_2.jpg": "cdad6b81", "sand_3.jpg": "9c9f27e3", "sand_4.jpg": "7268f9c0", "smooth_snow.jpg": "52765c0e", "smooth_snow_colored.jpg": "fff19e05", "smooth_stone.jpg": "90ad35c5", "snow_1.jpg": "dbb624ef", "snow_2.jpg": "5b86b73", "snow_3.jpg": "a533aa9", "stone.jpg": "b96ddeac", "tiles_2x2_1.jpg": "97b3a08b", "tiles_2x2_2.jpg": "e9d0a151", "tile_small_1.jpg": "40349643", "tile_small_2.jpg": "2d1b1457", "transparent.png": "c51520d0", "underwater_flow_map.png": "7ad4ab87", "wall_stone.jpg": "4021d0a2", "water_flow_map.png": "ce9c581", "water_foam.jpg": "66779f", "wattle_1.jpg": "b9e3523d", "web.png": "fe855715", "winter_hd_roof_brick_tiles.jpg": "92a5125f", "winter_hd_roof_shingles_1.jpg": "4a6a9be7", "winter_hd_roof_shingles_2.jpg": "56828f77", "winter_hd_roof_slate.jpg": "44b548a3", "winter_hd_roof_wooden_slate.png": "39e438eb", "winter_jagged_stone_tile.jpg": "2182553d", "winter_leaves_side.png": "913384f0", "winter_leaves_top.png": "cc7eca11", "winter_maple_leaves.png": "954f0695", "winter_painting_elf.jpg": "98ed9ccc", "winter_painting_king.jpg": "6512bd2d", "winter_painting_landscape.jpg": "ce421958", "winter_willow_leaves.png": "a4478f5a", "wood_grain.jpg": "bbe211ba", "wood_grain_2.jpg": "263bfcbf", "wood_grain_3.jpg": "620ac550", "worn_tiles.jpg": "53d32c69", ".texture-cache.json": "aa8d1587", "water_normal_map_1.png": "3c2cc7a", "water_normal_map_2.png": "12cf739e", "hd_concrete_nd.png": { "n": "d7aeb57e", "d": "fb1dae8c" }, "water_drops.png": "ba481ef2" } \ No newline at end of file diff --git a/src/main/resources/rs117/hd/scene/textures/000_licenses.txt b/src/test/resources/rs117/hd/scene/textures/000_licenses.txt similarity index 98% rename from src/main/resources/rs117/hd/scene/textures/000_licenses.txt rename to src/test/resources/rs117/hd/scene/textures/000_licenses.txt index 7ead2b49f9..ef31518810 100644 --- a/src/main/resources/rs117/hd/scene/textures/000_licenses.txt +++ b/src/test/resources/rs117/hd/scene/textures/000_licenses.txt @@ -110,3 +110,5 @@ GROUND_WEB_# and variants made by SirFancyBacon for the purpose of this project LEAVES_1 and LEAVES_1_N are a modification of textures from CC0-Textures. All textures on this site are licensed as CC0. https://cc0-textures.com/t/cc0t-scattered-leaves-001 + +LEAF_A was created by Jin-Jiyunsun, and is licensed as CC0. \ No newline at end of file diff --git a/src/main/resources/rs117/hd/scene/textures/abyssal.jpg b/src/test/resources/rs117/hd/scene/textures/abyssal.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/abyssal.jpg rename to src/test/resources/rs117/hd/scene/textures/abyssal.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/abyssal_2.jpg b/src/test/resources/rs117/hd/scene/textures/abyssal_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/abyssal_2.jpg rename to src/test/resources/rs117/hd/scene/textures/abyssal_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/autumn_leaves_orange_side.png b/src/test/resources/rs117/hd/scene/textures/autumn_leaves_orange_side.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/autumn_leaves_orange_side.png rename to src/test/resources/rs117/hd/scene/textures/autumn_leaves_orange_side.png diff --git a/src/main/resources/rs117/hd/scene/textures/autumn_leaves_orange_top.png b/src/test/resources/rs117/hd/scene/textures/autumn_leaves_orange_top.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/autumn_leaves_orange_top.png rename to src/test/resources/rs117/hd/scene/textures/autumn_leaves_orange_top.png diff --git a/src/main/resources/rs117/hd/scene/textures/autumn_leaves_red_side.png b/src/test/resources/rs117/hd/scene/textures/autumn_leaves_red_side.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/autumn_leaves_red_side.png rename to src/test/resources/rs117/hd/scene/textures/autumn_leaves_red_side.png diff --git a/src/main/resources/rs117/hd/scene/textures/autumn_leaves_red_top.png b/src/test/resources/rs117/hd/scene/textures/autumn_leaves_red_top.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/autumn_leaves_red_top.png rename to src/test/resources/rs117/hd/scene/textures/autumn_leaves_red_top.png diff --git a/src/main/resources/rs117/hd/scene/textures/autumn_leaves_yellow_side.png b/src/test/resources/rs117/hd/scene/textures/autumn_leaves_yellow_side.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/autumn_leaves_yellow_side.png rename to src/test/resources/rs117/hd/scene/textures/autumn_leaves_yellow_side.png diff --git a/src/main/resources/rs117/hd/scene/textures/autumn_leaves_yellow_top.png b/src/test/resources/rs117/hd/scene/textures/autumn_leaves_yellow_top.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/autumn_leaves_yellow_top.png rename to src/test/resources/rs117/hd/scene/textures/autumn_leaves_yellow_top.png diff --git a/src/main/resources/rs117/hd/scene/textures/autumn_willow_leaves.png b/src/test/resources/rs117/hd/scene/textures/autumn_willow_leaves.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/autumn_willow_leaves.png rename to src/test/resources/rs117/hd/scene/textures/autumn_willow_leaves.png diff --git a/src/main/resources/rs117/hd/scene/textures/bark.jpg b/src/test/resources/rs117/hd/scene/textures/bark.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/bark.jpg rename to src/test/resources/rs117/hd/scene/textures/bark.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/bark_stonepine.jpg b/src/test/resources/rs117/hd/scene/textures/bark_stonepine.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/bark_stonepine.jpg rename to src/test/resources/rs117/hd/scene/textures/bark_stonepine.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/bark_stonepine_2.jpg b/src/test/resources/rs117/hd/scene/textures/bark_stonepine_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/bark_stonepine_2.jpg rename to src/test/resources/rs117/hd/scene/textures/bark_stonepine_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/brick_path.jpg b/src/test/resources/rs117/hd/scene/textures/brick_path.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/brick_path.jpg rename to src/test/resources/rs117/hd/scene/textures/brick_path.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/burlap.jpg b/src/test/resources/rs117/hd/scene/textures/burlap.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/burlap.jpg rename to src/test/resources/rs117/hd/scene/textures/burlap.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/cam_torum_tile_ao.png b/src/test/resources/rs117/hd/scene/textures/cam_torum_tile_ao.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/cam_torum_tile_ao.png rename to src/test/resources/rs117/hd/scene/textures/cam_torum_tile_ao.png diff --git a/src/main/resources/rs117/hd/scene/textures/carpet.jpg b/src/test/resources/rs117/hd/scene/textures/carpet.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/carpet.jpg rename to src/test/resources/rs117/hd/scene/textures/carpet.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/caustics_map.jpg b/src/test/resources/rs117/hd/scene/textures/caustics_map.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/caustics_map.jpg rename to src/test/resources/rs117/hd/scene/textures/caustics_map.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/colored_grass.jpg b/src/test/resources/rs117/hd/scene/textures/colored_grass.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/colored_grass.jpg rename to src/test/resources/rs117/hd/scene/textures/colored_grass.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/dirt_1.jpg b/src/test/resources/rs117/hd/scene/textures/dirt_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/dirt_1.jpg rename to src/test/resources/rs117/hd/scene/textures/dirt_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/dirt_2.jpg b/src/test/resources/rs117/hd/scene/textures/dirt_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/dirt_2.jpg rename to src/test/resources/rs117/hd/scene/textures/dirt_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/abyssal_2_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/abyssal_2_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/abyssal_2_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/abyssal_2_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/abyssal_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/abyssal_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/abyssal_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/abyssal_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/falador_path_brick_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/falador_path_brick_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/falador_path_brick_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/falador_path_brick_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_brick_brown_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/hd_brick_brown_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_brick_brown_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/hd_brick_brown_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_brick_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/hd_brick_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_brick_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/hd_brick_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_concrete_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/hd_concrete_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_concrete_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/hd_concrete_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/hd_roof_shingles_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/hd_roof_shingles_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_simple_grain_wood_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/hd_simple_grain_wood_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_simple_grain_wood_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/hd_simple_grain_wood_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_stone_pattern_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/hd_stone_pattern_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_stone_pattern_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/hd_stone_pattern_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/jagged_stone_tile_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/jagged_stone_tile_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/jagged_stone_tile_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/jagged_stone_tile_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/lassar_undercity_tile_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/lassar_undercity_tile_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/lassar_undercity_tile_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/lassar_undercity_tile_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_3_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/rock_3_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_3_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/rock_3_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_4_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/rock_4_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_4_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/rock_4_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_5_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/rock_5_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_5_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/rock_5_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/water_drops.png b/src/test/resources/rs117/hd/scene/textures/displacement/water_drops.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/water_drops.png rename to src/test/resources/rs117/hd/scene/textures/displacement/water_drops.png diff --git a/src/main/resources/rs117/hd/scene/textures/winter_leaves_diseased.png b/src/test/resources/rs117/hd/scene/textures/displacement/winter_leaves_diseased.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_leaves_diseased.png rename to src/test/resources/rs117/hd/scene/textures/displacement/winter_leaves_diseased.png diff --git a/src/main/resources/rs117/hd/scene/textures/wood_grain_3_d.png b/src/test/resources/rs117/hd/scene/textures/displacement/wood_grain_3_d.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wood_grain_3_d.png rename to src/test/resources/rs117/hd/scene/textures/displacement/wood_grain_3_d.png diff --git a/src/main/resources/rs117/hd/scene/textures/falador_path_brick.jpg b/src/test/resources/rs117/hd/scene/textures/falador_path_brick.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/falador_path_brick.jpg rename to src/test/resources/rs117/hd/scene/textures/falador_path_brick.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/fortis_roads.jpg b/src/test/resources/rs117/hd/scene/textures/fortis_roads.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/fortis_roads.jpg rename to src/test/resources/rs117/hd/scene/textures/fortis_roads.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/gem_stone.jpg b/src/test/resources/rs117/hd/scene/textures/gem_stone.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/gem_stone.jpg rename to src/test/resources/rs117/hd/scene/textures/gem_stone.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/grass_1.jpg b/src/test/resources/rs117/hd/scene/textures/grass_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grass_1.jpg rename to src/test/resources/rs117/hd/scene/textures/grass_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/grass_2.jpg b/src/test/resources/rs117/hd/scene/textures/grass_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grass_2.jpg rename to src/test/resources/rs117/hd/scene/textures/grass_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/grass_3.jpg b/src/test/resources/rs117/hd/scene/textures/grass_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grass_3.jpg rename to src/test/resources/rs117/hd/scene/textures/grass_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/gravel.jpg b/src/test/resources/rs117/hd/scene/textures/gravel.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/gravel.jpg rename to src/test/resources/rs117/hd/scene/textures/gravel.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/ground_web_1.jpg b/src/test/resources/rs117/hd/scene/textures/ground_web_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/ground_web_1.jpg rename to src/test/resources/rs117/hd/scene/textures/ground_web_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/ground_web_2.jpg b/src/test/resources/rs117/hd/scene/textures/ground_web_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/ground_web_2.jpg rename to src/test/resources/rs117/hd/scene/textures/ground_web_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/ground_web_3.jpg b/src/test/resources/rs117/hd/scene/textures/ground_web_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/ground_web_3.jpg rename to src/test/resources/rs117/hd/scene/textures/ground_web_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/grunge_1.jpg b/src/test/resources/rs117/hd/scene/textures/grunge_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grunge_1.jpg rename to src/test/resources/rs117/hd/scene/textures/grunge_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/grunge_2.jpg b/src/test/resources/rs117/hd/scene/textures/grunge_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grunge_2.jpg rename to src/test/resources/rs117/hd/scene/textures/grunge_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/grunge_3.jpg b/src/test/resources/rs117/hd/scene/textures/grunge_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grunge_3.jpg rename to src/test/resources/rs117/hd/scene/textures/grunge_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_brick.jpg b/src/test/resources/rs117/hd/scene/textures/hd_brick.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_brick.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_brick.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_brick_brown.jpg b/src/test/resources/rs117/hd/scene/textures/hd_brick_brown.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_brick_brown.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_brick_brown.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_concrete.jpg b/src/test/resources/rs117/hd/scene/textures/hd_concrete.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_concrete.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_concrete.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_crate.jpg b/src/test/resources/rs117/hd/scene/textures/hd_crate.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_crate.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_crate.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_hay.jpg b/src/test/resources/rs117/hd/scene/textures/hd_hay.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_hay.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_hay.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_infernal_cape.jpg b/src/test/resources/rs117/hd/scene/textures/hd_infernal_cape.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_infernal_cape.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_infernal_cape.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_iron_bars.png b/src/test/resources/rs117/hd/scene/textures/hd_iron_bars.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_iron_bars.png rename to src/test/resources/rs117/hd/scene/textures/hd_iron_bars.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_lava_1.jpg b/src/test/resources/rs117/hd/scene/textures/hd_lava_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_lava_1.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_lava_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_lava_2.jpg b/src/test/resources/rs117/hd/scene/textures/hd_lava_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_lava_2.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_lava_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_lava_3.jpg b/src/test/resources/rs117/hd/scene/textures/hd_lava_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_lava_3.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_lava_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_magma_1.jpg b/src/test/resources/rs117/hd/scene/textures/hd_magma_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_magma_1.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_magma_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_magma_2.jpg b/src/test/resources/rs117/hd/scene/textures/hd_magma_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_magma_2.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_magma_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_roof_brick_tile.jpg b/src/test/resources/rs117/hd/scene/textures/hd_roof_brick_tile.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_roof_brick_tile.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_roof_brick_tile.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_1.jpg b/src/test/resources/rs117/hd/scene/textures/hd_roof_shingles_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_1.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_roof_shingles_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_2.jpg b/src/test/resources/rs117/hd/scene/textures/hd_roof_shingles_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_2.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_roof_shingles_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_sand_brick.jpg b/src/test/resources/rs117/hd/scene/textures/hd_sand_brick.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_sand_brick.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_sand_brick.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_simple_grain_wood.jpg b/src/test/resources/rs117/hd/scene/textures/hd_simple_grain_wood.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_simple_grain_wood.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_simple_grain_wood.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_stone_pattern.jpg b/src/test/resources/rs117/hd/scene/textures/hd_stone_pattern.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_stone_pattern.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_stone_pattern.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_wood_planks_1.jpg b/src/test/resources/rs117/hd/scene/textures/hd_wood_planks_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_wood_planks_1.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_wood_planks_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/hd_wood_planks_2.jpg b/src/test/resources/rs117/hd/scene/textures/hd_wood_planks_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_wood_planks_2.jpg rename to src/test/resources/rs117/hd/scene/textures/hd_wood_planks_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/jagged_stone_tile.jpg b/src/test/resources/rs117/hd/scene/textures/jagged_stone_tile.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/jagged_stone_tile.jpg rename to src/test/resources/rs117/hd/scene/textures/jagged_stone_tile.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/lava_flow_map.png b/src/test/resources/rs117/hd/scene/textures/lava_flow_map.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/lava_flow_map.png rename to src/test/resources/rs117/hd/scene/textures/lava_flow_map.png diff --git a/src/main/resources/rs117/hd/scene/textures/leaf_a.png b/src/test/resources/rs117/hd/scene/textures/leaf_a.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/leaf_a.png rename to src/test/resources/rs117/hd/scene/textures/leaf_a.png diff --git a/src/main/resources/rs117/hd/scene/textures/leaf_veins.jpg b/src/test/resources/rs117/hd/scene/textures/leaf_veins.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/leaf_veins.jpg rename to src/test/resources/rs117/hd/scene/textures/leaf_veins.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/leaves_1.jpg b/src/test/resources/rs117/hd/scene/textures/leaves_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/leaves_1.jpg rename to src/test/resources/rs117/hd/scene/textures/leaves_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/legacy_infernal_cape.jpg b/src/test/resources/rs117/hd/scene/textures/legacy_infernal_cape.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/legacy_infernal_cape.jpg rename to src/test/resources/rs117/hd/scene/textures/legacy_infernal_cape.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/marble_1.jpg b/src/test/resources/rs117/hd/scene/textures/marble_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/marble_1.jpg rename to src/test/resources/rs117/hd/scene/textures/marble_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/marble_2.jpg b/src/test/resources/rs117/hd/scene/textures/marble_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/marble_2.jpg rename to src/test/resources/rs117/hd/scene/textures/marble_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/marble_3.jpg b/src/test/resources/rs117/hd/scene/textures/marble_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/marble_3.jpg rename to src/test/resources/rs117/hd/scene/textures/marble_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/marble_4.jpg b/src/test/resources/rs117/hd/scene/textures/marble_4.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/marble_4.jpg rename to src/test/resources/rs117/hd/scene/textures/marble_4.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/marble_4_low_contrast.jpg b/src/test/resources/rs117/hd/scene/textures/marble_4_low_contrast.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/marble_4_low_contrast.jpg rename to src/test/resources/rs117/hd/scene/textures/marble_4_low_contrast.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/metallic_1.jpg b/src/test/resources/rs117/hd/scene/textures/metallic_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/metallic_1.jpg rename to src/test/resources/rs117/hd/scene/textures/metallic_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/metallic_2.jpg b/src/test/resources/rs117/hd/scene/textures/metallic_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/metallic_2.jpg rename to src/test/resources/rs117/hd/scene/textures/metallic_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/mud_1.jpg b/src/test/resources/rs117/hd/scene/textures/mud_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/mud_1.jpg rename to src/test/resources/rs117/hd/scene/textures/mud_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/abyssal_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/abyssal_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/abyssal_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/abyssal_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/abyssal_n.png b/src/test/resources/rs117/hd/scene/textures/normals/abyssal_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/abyssal_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/abyssal_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/bark_n.png b/src/test/resources/rs117/hd/scene/textures/normals/bark_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/bark_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/bark_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/bark_stonepine_n.png b/src/test/resources/rs117/hd/scene/textures/normals/bark_stonepine_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/bark_stonepine_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/bark_stonepine_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/brick_path_n.png b/src/test/resources/rs117/hd/scene/textures/normals/brick_path_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/brick_path_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/brick_path_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/carpet_n.png b/src/test/resources/rs117/hd/scene/textures/normals/carpet_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/carpet_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/carpet_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/dirt_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/dirt_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/dirt_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/dirt_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/dirt_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/dirt_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/dirt_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/dirt_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/falador_path_brick_n.png b/src/test/resources/rs117/hd/scene/textures/normals/falador_path_brick_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/falador_path_brick_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/falador_path_brick_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/gravel_n.png b/src/test/resources/rs117/hd/scene/textures/normals/gravel_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/gravel_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/gravel_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/ground_web_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/ground_web_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/ground_web_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/ground_web_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/ground_web_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/ground_web_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/ground_web_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/ground_web_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/ground_web_3_n.png b/src/test/resources/rs117/hd/scene/textures/normals/ground_web_3_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/ground_web_3_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/ground_web_3_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/grunge_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/grunge_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grunge_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/grunge_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/grunge_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/grunge_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grunge_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/grunge_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/grunge_3_n.png b/src/test/resources/rs117/hd/scene/textures/normals/grunge_3_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/grunge_3_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/grunge_3_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_brick_brown_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_brick_brown_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_brick_brown_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_brick_brown_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_brick_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_brick_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_brick_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_brick_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_concrete_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_concrete_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_concrete_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_concrete_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_crate_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_crate_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_crate_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_crate_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_hay_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_hay_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_hay_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_hay_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_roof_brick_tile_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_roof_brick_tile_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_roof_brick_tile_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_roof_brick_tile_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_roof_shingles_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_roof_shingles_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_roof_shingles_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_sand_brick_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_sand_brick_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_sand_brick_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_sand_brick_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_simple_grain_wood_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_simple_grain_wood_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_simple_grain_wood_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_simple_grain_wood_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_stone_pattern_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_stone_pattern_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_stone_pattern_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_stone_pattern_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_wood_planks_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_wood_planks_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_wood_planks_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_wood_planks_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/hd_wood_planks_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/hd_wood_planks_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/hd_wood_planks_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/hd_wood_planks_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/jagged_stone_tile_n.png b/src/test/resources/rs117/hd/scene/textures/normals/jagged_stone_tile_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/jagged_stone_tile_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/jagged_stone_tile_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/lassar_undercity_tile_n.png b/src/test/resources/rs117/hd/scene/textures/normals/lassar_undercity_tile_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/lassar_undercity_tile_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/lassar_undercity_tile_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/leaf_veins_n.png b/src/test/resources/rs117/hd/scene/textures/normals/leaf_veins_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/leaf_veins_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/leaf_veins_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/leaves_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/leaves_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/leaves_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/leaves_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/marble_4_n.png b/src/test/resources/rs117/hd/scene/textures/normals/marble_4_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/marble_4_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/marble_4_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/metallic_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/metallic_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/metallic_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/metallic_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/metallic_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/metallic_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/metallic_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/metallic_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/mud_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/mud_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/mud_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/mud_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/rock_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/rock_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/rock_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/rock_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_3_n.png b/src/test/resources/rs117/hd/scene/textures/normals/rock_3_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_3_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/rock_3_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_4_n.png b/src/test/resources/rs117/hd/scene/textures/normals/rock_4_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_4_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/rock_4_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_5_n.png b/src/test/resources/rs117/hd/scene/textures/normals/rock_5_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_5_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/rock_5_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_6_n.png b/src/test/resources/rs117/hd/scene/textures/normals/rock_6_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_6_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/rock_6_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rope_n.png b/src/test/resources/rs117/hd/scene/textures/normals/rope_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rope_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/rope_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/sand_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/sand_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/sand_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/sand_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/sand_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/sand_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/sand_3_n.png b/src/test/resources/rs117/hd/scene/textures/normals/sand_3_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_3_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/sand_3_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/sand_4_n.png b/src/test/resources/rs117/hd/scene/textures/normals/sand_4_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_4_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/sand_4_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/smooth_snow_n.png b/src/test/resources/rs117/hd/scene/textures/normals/smooth_snow_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/smooth_snow_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/smooth_snow_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/snow_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/snow_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/snow_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/snow_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/snow_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/snow_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/snow_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/snow_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/snow_3_n.png b/src/test/resources/rs117/hd/scene/textures/normals/snow_3_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/snow_3_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/snow_3_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/stone_n.png b/src/test/resources/rs117/hd/scene/textures/normals/stone_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/stone_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/stone_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/tiles_2x2_1_n.png b/src/test/resources/rs117/hd/scene/textures/normals/tiles_2x2_1_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/tiles_2x2_1_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/tiles_2x2_1_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/tiles_2x2_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/tiles_2x2_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/tiles_2x2_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/tiles_2x2_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/wall_stone_n.png b/src/test/resources/rs117/hd/scene/textures/normals/wall_stone_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wall_stone_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/wall_stone_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/wood_grain_2_n.png b/src/test/resources/rs117/hd/scene/textures/normals/wood_grain_2_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wood_grain_2_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/wood_grain_2_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/wood_grain_3_n.png b/src/test/resources/rs117/hd/scene/textures/normals/wood_grain_3_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wood_grain_3_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/wood_grain_3_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/worn_tiles_n.png b/src/test/resources/rs117/hd/scene/textures/normals/worn_tiles_n.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/worn_tiles_n.png rename to src/test/resources/rs117/hd/scene/textures/normals/worn_tiles_n.png diff --git a/src/main/resources/rs117/hd/scene/textures/rock_1.jpg b/src/test/resources/rs117/hd/scene/textures/rock_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_1.jpg rename to src/test/resources/rs117/hd/scene/textures/rock_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/rock_2.jpg b/src/test/resources/rs117/hd/scene/textures/rock_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_2.jpg rename to src/test/resources/rs117/hd/scene/textures/rock_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/rock_3.jpg b/src/test/resources/rs117/hd/scene/textures/rock_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_3.jpg rename to src/test/resources/rs117/hd/scene/textures/rock_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/rock_4.jpg b/src/test/resources/rs117/hd/scene/textures/rock_4.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_4.jpg rename to src/test/resources/rs117/hd/scene/textures/rock_4.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/rock_5.jpg b/src/test/resources/rs117/hd/scene/textures/rock_5.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_5.jpg rename to src/test/resources/rs117/hd/scene/textures/rock_5.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/rock_6.jpg b/src/test/resources/rs117/hd/scene/textures/rock_6.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rock_6.jpg rename to src/test/resources/rs117/hd/scene/textures/rock_6.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/rope.jpg b/src/test/resources/rs117/hd/scene/textures/rope.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/rope.jpg rename to src/test/resources/rs117/hd/scene/textures/rope.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/sand_1.jpg b/src/test/resources/rs117/hd/scene/textures/sand_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_1.jpg rename to src/test/resources/rs117/hd/scene/textures/sand_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/sand_2.jpg b/src/test/resources/rs117/hd/scene/textures/sand_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_2.jpg rename to src/test/resources/rs117/hd/scene/textures/sand_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/sand_3.jpg b/src/test/resources/rs117/hd/scene/textures/sand_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_3.jpg rename to src/test/resources/rs117/hd/scene/textures/sand_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/sand_4.jpg b/src/test/resources/rs117/hd/scene/textures/sand_4.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/sand_4.jpg rename to src/test/resources/rs117/hd/scene/textures/sand_4.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/smooth_snow.jpg b/src/test/resources/rs117/hd/scene/textures/smooth_snow.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/smooth_snow.jpg rename to src/test/resources/rs117/hd/scene/textures/smooth_snow.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/smooth_snow_colored.jpg b/src/test/resources/rs117/hd/scene/textures/smooth_snow_colored.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/smooth_snow_colored.jpg rename to src/test/resources/rs117/hd/scene/textures/smooth_snow_colored.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/smooth_stone.jpg b/src/test/resources/rs117/hd/scene/textures/smooth_stone.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/smooth_stone.jpg rename to src/test/resources/rs117/hd/scene/textures/smooth_stone.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/snow_1.jpg b/src/test/resources/rs117/hd/scene/textures/snow_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/snow_1.jpg rename to src/test/resources/rs117/hd/scene/textures/snow_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/snow_2.jpg b/src/test/resources/rs117/hd/scene/textures/snow_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/snow_2.jpg rename to src/test/resources/rs117/hd/scene/textures/snow_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/snow_3.jpg b/src/test/resources/rs117/hd/scene/textures/snow_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/snow_3.jpg rename to src/test/resources/rs117/hd/scene/textures/snow_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/stone.jpg b/src/test/resources/rs117/hd/scene/textures/stone.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/stone.jpg rename to src/test/resources/rs117/hd/scene/textures/stone.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/tile_small_1.jpg b/src/test/resources/rs117/hd/scene/textures/tile_small_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/tile_small_1.jpg rename to src/test/resources/rs117/hd/scene/textures/tile_small_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/tile_small_2.jpg b/src/test/resources/rs117/hd/scene/textures/tile_small_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/tile_small_2.jpg rename to src/test/resources/rs117/hd/scene/textures/tile_small_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/tiles_2x2_1.jpg b/src/test/resources/rs117/hd/scene/textures/tiles_2x2_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/tiles_2x2_1.jpg rename to src/test/resources/rs117/hd/scene/textures/tiles_2x2_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/tiles_2x2_2.jpg b/src/test/resources/rs117/hd/scene/textures/tiles_2x2_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/tiles_2x2_2.jpg rename to src/test/resources/rs117/hd/scene/textures/tiles_2x2_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/transparent.png b/src/test/resources/rs117/hd/scene/textures/transparent.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/transparent.png rename to src/test/resources/rs117/hd/scene/textures/transparent.png diff --git a/src/main/resources/rs117/hd/scene/textures/underwater_flow_map.png b/src/test/resources/rs117/hd/scene/textures/underwater_flow_map.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/underwater_flow_map.png rename to src/test/resources/rs117/hd/scene/textures/underwater_flow_map.png diff --git a/src/main/resources/rs117/hd/scene/textures/wall_stone.jpg b/src/test/resources/rs117/hd/scene/textures/wall_stone.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wall_stone.jpg rename to src/test/resources/rs117/hd/scene/textures/wall_stone.jpg diff --git a/src/test/resources/rs117/hd/scene/textures/water_drops.png b/src/test/resources/rs117/hd/scene/textures/water_drops.png new file mode 100644 index 0000000000..4814bece66 Binary files /dev/null and b/src/test/resources/rs117/hd/scene/textures/water_drops.png differ diff --git a/src/main/resources/rs117/hd/scene/textures/water_flow_map.png b/src/test/resources/rs117/hd/scene/textures/water_flow_map.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/water_flow_map.png rename to src/test/resources/rs117/hd/scene/textures/water_flow_map.png diff --git a/src/main/resources/rs117/hd/scene/textures/water_foam.jpg b/src/test/resources/rs117/hd/scene/textures/water_foam.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/water_foam.jpg rename to src/test/resources/rs117/hd/scene/textures/water_foam.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/water_normal_map_1.png b/src/test/resources/rs117/hd/scene/textures/water_normal_map_1.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/water_normal_map_1.png rename to src/test/resources/rs117/hd/scene/textures/water_normal_map_1.png diff --git a/src/main/resources/rs117/hd/scene/textures/water_normal_map_2.png b/src/test/resources/rs117/hd/scene/textures/water_normal_map_2.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/water_normal_map_2.png rename to src/test/resources/rs117/hd/scene/textures/water_normal_map_2.png diff --git a/src/main/resources/rs117/hd/scene/textures/wattle_1.jpg b/src/test/resources/rs117/hd/scene/textures/wattle_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wattle_1.jpg rename to src/test/resources/rs117/hd/scene/textures/wattle_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/web.png b/src/test/resources/rs117/hd/scene/textures/web.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/web.png rename to src/test/resources/rs117/hd/scene/textures/web.png diff --git a/src/main/resources/rs117/hd/scene/textures/winter_hd_roof_brick_tiles.jpg b/src/test/resources/rs117/hd/scene/textures/winter_hd_roof_brick_tiles.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_hd_roof_brick_tiles.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_hd_roof_brick_tiles.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_1.jpg b/src/test/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_1.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_1.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_1.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_2.jpg b/src/test/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_2.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_hd_roof_shingles_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_hd_roof_slate.jpg b/src/test/resources/rs117/hd/scene/textures/winter_hd_roof_slate.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_hd_roof_slate.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_hd_roof_slate.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_hd_roof_wooden_slate.png b/src/test/resources/rs117/hd/scene/textures/winter_hd_roof_wooden_slate.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_hd_roof_wooden_slate.png rename to src/test/resources/rs117/hd/scene/textures/winter_hd_roof_wooden_slate.png diff --git a/src/main/resources/rs117/hd/scene/textures/winter_jagged_stone_tile.jpg b/src/test/resources/rs117/hd/scene/textures/winter_jagged_stone_tile.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_jagged_stone_tile.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_jagged_stone_tile.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_leaves_side.png b/src/test/resources/rs117/hd/scene/textures/winter_leaves_side.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_leaves_side.png rename to src/test/resources/rs117/hd/scene/textures/winter_leaves_side.png diff --git a/src/main/resources/rs117/hd/scene/textures/winter_leaves_top.png b/src/test/resources/rs117/hd/scene/textures/winter_leaves_top.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_leaves_top.png rename to src/test/resources/rs117/hd/scene/textures/winter_leaves_top.png diff --git a/src/main/resources/rs117/hd/scene/textures/winter_maple_leaves.png b/src/test/resources/rs117/hd/scene/textures/winter_maple_leaves.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_maple_leaves.png rename to src/test/resources/rs117/hd/scene/textures/winter_maple_leaves.png diff --git a/src/main/resources/rs117/hd/scene/textures/winter_painting_elf.jpg b/src/test/resources/rs117/hd/scene/textures/winter_painting_elf.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_painting_elf.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_painting_elf.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_painting_king.jpg b/src/test/resources/rs117/hd/scene/textures/winter_painting_king.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_painting_king.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_painting_king.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_painting_landscape.jpg b/src/test/resources/rs117/hd/scene/textures/winter_painting_landscape.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_painting_landscape.jpg rename to src/test/resources/rs117/hd/scene/textures/winter_painting_landscape.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/winter_willow_leaves.png b/src/test/resources/rs117/hd/scene/textures/winter_willow_leaves.png similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/winter_willow_leaves.png rename to src/test/resources/rs117/hd/scene/textures/winter_willow_leaves.png diff --git a/src/main/resources/rs117/hd/scene/textures/wood_grain.jpg b/src/test/resources/rs117/hd/scene/textures/wood_grain.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wood_grain.jpg rename to src/test/resources/rs117/hd/scene/textures/wood_grain.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/wood_grain_2.jpg b/src/test/resources/rs117/hd/scene/textures/wood_grain_2.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wood_grain_2.jpg rename to src/test/resources/rs117/hd/scene/textures/wood_grain_2.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/wood_grain_3.jpg b/src/test/resources/rs117/hd/scene/textures/wood_grain_3.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/wood_grain_3.jpg rename to src/test/resources/rs117/hd/scene/textures/wood_grain_3.jpg diff --git a/src/main/resources/rs117/hd/scene/textures/worn_tiles.jpg b/src/test/resources/rs117/hd/scene/textures/worn_tiles.jpg similarity index 100% rename from src/main/resources/rs117/hd/scene/textures/worn_tiles.jpg rename to src/test/resources/rs117/hd/scene/textures/worn_tiles.jpg