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:
parent
89baeb3d5d
commit
d966746fbf
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue