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