Rework model patches/classes for new bake signature
This commit is contained in:
parent
b74b72e44c
commit
a93d7d20ee
|
@ -10,38 +10,43 @@
|
||||||
public boolean func_178309_b() {
|
public boolean func_178309_b() {
|
||||||
return this.field_178315_d != null ? this.field_178315_d.func_178309_b() : this.field_178322_i;
|
return this.field_178315_d != null ? this.field_178315_d.func_178309_b() : this.field_178322_i;
|
||||||
}
|
}
|
||||||
@@ -87,6 +90,10 @@
|
@@ -90,6 +93,10 @@
|
||||||
return this.field_187968_k;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ public ItemOverrideList getOverrides(BlockModel model, Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter) {
|
|
||||||
+ return this.field_187968_k.isEmpty() ? ItemOverrideList.field_188022_a : new ItemOverrideList(model, modelGetter, this.field_187968_k, spriteGetter);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
private ItemOverrideList func_217646_a(ModelBakery p_217646_1_, BlockModel p_217646_2_) {
|
private ItemOverrideList func_217646_a(ModelBakery p_217646_1_, BlockModel p_217646_2_) {
|
||||||
return this.field_187968_k.isEmpty() ? ItemOverrideList.field_188022_a : new ItemOverrideList(p_217646_1_, p_217646_2_, p_217646_1_::func_209597_a, this.field_187968_k);
|
return this.field_187968_k.isEmpty() ? ItemOverrideList.field_188022_a : new ItemOverrideList(p_217646_1_, p_217646_2_, p_217646_1_::func_209597_a, this.field_187968_k);
|
||||||
}
|
}
|
||||||
@@ -160,25 +167,26 @@
|
+
|
||||||
|
+ public ItemOverrideList getOverrides(ModelBakery p_217646_1_, BlockModel p_217646_2_, Function<ResourceLocation, TextureAtlasSprite> textureGetter, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||||
|
+ return this.field_187968_k.isEmpty() ? ItemOverrideList.field_188022_a : new ItemOverrideList(p_217646_1_, p_217646_2_, p_217646_1_::func_209597_a, textureGetter, this.field_187968_k, format);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
public Collection<ResourceLocation> func_187965_e() {
|
||||||
|
Set<ResourceLocation> set = Sets.newHashSet();
|
||||||
|
@@ -160,25 +167,33 @@
|
||||||
return set1;
|
return set1;
|
||||||
}
|
}
|
||||||
|
|
||||||
- public IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
- public IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
||||||
- return this.func_217644_a(p_217641_1_, this, p_217641_2_, p_217641_3_);
|
- return this.func_217644_a(p_217641_1_, this, p_217641_2_, p_217641_3_);
|
||||||
- }
|
+ // FORGE: Override our interface method, binary compatible
|
||||||
+ @Nullable
|
+ public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||||
+ @Override
|
|
||||||
+ public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> p_217644_1_, Function<ResourceLocation, TextureAtlasSprite> p_217644_3_, ISprite p_217644_2_, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
|
||||||
+ if (!net.minecraftforge.client.model.Attributes.moreSpecific(format, net.minecraftforge.client.model.Attributes.DEFAULT_BAKED_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");
|
+ throw new IllegalArgumentException("Cannot bake vanilla model to format other than BLOCK");
|
||||||
|
+ return this.bake(bakery, this, spriteGetter, sprite, format);
|
||||||
|
}
|
||||||
|
|
||||||
- public IBakedModel func_217644_a(ModelBakery p_217644_1_, BlockModel p_217644_2_, Function<ResourceLocation, TextureAtlasSprite> p_217644_3_, ISprite p_217644_4_) {
|
+ @Deprecated
|
||||||
|
public IBakedModel func_217644_a(ModelBakery p_217644_1_, BlockModel p_217644_2_, Function<ResourceLocation, TextureAtlasSprite> p_217644_3_, ISprite p_217644_4_) {
|
||||||
|
+ return bake(p_217644_1_, p_217644_2_, p_217644_3_, p_217644_4_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public IBakedModel bake(ModelBakery p_217644_1_, BlockModel p_217644_2_, Function<ResourceLocation, TextureAtlasSprite> p_217644_3_, ISprite p_217644_4_, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||||
TextureAtlasSprite textureatlassprite = p_217644_3_.apply(new ResourceLocation(this.func_178308_c("particle")));
|
TextureAtlasSprite textureatlassprite = p_217644_3_.apply(new ResourceLocation(this.func_178308_c("particle")));
|
||||||
if (this.func_178310_f() == ModelBakery.field_177616_r) {
|
if (this.func_178310_f() == ModelBakery.field_177616_r) {
|
||||||
- return new BuiltInModel(this.func_181682_g(), this.func_217646_a(p_217644_1_, p_217644_2_), textureatlassprite);
|
- return new BuiltInModel(this.func_181682_g(), this.func_217646_a(p_217644_1_, p_217644_2_), textureatlassprite);
|
||||||
+ return new BuiltInModel(this.func_181682_g(), this.getOverrides(this, p_217644_1_, p_217644_3_), textureatlassprite);
|
+ return new BuiltInModel(this.func_181682_g(), this.getOverrides(p_217644_1_, p_217644_2_, p_217644_3_, format), textureatlassprite);
|
||||||
} else {
|
} else {
|
||||||
- SimpleBakedModel.Builder simplebakedmodel$builder = (new SimpleBakedModel.Builder(this, this.func_217646_a(p_217644_1_, p_217644_2_))).func_177646_a(textureatlassprite);
|
- SimpleBakedModel.Builder simplebakedmodel$builder = (new SimpleBakedModel.Builder(this, this.func_217646_a(p_217644_1_, p_217644_2_))).func_177646_a(textureatlassprite);
|
||||||
+ SimpleBakedModel.Builder simplebakedmodel$builder = (new SimpleBakedModel.Builder(this, this.getOverrides(this, p_217644_1_, p_217644_3_))).func_177646_a(textureatlassprite);
|
+ SimpleBakedModel.Builder simplebakedmodel$builder = (new SimpleBakedModel.Builder(this, this.getOverrides(p_217644_1_, p_217644_2_, p_217644_3_, format))).func_177646_a(textureatlassprite);
|
||||||
|
|
||||||
for(BlockPart blockpart : this.func_178298_a()) {
|
for(BlockPart blockpart : this.func_178298_a()) {
|
||||||
for(Direction direction : blockpart.field_178240_c.keySet()) {
|
for(Direction direction : blockpart.field_178240_c.keySet()) {
|
||||||
|
@ -49,14 +54,14 @@
|
||||||
TextureAtlasSprite textureatlassprite1 = p_217644_3_.apply(new ResourceLocation(this.func_178308_c(blockpartface.field_178242_d)));
|
TextureAtlasSprite textureatlassprite1 = p_217644_3_.apply(new ResourceLocation(this.func_178308_c(blockpartface.field_178242_d)));
|
||||||
if (blockpartface.field_178244_b == null) {
|
if (blockpartface.field_178244_b == null) {
|
||||||
- simplebakedmodel$builder.func_177648_a(func_217645_a(blockpart, blockpartface, textureatlassprite1, direction, p_217644_4_));
|
- simplebakedmodel$builder.func_177648_a(func_217645_a(blockpart, blockpartface, textureatlassprite1, direction, p_217644_4_));
|
||||||
+ simplebakedmodel$builder.func_177648_a(makeBakedQuad(blockpart, blockpartface, textureatlassprite1, direction, p_217644_2_));
|
+ simplebakedmodel$builder.func_177648_a(makeBakedQuad(blockpart, blockpartface, textureatlassprite1, direction, p_217644_4_));
|
||||||
} else {
|
} else {
|
||||||
- simplebakedmodel$builder.func_177650_a(p_217644_4_.func_188048_b().func_177523_a(blockpartface.field_178244_b), func_217645_a(blockpart, blockpartface, textureatlassprite1, direction, p_217644_4_));
|
- simplebakedmodel$builder.func_177650_a(p_217644_4_.func_188048_b().func_177523_a(blockpartface.field_178244_b), func_217645_a(blockpart, blockpartface, textureatlassprite1, direction, p_217644_4_));
|
||||||
+ simplebakedmodel$builder.func_177650_a(p_217644_2_.getState().apply(java.util.Optional.empty()).map(trsr -> trsr.rotate(direction)).orElse(direction), makeBakedQuad(blockpart, blockpartface, textureatlassprite1, direction, p_217644_2_));
|
+ simplebakedmodel$builder.func_177650_a(p_217644_4_.getState().apply(java.util.Optional.empty()).map(trsr -> trsr.rotate(direction)).orElse(direction), makeBakedQuad(blockpart, blockpartface, textureatlassprite1, direction, p_217644_4_));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,6 +199,10 @@
|
@@ -191,6 +206,10 @@
|
||||||
return field_217647_g.func_217648_a(p_217645_0_.field_178241_a, p_217645_0_.field_178239_b, p_217645_1_, p_217645_2_, p_217645_3_, p_217645_4_, p_217645_0_.field_178237_d, p_217645_0_.field_178238_e);
|
return field_217647_g.func_217648_a(p_217645_0_.field_178241_a, p_217645_0_.field_178239_b, p_217645_1_, p_217645_2_, p_217645_3_, p_217645_4_, p_217645_0_.field_178237_d, p_217645_0_.field_178238_e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,6 @@
|
||||||
- IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_);
|
- IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_);
|
||||||
+ @Deprecated
|
+ @Deprecated
|
||||||
+ default IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
+ default IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
||||||
+ return bake(p_217641_1_::func_209597_a, p_217641_2_, p_217641_3_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
|
+ return bake(p_217641_1_, p_217641_2_, p_217641_3_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,22 @@
|
||||||
--- a/net/minecraft/client/renderer/model/ItemOverrideList.java
|
--- a/net/minecraft/client/renderer/model/ItemOverrideList.java
|
||||||
+++ b/net/minecraft/client/renderer/model/ItemOverrideList.java
|
+++ b/net/minecraft/client/renderer/model/ItemOverrideList.java
|
||||||
@@ -24,10 +24,17 @@
|
@@ -24,10 +24,14 @@
|
||||||
this.field_209582_c = Collections.emptyList();
|
this.field_209582_c = Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
+ @Deprecated //Forge: Use IUnbakedModel
|
+ @Deprecated //Forge: Use IUnbakedModel, add texture getter
|
||||||
public ItemOverrideList(ModelBakery p_i50984_1_, BlockModel p_i50984_2_, Function<ResourceLocation, IUnbakedModel> p_i50984_3_, List<ItemOverride> p_i50984_4_) {
|
public ItemOverrideList(ModelBakery p_i50984_1_, BlockModel p_i50984_2_, Function<ResourceLocation, IUnbakedModel> p_i50984_3_, List<ItemOverride> p_i50984_4_) {
|
||||||
+ this(p_i50984_1_, (IUnbakedModel)p_i50984_2_, p_i50984_3_, p_i50984_4_);
|
+ this(p_i50984_1_, (IUnbakedModel)p_i50984_2_, p_i50984_3_, p_i50984_1_.field_177609_j::func_195424_a, p_i50984_4_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
|
||||||
+ }
|
+ }
|
||||||
+ public ItemOverrideList(ModelBakery p_i50984_1_, IUnbakedModel p_i50984_2_, Function<ResourceLocation, IUnbakedModel> p_i50984_3_, List<ItemOverride> p_i50984_4_) {
|
+ public ItemOverrideList(ModelBakery p_i50984_1_, IUnbakedModel p_i50984_2_, Function<ResourceLocation, IUnbakedModel> p_i50984_3_, Function<ResourceLocation, net.minecraft.client.renderer.texture.TextureAtlasSprite> textureGetter, List<ItemOverride> p_i50984_4_, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||||
+ this(p_i50984_2_, p_i50984_3_, p_i50984_4_, net.minecraftforge.client.model.ModelLoader.defaultTextureGetter());
|
|
||||||
+ }
|
|
||||||
+ public ItemOverrideList(IUnbakedModel p_i50984_2_, Function<ResourceLocation, IUnbakedModel> p_i50984_3_, List<ItemOverride> p_i50984_4_, Function<ResourceLocation, net.minecraft.client.renderer.texture.TextureAtlasSprite> spriteGetter) {
|
|
||||||
this.field_209582_c = p_i50984_4_.stream().map((p_217649_3_) -> {
|
this.field_209582_c = p_i50984_4_.stream().map((p_217649_3_) -> {
|
||||||
IUnbakedModel iunbakedmodel = p_i50984_3_.apply(p_217649_3_.func_188026_a());
|
IUnbakedModel iunbakedmodel = p_i50984_3_.apply(p_217649_3_.func_188026_a());
|
||||||
- return Objects.equals(iunbakedmodel, p_i50984_2_) ? null : p_i50984_1_.func_217845_a(p_217649_3_.func_188026_a(), ModelRotation.X0_Y0);
|
- return Objects.equals(iunbakedmodel, p_i50984_2_) ? null : p_i50984_1_.func_217845_a(p_217649_3_.func_188026_a(), ModelRotation.X0_Y0);
|
||||||
+ return Objects.equals(iunbakedmodel, p_i50984_2_) ? null : p_i50984_3_.apply(p_217649_3_.func_188026_a()).bake(p_i50984_3_, spriteGetter, ModelRotation.X0_Y0, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
|
+ return Objects.equals(iunbakedmodel, p_i50984_2_) ? null : p_i50984_1_.getBakedModel(p_217649_3_.func_188026_a(), ModelRotation.X0_Y0, textureGetter, format);
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
Collections.reverse(this.field_209582_c);
|
Collections.reverse(this.field_209582_c);
|
||||||
|
|
||||||
@@ -55,4 +62,8 @@
|
@@ -55,4 +59,8 @@
|
||||||
|
|
||||||
return p_209581_1_;
|
return p_209581_1_;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,21 +18,31 @@
|
||||||
return pair1;
|
return pair1;
|
||||||
} catch (Exception exception1) {
|
} catch (Exception exception1) {
|
||||||
throw new ModelBakery.BlockStateDefinitionException(String.format("Exception loading blockstate definition: '%s' in resourcepack: '%s': %s", p_217839_1_.func_199029_a(), p_217839_1_.func_199026_d(), exception1.getMessage()));
|
throw new ModelBakery.BlockStateDefinitionException(String.format("Exception loading blockstate definition: '%s' in resourcepack: '%s': %s", p_217839_1_.func_199029_a(), p_217839_1_.func_199026_d(), exception1.getMessage()));
|
||||||
@@ -381,7 +381,7 @@
|
@@ -381,7 +381,12 @@
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public IBakedModel func_217845_a(ResourceLocation p_217845_1_, ISprite p_217845_2_) {
|
public IBakedModel func_217845_a(ResourceLocation p_217845_1_, ISprite p_217845_2_) {
|
||||||
- Triple<ResourceLocation, ModelRotation, Boolean> triple = Triple.of(p_217845_1_, p_217845_2_.func_188048_b(), p_217845_2_.func_188049_c());
|
- Triple<ResourceLocation, ModelRotation, Boolean> triple = Triple.of(p_217845_1_, p_217845_2_.func_188048_b(), p_217845_2_.func_188049_c());
|
||||||
|
+ return getBakedModel(p_217845_1_, p_217845_2_, this.field_177609_j::func_195424_a, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Nullable
|
||||||
|
+ public IBakedModel getBakedModel(ResourceLocation p_217845_1_, ISprite p_217845_2_, java.util.function.Function<ResourceLocation, net.minecraft.client.renderer.texture.TextureAtlasSprite> textureGetter, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||||
+ Triple<ResourceLocation, net.minecraftforge.common.model.IModelState, Boolean> triple = Triple.of(p_217845_1_, p_217845_2_.getState(), p_217845_2_.func_188049_c());
|
+ Triple<ResourceLocation, net.minecraftforge.common.model.IModelState, Boolean> triple = Triple.of(p_217845_1_, p_217845_2_.getState(), p_217845_2_.func_188049_c());
|
||||||
if (this.field_217850_G.containsKey(triple)) {
|
if (this.field_217850_G.containsKey(triple)) {
|
||||||
return this.field_217850_G.get(triple);
|
return this.field_217850_G.get(triple);
|
||||||
} else {
|
} else {
|
||||||
@@ -389,7 +389,7 @@
|
@@ -389,11 +394,11 @@
|
||||||
if (iunbakedmodel instanceof BlockModel) {
|
if (iunbakedmodel instanceof BlockModel) {
|
||||||
BlockModel blockmodel = (BlockModel)iunbakedmodel;
|
BlockModel blockmodel = (BlockModel)iunbakedmodel;
|
||||||
if (blockmodel.func_178310_f() == field_177606_o) {
|
if (blockmodel.func_178310_f() == field_177606_o) {
|
||||||
- return field_217854_z.func_209579_a(this.field_177609_j::func_195424_a, blockmodel).func_217644_a(this, blockmodel, this.field_177609_j::func_195424_a, p_217845_2_);
|
- return field_217854_z.func_209579_a(this.field_177609_j::func_195424_a, blockmodel).func_217644_a(this, blockmodel, this.field_177609_j::func_195424_a, p_217845_2_);
|
||||||
+ return field_217854_z.func_209579_a(this.field_177609_j::func_195424_a, blockmodel).bake(this::func_209597_a, this.field_177609_j::func_195424_a, p_217845_2_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176599_b);
|
+ return field_217854_z.func_209579_a(textureGetter, blockmodel).func_217644_a(this, blockmodel, textureGetter, p_217845_2_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- IBakedModel ibakedmodel = iunbakedmodel.func_217641_a(this, this.field_177609_j::func_195424_a, p_217845_2_);
|
||||||
|
+ IBakedModel ibakedmodel = iunbakedmodel.bake(this, this.field_177609_j::func_195424_a, p_217845_2_, format);
|
||||||
|
this.field_217850_G.put(triple, ibakedmodel);
|
||||||
|
return ibakedmodel;
|
||||||
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
@Nullable
|
@Nullable
|
||||||
- public IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
- public IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
+ public IBakedModel bake(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||||
if (this.func_188114_a().isEmpty()) {
|
if (this.func_188114_a().isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
for(Variant variant : this.func_188114_a()) {
|
for(Variant variant : this.func_188114_a()) {
|
||||||
- IBakedModel ibakedmodel = p_217641_1_.func_217845_a(variant.func_188046_a(), variant);
|
- IBakedModel ibakedmodel = p_217641_1_.func_217845_a(variant.func_188046_a(), variant);
|
||||||
+ IBakedModel ibakedmodel = p_217641_1_.apply(variant.func_188046_a()).bake(p_217641_1_, p_217641_2_, variant, format);
|
+ IBakedModel ibakedmodel = p_217641_1_.getBakedModel(variant.func_188046_a(), variant, p_217641_2_, format);
|
||||||
weightedbakedmodel$builder.func_177677_a(ibakedmodel, variant.func_188047_d());
|
weightedbakedmodel$builder.func_177677_a(ibakedmodel, variant.func_188047_d());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
@Nullable
|
@Nullable
|
||||||
- public IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
- public IBakedModel func_217641_a(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_) {
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
+ public IBakedModel bake(ModelBakery p_217641_1_, Function<ResourceLocation, TextureAtlasSprite> p_217641_2_, ISprite p_217641_3_, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||||
MultipartBakedModel.Builder multipartbakedmodel$builder = new MultipartBakedModel.Builder();
|
MultipartBakedModel.Builder multipartbakedmodel$builder = new MultipartBakedModel.Builder();
|
||||||
|
|
||||||
for(Selector selector : this.func_188136_a()) {
|
for(Selector selector : this.func_188136_a()) {
|
||||||
|
|
|
@ -104,11 +104,11 @@ final class FancyMissingModel implements IUnbakedModel
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
IBakedModel bigMissing = missingModel.bake(modelGetter, spriteGetter, sprite, format);
|
IBakedModel bigMissing = missingModel.bake(bakery, spriteGetter, sprite, format);
|
||||||
ModelStateComposition smallState = new ModelStateComposition(sprite.getState(), smallTransformation);
|
ModelStateComposition smallState = new ModelStateComposition(sprite.getState(), smallTransformation);
|
||||||
IBakedModel smallMissing = missingModel.bake(modelGetter, spriteGetter, smallState, format);
|
IBakedModel smallMissing = missingModel.bake(bakery, spriteGetter, smallState, format);
|
||||||
return new BakedModel(bigMissing, smallMissing, fontCache.getUnchecked(format), message, spriteGetter.apply(font2));
|
return new BakedModel(bigMissing, smallMissing, fontCache.getUnchecked(format), message, spriteGetter.apply(font2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,6 @@ import javax.annotation.Nullable;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
import net.minecraft.client.renderer.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.model.IUnbakedModel;
|
|
||||||
import net.minecraft.client.renderer.model.ModelBakery;
|
import net.minecraft.client.renderer.model.ModelBakery;
|
||||||
import net.minecraft.client.renderer.texture.ISprite;
|
import net.minecraft.client.renderer.texture.ISprite;
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
|
@ -45,7 +44,7 @@ import net.minecraftforge.common.model.animation.IClip;
|
||||||
public interface IModel<T extends IModel<T>>
|
public interface IModel<T extends IModel<T>>
|
||||||
{
|
{
|
||||||
@Nullable
|
@Nullable
|
||||||
IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format);
|
IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default state this model will be baked with.
|
* Default state this model will be baked with.
|
||||||
|
|
|
@ -71,9 +71,9 @@ public final class ItemLayerModel implements IUnbakedModel
|
||||||
this.overrides = overrides;
|
this.overrides = overrides;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemLayerModel(BlockModel model)
|
public ItemLayerModel(ModelBakery bakery, BlockModel model, VertexFormat format)
|
||||||
{
|
{
|
||||||
this(getTextures(model), model.getOverrides(model, ModelLoader.defaultModelGetter(), ModelLoader.defaultTextureGetter()));
|
this(getTextures(model), model.getOverrides(bakery, model, ModelLoader.defaultTextureGetter(), format));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ImmutableList<ResourceLocation> getTextures(BlockModel model)
|
private static ImmutableList<ResourceLocation> getTextures(BlockModel model)
|
||||||
|
@ -118,7 +118,7 @@ public final class ItemLayerModel implements IUnbakedModel
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
|
ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
|
||||||
Optional<TRSRTransformation> transform = sprite.getState().apply(Optional.empty());
|
Optional<TRSRTransformation> transform = sprite.getState().apply(Optional.empty());
|
||||||
|
|
|
@ -126,7 +126,7 @@ public final class ModelDynBucket implements IUnbakedModel
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
IModelState state = sprite.getState();
|
IModelState state = sprite.getState();
|
||||||
ImmutableMap<TransformType, TRSRTransformation> transformMap = PerspectiveMapWrapper.getTransforms(state);
|
ImmutableMap<TransformType, TRSRTransformation> transformMap = PerspectiveMapWrapper.getTransforms(state);
|
||||||
|
@ -151,7 +151,7 @@ public final class ModelDynBucket implements IUnbakedModel
|
||||||
if (baseLocation != null)
|
if (baseLocation != null)
|
||||||
{
|
{
|
||||||
// build base (insidest)
|
// build base (insidest)
|
||||||
IBakedModel model = (new ItemLayerModel(ImmutableList.of(baseLocation))).bake(modelGetter, spriteGetter, sprite, format);
|
IBakedModel model = (new ItemLayerModel(ImmutableList.of(baseLocation))).bake(bakery, spriteGetter, sprite, format);
|
||||||
random.setSeed(42);
|
random.setSeed(42);
|
||||||
builder.addAll(model.getQuads(null, null, random));
|
builder.addAll(model.getQuads(null, null, random));
|
||||||
particleSprite = model.getParticleTexture();
|
particleSprite = model.getParticleTexture();
|
||||||
|
@ -176,7 +176,7 @@ public final class ModelDynBucket implements IUnbakedModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new BakedDynBucket(this, builder.build(), particleSprite, format, Maps.immutableEnumMap(transformMap), Maps.newHashMap(), transform.isIdentity());
|
return new BakedDynBucket(bakery, this, builder.build(), particleSprite, format, Maps.immutableEnumMap(transformMap), Maps.newHashMap(), transform.isIdentity());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -426,8 +426,12 @@ public final class ModelDynBucket implements IUnbakedModel
|
||||||
|
|
||||||
private static final class BakedDynBucketOverrideHandler extends ItemOverrideList
|
private static final class BakedDynBucketOverrideHandler extends ItemOverrideList
|
||||||
{
|
{
|
||||||
public static final BakedDynBucketOverrideHandler INSTANCE = new BakedDynBucketOverrideHandler();
|
private final ModelBakery bakery;
|
||||||
private BakedDynBucketOverrideHandler() {}
|
|
||||||
|
private BakedDynBucketOverrideHandler(ModelBakery bakery)
|
||||||
|
{
|
||||||
|
this.bakery = bakery;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, @Nullable World world, @Nullable LivingEntity entity)
|
public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, @Nullable World world, @Nullable LivingEntity entity)
|
||||||
|
@ -445,7 +449,7 @@ public final class ModelDynBucket implements IUnbakedModel
|
||||||
Function<ResourceLocation, TextureAtlasSprite> textureGetter;
|
Function<ResourceLocation, TextureAtlasSprite> textureGetter;
|
||||||
textureGetter = location -> Minecraft.getInstance().getTextureMap().getAtlasSprite(location.toString());
|
textureGetter = location -> Minecraft.getInstance().getTextureMap().getAtlasSprite(location.toString());
|
||||||
|
|
||||||
IBakedModel bakedModel = parent.bake(ModelLoader.defaultModelGetter(), textureGetter, new SimpleModelState(model.transforms), model.format);
|
IBakedModel bakedModel = parent.bake(bakery, textureGetter, new SimpleModelState(model.transforms), model.format);
|
||||||
model.cache.put(name, bakedModel);
|
model.cache.put(name, bakedModel);
|
||||||
return bakedModel;
|
return bakedModel;
|
||||||
}
|
}
|
||||||
|
@ -464,7 +468,8 @@ public final class ModelDynBucket implements IUnbakedModel
|
||||||
private final Map<String, IBakedModel> cache; // contains all the baked models since they'll never change
|
private final Map<String, IBakedModel> cache; // contains all the baked models since they'll never change
|
||||||
private final VertexFormat format;
|
private final VertexFormat format;
|
||||||
|
|
||||||
BakedDynBucket(ModelDynBucket parent,
|
BakedDynBucket(ModelBakery bakery,
|
||||||
|
ModelDynBucket parent,
|
||||||
ImmutableList<BakedQuad> quads,
|
ImmutableList<BakedQuad> quads,
|
||||||
TextureAtlasSprite particle,
|
TextureAtlasSprite particle,
|
||||||
VertexFormat format,
|
VertexFormat format,
|
||||||
|
@ -472,7 +477,7 @@ public final class ModelDynBucket implements IUnbakedModel
|
||||||
Map<String, IBakedModel> cache,
|
Map<String, IBakedModel> cache,
|
||||||
boolean untransformed)
|
boolean untransformed)
|
||||||
{
|
{
|
||||||
super(quads, particle, transforms, BakedDynBucketOverrideHandler.INSTANCE, untransformed);
|
super(quads, particle, transforms, new BakedDynBucketOverrideHandler(bakery), untransformed);
|
||||||
this.format = format;
|
this.format = format;
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.cache = cache;
|
this.cache = cache;
|
||||||
|
|
|
@ -91,7 +91,7 @@ public final class ModelFluid implements IUnbakedModel
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
return new CachingBakedFluid(
|
return new CachingBakedFluid(
|
||||||
sprite.getState().apply(Optional.empty()),
|
sprite.getState().apply(Optional.empty()),
|
||||||
|
|
|
@ -436,19 +436,19 @@ public final class ModelLoader extends ModelBakery
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
return VanillaLoader.INSTANCE.modelCache.getUnchecked(new BakedModelCacheKey(this, modelGetter, spriteGetter, sprite.getState(), uvlock, format));
|
return VanillaLoader.INSTANCE.modelCache.getUnchecked(new BakedModelCacheKey(this, bakery, spriteGetter, sprite.getState(), uvlock, format));
|
||||||
}
|
}
|
||||||
|
|
||||||
public IBakedModel bakeImpl(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, IModelState state, boolean uvlock, VertexFormat format)
|
public IBakedModel bakeImpl(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, IModelState state, boolean uvlock, VertexFormat format)
|
||||||
{
|
{
|
||||||
if(!Attributes.moreSpecific(format, Attributes.DEFAULT_BAKED_FORMAT))
|
if(!Attributes.moreSpecific(format, Attributes.DEFAULT_BAKED_FORMAT))
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("can't bake vanilla models to the format that doesn't fit into the default one: " + format);
|
throw new IllegalArgumentException("can't bake vanilla models to the format that doesn't fit into the default one: " + format);
|
||||||
}
|
}
|
||||||
BlockModel model = this.model;
|
BlockModel model = this.model;
|
||||||
if(model == null) return getMissingModel().bake(modelGetter, bakedTextureGetter, new BasicState(getMissingModel().getDefaultState(), uvlock), format);
|
if(model == null) return getMissingModel().bake(bakery, bakedTextureGetter, new BasicState(getMissingModel().getDefaultState(), uvlock), format);
|
||||||
|
|
||||||
List<TRSRTransformation> newTransforms = Lists.newArrayList();
|
List<TRSRTransformation> newTransforms = Lists.newArrayList();
|
||||||
for(int i = 0; i < model.getElements().size(); i++)
|
for(int i = 0; i < model.getElements().size(); i++)
|
||||||
|
@ -465,18 +465,18 @@ public final class ModelLoader extends ModelBakery
|
||||||
|
|
||||||
if(model == ModelBakery.MODEL_GENERATED)
|
if(model == ModelBakery.MODEL_GENERATED)
|
||||||
{
|
{
|
||||||
return new ItemLayerModel(model).bake(modelGetter, bakedTextureGetter, new BasicState(perState, uvlock), format);
|
return new ItemLayerModel(bakery, model, format).bake(bakery, bakedTextureGetter, new BasicState(perState, uvlock), format);
|
||||||
}
|
}
|
||||||
TextureAtlasSprite textureatlassprite = bakedTextureGetter.apply(new ResourceLocation(model.resolveTextureName("particle")));
|
TextureAtlasSprite textureatlassprite = bakedTextureGetter.apply(new ResourceLocation(model.resolveTextureName("particle")));
|
||||||
if(model == ModelBakery.MODEL_ENTITY) return new BuiltInModel(transforms, model.getOverrides(model, modelGetter, bakedTextureGetter), textureatlassprite);
|
if(model == ModelBakery.MODEL_ENTITY) return new BuiltInModel(transforms, model.getOverrides(bakery, model, bakedTextureGetter, format), textureatlassprite);
|
||||||
return bakeNormal(model, perState, state, newTransforms, format, modelGetter, bakedTextureGetter, uvlock);
|
return bakeNormal(bakery, model, perState, state, newTransforms, format, bakedTextureGetter, uvlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IBakedModel bakeNormal(BlockModel model, IModelState perState, final IModelState modelState, List<TRSRTransformation> newTransforms, final VertexFormat format, final Function<ResourceLocation, IUnbakedModel> modelGetter, final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, boolean uvLocked)
|
private IBakedModel bakeNormal(ModelBakery bakery, BlockModel model, IModelState perState, final IModelState modelState, List<TRSRTransformation> newTransforms, final VertexFormat format, final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, boolean uvLocked)
|
||||||
{
|
{
|
||||||
final TRSRTransformation baseState = modelState.apply(Optional.empty()).orElse(TRSRTransformation.identity());
|
final TRSRTransformation baseState = modelState.apply(Optional.empty()).orElse(TRSRTransformation.identity());
|
||||||
TextureAtlasSprite particle = bakedTextureGetter.apply(new ResourceLocation(model.resolveTextureName("particle")));
|
TextureAtlasSprite particle = bakedTextureGetter.apply(new ResourceLocation(model.resolveTextureName("particle")));
|
||||||
SimpleBakedModel.Builder builder = (new SimpleBakedModel.Builder(model, model.getOverrides(model, modelGetter, bakedTextureGetter))).setTexture(particle);
|
SimpleBakedModel.Builder builder = (new SimpleBakedModel.Builder(model, model.getOverrides(bakery, model, bakedTextureGetter, format))).setTexture(particle);
|
||||||
for(int i = 0; i < model.getElements().size(); i++)
|
for(int i = 0; i < model.getElements().size(); i++)
|
||||||
{
|
{
|
||||||
if(modelState.apply(Optional.of(Models.getHiddenModelPart(ImmutableList.of(Integer.toString(i))))).isPresent())
|
if(modelState.apply(Optional.of(Models.getHiddenModelPart(ImmutableList.of(Integer.toString(i))))).isPresent())
|
||||||
|
@ -509,7 +509,7 @@ public final class ModelLoader extends ModelBakery
|
||||||
|
|
||||||
return new PerspectiveMapWrapper(builder.build(), perState)
|
return new PerspectiveMapWrapper(builder.build(), perState)
|
||||||
{
|
{
|
||||||
private final ItemOverrideList overrides = new AnimationItemOverrideList(VanillaModelWrapper.this, modelState, format, bakedTextureGetter, super.getOverrides());
|
private final ItemOverrideList overrides = new AnimationItemOverrideList(bakery, VanillaModelWrapper.this, modelState, format, bakedTextureGetter, super.getOverrides());
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand, IModelData modelData)
|
public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction side, Random rand, IModelData modelData)
|
||||||
|
@ -517,7 +517,7 @@ public final class ModelLoader extends ModelBakery
|
||||||
IModelState newState = modelData.getData(Properties.AnimationProperty);
|
IModelState newState = modelData.getData(Properties.AnimationProperty);
|
||||||
if(newState != null)
|
if(newState != null)
|
||||||
{
|
{
|
||||||
return VanillaModelWrapper.this.bake(modelGetter, bakedTextureGetter, new ModelStateComposition(modelState, newState, uvlock), format).getQuads(state, side, rand, modelData);
|
return VanillaModelWrapper.this.bake(bakery, bakedTextureGetter, new ModelStateComposition(modelState, newState, uvlock), format).getQuads(state, side, rand, modelData);
|
||||||
}
|
}
|
||||||
return super.getQuads(state, side, rand);
|
return super.getQuads(state, side, rand);
|
||||||
}
|
}
|
||||||
|
@ -707,7 +707,7 @@ public final class ModelLoader extends ModelBakery
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
if(!Attributes.moreSpecific(format, Attributes.DEFAULT_BAKED_FORMAT))
|
if(!Attributes.moreSpecific(format, Attributes.DEFAULT_BAKED_FORMAT))
|
||||||
{
|
{
|
||||||
|
@ -716,13 +716,13 @@ public final class ModelLoader extends ModelBakery
|
||||||
if(variants.size() == 1)
|
if(variants.size() == 1)
|
||||||
{
|
{
|
||||||
IUnbakedModel model = models.get(0);
|
IUnbakedModel model = models.get(0);
|
||||||
return model.bake(modelGetter, spriteGetter, new BasicState(MultiModelState.getPartState(sprite.getState(), model, 0), sprite.isUvLock()), format);
|
return model.bake(bakery, spriteGetter, new BasicState(MultiModelState.getPartState(sprite.getState(), model, 0), sprite.isUvLock()), format);
|
||||||
}
|
}
|
||||||
WeightedBakedModel.Builder builder = new WeightedBakedModel.Builder();
|
WeightedBakedModel.Builder builder = new WeightedBakedModel.Builder();
|
||||||
for(int i = 0; i < variants.size(); i++)
|
for(int i = 0; i < variants.size(); i++)
|
||||||
{
|
{
|
||||||
IUnbakedModel model = models.get(i);
|
IUnbakedModel model = models.get(i);
|
||||||
builder.add(model.bake(modelGetter, spriteGetter, new BasicState(MultiModelState.getPartState(sprite.getState(), model, i), sprite.isUvLock()), format), variants.get(i).getWeight());
|
builder.add(model.bake(bakery, spriteGetter, new BasicState(MultiModelState.getPartState(sprite.getState(), model, i), sprite.isUvLock()), format), variants.get(i).getWeight());
|
||||||
}
|
}
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
@ -775,16 +775,16 @@ public final class ModelLoader extends ModelBakery
|
||||||
protected final class BakedModelCacheKey
|
protected final class BakedModelCacheKey
|
||||||
{
|
{
|
||||||
private final VanillaModelWrapper model;
|
private final VanillaModelWrapper model;
|
||||||
private final Function<ResourceLocation, IUnbakedModel> modelGetter;
|
private final ModelBakery bakery;
|
||||||
private final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter;
|
private final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter;
|
||||||
private final IModelState state;
|
private final IModelState state;
|
||||||
private final boolean uvlock;
|
private final boolean uvlock;
|
||||||
private final VertexFormat format;
|
private final VertexFormat format;
|
||||||
|
|
||||||
public BakedModelCacheKey(VanillaModelWrapper model, Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, IModelState state, boolean uvlock, VertexFormat format)
|
public BakedModelCacheKey(VanillaModelWrapper model, ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, IModelState state, boolean uvlock, VertexFormat format)
|
||||||
{
|
{
|
||||||
this.model = model;
|
this.model = model;
|
||||||
this.modelGetter = modelGetter;
|
this.bakery = bakery;
|
||||||
this.bakedTextureGetter = bakedTextureGetter;
|
this.bakedTextureGetter = bakedTextureGetter;
|
||||||
this.state = state;
|
this.state = state;
|
||||||
this.uvlock = uvlock;
|
this.uvlock = uvlock;
|
||||||
|
@ -803,7 +803,7 @@ public final class ModelLoader extends ModelBakery
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
BakedModelCacheKey that = (BakedModelCacheKey) o;
|
BakedModelCacheKey that = (BakedModelCacheKey) o;
|
||||||
return Objects.equal(model, that.model) && Objects.equal(modelGetter, that.modelGetter) && Objects.equal(bakedTextureGetter, that.bakedTextureGetter) && Objects.equal(state, that.state) && uvlock == that.uvlock && Objects.equal(format, that.format);
|
return Objects.equal(model, that.model) && Objects.equal(bakery, that.bakery) && Objects.equal(bakedTextureGetter, that.bakedTextureGetter) && Objects.equal(state, that.state) && uvlock == that.uvlock && Objects.equal(format, that.format);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -823,7 +823,7 @@ public final class ModelLoader extends ModelBakery
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel load(BakedModelCacheKey key) throws Exception
|
public IBakedModel load(BakedModelCacheKey key) throws Exception
|
||||||
{
|
{
|
||||||
return key.model.bakeImpl(key.modelGetter, key.bakedTextureGetter, key.state, key.uvlock, key.format);
|
return key.model.bakeImpl(key.bakery, key.bakedTextureGetter, key.state, key.uvlock, key.format);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -79,25 +79,25 @@ public final class MultiLayerModel implements IUnbakedModel
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ImmutableMap<Optional<BlockRenderLayer>, IBakedModel> buildModels(ImmutableMap<Optional<BlockRenderLayer>, ModelResourceLocation> models, ISprite sprite, VertexFormat format, Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter)
|
private static ImmutableMap<Optional<BlockRenderLayer>, IBakedModel> buildModels(ImmutableMap<Optional<BlockRenderLayer>, ModelResourceLocation> models, ISprite sprite, VertexFormat format, ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter)
|
||||||
{
|
{
|
||||||
ImmutableMap.Builder<Optional<BlockRenderLayer>, IBakedModel> builder = ImmutableMap.builder();
|
ImmutableMap.Builder<Optional<BlockRenderLayer>, IBakedModel> builder = ImmutableMap.builder();
|
||||||
for(Optional<BlockRenderLayer> key : models.keySet())
|
for(Optional<BlockRenderLayer> key : models.keySet())
|
||||||
{
|
{
|
||||||
IUnbakedModel model = ModelLoaderRegistry.getModelOrLogError(models.get(key), "Couldn't load MultiLayerModel dependency: " + models.get(key));
|
IUnbakedModel model = ModelLoaderRegistry.getModelOrLogError(models.get(key), "Couldn't load MultiLayerModel dependency: " + models.get(key));
|
||||||
builder.put(key, model.bake(modelGetter, spriteGetter, new ModelStateComposition(sprite.getState(), model.getDefaultState(), sprite.isUvLock()), format));
|
builder.put(key, model.bake(bakery, spriteGetter, new ModelStateComposition(sprite.getState(), model.getDefaultState(), sprite.isUvLock()), format));
|
||||||
}
|
}
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
IUnbakedModel missing = ModelLoaderRegistry.getMissingModel();
|
IUnbakedModel missing = ModelLoaderRegistry.getMissingModel();
|
||||||
return new MultiLayerBakedModel(
|
return new MultiLayerBakedModel(
|
||||||
buildModels(models, sprite, format, modelGetter, spriteGetter),
|
buildModels(models, sprite, format, bakery, spriteGetter),
|
||||||
missing.bake(modelGetter, spriteGetter, new BasicState(missing.getDefaultState(), sprite.isUvLock()), format),
|
missing.bake(bakery, spriteGetter, new BasicState(missing.getDefaultState(), sprite.isUvLock()), format),
|
||||||
PerspectiveMapWrapper.getTransforms(sprite.getState())
|
PerspectiveMapWrapper.getTransforms(sprite.getState())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -261,26 +261,26 @@ public final class MultiModel implements IUnbakedModel
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
IBakedModel bakedBase = null;
|
IBakedModel bakedBase = null;
|
||||||
|
|
||||||
if (base != null)
|
if (base != null)
|
||||||
bakedBase = base.bake(modelGetter, spriteGetter, sprite, format);
|
bakedBase = base.bake(bakery, spriteGetter, sprite, format);
|
||||||
|
|
||||||
ImmutableMap.Builder<String, IBakedModel> mapBuilder = ImmutableMap.builder();
|
ImmutableMap.Builder<String, IBakedModel> mapBuilder = ImmutableMap.builder();
|
||||||
|
|
||||||
for (Entry<String, Pair<IUnbakedModel, IModelState>> entry : parts.entrySet())
|
for (Entry<String, Pair<IUnbakedModel, IModelState>> entry : parts.entrySet())
|
||||||
{
|
{
|
||||||
Pair<IUnbakedModel, IModelState> pair = entry.getValue();
|
Pair<IUnbakedModel, IModelState> pair = entry.getValue();
|
||||||
mapBuilder.put(entry.getKey(), pair.getLeft().bake(modelGetter, spriteGetter, new ModelStateComposition(sprite.getState(), pair.getRight(), sprite.isUvLock()), format));
|
mapBuilder.put(entry.getKey(), pair.getLeft().bake(bakery, spriteGetter, new ModelStateComposition(sprite.getState(), pair.getRight(), sprite.isUvLock()), format));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(bakedBase == null && parts.isEmpty())
|
if(bakedBase == null && parts.isEmpty())
|
||||||
{
|
{
|
||||||
LOGGER.error("MultiModel {} is empty (no base model or parts were provided/resolved)", location);
|
LOGGER.error("MultiModel {} is empty (no base model or parts were provided/resolved)", location);
|
||||||
IUnbakedModel missing = ModelLoaderRegistry.getMissingModel();
|
IUnbakedModel missing = ModelLoaderRegistry.getMissingModel();
|
||||||
return missing.bake(modelGetter, spriteGetter, new BasicState(missing.getDefaultState(), sprite.isUvLock()), format);
|
return missing.bake(bakery, spriteGetter, new BasicState(missing.getDefaultState(), sprite.isUvLock()), format);
|
||||||
}
|
}
|
||||||
return new Baked(location, true, bakedBase, mapBuilder.build());
|
return new Baked(location, true, bakedBase, mapBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import net.minecraft.client.renderer.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.model.IUnbakedModel;
|
import net.minecraft.client.renderer.model.IUnbakedModel;
|
||||||
import net.minecraft.client.renderer.model.ItemOverride;
|
import net.minecraft.client.renderer.model.ItemOverride;
|
||||||
import net.minecraft.client.renderer.model.ItemOverrideList;
|
import net.minecraft.client.renderer.model.ItemOverrideList;
|
||||||
|
import net.minecraft.client.renderer.model.ModelBakery;
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
import net.minecraft.client.renderer.vertex.VertexFormat;
|
import net.minecraft.client.renderer.vertex.VertexFormat;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
@ -45,19 +46,21 @@ import javax.annotation.Nullable;
|
||||||
|
|
||||||
public final class AnimationItemOverrideList extends ItemOverrideList
|
public final class AnimationItemOverrideList extends ItemOverrideList
|
||||||
{
|
{
|
||||||
|
private final ModelBakery bakery;
|
||||||
private final IUnbakedModel model;
|
private final IUnbakedModel model;
|
||||||
private final IModelState state;
|
private final IModelState state;
|
||||||
private final VertexFormat format;
|
private final VertexFormat format;
|
||||||
private final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter;
|
private final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter;
|
||||||
|
|
||||||
public AnimationItemOverrideList(IUnbakedModel model, IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, ItemOverrideList overrides)
|
public AnimationItemOverrideList(ModelBakery bakery, IUnbakedModel model, IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, ItemOverrideList overrides)
|
||||||
{
|
{
|
||||||
this(model, state, format, bakedTextureGetter, overrides.getOverrides().reverse());
|
this(bakery, model, state, format, bakedTextureGetter, overrides.getOverrides().reverse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public AnimationItemOverrideList(IUnbakedModel model, IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, List<ItemOverride> overrides)
|
public AnimationItemOverrideList(ModelBakery bakery, IUnbakedModel model, IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, List<ItemOverride> overrides)
|
||||||
{
|
{
|
||||||
super(model, ModelLoader.defaultModelGetter(), overrides, bakedTextureGetter);
|
super(bakery, model, ModelLoader.defaultModelGetter(), bakedTextureGetter, overrides, format);
|
||||||
|
this.bakery = bakery;
|
||||||
this.model = model;
|
this.model = model;
|
||||||
this.state = state;
|
this.state = state;
|
||||||
this.format = format;
|
this.format = format;
|
||||||
|
@ -83,7 +86,7 @@ public final class AnimationItemOverrideList extends ItemOverrideList
|
||||||
return asm.apply(Animation.getWorldTime(world, Animation.getPartialTickTime())).getLeft();
|
return asm.apply(Animation.getWorldTime(world, Animation.getPartialTickTime())).getLeft();
|
||||||
})
|
})
|
||||||
// TODO where should uvlock data come from?
|
// TODO where should uvlock data come from?
|
||||||
.map(state -> model.bake(ModelLoader.defaultModelGetter(), bakedTextureGetter, new ModelStateComposition(state, this.state), format))
|
.map(state -> model.bake(bakery, bakedTextureGetter, new ModelStateComposition(state, this.state), format))
|
||||||
.orElseGet(() -> super.getModelWithOverrides(originalModel, stack, world, entity));
|
.orElseGet(() -> super.getModelWithOverrides(originalModel, stack, world, entity));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -465,7 +465,7 @@ public enum B3DLoader implements ICustomModelLoader
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
ImmutableMap.Builder<String, TextureAtlasSprite> builder = ImmutableMap.builder();
|
ImmutableMap.Builder<String, TextureAtlasSprite> builder = ImmutableMap.builder();
|
||||||
TextureAtlasSprite missing = spriteGetter.apply(new ResourceLocation("missingno"));
|
TextureAtlasSprite missing = spriteGetter.apply(new ResourceLocation("missingno"));
|
||||||
|
|
|
@ -123,7 +123,7 @@ public class OBJModel implements IUnbakedModel
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBakedModel bake(Function<ResourceLocation, IUnbakedModel> modelGetter, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
public IBakedModel bake(ModelBakery bakery, Function<ResourceLocation, TextureAtlasSprite> spriteGetter, ISprite sprite, VertexFormat format)
|
||||||
{
|
{
|
||||||
ImmutableMap.Builder<String, TextureAtlasSprite> builder = ImmutableMap.builder();
|
ImmutableMap.Builder<String, TextureAtlasSprite> builder = ImmutableMap.builder();
|
||||||
builder.put(ModelLoader.White.LOCATION.toString(), ModelLoader.White.INSTANCE);
|
builder.put(ModelLoader.White.LOCATION.toString(), ModelLoader.White.INSTANCE);
|
||||||
|
|
|
@ -12,18 +12,19 @@ net/minecraft/client/renderer/BlockModelRenderer.renderModelFlat(Lnet/minecraft/
|
||||||
|
|
||||||
net/minecraft/client/renderer/model/BakedQuad.<init>([IILnet/minecraft/util/Direction;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;ZLnet/minecraft/client/renderer/vertex/VertexFormat;)V=|p_i46574_1_,p_i46574_2_,p_i46574_3_,p_i46574_4_,applyDiffuseLighting,format
|
net/minecraft/client/renderer/model/BakedQuad.<init>([IILnet/minecraft/util/Direction;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;ZLnet/minecraft/client/renderer/vertex/VertexFormat;)V=|p_i46574_1_,p_i46574_2_,p_i46574_3_,p_i46574_4_,applyDiffuseLighting,format
|
||||||
|
|
||||||
|
net/minecraft/client/renderer/model/ModelBakery.getBakedModel(Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/renderer/texture/ISprite;Ljava/util/function/Function;Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/client/renderer/model/IBakedModel;=|p_217845_1_,p_217845_2_,textureGetter,format
|
||||||
|
|
||||||
net/minecraft/client/renderer/model/FaceBakery.makeBakedQuad(Lnet/minecraft/client/renderer/Vector3f;Lnet/minecraft/client/renderer/Vector3f;Lnet/minecraft/client/renderer/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/Direction;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/model/BlockPartRotation;Z)Lnet/minecraft/client/renderer/model/BakedQuad;=|p_217648_1_,p_217648_2_,p_217648_3_,p_217648_4_,p_217648_5_,p_217648_6_,p_217648_7_,p_217648_8_,p_217648_9_
|
net/minecraft/client/renderer/model/FaceBakery.makeBakedQuad(Lnet/minecraft/client/renderer/Vector3f;Lnet/minecraft/client/renderer/Vector3f;Lnet/minecraft/client/renderer/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/Direction;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/model/BlockPartRotation;Z)Lnet/minecraft/client/renderer/model/BakedQuad;=|p_217648_1_,p_217648_2_,p_217648_3_,p_217648_4_,p_217648_5_,p_217648_6_,p_217648_7_,p_217648_8_,p_217648_9_
|
||||||
net/minecraft/client/renderer/model/FaceBakery.makeQuadVertexData(Lnet/minecraft/client/renderer/model/BlockFaceUV;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/Direction;[FLnet/minecraftforge/common/model/ITransformation;Lnet/minecraft/client/renderer/model/BlockPartRotation;Z)[I=|p_188012_1_,p_188012_2_,p_188012_3_,p_188012_4_,p_188012_5_,p_188012_6_,p_188012_7_
|
net/minecraft/client/renderer/model/FaceBakery.makeQuadVertexData(Lnet/minecraft/client/renderer/model/BlockFaceUV;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/Direction;[FLnet/minecraftforge/common/model/ITransformation;Lnet/minecraft/client/renderer/model/BlockPartRotation;Z)[I=|p_188012_1_,p_188012_2_,p_188012_3_,p_188012_4_,p_188012_5_,p_188012_6_,p_188012_7_
|
||||||
net/minecraft/client/renderer/model/FaceBakery.fillVertexData([IILnet/minecraft/util/Direction;Lnet/minecraft/client/renderer/model/BlockFaceUV;[FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraftforge/common/model/ITransformation;Lnet/minecraft/client/renderer/model/BlockPartRotation;Z)V=|p_188015_1_,p_188015_2_,p_188015_3_,p_188015_4_,p_188015_5_,p_188015_6_,p_188015_7_,p_188015_8_,p_188015_9_
|
net/minecraft/client/renderer/model/FaceBakery.fillVertexData([IILnet/minecraft/util/Direction;Lnet/minecraft/client/renderer/model/BlockFaceUV;[FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraftforge/common/model/ITransformation;Lnet/minecraft/client/renderer/model/BlockPartRotation;Z)V=|p_188015_1_,p_188015_2_,p_188015_3_,p_188015_4_,p_188015_5_,p_188015_6_,p_188015_7_,p_188015_8_,p_188015_9_
|
||||||
|
|
||||||
net/minecraft/client/renderer/model/ItemOverrideList.<init>(Lnet/minecraft/client/renderer/model/ModelBakery;Lnet/minecraft/client/renderer/model/IUnbakedModel;Ljava/util/function/Function;Ljava/util/List;)V=|p_i50984_1_,p_i50984_2_,p_i50984_3_,p_i50984_4_
|
net/minecraft/client/renderer/model/ItemOverrideList.<init>(Lnet/minecraft/client/renderer/model/ModelBakery;Lnet/minecraft/client/renderer/model/IUnbakedModel;Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/List;Lnet/minecraft/client/renderer/vertex/VertexFormat;)V=|p_i50984_1_,p_i50984_2_,p_i50984_3_,textureGetter,p_i50984_4_,format
|
||||||
net/minecraft/client/renderer/model/ItemOverrideList.<init>(Lnet/minecraft/client/renderer/model/IUnbakedModel;Ljava/util/function/Function;Ljava/util/List;Ljava/util/function/Function;)V=|p_i50984_2_,p_i50984_3_,p_i50984_4_,spriteGetter
|
|
||||||
|
|
||||||
net/minecraft/client/renderer/model/BlockModel.bake(Ljava/util/function/Function;Ljava/util/function/Function;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/client/renderer/model/IBakedModel;=|p_217644_1_,p_217644_3_,p_217644_2_,format
|
net/minecraft/client/renderer/model/BlockModel.bake(Lnet/minecraft/client/renderer/model/ModelBakery;Lnet/minecraft/client/renderer/model/BlockModel;Ljava/util/function/Function;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/client/renderer/model/IBakedModel;=|p_217644_1_,p_217644_2_,p_217644_3_,p_217644_4_,format
|
||||||
|
|
||||||
net/minecraft/client/renderer/model/VariantList.bake(Ljava/util/function/Function;Ljava/util/function/Function;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/client/renderer/model/IBakedModel;=|p_217641_1_,p_217641_2_,p_217641_3_,format
|
net/minecraft/client/renderer/model/VariantList.bake(Lnet/minecraft/client/renderer/model/ModelBakery;Ljava/util/function/Function;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/client/renderer/model/IBakedModel;=|p_217641_1_,p_217641_2_,p_217641_3_,format
|
||||||
|
|
||||||
net/minecraft/client/renderer/model/multipart/Multipart.bake(Ljava/util/function/Function;Ljava/util/function/Function;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/client/renderer/model/IBakedModel;=|p_217641_1_,p_217641_2_,p_217641_3_,format
|
net/minecraft/client/renderer/model/multipart/Multipart.bake(Lnet/minecraft/client/renderer/model/ModelBakery;Ljava/util/function/Function;Lnet/minecraft/client/renderer/texture/ISprite;Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/client/renderer/model/IBakedModel;=|p_217641_1_,p_217641_2_,p_217641_3_,format
|
||||||
|
|
||||||
net/minecraft/client/resources/ClientResourcePackInfo.<init>(Ljava/lang/String;ZLjava/util/function/Supplier;Lnet/minecraft/resources/IResourcePack;Lnet/minecraft/resources/data/PackMetadataSection;Lnet/minecraft/resources/ResourcePackInfo$Priority;Z)V=|p_i48113_1_,p_i48113_2_,p_i48113_3_,p_i48113_4_,p_i48113_5_,p_i48113_6_,hidden
|
net/minecraft/client/resources/ClientResourcePackInfo.<init>(Ljava/lang/String;ZLjava/util/function/Supplier;Lnet/minecraft/resources/IResourcePack;Lnet/minecraft/resources/data/PackMetadataSection;Lnet/minecraft/resources/ResourcePackInfo$Priority;Z)V=|p_i48113_1_,p_i48113_2_,p_i48113_3_,p_i48113_4_,p_i48113_5_,p_i48113_6_,hidden
|
||||||
net/minecraft/client/resources/ClientResourcePackInfo.<init>(Ljava/lang/String;ZLjava/util/function/Supplier;Lnet/minecraft/util/text/ITextComponent;Lnet/minecraft/util/text/ITextComponent;Lnet/minecraft/resources/PackCompatibility;Lnet/minecraft/resources/ResourcePackInfo$Priority;ZLnet/minecraft/client/renderer/texture/NativeImage;Z)V=|p_i48114_1_,p_i48114_2_,p_i48114_3_,p_i48114_4_,p_i48114_5_,p_i48114_6_,p_i48114_7_,p_i48114_8_,p_i48114_9_,hidden
|
net/minecraft/client/resources/ClientResourcePackInfo.<init>(Ljava/lang/String;ZLjava/util/function/Supplier;Lnet/minecraft/util/text/ITextComponent;Lnet/minecraft/util/text/ITextComponent;Lnet/minecraft/resources/PackCompatibility;Lnet/minecraft/resources/ResourcePackInfo$Priority;ZLnet/minecraft/client/renderer/texture/NativeImage;Z)V=|p_i48114_1_,p_i48114_2_,p_i48114_3_,p_i48114_4_,p_i48114_5_,p_i48114_6_,p_i48114_7_,p_i48114_8_,p_i48114_9_,hidden
|
||||||
|
|
Loading…
Reference in New Issue