Fix models colors

This commit is contained in:
Daniel Maixner 2022-12-23 12:23:32 +01:00
parent a74ab89951
commit 51753b2b80

View File

@ -6,6 +6,11 @@ export class ModelRepository {
#textureLoader
#models = {}
#meshes = {}
#materials = {
caps: {},
outfitTeam: null,
outfitOpponent: null,
}
#textures = {
cap: {}
}
@ -63,9 +68,15 @@ export class ModelRepository {
const player = clone.getObjectByName('player')
const headWear = player.getObjectByName('Wolf3D_Headwear')
headWear.material.map = this.#textures.cap[colorIndex]
if (this.#materials.caps[colorIndex] === undefined) {
const newMaterial = headWear.material.clone()
newMaterial.map = this.#textures.cap[colorIndex]
this.#materials.caps[colorIndex] = newMaterial
}
headWear.material = this.#materials.caps[colorIndex]
const outfit = player.getObjectByName('Wolf3D_Outfit_Top')
outfit.material.map = isOpponent ? this.#textures.opponent : this.#textures.team
outfit.material = isOpponent ? this.#materials.outfitOpponent : this.#materials.outfitTeam
return player
}
@ -205,6 +216,15 @@ export class ModelRepository {
this.#meshes.playerHitMesh = sprite
}))
return Promise.all(promises)
return Promise.all(promises).then(() => {
const outfit = this.#models.player.getObjectByName('Wolf3D_Outfit_Top')
const materialTeam = outfit.material.clone()
materialTeam.map = this.#textures.team
const materialOpponent = outfit.material.clone()
materialOpponent.map = this.#textures.opponent
this.#materials.outfitTeam = materialTeam
this.#materials.outfitOpponent = materialOpponent
})
}
}