BlackSpark644

BlockGenericPowerBank.scala

May 15th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 2.09 KB | None | 0 0
  1. package me.jonak.upower.generics
  2.  
  3. import me.jonak.upower.block.tileentities.TilePowerBank
  4. import me.jonak.upower.core.UPower
  5. import me.jonak.upower.material.MaterialMachine
  6. import net.minecraft.block.BlockContainer
  7. import net.minecraft.block.properties.PropertyInteger
  8. import net.minecraft.block.state.{BlockStateContainer, IBlockState}
  9. import net.minecraft.item.Item
  10. import net.minecraft.tileentity.TileEntity
  11. import net.minecraft.util.math.BlockPos
  12. import net.minecraft.world.{IBlockAccess, World}
  13.  
  14. /**
  15.   * Created by jonak on 5/10/2016.
  16.   */
  17. abstract class BlockGenericPowerBank(maxEnergy: Int, maxOutput: Int, name: String = "powerbank_generic")
  18.     extends BlockContainer(new MaterialMachine)
  19. {
  20.     private final val blockName = name
  21.     private final val CHARGE_PERCENT: PropertyInteger = PropertyInteger.create("charge_percent", 0, 10)
  22.     protected val item: Item
  23.  
  24.     def getName: String = blockName
  25.  
  26.     def getItem: Item = item
  27.  
  28.     def registerRecipe(): Unit // Registers the block's recipe.
  29.  
  30.     override def createNewTileEntity(worldIn: World, meta: Int): TileEntity =
  31.     {
  32.         println("Placed Tile")
  33.         new TilePowerBank(0, maxEnergy, maxOutput)
  34.     }
  35.  
  36.     // This is the line causing the error
  37.     override def createBlockState: BlockStateContainer = new BlockStateContainer(this, CHARGE_PERCENT)
  38.  
  39.     override def getActualState(state: IBlockState, worldIn: IBlockAccess, pos: BlockPos): IBlockState =
  40.     {
  41.         val currentPower = worldIn.getTileEntity(pos).asInstanceOf[TilePowerBank].getPowerContained
  42.         val maxPower = worldIn.getTileEntity(pos).asInstanceOf[TilePowerBank].getMaxPower
  43.         return state.withProperty(CHARGE_PERCENT, Integer.valueOf(Math.floor(currentPower / maxPower * 10).asInstanceOf[Int]))
  44.     }
  45.  
  46.     setUnlocalizedName(name) // Sets the unlocalized name based on initialization parameters.
  47.     setRegistryName(name) // Sets the registry name based on the initialization parameters.
  48.     setCreativeTab(UPower.uPowerCreativeTab) // Sets the tab to the mod's creative tab.
  49.     setDefaultState(getBlockState.getBaseState.withProperty(CHARGE_PERCENT, Integer.valueOf(0))) // Sets the default state to 0% charge.
  50.  
  51. }
Add Comment
Please, Sign In to add comment