@Override public Optional<TextureData> getAssetData(ResourceUrn urn) throws IOException { if (TerasologyConstants.ENGINE_MODULE.equals(urn.getModuleName()) && TextureUtil.NOISE_RESOURCE_NAME.equals(urn.getResourceName())) { Name fragmentName = urn.getFragmentName(); if (!fragmentName.isEmpty()) { String[] parts = fragmentName.toLowerCase().split("\\."); if (parts.length == 5) { String type = parts[0]; int size = Integer.parseInt(parts[1]); long seed = Long.parseLong(parts[2]); int min = Integer.parseInt(parts[3]); int max = Integer.parseInt(parts[4]); TextureData textureData; switch (type) { case "white": return Optional.of(TextureDataFactory.createWhiteNoiseTexture(size, seed, min, max)); } } } } return Optional.empty(); } }