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

CyclopsMC / IntegratedDynamics / 15366891985

31 May 2025 07:33PM UTC coverage: 45.175%. Remained the same
15366891985

push

github

rubensworks
Merge remote-tracking branch 'origin/master-1.21-lts' into master-1.21

2569 of 8509 branches covered (30.19%)

Branch coverage included in aggregate %.

11921 of 23566 relevant lines covered (50.59%)

2.4 hits per line

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

0.0
/src/main/java/org/cyclops/integrateddynamics/IntegratedDynamics.java
1
package org.cyclops.integrateddynamics;
2

3
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
4
import net.minecraft.commands.CommandBuildContext;
5
import net.minecraft.commands.CommandSourceStack;
6
import net.minecraft.commands.Commands;
7
import net.minecraft.world.item.CreativeModeTab;
8
import net.minecraft.world.item.ItemStack;
9
import net.neoforged.api.distmarker.Dist;
10
import net.neoforged.api.distmarker.OnlyIn;
11
import net.neoforged.bus.api.EventPriority;
12
import net.neoforged.bus.api.IEventBus;
13
import net.neoforged.fml.ModList;
14
import net.neoforged.fml.common.Mod;
15
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
16
import net.neoforged.fml.javafmlmod.FMLModContainer;
17
import net.neoforged.neoforge.common.NeoForge;
18
import net.neoforged.neoforge.event.server.ServerStartedEvent;
19
import net.neoforged.neoforge.registries.NewRegistryEvent;
20
import org.apache.logging.log4j.Level;
21
import org.cyclops.cyclopscore.config.ConfigHandlerCommon;
22
import org.cyclops.cyclopscore.helper.IModHelpers;
23
import org.cyclops.cyclopscore.helper.IModHelpers;
24
import org.cyclops.cyclopscore.infobook.IInfoBookRegistry;
25
import org.cyclops.cyclopscore.infobook.InfoBookRegistry;
26
import org.cyclops.cyclopscore.init.ModBaseNeoForge;
27
import org.cyclops.cyclopscore.init.ModBaseNeoForge;
28
import org.cyclops.cyclopscore.persist.world.GlobalCounters;
29
import org.cyclops.cyclopscore.proxy.IClientProxy;
30
import org.cyclops.cyclopscore.proxy.ICommonProxy;
31
import org.cyclops.integrateddynamics.api.client.model.IVariableModelProviderRegistry;
32
import org.cyclops.integrateddynamics.api.client.render.part.IPartOverlayRendererRegistry;
33
import org.cyclops.integrateddynamics.api.client.render.valuetype.IValueTypeWorldRendererRegistry;
34
import org.cyclops.integrateddynamics.api.evaluate.operator.IOperatorRegistry;
35
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueCastRegistry;
36
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueTypeLightLevelRegistry;
37
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueTypeListProxyFactoryTypeRegistry;
38
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueTypeRegistry;
39
import org.cyclops.integrateddynamics.api.ingredient.IIngredientComponentHandlerRegistry;
40
import org.cyclops.integrateddynamics.api.item.IVariableFacadeHandlerRegistry;
41
import org.cyclops.integrateddynamics.api.logicprogrammer.ILogicProgrammerElementTypeRegistry;
42
import org.cyclops.integrateddynamics.api.network.INetworkCraftingHandlerRegistry;
43
import org.cyclops.integrateddynamics.api.part.IPartTypeRegistry;
44
import org.cyclops.integrateddynamics.api.part.aspect.IAspectRegistry;
45
import org.cyclops.integrateddynamics.capability.ingredient.IngredientComponentCapabilities;
46
import org.cyclops.integrateddynamics.capability.network.NetworkCapabilityConstructors;
47
import org.cyclops.integrateddynamics.client.render.part.PartOverlayRendererRegistry;
48
import org.cyclops.integrateddynamics.client.render.part.PartOverlayRenderers;
49
import org.cyclops.integrateddynamics.client.render.valuetype.ValueTypeWorldRendererRegistry;
50
import org.cyclops.integrateddynamics.client.render.valuetype.ValueTypeWorldRenderers;
51
import org.cyclops.integrateddynamics.command.CommandCrash;
52
import org.cyclops.integrateddynamics.command.CommandNetworkDiagnostics;
53
import org.cyclops.integrateddynamics.command.CommandTest;
54
import org.cyclops.integrateddynamics.core.NoteBlockEventReceiver;
55
import org.cyclops.integrateddynamics.core.TickHandler;
56
import org.cyclops.integrateddynamics.core.client.model.VariableModelProviderRegistry;
57
import org.cyclops.integrateddynamics.core.client.model.VariableModelProviders;
58
import org.cyclops.integrateddynamics.core.evaluate.DelayVariableFacadeHandler;
59
import org.cyclops.integrateddynamics.core.evaluate.ProxyVariableFacadeHandler;
60
import org.cyclops.integrateddynamics.core.evaluate.operator.OperatorRegistry;
61
import org.cyclops.integrateddynamics.core.evaluate.operator.Operators;
62
import org.cyclops.integrateddynamics.core.evaluate.variable.*;
63
import org.cyclops.integrateddynamics.core.event.IntegratedDynamicsSetupEvent;
64
import org.cyclops.integrateddynamics.core.ingredient.IngredientComponentHandlerRegistry;
65
import org.cyclops.integrateddynamics.core.ingredient.IngredientComponentHandlers;
66
import org.cyclops.integrateddynamics.core.item.VariableFacadeHandlerRegistry;
67
import org.cyclops.integrateddynamics.core.logicprogrammer.LogicProgrammerElementTypeRegistry;
68
import org.cyclops.integrateddynamics.core.logicprogrammer.LogicProgrammerElementTypes;
69
import org.cyclops.integrateddynamics.core.network.NetworkCraftingHandlerRegistry;
70
import org.cyclops.integrateddynamics.core.part.PartTypeRegistry;
71
import org.cyclops.integrateddynamics.core.part.PartTypes;
72
import org.cyclops.integrateddynamics.core.part.aspect.AspectRegistry;
73
import org.cyclops.integrateddynamics.core.persist.world.LabelsWorldStorage;
74
import org.cyclops.integrateddynamics.core.persist.world.NetworkWorldStorage;
75
import org.cyclops.integrateddynamics.infobook.OnTheDynamicsOfIntegrationBook;
76
import org.cyclops.integrateddynamics.item.ItemOnTheDynamicsOfIntegrationConfig;
77
import org.cyclops.integrateddynamics.metadata.RegistryExportables;
78
import org.cyclops.integrateddynamics.part.PartTypeConnectorOmniDirectional;
79
import org.cyclops.integrateddynamics.part.aspect.Aspects;
80
import org.cyclops.integrateddynamics.proxy.ClientProxy;
81
import org.cyclops.integrateddynamics.proxy.CommonProxy;
82

83
/**
84
 * The main mod class of IntegratedDynamics.
85
 * @author rubensworks
86
 *
87
 */
88
@Mod(Reference.MOD_ID)
89
public class IntegratedDynamics extends ModBaseNeoForge<IntegratedDynamics> {
90

91
    /**
92
     * The unique instance of this mod.
93
     */
94
    public static IntegratedDynamics _instance;
95

96
    public static GlobalCounters globalCounters = null;
×
97

98
    public IntegratedDynamics(IEventBus modEventBus) {
99
        super(Reference.MOD_ID, (instance) -> _instance = instance, modEventBus);
×
100

101
        // Register world storages
102
        registerWorldStorage(NetworkWorldStorage.getInstance(this));
×
103
        registerWorldStorage(globalCounters = new GlobalCounters(this));
×
104
        registerWorldStorage(LabelsWorldStorage.getInstance(this));
×
105

106
        getRegistryManager().addRegistry(IVariableFacadeHandlerRegistry.class, VariableFacadeHandlerRegistry.getInstance());
×
107
        getRegistryManager().addRegistry(IValueTypeRegistry.class, ValueTypeRegistry.getInstance());
×
108
        getRegistryManager().addRegistry(IValueCastRegistry.class, ValueCastRegistry.getInstance());
×
109
        getRegistryManager().addRegistry(IValueTypeListProxyFactoryTypeRegistry.class, ValueTypeListProxyFactoryTypeRegistry.getInstance());
×
110
        getRegistryManager().addRegistry(IValueTypeLightLevelRegistry.class, ValueTypeLightLevelRegistry.getInstance());
×
111
        getRegistryManager().addRegistry(IPartTypeRegistry.class, PartTypeRegistry.getInstance());
×
112
        getRegistryManager().addRegistry(IAspectRegistry.class, AspectRegistry.getInstance());
×
113
        getRegistryManager().addRegistry(IOperatorRegistry.class, OperatorRegistry.getInstance());
×
114
        getRegistryManager().addRegistry(ILogicProgrammerElementTypeRegistry.class, LogicProgrammerElementTypeRegistry.getInstance());
×
115
        if(getModHelpers().getMinecraftHelpers().isClientSide()) {
×
116
            getRegistryManager().addRegistry(IPartOverlayRendererRegistry.class, PartOverlayRendererRegistry.getInstance());
×
117
            getRegistryManager().addRegistry(IValueTypeWorldRendererRegistry.class, ValueTypeWorldRendererRegistry.getInstance());
×
118
            getRegistryManager().addRegistry(IVariableModelProviderRegistry.class, VariableModelProviderRegistry.getInstance());
×
119
        }
120

121
        getRegistryManager().getRegistry(IVariableFacadeHandlerRegistry.class).registerHandler(ProxyVariableFacadeHandler.getInstance());
×
122
        getRegistryManager().getRegistry(IVariableFacadeHandlerRegistry.class).registerHandler(DelayVariableFacadeHandler.getInstance());
×
123
        getRegistryManager().addRegistry(IInfoBookRegistry.class, new InfoBookRegistry());
×
124
        getRegistryManager().addRegistry(IIngredientComponentHandlerRegistry.class, IngredientComponentHandlerRegistry.getInstance());
×
125
        getRegistryManager().addRegistry(INetworkCraftingHandlerRegistry.class, NetworkCraftingHandlerRegistry.getInstance());
×
126

127
        // Preload parts, so we force their blocks and items to be registered
128
        PartTypes.load();
×
129

130
        modEventBus.addListener(EventPriority.LOWEST, IngredientComponentHandlers::onIngredientComponentsPopulated);
×
131
        modEventBus.addListener(this::onRegistriesCreate);
×
132
        modEventBus.register(new NetworkCapabilityConstructors());
×
133

134
        NeoForge.EVENT_BUS.addListener(this::onServerStartedLoadedGroups);
×
135
        NeoForge.EVENT_BUS.register(TickHandler.getInstance());
×
136
        NeoForge.EVENT_BUS.register(NoteBlockEventReceiver.getInstance());
×
137
    }
×
138

139
    public void onRegistriesCreate(NewRegistryEvent event) {
140
        IngredientComponentCapabilities.load();
×
141
    }
×
142

143
    @Override
144
    protected LiteralArgumentBuilder<CommandSourceStack> constructBaseCommand(Commands.CommandSelection selection, CommandBuildContext context) {
145
        LiteralArgumentBuilder<CommandSourceStack> root = super.constructBaseCommand(selection, context);
×
146

147
        root.then(CommandCrash.make());
×
148
        root.then(CommandNetworkDiagnostics.make());
×
149
        root.then(CommandTest.make());
×
150

151
        return root;
×
152
    }
153

154
    @Override
155
    protected void setup(FMLCommonSetupEvent event) {
156
        ValueTypes.load();
×
157
        IngredientComponentHandlers.load();
×
158
        ValueCastMappings.load();
×
159
        ValueTypeLightLevels.load();
×
160
        ValueTypeListProxyFactories.load();
×
161
        Operators.load();
×
162
        Aspects.load();
×
163
        PartTypes.register();
×
164
        LogicProgrammerElementTypes.load();
×
165
        RegistryExportables.load();
×
166

167
        // Register info book
168
        putGenericReference(ModBaseNeoForge.REFKEY_INFOBOOK_REWARDS, ItemOnTheDynamicsOfIntegrationConfig.bookRewards);
×
169
        getRegistryManager().getRegistry(IInfoBookRegistry.class).registerInfoBook(
×
170
                OnTheDynamicsOfIntegrationBook.getInstance(), "/data/" + Reference.MOD_ID + "/info/on_the_dynamics_of_integration.xml");
×
171

172
        IntegratedDynamicsSetupEvent integratedDynamicsSetupEvent = new IntegratedDynamicsSetupEvent(this.getContainer());
×
173
        ModList.get().forEachModContainer((name, container) -> {
×
174
            if (container instanceof FMLModContainer fmlModContainer) {
×
175
                fmlModContainer.getEventBus().post(integratedDynamicsSetupEvent);
×
176
            }
177
        });
×
178

179
        if(IModHelpers.get().getMinecraftHelpers().isClientSide()) {
×
180
            PartOverlayRenderers.load();
×
181
            ValueTypeWorldRenderers.load();
×
182
            VariableModelProviders.load();
×
183
        }
184

185
        super.setup(event);
×
186
    }
×
187

188
    protected void onServerStartedLoadedGroups(ServerStartedEvent event) {
189
        PartTypeConnectorOmniDirectional.LOADED_GROUPS.onStartedEvent(event);
×
190
    }
×
191

192
    @Override
193
    @OnlyIn(Dist.CLIENT)
194
    protected IClientProxy constructClientProxy() {
195
        return new ClientProxy();
×
196
    }
197

198
    @Override
199
    protected ICommonProxy constructCommonProxy() {
200
        return new CommonProxy();
×
201
    }
202

203
    @Override
204
    protected CreativeModeTab.Builder constructDefaultCreativeModeTab(CreativeModeTab.Builder builder) {
205
        return super.constructDefaultCreativeModeTab(builder)
×
206
                .icon(() -> new ItemStack(RegistryEntries.ITEM_CABLE));
×
207
    }
208

209
    @Override
210
    protected void onConfigsRegister(ConfigHandlerCommon configHandler) {
211
        super.onConfigsRegister(configHandler);
×
212

213
        configHandler.addConfigurable(new GeneralConfig());
×
214
        Configs.registerBlocks(configHandler);
×
215
    }
×
216

217
    /**
218
     * Log a new info message for this mod.
219
     * @param message The message to show.
220
     */
221
    public static void clog(String message) {
222
        IntegratedDynamics._instance.log(Level.INFO, message);
×
223
    }
×
224

225
    /**
226
     * Log a new message of the given level for this mod.
227
     * @param level The level in which the message must be shown.
228
     * @param message The message to show.
229
     */
230
    public static void clog(Level level, String message) {
231
        IntegratedDynamics._instance.log(level, message);
×
232
    }
×
233
}
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