Port JEI integration.

This commit is contained in:
Florian Nücke 2016-07-16 15:17:31 +02:00
parent 91754f30c2
commit a1584036ef
6 changed files with 24 additions and 38 deletions

View File

@ -184,8 +184,8 @@ configurations {
dependencies {
deobfCompile "MCMultiPart:MCMultiPart-experimental:${config.mcmp.version}:universal"
deobfCompile "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev"
deobfCompile "mezz.jei:jei_1.9.4:${config.jei.version}"
/*
deobfCompile "mezz.jei:jei_1.8.9:${config.jei.version}"
deobfCompile "li.cil.tis3d:TIS-3D:${config.tis3d.version}"
deobfCompile "mcp.mobius.waila:Waila:${config.waila.version}"
provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.ccc.version}:dev"
@ -263,7 +263,6 @@ sourceSets {
exclude 'li/cil/oc/integration/gc/**'
exclude 'li/cil/oc/integration/gregtech/**'
exclude 'li/cil/oc/integration/igw/**'
exclude 'li/cil/oc/integration/jei/**'
exclude 'li/cil/oc/integration/mekanism/**'
exclude 'li/cil/oc/integration/mfr/**'
exclude 'li/cil/oc/integration/mystcraft/**'

View File

@ -30,7 +30,7 @@ gc.version=3.0.7
gt.version=5.04.06
ic2.version=2.5.54-ex19
igwmod.version=1.1.3-18
jei.version=2.28.18.186
jei.version=3.6.8.225
mcmp.version=1.2.0_70
mekanism.build=5
mekanism.version=7.1.2

View File

@ -3,10 +3,8 @@ package li.cil.oc.integration.jei
import java.util
import javax.annotation.Nonnull
import net.minecraft.client.Minecraft
import net.minecraft.item.ItemStack
import net.minecraft.util.EnumChatFormatting
import com.google.common.base.Strings
import com.mojang.realmsclient.gui.ChatFormatting
import li.cil.oc.api
import li.cil.oc.api.driver.EnvironmentAware
import li.cil.oc.api.prefab.DriverTileEntity
@ -19,7 +17,8 @@ import mezz.jei.api.gui.IRecipeLayout
import mezz.jei.api.recipe.BlankRecipeCategory
import mezz.jei.api.recipe.BlankRecipeWrapper
import mezz.jei.api.recipe.IRecipeHandler
import mezz.jei.api.recipe.IRecipeWrapper
import _root_.net.minecraft.client.Minecraft
import _root_.net.minecraft.item.ItemStack
import scala.collection.convert.WrapAsJava._
import scala.collection.convert.WrapAsScala._
@ -81,8 +80,8 @@ object CallbackDocHandler {
case VexPattern(head, tail) => (name + head, tail)
case _ => (name, doc)
}
wrap(signature, 160).map(EnumChatFormatting.BLACK.toString + _).mkString("\n") +
EnumChatFormatting.RESET + "\n" +
wrap(signature, 160).map(ChatFormatting.BLACK.toString + _).mkString("\n") +
ChatFormatting.RESET + "\n" +
wrap(documentation, 152).map(" " + _).mkString("\n")
}
}
@ -92,11 +91,12 @@ object CallbackDocHandler {
protected def wrap(line: String, width: Int) = Minecraft.getMinecraft.fontRendererObj.listFormattedStringToWidth(line, width)
object CallbackDocRecipeHandler extends IRecipeHandler[CallbackDocRecipe] {
override def getRecipeWrapper(recipe: CallbackDocRecipe) = recipe
override def getRecipeCategoryUid = CallbackDocRecipeCategory.getUid
override def getRecipeCategoryUid(recipe: CallbackDocRecipe): String = getRecipeCategoryUid
override def isRecipeValid(recipe: CallbackDocRecipe) = true
override def getRecipeClass = classOf[CallbackDocRecipe]
@ -113,9 +113,7 @@ object CallbackDocHandler {
}
}
object CallbackDocRecipeCategory extends BlankRecipeCategory {
object CallbackDocRecipeCategory extends BlankRecipeCategory[CallbackDocRecipe] {
val recipeWidth: Int = 160
val recipeHeight: Int = 125
private var background: IDrawable = null
@ -126,8 +124,7 @@ object CallbackDocHandler {
override def getBackground: IDrawable = background
override def setRecipe(recipeLayout: IRecipeLayout, recipeWrapper: IRecipeWrapper) {
override def setRecipe(recipeLayout: IRecipeLayout, recipeWrapper: CallbackDocRecipe) {
}
override def getTitle = "OpenComputers API"

View File

@ -11,16 +11,17 @@ import mezz.jei.api.recipe.IRecipeHandler
import mezz.jei.api.recipe.IRecipeWrapper
import mezz.jei.api.recipe.VanillaRecipeCategoryUid
import mezz.jei.api.recipe.wrapper.ICraftingRecipeWrapper
import net.minecraft.item.ItemStack
import _root_.net.minecraft.item.ItemStack
import scala.collection.convert.WrapAsJava._
object LootDiskCyclingRecipeHandler extends IRecipeHandler[LootDiskCyclingRecipe] {
override def getRecipeClass: Class[LootDiskCyclingRecipe] = classOf[LootDiskCyclingRecipe]
override def getRecipeCategoryUid: String = VanillaRecipeCategoryUid.CRAFTING
override def getRecipeCategoryUid(recipe: LootDiskCyclingRecipe): String = getRecipeCategoryUid
override def getRecipeWrapper(recipe: LootDiskCyclingRecipe): IRecipeWrapper = new LootDiskCyclingRecipeWrapper(recipe)
override def isRecipeValid(recipe: LootDiskCyclingRecipe): Boolean = true
@ -31,6 +32,7 @@ object LootDiskCyclingRecipeHandler extends IRecipeHandler[LootDiskCyclingRecipe
override def getOutputs: util.List[ItemStack] = Loot.worldDisks.map(_._1).toList
}
}

View File

@ -3,9 +3,6 @@ package li.cil.oc.integration.jei
import java.util
import javax.annotation.Nonnull
import net.minecraft.client.Minecraft
import net.minecraft.item.ItemStack
import net.minecraftforge.fml.client.config.GuiButtonExt
import li.cil.oc.Localization
import li.cil.oc.api
import mezz.jei.api.IGuiHelper
@ -15,7 +12,9 @@ import mezz.jei.api.gui.IRecipeLayout
import mezz.jei.api.recipe.BlankRecipeCategory
import mezz.jei.api.recipe.BlankRecipeWrapper
import mezz.jei.api.recipe.IRecipeHandler
import mezz.jei.api.recipe.IRecipeWrapper
import _root_.net.minecraft.client.Minecraft
import _root_.net.minecraft.item.ItemStack
import _root_.net.minecraftforge.fml.client.config.GuiButtonExt
import scala.collection.convert.WrapAsJava._
import scala.collection.convert.WrapAsScala._
@ -34,6 +33,8 @@ object ManualUsageHandler {
override def getRecipeCategoryUid = ManualUsageRecipeCategory.getUid
override def getRecipeCategoryUid(recipe: ManualUsageRecipe): String = getRecipeCategoryUid
override def isRecipeValid(recipe: ManualUsageRecipe) = true
override def getRecipeClass = classOf[ManualUsageRecipe]
@ -62,7 +63,7 @@ object ManualUsageHandler {
}
}
object ManualUsageRecipeCategory extends BlankRecipeCategory {
object ManualUsageRecipeCategory extends BlankRecipeCategory[ManualUsageRecipe] {
val recipeWidth: Int = 160
val recipeHeight: Int = 125
private var background: IDrawable = null
@ -73,8 +74,7 @@ object ManualUsageHandler {
override def getBackground: IDrawable = background
override def setRecipe(recipeLayout: IRecipeLayout, recipeWrapper: IRecipeWrapper) {
override def setRecipe(recipeLayout: IRecipeLayout, recipeWrapper: ManualUsageRecipe) {
}
override def getTitle = "OpenComputers Manual"

View File

@ -3,31 +3,22 @@ package li.cil.oc.integration.jei
import li.cil.oc.Settings
import li.cil.oc.integration.util.ItemBlacklist
import li.cil.oc.integration.util.ItemSearch
import mezz.jei.api.IItemRegistry
import mezz.jei.api.IJeiHelpers
import mezz.jei.api.IJeiRuntime
import mezz.jei.api.IModPlugin
import mezz.jei.api.IModRegistry
import mezz.jei.api.IRecipeRegistry
import mezz.jei.api.JEIPlugin
import net.minecraft.client.gui.inventory.GuiContainer
import net.minecraft.item.ItemStack
@JEIPlugin
class ModPluginOpenComputers extends IModPlugin {
override def onJeiHelpersAvailable(jeiHelpers: IJeiHelpers) {
ItemBlacklist.consumers += jeiHelpers.getItemBlacklist.addItemToBlacklist
}
override def onItemRegistryAvailable(itemRegistry: IItemRegistry) {
}
override def register(registry: IModRegistry) {
if (Settings.get.lootRecrafting) {
registry.addRecipeHandlers(LootDiskCyclingRecipeHandler)
}
ItemBlacklist.hiddenItems.foreach(getter => registry.getJeiHelpers.getItemBlacklist.addItemToBlacklist(getter()))
// This could go into the Description category, but Manual should always be in front of the Callback doc.
ManualUsageHandler.ManualUsageRecipeCategory.initialize(registry.getJeiHelpers.getGuiHelper)
registry.addRecipeCategories(ManualUsageHandler.ManualUsageRecipeCategory)
@ -40,9 +31,6 @@ class ModPluginOpenComputers extends IModPlugin {
registry.addRecipes(CallbackDocHandler.getRecipes(registry))
}
override def onRecipeRegistryAvailable(recipeRegistry: IRecipeRegistry) {
}
var stackUnderMouse: (GuiContainer, Int, Int) => Option[ItemStack] = null
override def onRuntimeAvailable(jeiRuntime: IJeiRuntime) {