43 lines
1.6 KiB
Kotlin
43 lines
1.6 KiB
Kotlin
package net.shadowfacts.phycon.network.block.terminal
|
|
|
|
import alexiil.mc.lib.attributes.AttributeList
|
|
import alexiil.mc.lib.attributes.AttributeProvider
|
|
import net.minecraft.block.BlockState
|
|
import net.minecraft.block.Material
|
|
import net.minecraft.entity.player.PlayerEntity
|
|
import net.minecraft.util.Hand
|
|
import net.minecraft.util.Identifier
|
|
import net.minecraft.util.hit.BlockHitResult
|
|
import net.minecraft.util.math.BlockPos
|
|
import net.minecraft.util.math.Direction
|
|
import net.minecraft.world.BlockView
|
|
import net.minecraft.world.World
|
|
import net.shadowfacts.phycon.PhysicalConnectivity
|
|
import net.shadowfacts.phycon.api.NetworkComponent
|
|
import net.shadowfacts.phycon.block.BlockWithEntity
|
|
import java.util.*
|
|
|
|
/**
|
|
* @author shadowfacts
|
|
*/
|
|
class TerminalBlock: BlockWithEntity<TerminalBlockEntity>(Settings.of(Material.METAL)), NetworkComponent, AttributeProvider {
|
|
companion object {
|
|
val ID = Identifier(PhysicalConnectivity.MODID, "terminal")
|
|
}
|
|
|
|
override fun getNetworkConnectedSides(state: BlockState, world: World, pos: BlockPos): Collection<Direction> {
|
|
return EnumSet.allOf(Direction::class.java)
|
|
}
|
|
|
|
override fun createBlockEntity(world: BlockView) = TerminalBlockEntity()
|
|
|
|
override fun activate(blockState_1: BlockState?, world_1: World?, blockPos_1: BlockPos?, playerEntity_1: PlayerEntity?, hand_1: Hand?, blockHitResult_1: BlockHitResult?): Boolean {
|
|
getBlockEntity(world_1!!, blockPos_1!!)!!.onActivate()
|
|
return true
|
|
}
|
|
|
|
override fun addAllAttributes(world: World, pos: BlockPos, state: BlockState, to: AttributeList<*>) {
|
|
to.offer(getBlockEntity(world, pos))
|
|
}
|
|
}
|