### Mod Initialization Lifecycle in Java Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Sets up the main mod class using Forge's lifecycle events (preInit, init, postInit) for initialization, configuration loading, registration, and recipe handling. It specifies mod details, version, and dependencies. ```java @Mod( modid = CheaperVoidMiners.MODID, version = Tags.VERSION, name = "CheaperVoidMiners", acceptedMinecraftVersions = "[1.7.10]", dependencies = "required-after:gregtech;" ) public class CheaperVoidMiners { public static final String MODID = "cheapervoidminers"; @SidedProxy(clientSide = "com.jdz.vmd.ClientProxy", serverSide = "com.jdz.vmd.CommonProxy") public static CommonProxy proxy; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { // Load configuration file Config.synchronizeConfiguration(event.getSuggestedConfigurationFile()); } @Mod.EventHandler public void init(FMLInitializationEvent event) { // Register all void miner machines ItemRegistry.run(); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { // Register crafting recipes after other mods initialize RecipeLoader.run(); } } ``` -------------------------------- ### MTEVoidMinerEXBase Class Definition (Java) Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Defines the abstract base class for all Void Miner EX machines, extending GregTech's MTEVoidMinerBase. It configures electricity consumption, processing time, allowed hatch types, and provides abstract methods for tier-specific implementations. ```java public abstract class MTEVoidMinerEXBase extends MTEVoidMinerBase { public MTEVoidMinerEXBase(int aID, String aName, String aNameRegional, int multiplier) { super(aID, aName, aNameRegional, multiplier); } @Override protected void setElectricityStats() { // Power consumption based on tier voltage (LV=32EU, HV=512EU, IV=8192EU) this.mEUt = this.isPickingPipes ? 30 : Math.toIntExact(GTValues.V[this.getMinTier()]); this.mOutputItems = new ItemStack[0]; this.mProgresstime = 0; this.mMaxProgresstime = 10; // 0.5 seconds per operation this.mEfficiency = this.getCurrentEfficiency(null); this.mEfficiencyIncrease = 10000; this.mEUt = this.mEUt > 0 ? -this.mEUt : this.mEUt; // Negative = consumption } @Override protected List> getAllowedHatches() { // Required multiblock components return ImmutableList.of(InputBus, OutputBus, Maintenance, Energy); } // Abstract methods to be implemented by each tier protected abstract ItemList getCasingBlockItem(); protected abstract Materials getFrameMaterial(); protected abstract int getCasingTextureIndex(); protected abstract int getMinTier(); } ``` -------------------------------- ### Create Custom Void Miner Tier in Java Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Extends MTEVoidMinerEXBase to define a new void miner tier with custom properties like tier multiplier, casing type, frame material, texture, and minimum tier. This allows for tailored void miner behavior within the game. ```java public class VMLV extends MTEVoidMinerEXBase { public VMLV(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional, 4); // 4 = tier multiplier for output } public VMLV(String aName, int tier) { super(aName, tier); } @Override protected ItemList getCasingBlockItem() { return ItemList.Casing_SolidSteel; // Structure casing type } @Override protected Materials getFrameMaterial() { return Materials.Steel; // Frame material for structure } @Override protected int getCasingTextureIndex() { return 16; // Texture ID for rendering } @Override protected int getMinTier() { return 1; // LV = tier 1 } @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) { return new VMLV(this.mName, this.TIER_MULTIPLIER); } } ``` -------------------------------- ### Configure MetaTileEntity IDs in Java Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Defines an enum to manage unique MetaTileEntity IDs for custom machines like Void Miners. This ensures proper registration within the GregTech system and provides a clear way to reference these IDs. ```java public enum MetaTileEntityIDs { VoidMinerEX1Controller(26763), // LV Void Miner VoidMinerEX2Controller(26764), // HV Void Miner VoidMinerEX3Controller(26765), // IV Void Miner VoidMinerEX4Controller(26766); // Reserved for future use public final int ID; MetaTileEntityIDs(int ID) { this.ID = ID; } } // Usage in registration new MTEVoidMiners.VMLV( MetaTileEntityIDs.VoidMinerEX1Controller.ID, "VoidMinerEX1", "Void Miner EX I" ); ``` -------------------------------- ### Gradle Build Configuration Properties Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Defines project properties for a GTNH mod, including mod name, ID, group, Minecraft and Forge versions, and settings for enabling modern Java syntax and version token generation. ```properties # gradle.properties modName = CheaperVoidMiners modId = cheapervoidminers modGroup = com.jdz.vmd # Minecraft and Forge versions minecraftVersion = 1.7.10 forgeVersion = 10.13.4.1614 # Enable modern Java syntax while targeting JVM 8 enableModernJavaSyntax = true enableGenericInjection = true # Version token generation generateGradleTokenClass = com.jdz.vmd.Tags gradleTokenVersion = VERSION ``` -------------------------------- ### Register LV Void Miner EX I (Java) Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Registers the LV tier Void Miner EX I machine and its shapeless crafting recipe. This machine requires LV power and outputs 8 ores per second. It uses Solid Steel Casings and Steel Frames. ```java public static ItemStack VoidMinerEX1; public static void run() { // Register LV Void Miner with MetaTileEntity ID 26763 ItemRegistry.VoidMinerEX1 = new MTEVoidMiners.VMLV( VoidMinerEX1Controller.ID, // ID: 26763 "VoidMinerEX1", // Internal name "Void Miner EX I" // Display name ).getStackForm(1L); } // Crafting recipe - shapeless conversion from LV Miner GTModHandler.addShapelessCraftingRecipe( ItemRegistry.VoidMinerEX1, new Object[] { ItemList.Machine_LV_Miner.get(1) } ); ``` -------------------------------- ### Gradle Dependencies Configuration Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Specifies project dependencies for a GTNH mod development environment, including GTNHLib and GT5-Unofficial, using the 'api' configuration for shared dependencies. ```groovy // dependencies.gradle dependencies { api("com.github.GTNewHorizons:GTNHLib:0.5.11:dev") api("com.github.GTNewHorizons:GT5-Unofficial:5.09.50.25:dev") } ``` -------------------------------- ### Register HV Void Miner EX II (Java) Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Registers the HV tier Void Miner EX II machine and its shapeless crafting recipe. This machine requires HV power and outputs 16 ores per second. It uses Clean Stainless Steel Casings and Stainless Steel Frames. ```java public static ItemStack VoidMinerEX2; public static void run() { // Register HV Void Miner with MetaTileEntity ID 26764 ItemRegistry.VoidMinerEX2 = new MTEVoidMiners.VMHV( VoidMinerEX2Controller.ID, // ID: 26764 "VoidMinerEX2", // Internal name "Void Miner EX II" // Display name ).getStackForm(1L); } // Crafting recipe - shapeless conversion from HV Miner GTModHandler.addShapelessCraftingRecipe( ItemRegistry.VoidMinerEX2, new Object[] { ItemList.Machine_HV_Miner.get(1) } ); ``` -------------------------------- ### Register IV Void Miner EX III (Java) Source: https://context7.com/tungsten-w-74/cheapervoidminers/llms.txt Registers the IV tier Void Miner EX III machine and its shapeless crafting recipe. This machine requires IV power and outputs 32 ores per second. It uses Robust TungstenSteel Casings and TungstenSteel Frames. ```java public static ItemStack VoidMinerEX3; public static void run() { // Register IV Void Miner with MetaTileEntity ID 26765 ItemRegistry.VoidMinerEX3 = new MTEVoidMiners.VMIV( VoidMinerEX3Controller.ID, // ID: 26765 "VoidMinerEX3", // Internal name "Void Miner EX III" // Display name ).getStackForm(1L); } // Crafting recipe - shapeless conversion from Ore Drilling Plant GTModHandler.addShapelessCraftingRecipe( ItemRegistry.VoidMinerEX3, new Object[] { ItemList.OreDrill1.get(1) } ); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.