blob: a7748fccfebf96a1b35c17bb9366191de19a1604 [file] [log] [blame] [raw]
package li.cil.oc.common.block
import java.util
import cpw.mods.fml.common.Optional
import cpw.mods.fml.relauncher.{Side, SideOnly}
import li.cil.oc.common.tileentity
import li.cil.oc.util.mods.Mods
import li.cil.oc.{Localization, Settings}
import mcp.mobius.waila.api.{IWailaConfigHandler, IWailaDataAccessor}
import net.minecraft.item.{EnumRarity, ItemStack}
import net.minecraft.util.AxisAlignedBB
import net.minecraft.world.{IBlockAccess, World}
import net.minecraftforge.common.util.ForgeDirection
class Hologram(val parent: SpecialDelegator, val tier: Int) extends SpecialDelegate {
override val unlocalizedName = super.unlocalizedName + tier
override protected def customTextures = Array(
None,
Some("HologramTop" + tier),
Some("HologramSide"),
Some("HologramSide"),
Some("HologramSide"),
Some("HologramSide")
)
override def rarity = Array(EnumRarity.uncommon, EnumRarity.rare).apply(tier)
@Optional.Method(modid = Mods.IDs.Waila)
override def wailaBody(stack: ItemStack, tooltip: util.List[String], accessor: IWailaDataAccessor, config: IWailaConfigHandler) {
val node = accessor.getNBTData.getCompoundTag(Settings.namespace + "node")
if (node.hasKey("address")) {
tooltip.add(Localization.Analyzer.Address(node.getString("address")).getUnformattedText)
}
}
override def luminance(world: IBlockAccess, x: Int, y: Int, z: Int) = 15
override def isSolid(world: IBlockAccess, x: Int, y: Int, z: Int, side: ForgeDirection) = side == ForgeDirection.DOWN
@SideOnly(Side.CLIENT)
override def shouldSideBeRendered(world: IBlockAccess, x: Int, y: Int, z: Int, side: ForgeDirection) = {
super.shouldSideBeRendered(world, x, y, z, side) || side == ForgeDirection.UP
}
override def bounds(world: IBlockAccess, x: Int, y: Int, z: Int) =
AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.5f, 1)
override def itemBounds() {
parent.setBlockBounds(AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.5f, 1))
}
// ----------------------------------------------------------------------- //
override def hasTileEntity = true
override def createTileEntity(world: World) = Some(new tileentity.Hologram(tier))
}