Merge branch 'jei-highlights' of https://github.com/Vexatos/OpenComputers into master-MC1.10

# Conflicts:
#	build.properties
#	src/main/scala/li/cil/oc/client/gui/DynamicGuiContainer.scala
#	src/main/scala/li/cil/oc/integration/jei/ModPluginOpenComputers.scala
This commit is contained in:
Florian Nücke 2016-07-18 20:03:01 +02:00
commit f7725b9a7c
4 changed files with 38 additions and 2 deletions

View File

@ -30,7 +30,7 @@ gc.version=3.0.7
gt.version=5.04.06
ic2.version=2.5.8-ex19
igwmod.version=1.3.0-5
jei.version=3.7.6.232
jei.version=3.7.7.233
mcmp.version=1.2.0_70
mekanism.build=5
mekanism.version=7.1.2

View File

@ -8,6 +8,7 @@ import li.cil.oc.common
import li.cil.oc.common.container.ComponentSlot
import li.cil.oc.common.container.Player
import li.cil.oc.integration.Mods
import li.cil.oc.integration.jei.ModJEI
import li.cil.oc.integration.util.ItemSearch
import li.cil.oc.util.RenderState
import net.minecraft.client.gui.Gui
@ -18,9 +19,9 @@ import net.minecraft.inventory.Container
import net.minecraft.inventory.Slot
import net.minecraft.item.ItemStack
import net.minecraftforge.fml.common.Optional
import net.minecraftforge.fml.relauncher.ReflectionHelper
import org.lwjgl.opengl.GL11
import scala.collection.convert.WrapAsJava._
import scala.collection.convert.WrapAsScala._
abstract class DynamicGuiContainer[C <: Container](container: C) extends CustomGuiContainer(container) {
@ -86,6 +87,10 @@ abstract class DynamicGuiContainer[C <: Container](container: C) extends CustomG
drawNEIHighlights()
RenderState.popAttrib()
}
if (Mods.JustEnoughItems.isAvailable) {
drawJEIHighlights()
}
}
protected def drawSlotInventory(slot: Slot) {
@ -173,6 +178,13 @@ abstract class DynamicGuiContainer[C <: Container](container: C) extends CustomG
case _ => false
}
override def onGuiClosed(): Unit = {
super.onGuiClosed()
if(Mods.JustEnoughItems.isAvailable) {
resetJEIHighlights()
}
}
/* TODO NEI
@Optional.Method(modid = Mods.IDs.NotEnoughItems)
private def drawNEIHighlights(): Unit = {
if(!LayoutManager.isItemPanelActive) return
@ -196,4 +208,19 @@ abstract class DynamicGuiContainer[C <: Container](container: C) extends CustomG
}
zLevel -= 350
}
@Optional.Method(modid = Mods.IDs.JustEnoughItems)
private def drawJEIHighlights(): Unit = {
ModJEI.runtime.foreach { runtime =>
val overlay = runtime.getItemListOverlay
hoveredSlot match {
case Some(hovered) if !isInPlayerInventory(hovered) && isSelectiveSlot(hovered) =>
overlay.highlightStacks(overlay.getVisibleStacks.filter(hovered.isItemValid))
case _ => overlay.highlightStacks(List[Nothing]())
}
}
}
@Optional.Method(modid = Mods.IDs.JustEnoughItems)
private def resetJEIHighlights() = ModJEI.runtime.foreach(_.getItemListOverlay.highlightStacks(List[Nothing]()))
}

View File

@ -0,0 +1,7 @@
package li.cil.oc.integration.jei
import mezz.jei.api.IJeiRuntime
object ModJEI {
var runtime: Option[IJeiRuntime] = None
}

View File

@ -45,5 +45,7 @@ class ModPluginOpenComputers extends IModPlugin {
ItemSearch.stackFocusing += ((container, mouseX, mouseY) => stackUnderMouse(container, mouseX, mouseY))
}
stackUnderMouse = (container, mouseX, mouseY) => Option(jeiRuntime.getItemListOverlay.getStackUnderMouse)
ModJEI.runtime = Option(jeiRuntime)
}
}