de.pewpewproject.lasertag.block.models.BlockModelProvider   F
last analyzed

Complexity

Total Complexity 71

Size/Duplication

Total Lines 164
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 145
dl 0
loc 164
rs 2.7199
c 0
b 0
f 0
wmc 71

1 Method

Rating   Name   Duplication   Size   Complexity  
F loadModelResource(Identifier,ModelProviderContext) 0 79 71

How to fix   Complexity   

Complexity

Complex classes like de.pewpewproject.lasertag.block.models.BlockModelProvider often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
package de.pewpewproject.lasertag.block.models;
2
3
import de.pewpewproject.lasertag.LasertagMod;
4
import de.pewpewproject.lasertag.block.models.concrete.arena_block.*;
5
import de.pewpewproject.lasertag.block.models.concrete.arena_block_slab.*;
6
import de.pewpewproject.lasertag.block.models.concrete.arena_block_stairs.*;
7
import de.pewpewproject.lasertag.block.models.concrete.arena_divider.*;
8
import de.pewpewproject.lasertag.block.models.concrete.arena_pillar_block.*;
9
import net.fabricmc.api.EnvType;
10
import net.fabricmc.api.Environment;
11
import net.fabricmc.fabric.api.client.model.ModelProviderContext;
12
import net.fabricmc.fabric.api.client.model.ModelProviderException;
13
import net.fabricmc.fabric.api.client.model.ModelResourceProvider;
14
import net.minecraft.client.render.model.UnbakedModel;
15
import net.minecraft.util.Identifier;
16
import org.jetbrains.annotations.Nullable;
17
18
/**
19
 * Class to provide the custom block models
20
 *
21
 * @author Étienne Muser
22
 */
