soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.client.resources.model;
import javax.annotation.Nullable;
import net.minecraft.client.renderer.block.model.ItemTransform;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.block.model.TextureSlots;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public interface UnbakedModel extends ResolvableModel {
boolean DEFAULT_AMBIENT_OCCLUSION = true;
UnbakedModel.GuiLight DEFAULT_GUI_LIGHT = UnbakedModel.GuiLight.SIDE;
BakedModel bake(TextureSlots p_376037_, ModelBaker p_250133_, ModelState p_119536_, boolean p_378145_, boolean p_377763_, ItemTransforms p_375499_);
@Nullable
default Boolean getAmbientOcclusion() {
return null;
}
@Nullable
default UnbakedModel.GuiLight getGuiLight() {
return null;
}
@Nullable
default ItemTransforms getTransforms() {
return null;
}
default TextureSlots.Data getTextureSlots() {
return TextureSlots.Data.EMPTY;
}
@Nullable
default UnbakedModel getParent() {
return null;
}
static BakedModel bakeWithTopModelValues(UnbakedModel p_377580_, ModelBaker p_375760_, ModelState p_377199_) {
TextureSlots textureslots = getTopTextureSlots(p_377580_, p_375760_.rootName());
boolean flag = getTopAmbientOcclusion(p_377580_);
boolean flag1 = getTopGuiLight(p_377580_).lightLikeBlock();
ItemTransforms itemtransforms = getTopTransforms(p_377580_);
return p_377580_.bake(textureslots, p_375760_, p_377199_, flag, flag1, itemtransforms);
}
static TextureSlots getTopTextureSlots(UnbakedModel p_375427_, ModelDebugName p_378400_) {
TextureSlots.Resolver textureslots$resolver = new TextureSlots.Resolver();
while (p_375427_ != null) {
textureslots$resolver.addLast(p_375427_.getTextureSlots());
p_375427_ = p_375427_.getParent();
}
return textureslots$resolver.resolve(p_378400_);
}
static boolean getTopAmbientOcclusion(UnbakedModel p_377158_) {
while (p_377158_ != null) {
Boolean obool = p_377158_.getAmbientOcclusion();
if (obool != null) {
return obool;
}
p_377158_ = p_377158_.getParent();
}
return true;
}
static UnbakedModel.GuiLight getTopGuiLight(UnbakedModel p_375581_) {
while (p_375581_ != null) {
UnbakedModel.GuiLight unbakedmodel$guilight = p_375581_.getGuiLight();
if (unbakedmodel$guilight != null) {
return unbakedmodel$guilight;
}
p_375581_ = p_375581_.getParent();
}
return DEFAULT_GUI_LIGHT;
}
static ItemTransform getTopTransform(UnbakedModel p_377137_, ItemDisplayContext p_376495_) {
while (p_377137_ != null) {
ItemTransforms itemtransforms = p_377137_.getTransforms();
if (itemtransforms != null) {
ItemTransform itemtransform = itemtransforms.getTransform(p_376495_);
if (itemtransform != ItemTransform.NO_TRANSFORM) {
return itemtransform;
}
}
p_377137_ = p_377137_.getParent();
}
return ItemTransform.NO_TRANSFORM;
}
static ItemTransforms getTopTransforms(UnbakedModel p_377896_) {
ItemTransform itemtransform = getTopTransform(p_377896_, ItemDisplayContext.THIRD_PERSON_LEFT_HAND);
ItemTransform itemtransform1 = getTopTransform(p_377896_, ItemDisplayContext.THIRD_PERSON_RIGHT_HAND);
ItemTransform itemtransform2 = getTopTransform(p_377896_, ItemDisplayContext.FIRST_PERSON_LEFT_HAND);
ItemTransform itemtransform3 = getTopTransform(p_377896_, ItemDisplayContext.FIRST_PERSON_RIGHT_HAND);
ItemTransform itemtransform4 = getTopTransform(p_377896_, ItemDisplayContext.HEAD);
ItemTransform itemtransform5 = getTopTransform(p_377896_, ItemDisplayContext.GUI);
ItemTransform itemtransform6 = getTopTransform(p_377896_, ItemDisplayContext.GROUND);
ItemTransform itemtransform7 = getTopTransform(p_377896_, ItemDisplayContext.FIXED);
return new ItemTransforms(itemtransform, itemtransform1, itemtransform2, itemtransform3, itemtransform4, itemtransform5, itemtransform6, itemtransform7);
}
@OnlyIn(Dist.CLIENT)
public static enum GuiLight {
FRONT("front"),
SIDE("side");
private final String name;
private GuiLight(final String p_377886_) {
this.name = p_377886_;
}
public static UnbakedModel.GuiLight getByName(String p_378162_) {
for (UnbakedModel.GuiLight unbakedmodel$guilight : values()) {
if (unbakedmodel$guilight.name.equals(p_378162_)) {
return unbakedmodel$guilight;
}
}
throw new IllegalArgumentException("Invalid gui light: " + p_378162_);
}
public boolean lightLikeBlock() {
return this == SIDE;
}
}
}