Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/main/resources/assets/opencomputers/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ item.oc.UpgradeContainerUpgrade0.name=Upgrade Container (Tier 1)
item.oc.UpgradeContainerUpgrade1.name=Upgrade Container (Tier 2)
item.oc.UpgradeContainerUpgrade2.name=Upgrade Container (Tier 3)
item.oc.UpgradeCrafting.name=Crafting Upgrade
item.oc.UpgradeArcaneCrafting.name=Arcane Crafting Upgrade
item.oc.UpgradeDatabase0.name=Database Upgrade (Tier 1)
item.oc.UpgradeDatabase1.name=Database Upgrade (Tier 2)
item.oc.UpgradeDatabase2.name=Database Upgrade (Tier 3)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,9 @@ beekeeperUpgrade {
["oc:circuitChip3", {item="Forestry:beealyzer"}, "oc:circuitChip3"]
[ingotGold, "oc:materialCircuitBoardPrinted", ingotGold]]
}
arcaneCraftingUpgrade {
input: [["oc:craftingUpgrade", {item="Thaumcraft:blockTable", subID=15}, "oc:circuitChip2"]]
}

configuratorUpgrade {
input: [[ingotIron, "", ingotIron]
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/main/scala/li/cil/oc/Constants.scala
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ object Constants {
final val CPUTier2 = "cpu2"
final val CPUTier3 = "cpu3"
final val CraftingUpgrade = "craftingUpgrade"
final val ArcaneCraftingUpgrade = "arcaneCraftingUpgrade"
final val ControlUnit = "cu"
final val CuttingWire = "cuttingWire"
final val DatabaseUpgradeTier1 = "databaseUpgrade1"
Expand Down
1 change: 1 addition & 0 deletions src/main/scala/li/cil/oc/client/Textures.scala
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ object Textures {
val blockRackTerminalServerPresence = new ResourceLocation(Settings.resourceDomain, "textures/blocks/TerminalServerFrontPresence.png")

val upgradeCrafting = new ResourceLocation(Settings.resourceDomain, "textures/model/UpgradeCrafting.png")
val upgradeArcaneCrafting = new ResourceLocation(Settings.resourceDomain, "textures/items/UpgradeArcaneCrafting.png")
val upgradeGenerator = new ResourceLocation(Settings.resourceDomain, "textures/model/UpgradeGenerator.png")
val upgradeInventory = new ResourceLocation(Settings.resourceDomain, "textures/model/UpgradeInventory.png")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import li.cil.oc.common.nanomachines.provider.PotionProvider
import li.cil.oc.common.template._
import li.cil.oc.integration.ModProxy
import li.cil.oc.integration.Mods
import li.cil.oc.integration.thaumcraft.DriverUpgradeArcaneCrafting
import li.cil.oc.integration.util.BundledRedstone
import li.cil.oc.integration.util.WirelessRedstone
import li.cil.oc.server.machine.luac.LuaStateFactory
Expand Down Expand Up @@ -156,6 +157,7 @@ object ModOpenComputers extends ModProxy {
api.Driver.add(DriverUpgradeBattery)
api.Driver.add(DriverUpgradeChunkloader)
api.Driver.add(DriverUpgradeCrafting)
api.Driver.add(DriverUpgradeArcaneCrafting)
api.Driver.add(DriverUpgradeDatabase)
api.Driver.add(DriverUpgradeExperience)
api.Driver.add(DriverUpgradeGenerator)
Expand Down Expand Up @@ -195,6 +197,7 @@ object ModOpenComputers extends ModProxy {

api.Driver.add(DriverUpgradeChunkloader.Provider)
api.Driver.add(DriverUpgradeCrafting.Provider)
api.Driver.add(DriverUpgradeArcaneCrafting.Provider)
api.Driver.add(DriverUpgradeDatabase.Provider)
api.Driver.add(DriverUpgradeExperience.Provider)
api.Driver.add(DriverUpgradeGenerator.Provider)
Expand Down Expand Up @@ -227,6 +230,7 @@ object ModOpenComputers extends ModProxy {
Constants.ItemName.BatteryUpgradeTier3,
Constants.ItemName.ChunkloaderUpgrade,
Constants.ItemName.CraftingUpgrade,
Constants.ItemName.ArcaneCraftingUpgrade,
Constants.ItemName.ExperienceUpgrade,
Constants.ItemName.GeneratorUpgrade,
Constants.ItemName.HoverUpgradeTier1,
Expand Down Expand Up @@ -260,6 +264,7 @@ object ModOpenComputers extends ModProxy {
Constants.ItemName.RedstoneCardTier1,
Constants.ItemName.AngelUpgrade,
Constants.ItemName.CraftingUpgrade,
Constants.ItemName.ArcaneCraftingUpgrade,
Constants.ItemName.HoverUpgradeTier1,
Constants.ItemName.HoverUpgradeTier2,
Constants.ItemName.BeekeeperUpgrade,
Expand All @@ -277,6 +282,7 @@ object ModOpenComputers extends ModProxy {
Constants.ItemName.GraphicsCardTier3,
Constants.ItemName.AngelUpgrade,
Constants.ItemName.CraftingUpgrade,
Constants.ItemName.ArcaneCraftingUpgrade,
Constants.ItemName.DatabaseUpgradeTier1,
Constants.ItemName.DatabaseUpgradeTier2,
Constants.ItemName.DatabaseUpgradeTier3,
Expand Down Expand Up @@ -313,6 +319,7 @@ object ModOpenComputers extends ModProxy {
Constants.ItemName.AngelUpgrade,
Constants.ItemName.ChunkloaderUpgrade,
Constants.ItemName.CraftingUpgrade,
Constants.ItemName.ArcaneCraftingUpgrade,
Constants.ItemName.DatabaseUpgradeTier1,
Constants.ItemName.DatabaseUpgradeTier2,
Constants.ItemName.DatabaseUpgradeTier3,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package li.cil.oc.integration.thaumcraft

import li.cil.oc.api.driver.EnvironmentProvider
import li.cil.oc.api.driver.item.HostAware
import li.cil.oc.api.internal.Robot
import li.cil.oc.api.network.{EnvironmentHost, ManagedEnvironment}
import li.cil.oc.common.{Slot, Tier}
import li.cil.oc.integration.opencomputers.Item
import li.cil.oc.{Constants, api}
import net.minecraft.item.ItemStack

object DriverUpgradeArcaneCrafting extends Item with HostAware {
override def worksWith(stack: ItemStack): Boolean = isOneOf(stack,
api.Items.get(Constants.ItemName.ArcaneCraftingUpgrade))

override def createEnvironment(stack: ItemStack, host: EnvironmentHost): ManagedEnvironment =
if (host.world != null && host.world.isRemote) null
else host match {
case robot: EnvironmentHost with Robot => new UpgradeArcaneCrafting(robot)
case _ => null
}

override def slot(stack: ItemStack): String = Slot.Upgrade

override def tier(stack: ItemStack): Int = Tier.Two

object Provider extends EnvironmentProvider {
override def getEnvironment(stack: ItemStack): Class[_] =
if (worksWith(stack))
classOf[UpgradeArcaneCrafting]
else null
}

}
Original file line number Diff line number Diff line change
@@ -1,14 +1,49 @@
package li.cil.oc.integration.thaumcraft

import li.cil.oc.api.Driver
import li.cil.oc.integration.ModProxy
import li.cil.oc.integration.Mods
import cpw.mods.fml.common.registry.GameRegistry
import li.cil.oc.Constants
import li.cil.oc.api.{Driver, Items}
import li.cil.oc.api.driver.item.UpgradeRenderer.MountPointName
import li.cil.oc.api.event.RobotRenderEvent.MountPoint
import li.cil.oc.api.internal.Robot
import li.cil.oc.common.recipe.Recipes
import li.cil.oc.integration.{ModProxy, Mods}
import net.minecraft.item.ItemStack
import org.lwjgl.opengl.GL11
import thaumcraft.client.lib.UtilsFX
import thaumcraft.client.renderers.models.ModelArcaneWorkbench

object ModThaumcraft extends ModProxy {
override def getMod = Mods.Thaumcraft

override def initialize() {
Driver.add(new DriverAspectContainer)
Driver.add(ConverterAspectItem)

val multi = new li.cil.oc.common.item.Delegator() {
private lazy val workbenchModel = new ModelArcaneWorkbench
private lazy val ArcaneUpgrade = Items.get(Constants.ItemName.ArcaneCraftingUpgrade)

override def computePreferredMountPoint(stack: ItemStack, robot: Robot, availableMountPoints: java.util.Set[String]): String = Items.get(stack) match {
case ArcaneUpgrade => MountPointName.Any
case _ => MountPointName.None
}

override def render(stack: ItemStack, mountPoint: MountPoint, robot: Robot, pt: Float): Unit = Items.get(stack) match {
case ArcaneUpgrade =>
UtilsFX.bindTexture("textures/models/worktable.png")
GL11.glRotatef(mountPoint.rotation.getW, mountPoint.rotation.getX, mountPoint.rotation.getY, mountPoint.rotation.getZ)
GL11.glTranslatef(mountPoint.offset.getX, mountPoint.offset.getY, mountPoint.offset.getZ)
GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F)
GL11.glTranslatef(0.0F, -0.1F, 0.0F)
GL11.glScalef(0.2F, 0.2F, 0.2F)
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F)
workbenchModel.renderAll()
case _ =>
}
}

GameRegistry.registerItem(multi, "item..thaumcraft")
Recipes.addSubItem(new item.UpgradeArcaneCrafting(multi), Constants.ItemName.ArcaneCraftingUpgrade, "oc:arcaneCraftingUpgrade")
}
}
Loading