All Downloads are FREE. Search and download functionalities are using the official Maven repository.

walkmc.block.AbstractBlock.kt Maven / Gradle / Ivy

package walkmc.block

import org.bukkit.*
import org.bukkit.block.*
import org.bukkit.entity.*
import org.bukkit.inventory.*
import walkmc.extensions.*
import walkmc.serializer.tag.impl.*

/**
 * A abstract implementation of [IBlock].
 *
 * This works like skeletal model for custom blocks and others
 * implementations must extend this class.
 */
abstract class AbstractBlock : IBlock {
	
	override lateinit var block: Block
	override lateinit var location: Location
	override lateinit var world: World
	
	override var info: BlockInfo = BlockInfo()
	override var ticks: Int = 0
	
	override fun onRegister() {
	}
	
	override fun onTick() {
	}
	
	override fun onInteract(player: Player, click: Click) {
	}
	
	override fun onBreak(player: Player) {
	}
	
	override fun onPlace(player: Player, item: ItemStack) {
	}
	
	override fun onMove(player: Player) {
	}
	
	override fun onStep(entity: Entity) {
	}
	
	override fun onJump(entity: Entity) {
	}
	
	override fun onFall(entity: Entity) {
	}
	
	override fun onCollide(entity: Entity) {
	}
	
	override fun doPhysics() {
	}
	
	override fun getItem(): ItemStack {
		return newItem(block.material).setCustomBlockPart()
	}
	
	override fun loadData(tag: CompoundTag) {
	}
	
	override fun saveData(tag: CompoundTag) {
	}
	
	override fun onLoad() {
	}
	
	override fun onEnable() {
	}
	
	override fun onDisable() {
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy