mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-12 00:07:45 +00:00
Fixed multipart block models not using the new model driven render type system. (#8844)
This commit is contained in:
1 parent
47fd2e8604
commit
daf5933b79
1 file changed
+23
-6
+23
-6
@@ -32,7 +32,7 @@
|
||||
if (p_235050_ == null) {
|
||||
return Collections.emptyList();
|
||||
} else {
|
||||
@@ -60,16 +_,17 @@
|
||||
@@ -60,16 +_,18 @@
|
||||
this.f_119460_.put(p_235050_, bitset);
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
if (bitset.get(j)) {
|
||||
- list.addAll(this.f_119459_.get(j).getRight().m_213637_(p_235050_, p_235051_, RandomSource.m_216335_(k)));
|
||||
+ var model = this.f_119459_.get(j).getRight();
|
||||
+ if (model.getRenderTypes(p_235050_, p_235052_, modelData).contains(renderType)) // FORGE: Only put quad data if the model is using the render type passed
|
||||
+ list.add(model.getQuads(p_235050_, p_235051_, RandomSource.m_216335_(k), net.minecraftforge.client.model.data.MultipartModelData.resolve(modelData, model), renderType));
|
||||
}
|
||||
}
|
||||
@@ -68,7 +69,7 @@
|
||||
public boolean m_7539_() {
|
||||
return this.f_119454_;
|
||||
}
|
||||
@@ -89,12 +_,22 @@
|
||||
@@ -89,16 +_,38 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -84,10 +85,26 @@
|
||||
+ @Deprecated
|
||||
public ItemTransforms m_7442_() {
|
||||
return this.f_119457_;
|
||||
+ }
|
||||
+
|
||||
+ public BakedModel applyTransform(net.minecraft.client.renderer.block.model.ItemTransforms.TransformType transformType, com.mojang.blaze3d.vertex.PoseStack poseStack, boolean applyLeftHandTransform) {
|
||||
+ return this.defaultModel.applyTransform(transformType, poseStack, applyLeftHandTransform);
|
||||
}
|
||||
|
||||
+ public BakedModel applyTransform(net.minecraft.client.renderer.block.model.ItemTransforms.TransformType transformType, com.mojang.blaze3d.vertex.PoseStack poseStack, boolean applyLeftHandTransform) {
|
||||
+ return this.defaultModel.applyTransform(transformType, poseStack, applyLeftHandTransform);
|
||||
+ }
|
||||
+
|
||||
public ItemOverrides m_7343_() {
|
||||
return this.f_119458_;
|
||||
+ }
|
||||
+
|
||||
+ private final java.util.Map<BlockState, net.minecraftforge.client.ChunkRenderTypeSet> stateRenderTypeCache = new java.util.concurrent.ConcurrentHashMap<>();
|
||||
+
|
||||
+ @Override // FORGE: Get render types based on the models used for the block state passed, and cache those values for future use.
|
||||
+ public net.minecraftforge.client.ChunkRenderTypeSet getRenderTypes(@org.jetbrains.annotations.NotNull BlockState state, @org.jetbrains.annotations.NotNull RandomSource rand, @org.jetbrains.annotations.NotNull net.minecraftforge.client.model.data.ModelData data) {
|
||||
+ return this.stateRenderTypeCache.computeIfAbsent(state, s -> net.minecraftforge.client.ChunkRenderTypeSet.union(this.f_119459_.stream().filter(p -> p.getLeft().test(s)).map(p -> p.getRight().getRenderTypes(s, rand, data)).toList()));
|
||||
+ }
|
||||
+
|
||||
+ @Override // FORGE: Get the render types for all selectors. Don't cache since itemStack could do custom things with NBT.
|
||||
+ public List<net.minecraft.client.renderer.RenderType> getRenderTypes(net.minecraft.world.item.ItemStack itemStack, boolean fabulous) {
|
||||
+ return this.f_119459_.stream().flatMap(p -> p.getRight().getRenderTypes(itemStack, fabulous).stream()).distinct().toList();
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
Reference in new issue
Block a user