Skip to content

Commit

Permalink
update to newer CEu build, fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
serenibyss committed Jul 11, 2023
1 parent 53a9e46 commit cf8002a
Show file tree
Hide file tree
Showing 4 changed files with 143 additions and 9 deletions.
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ dependencies {
implementation rfg.deobf("curse.maven:codechicken-lib-1-8-242818:2779848") // CCL 3.2.3.358
// manually deobf the jar to prevent extra configuration for handling obf/deobf separation
//implementation rfg.deobf("curse.maven:gregtech-ce-unofficial-557242:4527757-sources-4527758")
implementation files("libs/gregtech-1.12.2-2.6.2-beta-dev.jar") // todo build of near 2.7 release
implementation files("libs/gregtech-1.12.2-2.7.0-beta-dev.jar") // todo build of near 2.7 release

// Soft Dependencies
implementation "CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-4.1.20.684"
Expand Down
Binary file not shown.
148 changes: 141 additions & 7 deletions src/test/java/gregicality/multiblocks/Bootstrap.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,29 @@
import gregtech.api.GTValues;
import gregtech.api.GregTechAPI;
import gregtech.api.fluids.MetaFluids;
import gregtech.api.recipes.ModHandler;
import gregtech.api.unification.material.Materials;
import gregtech.api.unification.material.materials.MaterialFlagAddition;
import gregtech.api.unification.ore.OrePrefix;
import gregtech.common.items.MetaItems;
import gregtech.core.unification.material.internal.MaterialRegistryManager;
import net.minecraft.client.resources.I18n;
import net.minecraft.client.resources.Locale;
import net.minecraftforge.fml.common.DummyModContainer;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.ModMetadata;
import net.minecraft.network.INetHandler;
import net.minecraft.network.NetworkManager;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.IThreadListener;
import net.minecraftforge.common.util.CompoundDataFixer;
import net.minecraftforge.fml.common.*;
import net.minecraftforge.fml.common.eventhandler.EventBus;
import net.minecraftforge.fml.relauncher.CoreModManager;
import net.minecraftforge.fml.relauncher.Side;

import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;
import java.util.Set;

public final class Bootstrap {

Expand All @@ -36,9 +45,14 @@ public static void perform() {
Field deobfuscatedEnvironment = CoreModManager.class.getDeclaredField("deobfuscatedEnvironment");
deobfuscatedEnvironment.setAccessible(true);
deobfuscatedEnvironment.setBoolean(null, true);

Method setLocale = I18n.class.getDeclaredMethod("setLocale", Locale.class);
setLocale.setAccessible(true);
setLocale.invoke(null, new Locale());

Field sidedDelegate = FMLCommonHandler.class.getDeclaredField("sidedDelegate");
sidedDelegate.setAccessible(true);
sidedDelegate.set(FMLCommonHandler.instance(), new TestSidedHandler());
} catch (ReflectiveOperationException e) {
e.printStackTrace();
}
Expand All @@ -48,7 +62,9 @@ public static void perform() {
meta.modId = GTValues.MODID;
Loader.instance().setupTestHarness(new DummyModContainer(meta));

GregTechAPI.MATERIAL_REGISTRY.unfreeze();
MaterialRegistryManager managerInternal = MaterialRegistryManager.getInstance();
GregTechAPI.materialManager = managerInternal;
managerInternal.unfreezeRegistries();

Materials.register();
MaterialFlagAddition.register();
Expand All @@ -60,16 +76,134 @@ public static void perform() {
GCYMMaterials.init();
GCYMMaterialFlagAddition.init();

managerInternal.closeRegistries();

GCYMLatePropertyAddition.init();
GCYMMaterialFlagAddition.initLate();

GregTechAPI.MATERIAL_REGISTRY.freeze();
managerInternal.freezeRegistries();

OrePrefix.runMaterialHandlers();
MetaFluids.init();
GCYMMetaFluids.init();
MetaItems.init();
ModHandler.init();
bootstrapped = true;
}

private static final class TestSidedHandler implements IFMLSidedHandler {

@Override
public List<String> getAdditionalBrandingInformation() {
return Collections.emptyList();
}

@Override
public Side getSide() {
return Side.SERVER;
}

@Override
public void haltGame(String message, Throwable exception) {
throw new RuntimeException(message, exception);
}

@Override
public void showGuiScreen(Object clientGuiElement) {}

@Override
public void queryUser(StartupQuery query) {
throw new UnsupportedOperationException();
}

@Override
public void beginServerLoading(MinecraftServer server) {}

@Override
public void finishServerLoading() {}

@Override
public File getSavesDirectory() {
throw new UnsupportedOperationException();
}

@Override
public MinecraftServer getServer() {
throw new UnsupportedOperationException();
}

@Override
public boolean isDisplayCloseRequested() {
return false;
}

@Override
public boolean shouldServerShouldBeKilledQuietly() {
return false;
}

@Override
public void addModAsResource(ModContainer container) {
throw new UnsupportedOperationException();
}

@Override
public String getCurrentLanguage() {
return "en_US";
}

@Override
public void serverStopped() {}

@Override
public NetworkManager getClientToServerNetworkManager() {
throw new UnsupportedOperationException();
}

@Override
public INetHandler getClientPlayHandler() {
return null;
}

@Override
public void fireNetRegistrationEvent(EventBus bus, NetworkManager manager, Set<String> channelSet, String channel, Side side) {
throw new UnsupportedOperationException();
}

@Override
public boolean shouldAllowPlayerLogins() {
return false;
}

@Override
public void allowLogins() {}

@Override
public IThreadListener getWorldThread(INetHandler net) {
throw new UnsupportedOperationException();
}

@Override
public void processWindowMessages() {}

@Override
public String stripSpecialChars(String message) {
return message;
}

@Override
public void reloadRenderers() {}

@Override
public void fireSidedRegistryEvents() {}

@Override
public CompoundDataFixer getDataFixer() {
throw new UnsupportedOperationException();
}

@Override
public boolean isDisplayVSyncForced() {
return false;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public void testPropertyAddition() {
Set<Material> alloyMats = new ObjectOpenHashSet<>();
Set<Material> nonBinaryMats = new ObjectOpenHashSet<>();

for (Material material : GregTechAPI.MATERIAL_REGISTRY) {
for (Material material : GregTechAPI.materialManager.getRegisteredMaterials()) {
if (material.hasProperty(PropertyKey.BLAST)) {
blastMats.add(material);
}
Expand Down

0 comments on commit cf8002a

Please sign in to comment.