[SUBMIT ON MAIN BRANCH] Blender script fix: support version 2 models

coolant-mod
immibis 2020-02-02 11:56:09 +01:00
parent 8e54962c65
commit 0662424055
1 changed files with 11 additions and 7 deletions

View File

@ -199,7 +199,8 @@ def write_colobot_model(filename, model):
file.write('tex1 ' + t.mat.tex1 + '\n')
file.write('tex2 ' + t.mat.tex2 + '\n')
file.write('var_tex2 ' + ( 'Y' if t.mat.var_tex2 else 'N' + '\n' ) )
file.write('lod_level ' + str(t.lod_level) + '\n')
if model.version == 1:
file.write('lod_level ' + str(t.lod_level) + '\n')
file.write('state ' + str(t.mat.state) + '\n')
file.write('\n')
@ -281,8 +282,8 @@ def read_colobot_model(filename):
if (tokens[0] != 'version'):
raise ColobotError("Invalid header", "version")
model.version = int(tokens[1])
if (model.version != 1):
raise ColobotError("Unknown model file version")
if (model.version != 1 and model.version != 2):
raise ColobotError("Unknown model file version "+str(model.version))
tokens, index = token_next_line(lines, index)
if (tokens[0] != 'total_triangles'):
@ -329,10 +330,13 @@ def read_colobot_model(filename):
raise ColobotError("Invalid triangle", "var_tex2")
t.mat.var_tex2 = tokens[1] == 'Y'
tokens, index = token_next_line(lines, index)
if (tokens[0] != 'lod_level'):
raise ColobotError("Invalid triangle", "lod_level")
t.lod_level = int(tokens[1])
if (model.version == 1):
tokens, index = token_next_line(lines, index)
if (tokens[0] != 'lod_level'):
raise ColobotError("Invalid triangle", "lod_level")
t.lod_level = int(tokens[1])
else:
t.lod_level = 0 # constant
tokens, index = token_next_line(lines, index)
if (tokens[0] != 'state'):