/* * SPDX-FileCopyrightText: 2024 Linnea Gräf * * SPDX-License-Identifier: GPL-3.0-or-later */ package moe.nea.firmament.features.texturepack import com.google.gson.JsonArray import com.google.gson.JsonElement import com.google.gson.JsonObject import net.minecraft.item.ItemStack class AndPredicate(val children: Array) : FirmamentModelPredicate { override fun test(stack: ItemStack): Boolean { return children.all { it.test(stack) } } object Parser : FirmamentModelPredicateParser { override fun parse(jsonElement: JsonElement): FirmamentModelPredicate { val children = (jsonElement as JsonArray) .flatMap { CustomModelOverrideParser.parsePredicates(it as JsonObject) } .toTypedArray() return AndPredicate(children) } } }