package net.shadowfacts.phycon.client.model import net.minecraft.block.BlockState import net.minecraft.client.render.model.BakedModel import net.minecraft.client.render.model.ModelLoader import net.minecraft.client.texture.Sprite import net.minecraft.client.util.SpriteIdentifier import net.minecraft.util.DyeColor import net.minecraft.util.Identifier import net.shadowfacts.phycon.block.FaceDeviceBlock import net.shadowfacts.phycon.client.util.bakeRecoloredCable import java.util.function.Function /** * @author shadowfacts */ class SimpleFaceDeviceModel( private val sideModelID: Identifier, ): FaceDeviceModel() { private val sideModels = mutableMapOf>() override fun getSideModelIDs(): Collection { return listOf(sideModelID) } override fun bakeSideModels(loader: ModelLoader, textureGetter: Function) { DyeColor.values().forEach { color -> sideModels[color] = Array(6) { i -> loader.bakeRecoloredCable(sideModelID, defaultRotations[i], textureGetter, color) } } } override fun getSideModel(state: BlockState): BakedModel { return sideModels[state[FaceDeviceBlock.COLOR]]!![state[FaceDeviceBlock.FACING].ordinal] } override fun getParticleSprite(): Sprite { return sideModels[DyeColor.BLACK]!!.first().particleSprite } }