Moved some events to the Mod's event bus. You'll need to update which bus

you're listening to for these. (The Mod event bus is the only one actively
dispatching events during model loading).

ModelRegistryEvent, ModelBakeEvent, TextureStitchEvent.Pre, TextureStitchEvent.Post, ColourHandlerEvent.Block, ColourHandlerEvent.Item

Signed-off-by: cpw <cpw+github@weeksfamily.ca>
This commit is contained in:
cpw committed 2019-06-22 20:36:07 -04:00
1 parent 89baeb3d5d
commit d966746fbf
5 files changed
+28 -9

No files matched your search

@@ -45,6 +45,7 @@ import javax.vecmath.Vector4f;
import net.minecraft.client.MouseHelper;
import net.minecraftforge.client.event.RecipesUpdatedEvent;
import net.minecraftforge.fml.ModLoader;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -179,24 +180,24 @@ public class ForgeHooksClient
public static void onTextureStitchedPre(AtlasTexture map)
{
MinecraftForge.EVENT_BUS.post(new TextureStitchEvent.Pre(map));
ModLoader.get().postEvent(new TextureStitchEvent.Pre(map));
// ModelLoader.White.INSTANCE.register(map); // TODO Custom TAS
ModelDynBucket.LoaderDynBucket.INSTANCE.register(map);
}
public static void onTextureStitchedPost(AtlasTexture map)
{
MinecraftForge.EVENT_BUS.post(new TextureStitchEvent.Post(map));
ModLoader.get().postEvent(new TextureStitchEvent.Post(map));
}
public static void onBlockColorsInit(BlockColors blockColors)
{
MinecraftForge.EVENT_BUS.post(new ColorHandlerEvent.Block(blockColors));
ModLoader.get().postEvent(new ColorHandlerEvent.Block(blockColors));
}
public static void onItemColorsInit(ItemColors itemColors, BlockColors blockColors)
{
MinecraftForge.EVENT_BUS.post(new ColorHandlerEvent.Item(itemColors, blockColors));
ModLoader.get().postEvent(new ColorHandlerEvent.Item(itemColors, blockColors));
}
static final ThreadLocal<BlockRenderLayer> renderLayer = new ThreadLocal<BlockRenderLayer>();
@@ -373,7 +374,7 @@ public class ForgeHooksClient
public static void onModelBake(ModelManager modelManager, Map<ResourceLocation, IBakedModel> modelRegistry, ModelLoader modelLoader)
{
MinecraftForge.EVENT_BUS.post(new ModelBakeEvent(modelManager, modelRegistry, modelLoader));
ModLoader.get().postEvent(new ModelBakeEvent(modelManager, modelRegistry, modelLoader));
modelLoader.onPostBakeEvent(modelRegistry);
}
@@ -26,13 +26,14 @@ import net.minecraft.client.renderer.model.ModelManager;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.eventbus.api.Event;
/**
* Fired when the ModelManager is notified of the resource manager reloading.
* Called after model registry is setup, but before it's passed to BlockModelShapes.
*/
// TODO: try to merge with ICustomModelLoader
public class ModelBakeEvent extends net.minecraftforge.eventbus.api.Event
public class ModelBakeEvent extends Event
{
private final ModelManager modelManager;
private final Map<ResourceLocation, IBakedModel> modelRegistry;
@@ -19,6 +19,7 @@
package net.minecraftforge.fml;
import net.minecraftforge.eventbus.api.Event;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.forgespi.language.IModInfo;
import org.apache.commons.lang3.tuple.Pair;
@@ -158,4 +159,10 @@ public abstract class ModContainer
* @return the mod object instance
*/
public abstract Object getMod();
/**
* Accept an arbitrary event for processing by the mod. Probably posted to an event bus in the lower level container.
* @param e Event to accept
*/
protected void acceptEvent(Event e) {}
}
@@ -27,6 +27,7 @@ import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.eventbus.api.Event;
import net.minecraftforge.fml.config.ConfigTracker;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.lifecycle.GatherDataEvent;
@@ -118,16 +119,16 @@ public class ModLoader
return INSTANCE == null ? INSTANCE = new ModLoader() : INSTANCE;
}
private static Runnable fireClientEvents()
private Runnable fireClientEvents()
{
return ()->MinecraftForge.EVENT_BUS.post(new ModelRegistryEvent());
return ()->postEvent(new ModelRegistryEvent());
}
public void loadMods() {
DistExecutor.runWhenOn(Dist.CLIENT, ()->()-> ConfigTracker.INSTANCE.loadConfigs(ModConfig.Type.CLIENT, FMLPaths.CONFIGDIR.get()));
ConfigTracker.INSTANCE.loadConfigs(ModConfig.Type.COMMON, FMLPaths.CONFIGDIR.get());
dispatchAndHandleError(LifecycleEventProvider.SETUP);
DistExecutor.runWhenOn(Dist.CLIENT, ModLoader::fireClientEvents);
DistExecutor.runWhenOn(Dist.CLIENT, this::fireClientEvents);
dispatchAndHandleError(LifecycleEventProvider.SIDED_SETUP);
}
@@ -200,6 +201,10 @@ public class ModLoader
}
}
public void postEvent(Event e) {
ModList.get().forEachModContainer((id, mc) -> mc.acceptEvent(e));
}
public void finishMods()
{
dispatchAndHandleError(LifecycleEventProvider.ENQUEUE_IMC);
@@ -157,4 +157,9 @@ public class FMLModContainer extends ModContainer
{
return this.eventBus;
}
@Override
protected void acceptEvent(final Event e) {
this.eventBus.post(e);
}
}