Files
ForgeMultipart/codechicken/microblock/handler/EventHandler.scala
T
2013-05-20 17:09:57 +10:00

41 lines
1.5 KiB
Scala

package codechicken.microblock.handler
import net.minecraftforge.client.event.TextureStitchEvent
import codechicken.microblock.MicroMaterialRegistry
import net.minecraftforge.event.ForgeSubscribe
import cpw.mods.fml.common.Loader
import cpw.mods.fml.common.LoaderState
import net.minecraftforge.client.event.DrawBlockHighlightEvent
import net.minecraft.util.EnumMovingObjectType
import codechicken.microblock.ItemMicroPart
import codechicken.microblock.ItemMicroPartRenderer
import org.lwjgl.opengl.GL11
import codechicken.core.render.RenderUtils
import cpw.mods.fml.relauncher.SideOnly
import cpw.mods.fml.relauncher.Side
object MicroblockEventHandler
{
@ForgeSubscribe
@SideOnly(Side.CLIENT)
def postTextureStitch(event:TextureStitchEvent.Post)
{
if(Loader.instance.hasReachedState(LoaderState.POSTINITIALIZATION))
MicroMaterialRegistry.materials_foreach((s, m) => m.loadIcons())
}
@ForgeSubscribe
@SideOnly(Side.CLIENT)
def drawBlockHighlight(event:DrawBlockHighlightEvent)
{
if(event.currentItem != null && event.currentItem.getItem== MicroblockProxy.item &&
event.target != null && event.target.typeOfHit == EnumMovingObjectType.TILE)
{
GL11.glPushMatrix()
RenderUtils.translateToWorldCoords(event.player, event.partialTicks)
if(ItemMicroPartRenderer.renderHighlight(event.player.worldObj, event.player, event.currentItem, event.target))
event.setCanceled(true)
GL11.glPopMatrix()
}
}
}