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