Port first NeoForge API surface
Some checks failed
Build / build (push) Failing after 6m57s

This commit is contained in:
MrSphay
2026-05-04 13:06:40 +02:00
parent 215ab3b080
commit ee922ac831
30 changed files with 543 additions and 472 deletions

View File

@@ -3,6 +3,7 @@
*/
package com.vinlanx.explosionoverhaul;
import net.minecraft.core.registries.BuiltInRegistries;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
@@ -93,15 +94,15 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.neoforge.client.ConfigScreenHandler;
import net.neoforged.neoforge.client.event.ClientPlayerNetworkEvent;
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.client.event.RegisterParticleProvidersEvent;
import net.neoforged.neoforge.client.event.RegisterShadersEvent;
import net.neoforged.neoforge.client.event.RenderGuiOverlayEvent;
import net.neoforged.neoforge.common.MinecraftForge;
import net.neoforged.neoforge.client.event.RenderGuiEvent;
import net.neoforged.neoforge.client.gui.IConfigScreenFactory;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.TickEvent;
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
import net.neoforged.neoforge.event.level.LevelEvent;
@@ -109,14 +110,11 @@ import net.neoforged.neoforge.event.server.ServerStoppedEvent;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.DistExecutor;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.config.IConfigSpec;
import net.neoforged.fml.config.ModConfig;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext;
import net.neoforged.neoforge.registries.ForgeRegistries;
import net.neoforged.neoforge.server.ServerLifecycleHooks;
import org.slf4j.Logger;
import software.bernie.geckolib.GeckoLib;
@@ -291,7 +289,7 @@ public class ExplosionOverhaul {
}
public static boolean isBlockBlacklisted(Block block) {
ResourceLocation blockId = ForgeRegistries.BLOCKS.getKey((Object)block);
ResourceLocation blockId = BuiltInRegistries.BLOCK.getKey(block);
if (blockId != null) {
String blockName = blockId.toString();
return EXPLOSION_BLACKLIST.contains(blockName);
@@ -300,7 +298,7 @@ public class ExplosionOverhaul {
}
public static boolean isBlockStateBlacklisted(BlockState state) {
ResourceLocation blockId = ForgeRegistries.BLOCKS.getKey((Object)state.m_60734_());
ResourceLocation blockId = BuiltInRegistries.BLOCK.getKey(state.m_60734_());
if (blockId != null) {
String blockName = blockId.toString();
return EXPLOSION_BLACKLIST.contains(blockName);
@@ -308,21 +306,20 @@ public class ExplosionOverhaul {
return false;
}
public ExplosionOverhaul() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
public ExplosionOverhaul(IEventBus modEventBus, ModContainer modContainer) {
GeckoLib.initialize();
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, (IConfigSpec)Config.COMMON_SPEC, "explosionoverhaul/explosionoverhaul-common.toml");
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, (IConfigSpec)Config.CLIENT_SPEC, "explosionoverhaul/explosionoverhaul-client.toml");
ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory((client, parent) -> ModConfigScreen.create(parent)));
modContainer.registerConfig(ModConfig.Type.COMMON, Config.COMMON_SPEC, "explosionoverhaul/explosionoverhaul-common.toml");
modContainer.registerConfig(ModConfig.Type.CLIENT, Config.CLIENT_SPEC, "explosionoverhaul/explosionoverhaul-client.toml");
modContainer.registerExtensionPoint(IConfigScreenFactory.class, (client, parent) -> ModConfigScreen.create(parent));
ModSounds.register(modEventBus);
ModParticles.register(modEventBus);
ModBlocks.register(modEventBus);
ModItems.register(modEventBus);
ModBlockEntities.register(modEventBus);
ModCreativeTabs.register(modEventBus);
MinecraftForge.EVENT_BUS.register(ExplosionOverhaul.class);
MinecraftForge.EVENT_BUS.register((Object)new ServerExplosionHandler());
MinecraftForge.EVENT_BUS.register(BlockIndexManager.class);
NeoForge.EVENT_BUS.register(ExplosionOverhaul.class);
NeoForge.EVENT_BUS.register((Object)new ServerExplosionHandler());
NeoForge.EVENT_BUS.register(BlockIndexManager.class);
modEventBus.addListener(this::commonSetup);
DistExecutor.unsafeRunWhenOn((Dist)Dist.CLIENT, () -> () -> {
SoundPhysicsCompatibility.init();
@@ -332,17 +329,17 @@ public class ExplosionOverhaul {
modEventBus.addListener(ClientSetup::registerShaders);
modEventBus.addListener(ClientSetup::registerReloadListeners);
modEventBus.addListener(ClientSetup::onRegisterKeyMappings);
MinecraftForge.EVENT_BUS.register(ClientSetup.class);
MinecraftForge.EVENT_BUS.register((Object)new ClientSoundHandler());
MinecraftForge.EVENT_BUS.register(ScanProgressHUD.class);
MinecraftForge.EVENT_BUS.register(ScanPromptHUD.class);
MinecraftForge.EVENT_BUS.register(ScanInfoHUD.class);
MinecraftForge.EVENT_BUS.register(ScanLoadPromptHUD.class);
MinecraftForge.EVENT_BUS.register(ScanLoadInfoHUD.class);
MinecraftForge.EVENT_BUS.register((Object)new ScanKeyHandler());
MinecraftForge.EVENT_BUS.register(FirstTimeSetupHandler.class);
MinecraftForge.EVENT_BUS.register(IntroMusicTickHandler.class);
MinecraftForge.EVENT_BUS.register(ConcussionAudioEffect.class);
NeoForge.EVENT_BUS.register(ClientSetup.class);
NeoForge.EVENT_BUS.register((Object)new ClientSoundHandler());
NeoForge.EVENT_BUS.register(ScanProgressHUD.class);
NeoForge.EVENT_BUS.register(ScanPromptHUD.class);
NeoForge.EVENT_BUS.register(ScanInfoHUD.class);
NeoForge.EVENT_BUS.register(ScanLoadPromptHUD.class);
NeoForge.EVENT_BUS.register(ScanLoadInfoHUD.class);
NeoForge.EVENT_BUS.register((Object)new ScanKeyHandler());
NeoForge.EVENT_BUS.register(FirstTimeSetupHandler.class);
NeoForge.EVENT_BUS.register(IntroMusicTickHandler.class);
NeoForge.EVENT_BUS.register(ConcussionAudioEffect.class);
});
}
@@ -424,7 +421,7 @@ public class ExplosionOverhaul {
return;
}
if (delayTicks <= 0L) {
player.f_8906_.m_9829_((Packet)new ClientboundSoundPacket((Holder)ForgeRegistries.SOUND_EVENTS.getHolder((Object)sound).orElseThrow(), source, (double)x, (double)y, (double)z, volume, pitch, seed));
player.f_8906_.m_9829_((Packet)new ClientboundSoundPacket((Holder)BuiltInRegistries.SOUND_EVENT.wrapAsHolder(sound), source, (double)x, (double)y, (double)z, volume, pitch, seed));
} else {
delayedSounds.add(new DelayedSound(player, sound, source, x, y, z, volume, pitch, seed, delayTicks));
}
@@ -475,7 +472,7 @@ public class ExplosionOverhaul {
if (this.player.f_8906_ == null) {
return;
}
this.player.f_8906_.m_9829_((Packet)new ClientboundSoundPacket((Holder)ForgeRegistries.SOUND_EVENTS.getHolder((Object)this.sound).orElseThrow(), this.source, (double)this.x, (double)this.y, (double)this.z, this.volume, this.pitch, this.seed));
this.player.f_8906_.m_9829_((Packet)new ClientboundSoundPacket((Holder)BuiltInRegistries.SOUND_EVENT.wrapAsHolder(this.sound), this.source, (double)this.x, (double)this.y, (double)this.z, this.volume, this.pitch, this.seed));
}
}
@@ -590,14 +587,10 @@ public class ExplosionOverhaul {
}
@SubscribeEvent
public static void onRenderGuiOverlay(RenderGuiOverlayEvent.Post event) {
if (event.getOverlay().id().m_135815_().equals("all")) {
Blur.render(Blur.RenderStage.HUD);
}
if (event.getOverlay().id().m_135815_().equals("crosshair")) {
ClientEffects.renderFlash(event);
ConcussionAudioEffect.renderHeartbeatHUD(event.getGuiGraphics());
}
public static void onRenderGuiOverlay(RenderGuiEvent.Post event) {
Blur.render(Blur.RenderStage.HUD);
ClientEffects.renderFlash(event);
ConcussionAudioEffect.renderHeartbeatHUD(event.getGuiGraphics());
}
public static class TexturePreloader
@@ -660,7 +653,7 @@ public class ExplosionOverhaul {
if (blockState.m_60795_()) {
return;
}
ResourceLocation registryName = ForgeRegistries.BLOCKS.getKey((Object)blockState.m_60734_());
ResourceLocation registryName = BuiltInRegistries.BLOCK.getKey(blockState.m_60734_());
String name = registryName != null ? registryName.m_135815_() : "";
boolean bl = isSpecialBlock = name.contains("bedrock") || name.contains("end_portal") || name.contains("end_portal_frame") || name.contains("command_block") || name.contains("barrier");
if (isSpecialBlock) {