minecraft-src/net/minecraft/client/resources/model/WeightedBakedModel.java
2025-07-04 02:49:36 +03:00

28 lines
1.1 KiB
Java

package net.minecraft.client.resources.model;
import java.util.Collections;
import java.util.List;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.util.random.SimpleWeightedRandomList;
import net.minecraft.util.random.WeightedEntry.Wrapper;
import net.minecraft.world.level.block.state.BlockState;
import org.jetbrains.annotations.Nullable;
@Environment(EnvType.CLIENT)
public class WeightedBakedModel extends DelegateBakedModel {
private final SimpleWeightedRandomList<BakedModel> list;
public WeightedBakedModel(SimpleWeightedRandomList<BakedModel> list) {
super((BakedModel)((Wrapper)list.unwrap().getFirst()).data());
this.list = list;
}
@Override
public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction direction, RandomSource random) {
return (List<BakedQuad>)this.list.getRandomValue(random).map(bakedModel -> bakedModel.getQuads(state, direction, random)).orElse(Collections.emptyList());
}
}