Passed
Push — main ( 1446ae...998a70 )
by Etienne
01:52
created

de.kleiner3.lasertag.block.models.BlockModelProvider   F

Complexity

Total Complexity 71

Size/Duplication

Total Lines 165
Duplicated Lines 0 %

Importance

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