Add imc events to allow for other mods to expand the gui
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
package exopandora.worldhandler;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import com.google.common.base.Predicates;
|
||||
|
||||
import exopandora.worldhandler.config.Config;
|
||||
import exopandora.worldhandler.gui.category.Category;
|
||||
import exopandora.worldhandler.gui.content.Content;
|
||||
@@ -14,7 +18,10 @@ import exopandora.worldhandler.util.UtilKeyBinding;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.fml.InterModComms;
|
||||
import net.minecraftforge.fml.ModLoadingContext;
|
||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
@@ -41,35 +48,48 @@ public class WorldHandler
|
||||
public WorldHandler()
|
||||
{
|
||||
SIDEPROXY = DistExecutor.runForDist(() -> ClientProxy::new, () -> CommonProxy::new);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientSetup);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::loadComplete);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(Config::configLoad);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(Config::configReload);
|
||||
ModLoadingContext.get().registerConfig(Type.CLIENT, Config.CLIENT_SPEC, Main.MODID + ".toml");
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
modEventBus.addListener(this::commonSetup);
|
||||
modEventBus.addListener(this::clientSetup);
|
||||
modEventBus.addListener(this::loadComplete);
|
||||
MinecraftForge.EVENT_BUS.addListener(this::serverStarting);
|
||||
ModLoadingContext.get().registerConfig(Type.CLIENT, Config.CLIENT_SPEC, Main.MODID + ".toml");
|
||||
modEventBus.register(Config.class);
|
||||
}
|
||||
|
||||
private void commonSetup(FMLCommonSetupEvent event)
|
||||
@SubscribeEvent
|
||||
public void commonSetup(FMLCommonSetupEvent event)
|
||||
{
|
||||
SIDEPROXY.setup();
|
||||
}
|
||||
|
||||
private void clientSetup(FMLClientSetupEvent event)
|
||||
@SubscribeEvent
|
||||
public void clientSetup(FMLClientSetupEvent event)
|
||||
{
|
||||
USERNAME = Minecraft.getInstance().getSession().getUsername();
|
||||
ClientRegistry.registerKeyBinding(KEY_WORLD_HANDLER);
|
||||
UtilKeyBinding.updatePosKeys();
|
||||
}
|
||||
|
||||
private void loadComplete(FMLLoadCompleteEvent event)
|
||||
@SubscribeEvent
|
||||
public void loadComplete(FMLLoadCompleteEvent event)
|
||||
{
|
||||
Content.registerContents();
|
||||
Category.registerCategories();
|
||||
InterModComms.getMessages(Main.MODID, Predicates.equalTo("register"))
|
||||
.map(imc -> (Runnable) imc.getMessageSupplier().get())
|
||||
.forEach(Runnable::run);
|
||||
}
|
||||
|
||||
private void serverStarting(FMLServerStartingEvent event)
|
||||
@SubscribeEvent
|
||||
public void serverStarting(FMLServerStartingEvent event)
|
||||
{
|
||||
CommandHelper.registerCommands(event.getCommandDispatcher());
|
||||
}
|
||||
|
||||
public static void registerIMC(Runnable registrationEvent)
|
||||
{
|
||||
Objects.requireNonNull(registrationEvent);
|
||||
InterModComms.sendTo(Main.MODID, "register", () -> registrationEvent);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,12 @@
|
||||
package exopandora.worldhandler.gui.category;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import exopandora.worldhandler.Main;
|
||||
import exopandora.worldhandler.gui.content.Content;
|
||||
import exopandora.worldhandler.gui.content.Contents;
|
||||
@@ -36,7 +37,7 @@ public class Category extends ForgeRegistryEntry<Category>
|
||||
|
||||
public Category(Content... contents)
|
||||
{
|
||||
this.contents = Arrays.asList(contents);
|
||||
this.contents = Lists.newArrayList(contents);
|
||||
}
|
||||
|
||||
public Category add(Content content)
|
||||
|
||||
Reference in New Issue
Block a user