mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 00:37:52 +00:00
Merge pull request #1089 from RainWarrior/render-events
Added world display list render events
This commit is contained in:
commit
96ee4caf39
3 files changed
+95
-5
No files matched your search
@@ -35,6 +35,7 @@ import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.ChunkCache;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
@@ -42,6 +43,7 @@ import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.RenderGlobal;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
@@ -49,6 +51,7 @@ import net.minecraft.client.settings.GameSettings;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
|
||||
import net.minecraftforge.client.event.RenderHandEvent;
|
||||
import net.minecraftforge.client.event.RenderWorldEvent;
|
||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
import net.minecraftforge.client.event.sound.PlaySoundEvent17;
|
||||
@@ -453,4 +456,35 @@ public class ForgeHooksClient
|
||||
MinecraftForge.EVENT_BUS.post(e);
|
||||
return e.result;
|
||||
}
|
||||
|
||||
static RenderBlocks worldRendererRB;
|
||||
static int worldRenderPass;
|
||||
|
||||
public static int getWorldRenderPass()
|
||||
{
|
||||
return worldRenderPass;
|
||||
}
|
||||
|
||||
public static void setWorldRendererRB(RenderBlocks renderBlocks)
|
||||
{
|
||||
worldRendererRB = renderBlocks;
|
||||
}
|
||||
|
||||
public static void onPreRenderWorld(WorldRenderer worldRenderer, int pass)
|
||||
{
|
||||
if(worldRendererRB != null)
|
||||
{
|
||||
worldRenderPass = pass;
|
||||
MinecraftForge.EVENT_BUS.post(new RenderWorldEvent.Pre(worldRenderer, (ChunkCache)worldRendererRB.blockAccess, worldRendererRB, pass));
|
||||
}
|
||||
}
|
||||
|
||||
public static void onPostRenderWorld(WorldRenderer worldRenderer, int pass)
|
||||
{
|
||||
if(worldRendererRB != null)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new RenderWorldEvent.Post(worldRenderer, (ChunkCache)worldRendererRB.blockAccess, worldRendererRB, pass));
|
||||
worldRenderPass = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package net.minecraftforge.client.event;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.Event;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
import net.minecraft.world.ChunkCache;
|
||||
|
||||
public abstract class RenderWorldEvent extends Event
|
||||
{
|
||||
public final WorldRenderer renderer;
|
||||
public final ChunkCache chunkCache;
|
||||
public final RenderBlocks renderBlocks;
|
||||
public final int pass;
|
||||
|
||||
public RenderWorldEvent(WorldRenderer renderer, ChunkCache chunkCache, RenderBlocks renderBlocks, int pass)
|
||||
{
|
||||
this.renderer = renderer;
|
||||
this.chunkCache = chunkCache;
|
||||
this.renderBlocks = renderBlocks;
|
||||
this.pass = pass;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired when 16x16x16 chunk area is being redrawn.
|
||||
* Fired after GL state is setup, before tessellator is started.
|
||||
*/
|
||||
public static class Pre extends RenderWorldEvent
|
||||
{
|
||||
public Pre(WorldRenderer renderer, ChunkCache chunkCache, RenderBlocks renderBlocks, int pass){ super(renderer, chunkCache, renderBlocks, pass); }
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after the tessellator is stopped, before the display list is ended.
|
||||
*/
|
||||
public static class Post extends RenderWorldEvent
|
||||
{
|
||||
public Post(WorldRenderer renderer, ChunkCache chunkCache, RenderBlocks renderBlocks, int pass){ super(renderer, chunkCache, renderBlocks, pass); }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user