mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-18 11:48:02 -04:00
added block placer upgrade, still does not work properly in all cases
This commit is contained in:
parent
c0dd2fe113
commit
930e97c884
@ -118,6 +118,11 @@ navigationUpgrade {
|
|||||||
["oc:circuitTier3", {item=map, subID=any}, "oc:circuitTier3"]
|
["oc:circuitTier3", {item=map, subID=any}, "oc:circuitTier3"]
|
||||||
[ingotGold, potion, ingotGold]]
|
[ingotGold, potion, ingotGold]]
|
||||||
}
|
}
|
||||||
|
blockPlacerAirUpgrade {
|
||||||
|
input: [[ingotIron, enderPearl, ingotIron]
|
||||||
|
["oc:circuitTier1", pistonStickyBase, "oc:circuitTier1"]
|
||||||
|
[ingotIron, enderPearl, ingotIron]]
|
||||||
|
}
|
||||||
signUpgrade {
|
signUpgrade {
|
||||||
input: [[ingotIron, dyePowder, ingotIron]
|
input: [[ingotIron, dyePowder, ingotIron]
|
||||||
["oc:circuitTier1", stickWood, "oc:circuitTier1"]
|
["oc:circuitTier1", stickWood, "oc:circuitTier1"]
|
||||||
|
@ -45,6 +45,7 @@ object Items {
|
|||||||
var upgradeNavigation: item.UpgradeNavigation = _
|
var upgradeNavigation: item.UpgradeNavigation = _
|
||||||
var upgradeSign: item.UpgradeSign = _
|
var upgradeSign: item.UpgradeSign = _
|
||||||
var upgradeSolarGenerator: item.UpgradeSolarGenerator = _
|
var upgradeSolarGenerator: item.UpgradeSolarGenerator = _
|
||||||
|
var upgradeBlockPlacerAir: item.UpgradeBlockPlacerAir = _
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
// Crafting
|
// Crafting
|
||||||
@ -95,6 +96,7 @@ object Items {
|
|||||||
|
|
||||||
upgradeCrafting = Recipes.addItemDelegate(new item.UpgradeCrafting(multi), "craftingUpgrade")
|
upgradeCrafting = Recipes.addItemDelegate(new item.UpgradeCrafting(multi), "craftingUpgrade")
|
||||||
upgradeGenerator = Recipes.addItemDelegate(new item.UpgradeGenerator(multi), "generatorUpgrade")
|
upgradeGenerator = Recipes.addItemDelegate(new item.UpgradeGenerator(multi), "generatorUpgrade")
|
||||||
|
upgradeBlockPlacerAir = Recipes.addItemDelegate(new item.UpgradeBlockPlacerAir(multi), "blockPlacerAirUpgrade")
|
||||||
|
|
||||||
ironNugget = new item.IronNugget(multi)
|
ironNugget = new item.IronNugget(multi)
|
||||||
|
|
||||||
|
@ -63,6 +63,7 @@ class Proxy {
|
|||||||
api.Driver.add(driver.item.UpgradeNavigation)
|
api.Driver.add(driver.item.UpgradeNavigation)
|
||||||
api.Driver.add(driver.item.UpgradeSign)
|
api.Driver.add(driver.item.UpgradeSign)
|
||||||
api.Driver.add(driver.item.UpgradeSolarGenerator)
|
api.Driver.add(driver.item.UpgradeSolarGenerator)
|
||||||
|
api.Driver.add(driver.item.UpgradeBlockPlacerAir)
|
||||||
api.Driver.add(driver.item.WirelessNetworkCard)
|
api.Driver.add(driver.item.WirelessNetworkCard)
|
||||||
|
|
||||||
if (Mods.ComputerCraft15.isAvailable) {
|
if (Mods.ComputerCraft15.isAvailable) {
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
|
import java.util
|
||||||
|
import net.minecraft.item.{ItemStack, EnumRarity}
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import li.cil.oc.Settings
|
||||||
|
import li.cil.oc.util.Tooltip
|
||||||
|
import net.minecraft.client.renderer.texture.IconRegister
|
||||||
|
|
||||||
|
class UpgradeBlockPlacerAir(val parent: Delegator) extends Delegate {
|
||||||
|
val unlocalizedName = "UpgradeBlockPlacerAir"
|
||||||
|
|
||||||
|
override def rarity = EnumRarity.epic
|
||||||
|
|
||||||
|
override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
|
tooltip.addAll(Tooltip.get(unlocalizedName))
|
||||||
|
super.tooltipLines(stack, player, tooltip, advanced)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def registerIcons(iconRegister: IconRegister) = {
|
||||||
|
super.registerIcons(iconRegister)
|
||||||
|
|
||||||
|
icon = iconRegister.registerIcon(Settings.resourceDomain + ":upgrade_block_placer_air")
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package li.cil.oc.server.component
|
||||||
|
|
||||||
|
|
||||||
|
import net.minecraft.tileentity.TileEntity
|
||||||
|
import li.cil.oc.api.Network
|
||||||
|
import li.cil.oc.api.network.Visibility
|
||||||
|
|
||||||
|
class UpgradeBlockPlacerAir(val owner: TileEntity) extends ManagedComponent {
|
||||||
|
val node = Network.newNode(this, Visibility.Network).
|
||||||
|
withComponent("airplacer").
|
||||||
|
create()
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
override val canUpdate = false
|
||||||
|
|
||||||
|
}
|
@ -1,12 +1,11 @@
|
|||||||
package li.cil.oc.server.component.robot
|
package li.cil.oc.server.component.robot
|
||||||
|
|
||||||
import li.cil.oc.api
|
import li.cil.oc.{Items, api, OpenComputers, Settings}
|
||||||
import li.cil.oc.api.network._
|
import li.cil.oc.api.network._
|
||||||
import li.cil.oc.common.tileentity
|
import li.cil.oc.common.tileentity
|
||||||
import li.cil.oc.server.component.ManagedComponent
|
import li.cil.oc.server.component.ManagedComponent
|
||||||
import li.cil.oc.server.{PacketSender => ServerPacketSender}
|
import li.cil.oc.server.{PacketSender => ServerPacketSender}
|
||||||
import li.cil.oc.util.ExtendedNBT._
|
import li.cil.oc.util.ExtendedNBT._
|
||||||
import li.cil.oc.{OpenComputers, Settings}
|
|
||||||
import net.minecraft.block.{BlockFluid, Block}
|
import net.minecraft.block.{BlockFluid, Block}
|
||||||
import net.minecraft.entity.item.{EntityMinecart, EntityMinecartContainer, EntityItem}
|
import net.minecraft.entity.item.{EntityMinecart, EntityMinecartContainer, EntityItem}
|
||||||
import net.minecraft.entity.{EntityLivingBase, Entity}
|
import net.minecraft.entity.{EntityLivingBase, Entity}
|
||||||
@ -245,7 +244,7 @@ class Robot(val robot: tileentity.Robot) extends ManagedComponent {
|
|||||||
case Some(hit) if hit.typeOfHit == EnumMovingObjectType.TILE =>
|
case Some(hit) if hit.typeOfHit == EnumMovingObjectType.TILE =>
|
||||||
val (bx, by, bz, hx, hy, hz) = clickParamsFromHit(hit)
|
val (bx, by, bz, hx, hy, hz) = clickParamsFromHit(hit)
|
||||||
player.placeBlock(robot.selectedSlot, bx, by, bz, hit.sideHit, hx, hy, hz)
|
player.placeBlock(robot.selectedSlot, bx, by, bz, hit.sideHit, hx, hy, hz)
|
||||||
case None if Settings.get.canPlaceInAir && player.closestEntity[Entity]().isEmpty =>
|
case None if (Items.multi.subItem(robot.getStackInSlot(3)) == Items.upgradeBlockPlacerAir) && player.closestEntity[Entity]().isEmpty =>
|
||||||
val (bx, by, bz, hx, hy, hz) = clickParamsFromFacing(facing, side)
|
val (bx, by, bz, hx, hy, hz) = clickParamsFromFacing(facing, side)
|
||||||
player.placeBlock(robot.selectedSlot, bx, by, bz, side.getOpposite.ordinal, hx, hy, hz)
|
player.placeBlock(robot.selectedSlot, bx, by, bz, side.getOpposite.ordinal, hx, hy, hz)
|
||||||
case _ => false
|
case _ => false
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
package li.cil.oc.server.driver.item
|
||||||
|
|
||||||
|
import li.cil.oc.Items
|
||||||
|
import li.cil.oc.api.driver.Slot
|
||||||
|
import li.cil.oc.api.machine.Robot
|
||||||
|
import li.cil.oc.server.component
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.tileentity.TileEntity
|
||||||
|
|
||||||
|
object UpgradeBlockPlacerAir extends Item {
|
||||||
|
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.upgradeBlockPlacerAir)
|
||||||
|
|
||||||
|
override def createEnvironment(stack: ItemStack, container: TileEntity) =
|
||||||
|
container match {
|
||||||
|
case robot: Robot => new component.UpgradeBlockPlacerAir(robot)
|
||||||
|
case _ => null
|
||||||
|
}
|
||||||
|
|
||||||
|
override def slot(stack: ItemStack) = Slot.Upgrade
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user