28 lines
1.1 KiB
Java
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());
|
|
}
|
|
}
|