Preserve parent model settings in renderer
This commit is contained in:
@@ -185,6 +185,12 @@ def merge_model(pack_root: Path, model_ref: str, cache: dict[str, dict[str, Any]
|
||||
else:
|
||||
merged["texture_size"] = [16, 16]
|
||||
|
||||
for key in ("display", "gui_light", "render_type", "groups", "credit", "ambientocclusion"):
|
||||
if key in data:
|
||||
merged[key] = data[key]
|
||||
elif parent_model and key in parent_model:
|
||||
merged[key] = parent_model[key]
|
||||
|
||||
cache[model_ref] = merged
|
||||
return merged
|
||||
|
||||
@@ -458,8 +464,8 @@ def render_model(pack_root: Path, model_ref: str, output_path: Path, cache: dict
|
||||
shadow = shadow.filter(ImageFilter.GaussianBlur(8))
|
||||
canvas.alpha_composite(shadow)
|
||||
|
||||
faces: list[tuple[float, list[tuple[float, float, float]], Image.Image]] = []
|
||||
for corners, element, model_data in transformed_elements:
|
||||
faces: list[tuple[float, list[tuple[float, float, float]], Image.Image]] = []
|
||||
for face_name, face in element.get("faces", {}).items():
|
||||
vertices = face_vertices(corners, face_name)
|
||||
if not vertices:
|
||||
@@ -468,12 +474,12 @@ def render_model(pack_root: Path, model_ref: str, output_path: Path, cache: dict
|
||||
texture = resolve_face_texture(pack_root, model_data, face)
|
||||
faces.append((sort_face_key(projected), projected, texture))
|
||||
|
||||
faces.sort(key=lambda item: item[0])
|
||||
for _, projected, texture in faces:
|
||||
warped = transform_face(texture, projected, canvas)
|
||||
if warped is None:
|
||||
continue
|
||||
canvas.alpha_composite(warped)
|
||||
faces.sort(key=lambda item: item[0])
|
||||
for _, projected, texture in faces:
|
||||
warped = transform_face(texture, projected, canvas)
|
||||
if warped is None:
|
||||
continue
|
||||
canvas.alpha_composite(warped)
|
||||
|
||||
canvas.save(output_path)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user