23
@Environment(EnvType.CLIENT)
24
public class BlockModelProvider implements ModelResourceProvider {
25
26
    public static final Identifier ORANGE_ARENA_BLOCK = new Identifier(LasertagMod.ID, "block/arena_block_orange");
27
    public static final Identifier PINK_ARENA_BLOCK = new Identifier(LasertagMod.ID, "block/arena_block_pink");
28
    public static final Identifier BLUE_ARENA_BLOCK = new Identifier(LasertagMod.ID, "block/arena_block_blue");
29
    public static final Identifier YELLOW_ARENA_BLOCK = new Identifier(LasertagMod.ID, "block/arena_block_yellow");
30
    public static final Identifier GREEN_ARENA_BLOCK = new Identifier(LasertagMod.ID, "block/arena_block_green");
31
    public static final Identifier PURPLE_ARENA_BLOCK = new Identifier(LasertagMod.ID, "block/arena_block_purple");
32
    public static final Identifier RED_ARENA_BLOCK = new Identifier(LasertagMod.ID, "block/arena_block_red");
33
34
    public static final Identifier ORANGE_ARENA_PILLAR_BLOCK = new Identifier(LasertagMod.ID, "block/arena_pillar_block_orange");
35
    public static final Identifier PINK_ARENA_PILLAR_BLOCK = new Identifier(LasertagMod.ID, "block/arena_pillar_block_pink");
36
    public static final Identifier BLUE_ARENA_PILLAR_BLOCK = new Identifier(LasertagMod.ID, "block/arena_pillar_block_blue");
37
    public static final Identifier YELLOW_ARENA_PILLAR_BLOCK = new Identifier(LasertagMod.ID, "block/arena_pillar_block_yellow");
38
    public static final Identifier GREEN_ARENA_PILLAR_BLOCK = new Identifier(LasertagMod.ID, "block/arena_pillar_block_green");
39
    public static final Identifier PURPLE_ARENA_PILLAR_BLOCK = new Identifier(LasertagMod.ID, "block/arena_pillar_block_purple");
40
    public static final Identifier RED_ARENA_PILLAR_BLOCK = new Identifier(LasertagMod.ID, "block/arena_pillar_block_red");
41
42
    public static final Identifier ORANGE_ARENA_BLOCK_STAIRS = new Identifier(LasertagMod.ID, "block/arena_block_stairs_orange");
43
    public static final Identifier PINK_ARENA_BLOCK_STAIRS = new Identifier(LasertagMod.ID, "block/arena_block_stairs_pink");
44
    public static final Identifier BLUE_ARENA_BLOCK_STAIRS = new Identifier(LasertagMod.ID, "block/arena_block_stairs_blue");
45
    public static final Identifier YELLOW_ARENA_BLOCK_STAIRS = new Identifier(LasertagMod.ID, "block/arena_block_stairs_yellow");
46
    public static final Identifier GREEN_ARENA_BLOCK_STAIRS = new Identifier(LasertagMod.ID, "block/arena_block_stairs_green");
47
    public static final Identifier PURPLE_ARENA_BLOCK_STAIRS = new Identifier(LasertagMod.ID, "block/arena_block_stairs_purple");
48
    public static final Identifier RED_ARENA_BLOCK_STAIRS = new Identifier(LasertagMod.ID, "block/arena_block_stairs_red");
49
50
    public static final Identifier ORANGE_ARENA_DIVIDER = new Identifier(LasertagMod.ID, "block/arena_divider_orange");
51
    public static final Identifier PINK_ARENA_DIVIDER = new Identifier(LasertagMod.ID, "block/arena_divider_pink");
52
    public static final Identifier BLUE_ARENA_DIVIDER = new Identifier(LasertagMod.ID, "block/arena_divider_blue");
53
    public static final Identifier YELLOW_ARENA_DIVIDER = new Identifier(LasertagMod.ID, "block/arena_divider_yellow");
54
    public static final Identifier GREEN_ARENA_DIVIDER = new Identifier(LasertagMod.ID, "block/arena_divider_green");
55
    public static final Identifier PURPLE_ARENA_DIVIDER = new Identifier(LasertagMod.ID, "block/arena_divider_purple");
56
    public static final Identifier RED_ARENA_DIVIDER = new Identifier(LasertagMod.ID, "block/arena_divider_red");
57
58
    public static final Identifier ORANGE_ARENA_BLOCK_SLAB = new Identifier(LasertagMod.ID, "block/arena_block_slab_orange");
59
    public static final Identifier PINK_ARENA_BLOCK_SLAB = new Identifier(LasertagMod.ID, "block/arena_block_slab_pink");
60
    public static final Identifier BLUE_ARENA_BLOCK_SLAB = new Identifier(LasertagMod.ID, "block/arena_block_slab_blue");
61
    public static final Identifier YELLOW_ARENA_BLOCK_SLAB = new Identifier(LasertagMod.ID, "block/arena_block_slab_yellow");
62
    public static final Identifier GREEN_ARENA_BLOCK_SLAB = new Identifier(LasertagMod.ID, "block/arena_block_slab_green");
63
    public static final Identifier PURPLE_ARENA_BLOCK_SLAB = new Identifier(LasertagMod.ID, "block/arena_block_slab_purple");
64
    public static final Identifier RED_ARENA_BLOCK_SLAB = new Identifier(LasertagMod.ID, "block/arena_block_slab_red");
65
66
67
68
    public static final Identifier ORANGE_ARENA_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_orange");
69
    public static final Identifier PINK_ARENA_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_pink");
70
    public static final Identifier BLUE_ARENA_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_blue");
71
    public static final Identifier YELLOW_ARENA_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_yellow");
72
    public static final Identifier GREEN_ARENA_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_green");
73
    public static final Identifier PURPLE_ARENA_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_purple");
74
    public static final Identifier RED_ARENA_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_red");
75
76
    public static final Identifier ORANGE_ARENA_PILLAR_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_pillar_block_orange");
77
    public static final Identifier PINK_ARENA_PILLAR_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_pillar_block_pink");
78
    public static final Identifier BLUE_ARENA_PILLAR_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_pillar_block_blue");
79
    public static final Identifier YELLOW_ARENA_PILLAR_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_pillar_block_yellow");
80
    public static final Identifier GREEN_ARENA_PILLAR_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_pillar_block_green");
81
    public static final Identifier PURPLE_ARENA_PILLAR_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_pillar_block_purple");
82
    public static final Identifier RED_ARENA_PILLAR_BLOCK_ITEM = new Identifier(LasertagMod.ID, "item/arena_pillar_block_red");
83
84
    public static final Identifier ORANGE_ARENA_BLOCK_STAIRS_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_stairs_orange");
85
    public static final Identifier PINK_ARENA_BLOCK_STAIRS_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_stairs_pink");
86
    public static final Identifier BLUE_ARENA_BLOCK_STAIRS_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_stairs_blue");
87
    public static final Identifier YELLOW_ARENA_BLOCK_STAIRS_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_stairs_yellow");
88
    public static final Identifier GREEN_ARENA_BLOCK_STAIRS_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_stairs_green");
89
    public static final Identifier PURPLE_ARENA_BLOCK_STAIRS_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_stairs_purple");
90
    public static final Identifier RED_ARENA_BLOCK_STAIRS_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_stairs_red");
91
92
    public static final Identifier ORANGE_ARENA_DIVIDER_ITEM = new Identifier(LasertagMod.ID, "item/arena_divider_orange");
93
    public static final Identifier PINK_ARENA_DIVIDER_ITEM = new Identifier(LasertagMod.ID, "item/arena_divider_pink");
94
    public static final Identifier BLUE_ARENA_DIVIDER_ITEM = new Identifier(LasertagMod.ID, "item/arena_divider_blue");
95
    public static final Identifier YELLOW_ARENA_DIVIDER_ITEM = new Identifier(LasertagMod.ID, "item/arena_divider_yellow");
96
    public static final Identifier GREEN_ARENA_DIVIDER_ITEM = new Identifier(LasertagMod.ID, "item/arena_divider_green");
97
    public static final Identifier PURPLE_ARENA_DIVIDER_ITEM = new Identifier(LasertagMod.ID, "item/arena_divider_purple");
98
    public static final Identifier RED_ARENA_DIVIDER_ITEM = new Identifier(LasertagMod.ID, "item/arena_divider_red");
99
100
    public static final Identifier ORANGE_ARENA_BLOCK_SLAB_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_slab_orange");
101
    public static final Identifier PINK_ARENA_BLOCK_SLAB_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_slab_pink");
102
    public static final Identifier BLUE_ARENA_BLOCK_SLAB_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_slab_blue");
103
    public static final Identifier YELLOW_ARENA_BLOCK_SLAB_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_slab_yellow");
104
    public static final Identifier GREEN_ARENA_BLOCK_SLAB_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_slab_green");
105
    public static final Identifier PURPLE_ARENA_BLOCK_SLAB_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_slab_purple");
106
    public static final Identifier RED_ARENA_BLOCK_SLAB_ITEM = new Identifier(LasertagMod.ID, "item/arena_block_slab_red");
107
108
    @Override
109
    public @Nullable UnbakedModel loadModelResource(Identifier resourceId, ModelProviderContext context) throws ModelProviderException {
110
        if (resourceId.equals(ORANGE_ARENA_BLOCK) || resourceId.equals(ORANGE_ARENA_BLOCK_ITEM)) {
111
            return new OrangeArenaBlockModel();
112
        } else if(resourceId.equals(PINK_ARENA_BLOCK) || resourceId.equals(PINK_ARENA_BLOCK_ITEM)){
113
            return new PinkArenaBlockModel();
114
        } else if(resourceId.equals(BLUE_ARENA_BLOCK) || resourceId.equals(BLUE_ARENA_BLOCK_ITEM)){
115
            return new BlueArenaBlockModel();
116
        } else if(resourceId.equals(YELLOW_ARENA_BLOCK) || resourceId.equals(YELLOW_ARENA_BLOCK_ITEM)){
117
            return new YellowArenaBlockModel();
118
        } else if(resourceId.equals(GREEN_ARENA_BLOCK) || resourceId.equals(GREEN_ARENA_BLOCK_ITEM)){
119
            return new GreenArenaBlockModel();
120
        } else if(resourceId.equals(PURPLE_ARENA_BLOCK) || resourceId.equals(PURPLE_ARENA_BLOCK_ITEM)){
121
            return new PurpleArenaBlockModel();
122
        } else if(resourceId.equals(RED_ARENA_BLOCK) || resourceId.equals(RED_ARENA_BLOCK_ITEM)){
123
            return new RedArenaBlockModel();
124
125
        } else if (resourceId.equals(ORANGE_ARENA_PILLAR_BLOCK) || resourceId.equals(ORANGE_ARENA_PILLAR_BLOCK_ITEM)) {
126
            return new OrangeArenaPillarBlockModel();
127
        } else if (resourceId.equals(PINK_ARENA_PILLAR_BLOCK) || resourceId.equals(PINK_ARENA_PILLAR_BLOCK_ITEM)) {
128
            return new PinkArenaPillarBlockModel();
129
        } else if (resourceId.equals(BLUE_ARENA_PILLAR_BLOCK) || resourceId.equals(BLUE_ARENA_PILLAR_BLOCK_ITEM)) {
130
            return new BlueArenaPillarBlockModel();
131
        } else if (resourceId.equals(YELLOW_ARENA_PILLAR_BLOCK) || resourceId.equals(YELLOW_ARENA_PILLAR_BLOCK_ITEM)) {
132
            return new YellowArenaPillarBlockModel();
133
        } else if (resourceId.equals(GREEN_ARENA_PILLAR_BLOCK) || resourceId.equals(GREEN_ARENA_PILLAR_BLOCK_ITEM)) {
134
            return new GreenArenaPillarBlockModel();
135
        } else if (resourceId.equals(PURPLE_ARENA_PILLAR_BLOCK) || resourceId.equals(PURPLE_ARENA_PILLAR_BLOCK_ITEM)) {
136
            return new PurpleArenaPillarBlockModel();
137
        } else if (resourceId.equals(RED_ARENA_PILLAR_BLOCK) || resourceId.equals(RED_ARENA_PILLAR_BLOCK_ITEM)) {
138
            return new RedArenaPillarBlockModel();
139
140
        } else if (resourceId.equals(ORANGE_ARENA_BLOCK_STAIRS) || resourceId.equals(ORANGE_ARENA_BLOCK_STAIRS_ITEM)) {
141
            return new OrangeArenaBlockStairsModel();
142
        } else if (resourceId.equals(PINK_ARENA_BLOCK_STAIRS) || resourceId.equals(PINK_ARENA_BLOCK_STAIRS_ITEM)) {
143
            return new PinkArenaBlockStairsModel();
144
        } else if (resourceId.equals(BLUE_ARENA_BLOCK_STAIRS) || resourceId.equals(BLUE_ARENA_BLOCK_STAIRS_ITEM)) {
145
            return new BlueArenaBlockStairsModel();
146
        } else if (resourceId.equals(YELLOW_ARENA_BLOCK_STAIRS) || resourceId.equals(YELLOW_ARENA_BLOCK_STAIRS_ITEM)) {
147
            return new YellowArenaBlockStairsModel();
148
        } else if (resourceId.equals(GREEN_ARENA_BLOCK_STAIRS) || resourceId.equals(GREEN_ARENA_BLOCK_STAIRS_ITEM)) {
149
            return new GreenArenaBlockStairsModel();
150
        } else if (resourceId.equals(PURPLE_ARENA_BLOCK_STAIRS) || resourceId.equals(PURPLE_ARENA_BLOCK_STAIRS_ITEM)) {
151
            return new PurpleArenaBlockStairsModel();
152
        } else if (resourceId.equals(RED_ARENA_BLOCK_STAIRS) || resourceId.equals(RED_ARENA_BLOCK_STAIRS_ITEM)) {
153
            return new RedArenaBlockStairsModel();
154
155
        } else if (resourceId.equals(ORANGE_ARENA_DIVIDER) || resourceId.equals(ORANGE_ARENA_DIVIDER_ITEM)) {
156
            return new OrangeArenaDividerBlockModel();
157
        } else if (resourceId.equals(PINK_ARENA_DIVIDER) || resourceId.equals(PINK_ARENA_DIVIDER_ITEM)) {
158
            return new PinkArenaDividerBlockModel();
159
        } else if (resourceId.equals(BLUE_ARENA_DIVIDER) || resourceId.equals(BLUE_ARENA_DIVIDER_ITEM)) {
160
            return new BlueArenaDividerBlockModel();
161
        } else if (resourceId.equals(YELLOW_ARENA_DIVIDER) || resourceId.equals(YELLOW_ARENA_DIVIDER_ITEM)) {
162
            return new YellowArenaDividerBlockModel();
163
        } else if (resourceId.equals(GREEN_ARENA_DIVIDER) || resourceId.equals(GREEN_ARENA_DIVIDER_ITEM)) {
164
            return new GreenArenaDividerBlockModel();
165
        } else if (resourceId.equals(PURPLE_ARENA_DIVIDER) || resourceId.equals(PURPLE_ARENA_DIVIDER_ITEM)) {
166
            return new PurpleArenaDividerBlockModel();
167
        } else if (resourceId.equals(RED_ARENA_DIVIDER) || resourceId.equals(RED_ARENA_DIVIDER_ITEM)) {
168
            return new RedArenaDividerBlockModel();
169
170
        } else if (resourceId.equals(ORANGE_ARENA_BLOCK_SLAB) || resourceId.equals(ORANGE_ARENA_BLOCK_SLAB_ITEM)) {
171
            return new OrangeArenaBlockSlabModel();
172
        } else if (resourceId.equals(PINK_ARENA_BLOCK_SLAB) || resourceId.equals(PINK_ARENA_BLOCK_SLAB_ITEM)) {
173
            return new PinkArenaBlockSlabModel();
174
        } else if (resourceId.equals(BLUE_ARENA_BLOCK_SLAB) || resourceId.equals(BLUE_ARENA_BLOCK_SLAB_ITEM)) {
175
            return new BlueArenaBlockSlabModel();
176
        } else if (resourceId.equals(YELLOW_ARENA_BLOCK_SLAB) || resourceId.equals(YELLOW_ARENA_BLOCK_SLAB_ITEM)) {
177
            return new YellowArenaBlockSlabModel();
178
        } else if (resourceId.equals(GREEN_ARENA_BLOCK_SLAB) || resourceId.equals(GREEN_ARENA_BLOCK_SLAB_ITEM)) {
179
            return new GreenArenaBlockSlabModel();
180
        } else if (resourceId.equals(PURPLE_ARENA_BLOCK_SLAB) || resourceId.equals(PURPLE_ARENA_BLOCK_SLAB_ITEM)) {
181
            return new PurpleArenaBlockSlabModel();
182
        } else if (resourceId.equals(RED_ARENA_BLOCK_SLAB) || resourceId.equals(RED_ARENA_BLOCK_SLAB_ITEM)) {
183
            return new RedArenaBlockSlabModel();
184
        }
185
186
        return null;
187
    }
188
}
189