Skip to content
Draft
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
8 changes: 7 additions & 1 deletion src/main/resources/assets/opencomputers/recipes/user.recipes
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,10 @@ include file("default.recipes")
# You can also specify custom recipes in this file directly. Have a look at the
# default.recipes file to get an idea how recipes have to be structured. You'll
# want to define your recipes after all includes, to avoid those overwriting
# your recipes.
# your recipes.

arcaneCraftingUpgrade {
input: [[ingotIron, "", ingotIron]
["oc:circuitChip1", workbench, "oc:circuitChip1"]
[ingotIron, "oc:materialCircuitBoardPrinted", ingotIron]]
}
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 @@ -14,13 +14,13 @@ import org.lwjgl.opengl.GL11

object UpgradeRenderer {
lazy val craftingUpgrade = api.Items.get(Constants.ItemName.CraftingUpgrade)
lazy val arcaneCraftingUpgrade = api.Items.get(Constants.ItemName.ArcaneCraftingUpgrade)
lazy val generatorUpgrade = api.Items.get(Constants.ItemName.GeneratorUpgrade)
lazy val inventoryUpgrade = api.Items.get(Constants.ItemName.InventoryUpgrade)

def preferredMountPoint(stack: ItemStack, availableMountPoints: java.util.Set[String]): String = {
val descriptor = api.Items.get(stack)

if (descriptor == craftingUpgrade || descriptor == generatorUpgrade || descriptor == inventoryUpgrade) {
if (descriptor == craftingUpgrade || descriptor == arcaneCraftingUpgrade || descriptor == generatorUpgrade || descriptor == inventoryUpgrade) {
if (descriptor == generatorUpgrade && availableMountPoints.contains(MountPointName.BottomBack)) MountPointName.BottomBack
else if (descriptor == inventoryUpgrade && availableMountPoints.contains(MountPointName.TopBack)) MountPointName.TopBack
else MountPointName.Any
Expand All @@ -31,7 +31,7 @@ object UpgradeRenderer {
def canRender(stack: ItemStack): Boolean = {
val descriptor = api.Items.get(stack)

descriptor == craftingUpgrade || descriptor == generatorUpgrade || descriptor == inventoryUpgrade
descriptor == craftingUpgrade || descriptor == arcaneCraftingUpgrade || descriptor == generatorUpgrade || descriptor == inventoryUpgrade
}

def render(stack: ItemStack, mountPoint: MountPoint): Unit = {
Expand All @@ -44,6 +44,13 @@ object UpgradeRenderer {
RenderState.checkError(getClass.getName + ".renderItem: crafting upgrade")
}

else if (descriptor == api.Items.get(Constants.ItemName.ArcaneCraftingUpgrade)) {
Minecraft.getMinecraft.getTextureManager.bindTexture(Textures.upgradeArcaneCrafting)
drawSimpleBlock(mountPoint)

RenderState.checkError(getClass.getName + ".renderItem: arcane crafting upgrade")
}

else if (descriptor == api.Items.get(Constants.ItemName.GeneratorUpgrade)) {
Minecraft.getMinecraft.getTextureManager.bindTexture(Textures.upgradeGenerator)
drawSimpleBlock(mountPoint, if (Item.dataTag(stack).getInteger("remainingTicks") > 0) 0.5f else 0)
Expand Down
2 changes: 2 additions & 0 deletions src/main/scala/li/cil/oc/common/init/Items.scala
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ object Items extends ItemAPI {
safeGetStack(Constants.ItemName.TankUpgrade),
safeGetStack(Constants.ItemName.TankControllerUpgrade),
safeGetStack(Constants.ItemName.CraftingUpgrade),
safeGetStack(Constants.ItemName.ArcaneCraftingUpgrade),
safeGetStack(Constants.ItemName.HoverUpgradeTier2),
safeGetStack(Constants.ItemName.TradingUpgrade),
safeGetStack(Constants.ItemName.ExperienceUpgrade),
Expand Down Expand Up @@ -553,6 +554,7 @@ object Items extends ItemAPI {
Recipes.addSubItem(new item.UpgradeRITEG(multi), Constants.ItemName.RITEGUpgrade, "oc:rtgUpgrade")

Recipes.addSubItem(new item.TpsCard(multi), Constants.ItemName.TpsCard, "oc:tpsCard")
Recipes.addSubItem(new item.UpgradeArcaneCrafting(multi), Constants.ItemName.ArcaneCraftingUpgrade, "oc:arcaneCraftingUpgrade")

// Register aliases.
for ((k, v) <- aliases) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package li.cil.oc.common.item

class UpgradeArcaneCrafting(val parent: Delegator) extends traits.Delegate with traits.ItemTier
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package li.cil.oc.integration.opencomputers

import li.cil.oc.Constants
import li.cil.oc.api
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
import li.cil.oc.common.Slot
import li.cil.oc.common.Tier
import li.cil.oc.server.component
import net.minecraft.item.ItemStack

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

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

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

override def tier(stack: ItemStack) = Tier.Three

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

}
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,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 +196,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 +229,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 +263,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 +281,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 +318,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
Loading