Merge branch 'mc1.20.1/feature-dev' into mc1.21.1/dev

# Conflicts:
#	src/main/java/com/simibubi/create/content/fluids/PipeAttachmentModel.java
This commit is contained in:
IThundxr 2025-02-17 16:38:42 -05:00
commit ab2eab05f8
Failed to generate hash of commit

View file

@ -16,7 +16,6 @@ import com.simibubi.create.foundation.model.BakedModelWrapperWithData;
import net.createmod.catnip.data.Iterate;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.resources.model.BakedModel;
@ -25,6 +24,7 @@ import net.minecraft.core.Direction;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.neoforged.neoforge.client.ChunkRenderTypeSet;
import net.neoforged.neoforge.client.model.data.ModelData;
import net.neoforged.neoforge.client.model.data.ModelData.Builder;
@ -51,7 +51,7 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
@Override
protected ModelData.Builder gatherModelData(Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state,
ModelData blockEntityData) {
ModelData blockEntityData) {
PipeModelData data = new PipeModelData();
FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE);
BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE);
@ -66,14 +66,26 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
return builder.with(PIPE_PROPERTY, data);
}
// TODO: Update once MinecraftForge#9163 is merged
@Override
public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) {
ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data);
if (set.isEmpty()) {
return ItemBlockRenderTypes.getRenderLayers(state);
List<ChunkRenderTypeSet> set = new ArrayList<>();
set.add(super.getRenderTypes(state, rand, data));
set.add(AllPartialModels.FLUID_PIPE_CASING.get().getRenderTypes(state, rand, data));
if (data.has(PIPE_PROPERTY)) {
PipeModelData pipeData = data.get(PIPE_PROPERTY);
for (Direction d : Iterate.directions) {
AttachmentTypes type = pipeData.getAttachment(d);
for (ComponentPartials partial : type.partials) {
ChunkRenderTypeSet attachmentRenderTypeSet = AllPartialModels.PIPE_ATTACHMENTS.get(partial).get(d)
.get().getRenderTypes(state, rand, data);
set.add(attachmentRenderTypeSet);
}
}
}
return set;
return ChunkRenderTypeSet.union(set);
}
@Override
@ -102,7 +114,7 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
}
private void addQuads(List<BakedQuad> quads, BlockState state, Direction side, RandomSource rand, ModelData data,
PipeModelData pipeData, RenderType renderType) {
PipeModelData pipeData, RenderType renderType) {
BakedModel bracket = pipeData.getBracket();
if (bracket != null)
quads.addAll(bracket.getQuads(state, side, rand, data, renderType));