ForgePatch/patches/minecraft/net/minecraft/client/renderer/model/ModelBlock.java.patch

64 lines
4.9 KiB
Diff

--- a/net/minecraft/client/renderer/model/ModelBlock.java
+++ b/net/minecraft/client/renderer/model/ModelBlock.java
@@ -79,6 +79,9 @@
return this.field_178315_d != null;
}
+ @Nullable
+ public ResourceLocation getParentLocation() { return field_178316_e; }
+
public boolean func_178309_b() {
return this.func_178295_k() ? this.field_178315_d.func_178309_b() : this.field_178322_i;
}
@@ -178,14 +181,18 @@
return set1;
}
- public IBakedModel func_209558_a(Function<ResourceLocation, IUnbakedModel> p_209558_1_, Function<ResourceLocation, TextureAtlasSprite> p_209558_2_, ModelRotation p_209558_3_, boolean p_209558_4_) {
- return this.func_209565_a(this, p_209558_1_, p_209558_2_, p_209558_3_, p_209558_4_);
+ @Override
+ public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> p_209558_1_, Function<ResourceLocation, TextureAtlasSprite> p_209558_2_, net.minecraftforge.common.model.IModelState p_209558_3_, boolean p_209558_4_, net.minecraft.client.renderer.vertex.VertexFormat format) {
+ if (!net.minecraftforge.client.model.Attributes.moreSpecific(format, net.minecraftforge.client.model.Attributes.DEFAULT_BAKED_FORMAT)) {
+ throw new IllegalArgumentException("Cannot bake vanilla model to format other than BLOCK");
}
+ return bake(this, p_209558_1_, p_209558_2_, p_209558_3_, p_209558_4_);
+ }
- private IBakedModel func_209565_a(ModelBlock p_209565_1_, Function<ResourceLocation, IUnbakedModel> p_209565_2_, Function<ResourceLocation, TextureAtlasSprite> p_209565_3_, ModelRotation p_209565_4_, boolean p_209565_5_) {
+ private IBakedModel bake(ModelBlock p_209565_1_, Function<ResourceLocation, IUnbakedModel> p_209565_2_, Function<ResourceLocation, TextureAtlasSprite> p_209565_3_, net.minecraftforge.common.model.IModelState p_209565_4_, boolean p_209565_5_) {
ModelBlock modelblock = this.func_178310_f();
if (modelblock == ModelBakery.field_177606_o) {
- return field_209571_g.func_209579_a(p_209565_3_, this).func_209565_a(p_209565_1_, p_209565_2_, p_209565_3_, p_209565_4_, p_209565_5_);
+ return field_209571_g.func_209579_a(p_209565_3_, this).bake(p_209565_1_, p_209565_2_, p_209565_3_, p_209565_4_, p_209565_5_);
} else if (modelblock == ModelBakery.field_177616_r) {
return new BuiltInModel(this.func_181682_g(), this.func_209568_a(p_209565_1_, p_209565_2_, p_209565_3_));
} else {
@@ -197,9 +204,10 @@
BlockPartFace blockpartface = blockpart.field_178240_c.get(enumfacing);
TextureAtlasSprite textureatlassprite1 = p_209565_3_.apply(new ResourceLocation(this.func_178308_c(blockpartface.field_178242_d)));
if (blockpartface.field_178244_b == null) {
- simplebakedmodel$builder.func_177648_a(func_209567_a(blockpart, blockpartface, textureatlassprite1, enumfacing, p_209565_4_, p_209565_5_));
+ simplebakedmodel$builder.func_177648_a(makeBakedQuad(blockpart, blockpartface, textureatlassprite1, enumfacing, p_209565_4_, p_209565_5_));
} else {
- simplebakedmodel$builder.func_177650_a(p_209565_4_.func_177523_a(blockpartface.field_178244_b), func_209567_a(blockpart, blockpartface, textureatlassprite1, enumfacing, p_209565_4_, p_209565_5_));
+
+ simplebakedmodel$builder.func_177650_a(p_209565_4_.apply(java.util.Optional.empty()).map(trsr -> trsr.rotate(enumfacing)).orElse(enumfacing), makeBakedQuad(blockpart, blockpartface, textureatlassprite1, enumfacing, p_209565_4_, p_209565_5_));
}
}
}
@@ -209,9 +217,13 @@
}
private static BakedQuad func_209567_a(BlockPart p_209567_0_, BlockPartFace p_209567_1_, TextureAtlasSprite p_209567_2_, EnumFacing p_209567_3_, ModelRotation p_209567_4_, boolean p_209567_5_) {
- return field_209572_h.func_199332_a(p_209567_0_.field_178241_a, p_209567_0_.field_178239_b, p_209567_1_, p_209567_2_, p_209567_3_, p_209567_4_, p_209567_0_.field_178237_d, p_209567_5_, p_209567_0_.field_178238_e);
+ return makeBakedQuad(p_209567_0_, p_209567_1_, p_209567_2_, p_209567_3_, (net.minecraftforge.common.model.IModelState) p_209567_4_, p_209567_5_);
}
+ public static BakedQuad makeBakedQuad(BlockPart p_209567_0, BlockPartFace p_209567_1_, TextureAtlasSprite p_209567_2_, EnumFacing p_209567_3_, net.minecraftforge.common.model.IModelState p_209567_4_, boolean p_209567_5_) {
+ return field_209572_h.makeBakedQuad(p_209567_0.field_178241_a, p_209567_0.field_178239_b, p_209567_1_, p_209567_2_, p_209567_3_, p_209567_4_.apply(java.util.Optional.empty()).orElse(net.minecraftforge.common.model.TRSRTransformation.identity()), p_209567_0.field_178237_d, p_209567_5_, p_209567_0.field_178238_e);
+ }
+
public boolean func_178300_b(String p_178300_1_) {
return !MissingTextureSprite.func_195677_a().func_195668_m().toString().equals(this.func_178308_c(p_178300_1_));
}