Skip to content

Commit

Permalink
Fixed override textures not being added to umodel export queue
Browse files Browse the repository at this point in the history
  • Loading branch information
Amrsatrio committed Jun 19, 2020
1 parent 304f23a commit 705bff1
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 11 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
}

group 'com.tb24'
version '0.2.0'
version '0.2.1'

sourceCompatibility = 1.8

Expand Down
20 changes: 15 additions & 5 deletions src/main/java/com/tb24/blenderumap/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -224,11 +224,11 @@ private static JsonArray exportAndProduceProcessed(String s) {
if (texDataPkg != null) {
BuildingTextureData td = StructFallbackReflectionUtilKt.mapToClass(texDataPkg.getExports().get(0).getBaseObject(), BuildingTextureData.class, null);
JsonArray textures = new JsonArray();
textures.add(td.Diffuse != null && td.Diffuse.getIndex() != 0 ? td.Diffuse.getOuterImportObject().getObjectName().getText() : null);
textures.add(td.Normal != null && td.Normal.getIndex() != 0 ? td.Normal.getOuterImportObject().getObjectName().getText() : null);
textures.add(td.Specular != null && td.Specular.getIndex() != 0 ? td.Specular.getOuterImportObject().getObjectName().getText() : null);
textures.add(td.Emissive != null && td.Emissive.getIndex() != 0 ? td.Emissive.getOuterImportObject().getObjectName().getText() : null);
textures.add(td.Mask != null && td.Mask.getIndex() != 0 ? td.Mask.getOuterImportObject().getObjectName().getText() : null);
addToArray(textures, td.Diffuse);
addToArray(textures, td.Normal);
addToArray(textures, td.Specular);
addToArray(textures, td.Emissive);
addToArray(textures, td.Mask);
JsonArray entry = new JsonArray();
entry.add(textureDataPath);
entry.add(textures);
Expand Down Expand Up @@ -279,6 +279,16 @@ private static JsonArray exportAndProduceProcessed(String s) {
return comps;
}

private static void addToArray(JsonArray array, FPackageIndex index) {
if (index != null && index.getIndex() != 0) {
String s = index.getOuterImportObject().getObjectName().getText();
toExport.add(s);
array.add(s);
} else {
array.add((JsonElement) null);
}
}

private static Package loadIfNot(String pkg) {
GameFile gameFile = provider.findGameFile(pkg);

Expand Down
13 changes: 8 additions & 5 deletions umap.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
# Change the value to the working directory of the Java program with the bat. I'm leaving mine here.
data_dir = r"C:\Users\satri\Documents\AppProjects\BlenderUmap\run"

clear_scene = True
reuse_meshes = True
use_cube_as_fallback = True
use_gltf = False
Expand Down Expand Up @@ -128,7 +129,7 @@ def import_material(m_idx: int, path: str, suffix: str, base_textures: list, tex
for td_idx, td_entry in enumerate(tex_data):
if not td_entry:
continue
index = {1: 3, 2: 2}.get(td_idx, 0)
index = {1: 3, 2: 2, 3: 2}.get(td_idx, 0)
td_textures = td_entry[1]

for i, tex_entry in enumerate(base_textures[index]):
Expand Down Expand Up @@ -390,11 +391,13 @@ def string_hash_code(s: str) -> int:
tex_shader.inputs[4].name = "Alpha"

# clear all objects except camera
for obj in bpy.context.scene.objects:
if obj.type != "CAMERA":
obj.select_set(True)
if clear_scene:
for obj in bpy.context.scene.objects:
if obj.type != "CAMERA":
obj.select_set(True)

bpy.ops.object.delete()

bpy.ops.object.delete()
cleanup()

# setup helper objects
Expand Down

0 comments on commit 705bff1

Please sign in to comment.