mirror of
https://github.com/DaanVandenBosch/phantasmal-world.git
synced 2025-04-07 16:58:26 +08:00
Fixed bug in mesh order tweaks.
This commit is contained in:
parent
e4cbc38d4a
commit
f20711296b
@ -211,11 +211,12 @@ class AreaAssetLoader(private val assetLoader: AssetLoader) : DisposableContaine
|
|||||||
episode: Episode,
|
episode: Episode,
|
||||||
areaVariant: AreaVariantModel,
|
areaVariant: AreaVariantModel,
|
||||||
): Pair<Object3D, List<SectionModel>> {
|
): Pair<Object3D, List<SectionModel>> {
|
||||||
|
val renderOnTopTextures = RENDER_ON_TOP_TEXTURES[Pair(episode, areaVariant.area.id)]
|
||||||
val sections = mutableMapOf<Int, SectionModel>()
|
val sections = mutableMapOf<Int, SectionModel>()
|
||||||
|
|
||||||
val group =
|
val group =
|
||||||
renderGeometryToGroup(renderGeometry, textures) { renderSection, xjObject, mesh ->
|
renderGeometryToGroup(renderGeometry, textures) { renderSection, xjObject, mesh ->
|
||||||
if (shouldRenderOnTop(xjObject, episode, areaVariant)) {
|
if (shouldRenderOnTop(xjObject, renderOnTopTextures)) {
|
||||||
mesh.renderOrder = 1
|
mesh.renderOrder = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,28 +237,22 @@ class AreaAssetLoader(private val assetLoader: AssetLoader) : DisposableContaine
|
|||||||
return Pair(group, sections.values.toList())
|
return Pair(group, sections.values.toList())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun shouldRenderOnTop(
|
private fun shouldRenderOnTop(obj: XjObject, renderOnTopTextures: Set<Int>?): Boolean {
|
||||||
obj: XjObject,
|
renderOnTopTextures ?: return false
|
||||||
episode: Episode,
|
|
||||||
areaVariant: AreaVariantModel,
|
|
||||||
): Boolean {
|
|
||||||
fun recurse(obj: XjObject): Boolean {
|
|
||||||
obj.model?.meshes?.let { meshes ->
|
obj.model?.meshes?.let { meshes ->
|
||||||
for (mesh in meshes) {
|
for (mesh in meshes) {
|
||||||
mesh.material.textureId?.let { textureId ->
|
mesh.material.textureId?.let { textureId ->
|
||||||
RENDER_ON_TOP_TEXTURES[Pair(episode, areaVariant.id)]?.let { textureIds ->
|
if (textureId in renderOnTopTextures) {
|
||||||
if (textureId in textureIds) {
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return obj.children.any(::recurse)
|
return obj.children.any {
|
||||||
|
shouldRenderOnTop(it, renderOnTopTextures)
|
||||||
}
|
}
|
||||||
|
|
||||||
return recurse(obj)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun areaCollisionGeometryToObject3D(
|
private fun areaCollisionGeometryToObject3D(
|
||||||
|
Loading…
Reference in New Issue
Block a user