|
@@ -364,24 +364,6 @@ public class TerrainEditorController {
|
|
return tex;
|
|
return tex;
|
|
}
|
|
}
|
|
|
|
|
|
- private Texture getAlphaTexture(final int layer) {
|
|
|
|
- try {
|
|
|
|
- Texture tex =
|
|
|
|
- SceneApplication.getApplication().enqueue(new Callable<Texture>() {
|
|
|
|
- public Texture call() throws Exception {
|
|
|
|
- Terrain terrain = (Terrain) getTerrain(null);
|
|
|
|
- return doGetAlphaTexture(terrain, layer);
|
|
|
|
- }
|
|
|
|
- }).get();
|
|
|
|
- return tex;
|
|
|
|
- } catch (InterruptedException ex) {
|
|
|
|
- Exceptions.printStackTrace(ex);
|
|
|
|
- } catch (ExecutionException ex) {
|
|
|
|
- Exceptions.printStackTrace(ex);
|
|
|
|
- }
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
private Texture doGetAlphaTexture(Terrain terrain, int alphaLayer) {
|
|
private Texture doGetAlphaTexture(Terrain terrain, int alphaLayer) {
|
|
if (terrain == null)
|
|
if (terrain == null)
|
|
return null;
|
|
return null;
|
|
@@ -501,25 +483,7 @@ public class TerrainEditorController {
|
|
setNeedsSave(true);
|
|
setNeedsSave(true);
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * Remove the normal map at the specified layer.
|
|
|
|
- * @param layer
|
|
|
|
- */
|
|
|
|
- public void removeNormalMap(final int layer) {
|
|
|
|
- try {
|
|
|
|
- SceneApplication.getApplication().enqueue(new Callable() {
|
|
|
|
- public Object call() throws Exception {
|
|
|
|
- doRemoveNormalMap(layer);
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
- }).get();
|
|
|
|
- } catch (InterruptedException ex) {
|
|
|
|
- Exceptions.printStackTrace(ex);
|
|
|
|
- } catch (ExecutionException ex) {
|
|
|
|
- Exceptions.printStackTrace(ex);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+
|
|
private void doRemoveNormalMap(int layer) {
|
|
private void doRemoveNormalMap(int layer) {
|
|
Terrain terrain = (Terrain) getTerrain(null);
|
|
Terrain terrain = (Terrain) getTerrain(null);
|
|
if (terrain == null)
|
|
if (terrain == null)
|
|
@@ -601,17 +565,16 @@ public class TerrainEditorController {
|
|
terrain.getMaterial().clearParam("NormalMap");
|
|
terrain.getMaterial().clearParam("NormalMap");
|
|
else
|
|
else
|
|
terrain.getMaterial().clearParam("NormalMap_"+layer);
|
|
terrain.getMaterial().clearParam("NormalMap_"+layer);
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- Texture tex = SceneApplication.getApplication().getAssetManager().loadTexture(texturePath);
|
|
|
|
- tex.setWrap(WrapMode.Repeat);
|
|
|
|
-
|
|
|
|
- if (layer == 0)
|
|
|
|
- terrain.getMaterial().setTexture("NormalMap", tex);
|
|
|
|
- else
|
|
|
|
- terrain.getMaterial().setTexture("NormalMap_"+layer, tex);
|
|
|
|
|
|
+ } else {
|
|
|
|
+ Texture tex = SceneApplication.getApplication().getAssetManager().loadTexture(texturePath);
|
|
|
|
+ tex.setWrap(WrapMode.Repeat);
|
|
|
|
|
|
|
|
+ if (layer == 0)
|
|
|
|
+ terrain.getMaterial().setTexture("NormalMap", tex);
|
|
|
|
+ else
|
|
|
|
+ terrain.getMaterial().setTexture("NormalMap_"+layer, tex);
|
|
|
|
+ }
|
|
|
|
+ enableTextureButtons();
|
|
setNeedsSave(true);
|
|
setNeedsSave(true);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -793,25 +756,23 @@ public class TerrainEditorController {
|
|
if (assetFolder == null)
|
|
if (assetFolder == null)
|
|
throw new IllegalStateException("AssetManager was not a ProjectAssetManager. Could not locate image save directories.");
|
|
throw new IllegalStateException("AssetManager was not a ProjectAssetManager. Could not locate image save directories.");
|
|
|
|
|
|
- Texture alpha = doGetAlphaTexture(terrain, 0);
|
|
|
|
- BufferedImage bi = ImageToAwt.convert(alpha.getImage(), false, true, 0);
|
|
|
|
- File imageFile = new File(assetFolder+alpha.getKey().getName());
|
|
|
|
|
|
+ Texture alpha1 = doGetAlphaTexture(terrain, 0);
|
|
|
|
+ BufferedImage bi1 = ImageToAwt.convert(alpha1.getImage(), false, true, 0);
|
|
|
|
+ File imageFile1 = new File(assetFolder+alpha1.getKey().getName());
|
|
|
|
+ Texture alpha2 = doGetAlphaTexture(terrain, 1);
|
|
|
|
+ BufferedImage bi2 = ImageToAwt.convert(alpha2.getImage(), false, true, 0);
|
|
|
|
+ File imageFile2 = new File(assetFolder+alpha2.getKey().getName());
|
|
|
|
+ Texture alpha3 = doGetAlphaTexture(terrain, 2);
|
|
|
|
+ BufferedImage bi3 = ImageToAwt.convert(alpha3.getImage(), false, true, 0);
|
|
|
|
+ File imageFile3 = new File(assetFolder+alpha3.getKey().getName());
|
|
try {
|
|
try {
|
|
- ImageIO.write(bi, "png", imageFile);
|
|
|
|
|
|
+ ImageIO.write(bi1, "png", imageFile1);
|
|
|
|
+ ImageIO.write(bi2, "png", imageFile2);
|
|
|
|
+ ImageIO.write(bi3, "png", imageFile3);
|
|
} catch (IOException ex) {
|
|
} catch (IOException ex) {
|
|
Exceptions.printStackTrace(ex);
|
|
Exceptions.printStackTrace(ex);
|
|
}
|
|
}
|
|
|
|
|
|
- /*alpha = doGetAlphaTexture(1);
|
|
|
|
- bi = ImageToAwt.convert(alpha.getImage(), false, true, 0);
|
|
|
|
- imageFile = new File(alpha.getKey().getName());
|
|
|
|
- ImageIO.write(bi, "png", imageFile);
|
|
|
|
-
|
|
|
|
- alpha = doGetAlphaTexture(2);
|
|
|
|
- bi = ImageToAwt.convert(alpha.getImage(), false, true, 0);
|
|
|
|
- imageFile = new File(alpha.getKey().getName());
|
|
|
|
- ImageIO.write(bi, "png", imageFile);
|
|
|
|
- */
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -917,18 +878,24 @@ public class TerrainEditorController {
|
|
* on how many textures are currently being used.
|
|
* on how many textures are currently being used.
|
|
*/
|
|
*/
|
|
protected void enableTextureButtons() {
|
|
protected void enableTextureButtons() {
|
|
- final int numAvailable = MAX_TEXTURES-doGetNumUsedTextures();
|
|
|
|
- final boolean add = doGetNumDiffuseTextures() < MAX_DIFFUSE && numAvailable > 0;
|
|
|
|
- final boolean remove = doGetNumDiffuseTextures() > 1;
|
|
|
|
-
|
|
|
|
- java.awt.EventQueue.invokeLater(new Runnable() {
|
|
|
|
- public void run() {
|
|
|
|
- topComponent.enableAddTextureButton(add);
|
|
|
|
- topComponent.enableRemoveTextureButton(remove);
|
|
|
|
- topComponent.updateTextureCountLabel(numAvailable);
|
|
|
|
- topComponent.setAddNormalTextureEnabled(numAvailable>0);
|
|
|
|
|
|
+ SceneApplication.getApplication().enqueue(new Callable<Object>() {
|
|
|
|
+ public Object call() throws Exception {
|
|
|
|
+ final int numAvailable = MAX_TEXTURES-doGetNumUsedTextures();
|
|
|
|
+ final boolean add = doGetNumDiffuseTextures() < MAX_DIFFUSE && numAvailable > 0;
|
|
|
|
+ final boolean remove = doGetNumDiffuseTextures() > 1;
|
|
|
|
+
|
|
|
|
+ java.awt.EventQueue.invokeLater(new Runnable() {
|
|
|
|
+ public void run() {
|
|
|
|
+ topComponent.enableAddTextureButton(add);
|
|
|
|
+ topComponent.enableRemoveTextureButton(remove);
|
|
|
|
+ topComponent.updateTextureCountLabel(numAvailable);
|
|
|
|
+ topComponent.setAddNormalTextureEnabled(numAvailable>0);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|