| 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.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")).toString) |
| } |
| } |
| |
| 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.getAABBPool.getAABB(0, 0, 0, 1, 0.5f, 1) |
| |
| override def itemBounds() { |
| parent.setBlockBounds(AxisAlignedBB.getAABBPool.getAABB(0, 0, 0, 1, 0.5f, 1)) |
| } |
| |
| // ----------------------------------------------------------------------- // |
| |
| override def hasTileEntity = true |
| |
| override def createTileEntity(world: World) = Some(new tileentity.Hologram(tier)) |
| } |