• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 24034486947

06 Apr 2026 01:51PM UTC coverage: 53.645% (-0.08%) from 53.721%
24034486947

push

github

rubensworks
Update to MC 26.1.1

3052 of 8931 branches covered (34.17%)

Branch coverage included in aggregate %.

18680 of 31580 relevant lines covered (59.15%)

3.07 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/org/cyclops/integrateddynamics/client/model/CableModel.java
1
package org.cyclops.integrateddynamics.client.model;
2

3
import net.minecraft.client.Minecraft;
4
import net.minecraft.client.multiplayer.ClientLevel;
5
import net.minecraft.client.renderer.block.BlockStateModelSet;
6
import net.minecraft.client.resources.model.geometry.BakedQuad;
7
import net.minecraft.client.renderer.block.dispatch.BlockStateModel;
8
import net.minecraft.client.renderer.chunk.ChunkSectionLayer;
9
import net.minecraft.client.resources.model.ResolvedModel;
10
import net.minecraft.client.resources.model.UnbakedModel;
11
import net.minecraft.core.BlockPos;
12
import net.minecraft.core.Direction;
13
import net.minecraft.util.RandomSource;
14
import net.minecraft.world.entity.ItemOwner;
15
import net.minecraft.world.item.ItemStack;
16
import net.minecraft.client.renderer.block.BlockAndTintGetter;
17
import net.minecraft.world.level.Level;
18
import net.minecraft.world.level.block.state.BlockState;
19
import net.neoforged.neoforge.model.data.ModelData;
20
import org.cyclops.cyclopscore.helper.ModelHelpers;
21
import org.cyclops.integrateddynamics.Reference;
22
import org.cyclops.integrateddynamics.api.part.IPartContainer;
23
import org.cyclops.integrateddynamics.api.part.PartRenderPosition;
24
import org.cyclops.integrateddynamics.block.BlockCable;
25
import org.jetbrains.annotations.Nullable;
26

27
import java.util.List;
28
import java.util.Optional;
29

30
/**
31
 * A dynamic facadeModel for cables.
32
 * @author rubensworks
33
 */
34
public class CableModel extends CableModelBase {
35

36
    public CableModel(BlockAndTintGetter level, BlockState state, Direction facing, RandomSource rand, ModelData modelData, ChunkSectionLayer renderType) {
37
        super(level, state, facing, rand, modelData, renderType);
×
38
    }
×
39

40
    public CableModel(ItemStack itemStack, ClientLevel world, ItemOwner entity) {
41
        super(itemStack, world, entity);
×
42
    }
×
43

44
    public CableModel() {
45
        super();
×
46
    }
×
47

48
    @Override
49
    protected boolean isRealCable(ModelData modelData) {
50
        return ModelHelpers.getSafeProperty(modelData, BlockCable.REALCABLE, true);
×
51
    }
52

53
    @Override
54
    protected Optional<BlockState> getFacade(ModelData modelData) {
55
        return ModelHelpers.getSafeProperty(modelData, BlockCable.FACADE, Optional.empty());
×
56
    }
57

58
    @Override
59
    protected boolean isConnected(ModelData modelData, Direction side) {
60
        return ModelHelpers.getSafeProperty(modelData, BlockCable.CONNECTED[side.ordinal()], false);
×
61
    }
62

63
    @Override
64
    protected boolean hasPart(ModelData modelData, Direction side) {
65
        return getPartRenderPosition(modelData, side) != PartRenderPosition.NONE;
×
66
    }
67

68
    @Override
69
    protected PartRenderPosition getPartRenderPosition(ModelData modelData, Direction side) {
70
        return ModelHelpers.getSafeProperty(modelData,
×
71
                BlockCable.PART_RENDERPOSITIONS[side.ordinal()], PartRenderPosition.NONE);
×
72
    }
73

74
    @Override
75
    protected boolean shouldRenderParts(ModelData modelData) {
76
        return ModelHelpers.getSafeProperty(modelData, BlockCable.PARTCONTAINER, null) != null;
×
77
    }
78

79
    @Override
80
    protected BlockStateModel getPartModel(ModelData modelData, Direction side) {
81
        IPartContainer partContainer = ModelHelpers.getSafeProperty(modelData, BlockCable.PARTCONTAINER, null);
×
82
        BlockState blockState = partContainer != null && partContainer.hasPart(side) ? partContainer.getPart(side).getBlockState(partContainer, side) : null;
×
83
        Minecraft mc = Minecraft.getInstance();
×
84
        BlockStateModelSet blockModelSet = mc.getModelManager().getBlockStateModelSet();
×
85
        return blockState != null ? blockModelSet.get(blockState) : blockModelSet.missingModel();
×
86
    }
87

88
    @Override
89
    protected IRenderState getRenderState(ModelData modelData) {
90
        return ModelHelpers.getSafeProperty(modelData, BlockCable.RENDERSTATE, null);
×
91
    }
92

93
    @Override
94
    public List<BakedQuad> handleBlockState(BlockAndTintGetter level, BlockPos pos, BlockState state, Direction side, RandomSource rand, ModelData extraData, ChunkSectionLayer renderType) {
95
        return new CableModel(level, state, side, rand, extraData, renderType).getGeneralQuads();
×
96
    }
97

98
    @Override
99
    public List<BakedQuad> handleItemState(@Nullable ItemStack stack, @Nullable Level world, @Nullable ItemOwner entity) {
100
        return new CableModel(stack, (ClientLevel) world, entity).getGeneralQuads();
×
101
    }
102

103
    @Override
104
    public UnbakedModel wrapped() {
105
        throw new UnsupportedOperationException();
×
106
    }
107

108
    @Override
109
    public @Nullable ResolvedModel parent() {
110
        throw new UnsupportedOperationException();
×
111
    }
112

113
    @Override
114
    public String debugName() {
115
        return Reference.MOD_ID + ":CableModel";
×
116
    }
117
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc