mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-17 19:25:20 -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"]
|
||||
[ingotGold, potion, ingotGold]]
|
||||
}
|
||||
blockPlacerAirUpgrade {
|
||||
input: [[ingotIron, enderPearl, ingotIron]
|
||||
["oc:circuitTier1", pistonStickyBase, "oc:circuitTier1"]
|
||||
[ingotIron, enderPearl, ingotIron]]
|
||||
}
|
||||
signUpgrade {
|
||||
input: [[ingotIron, dyePowder, ingotIron]
|
||||
["oc:circuitTier1", stickWood, "oc:circuitTier1"]
|
||||
|
@ -45,6 +45,7 @@ object Items {
|
||||
var upgradeNavigation: item.UpgradeNavigation = _
|
||||
var upgradeSign: item.UpgradeSign = _
|
||||
var upgradeSolarGenerator: item.UpgradeSolarGenerator = _
|
||||
var upgradeBlockPlacerAir: item.UpgradeBlockPlacerAir = _
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// Crafting
|
||||
@ -95,6 +96,7 @@ object Items {
|
||||
|
||||
upgradeCrafting = Recipes.addItemDelegate(new item.UpgradeCrafting(multi), "craftingUpgrade")
|
||||
upgradeGenerator = Recipes.addItemDelegate(new item.UpgradeGenerator(multi), "generatorUpgrade")
|
||||
upgradeBlockPlacerAir = Recipes.addItemDelegate(new item.UpgradeBlockPlacerAir(multi), "blockPlacerAirUpgrade")
|
||||
|
||||
ironNugget = new item.IronNugget(multi)
|
||||
|
||||
|
@ -63,6 +63,7 @@ class Proxy {
|
||||
api.Driver.add(driver.item.UpgradeNavigation)
|
||||
api.Driver.add(driver.item.UpgradeSign)
|
||||
api.Driver.add(driver.item.UpgradeSolarGenerator)
|
||||
api.Driver.add(driver.item.UpgradeBlockPlacerAir)
|
||||
api.Driver.add(driver.item.WirelessNetworkCard)
|
||||
|
||||
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
|
||||
|
||||
import li.cil.oc.api
|
||||
import li.cil.oc.{Items, api, OpenComputers, Settings}
|
||||
import li.cil.oc.api.network._
|
||||
import li.cil.oc.common.tileentity
|
||||
import li.cil.oc.server.component.ManagedComponent
|
||||
import li.cil.oc.server.{PacketSender => ServerPacketSender}
|
||||
import li.cil.oc.util.ExtendedNBT._
|
||||
import li.cil.oc.{OpenComputers, Settings}
|
||||
import net.minecraft.block.{BlockFluid, Block}
|
||||
import net.minecraft.entity.item.{EntityMinecart, EntityMinecartContainer, EntityItem}
|
||||
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 =>
|
||||
val (bx, by, bz, hx, hy, hz) = clickParamsFromHit(hit)
|
||||
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)
|
||||
player.placeBlock(robot.selectedSlot, bx, by, bz, side.getOpposite.ordinal, hx, hy, hz)
|
||||
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