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

walkmc.hologram.entity.EntityHologramItem.kt Maven / Gradle / Ivy

package walkmc.hologram.entity

import net.minecraft.server.*
import net.minecraft.server.DamageSource
import org.bukkit.*
import walkmc.*
import walkmc.extensions.*

/**
 * A base entity for any item line entity.
 */
abstract class EntityHologramItem : EntityItem {
	
	constructor(world: MinecraftWorld) : super(world)
	constructor(world: MinecraftWorld, location: Location, item: ItemStack)
		: super(world, location.x, location.y, location.z, item)
	
	var item: ItemStack = ItemStack(Blocks.BARRIER)
	
	init {
		noclip = false
		pickupDelay = 32767
		age = -32768
		setBoundingBox(NullBoundingBox())
	}
	
	fun setItem(item: org.bukkit.inventory.ItemStack) {
		this.item = item.handlerCopy() ?: ItemStack(Blocks.BARRIER)
		super.setItemStack(this.item)
	}
	
	open fun delete() {
		dead = true
		if (vehicle != null)
			vehicle.dead = true
	}
	
	override fun onUpdate() {
		u()
		onTick()
	}
	
	override fun isInvulnerable(damagesource: DamageSource?): Boolean {
		return true
	}
	
	override fun isAlive(): Boolean {
		return false
	}
	
	override fun canBeCollidedWith(): Boolean {
		return false
	}
	
	override fun canBePushed(): Boolean {
		return false
	}
	
	override fun die() {
	}
	
	override fun onKillCommand() {
	}
	
	override fun a(i: Int) {
		super.a(32767)
	}
	
	override fun burn(damage: Float) {
	}
	
	override fun playSound(s: String?, f: Float, f1: Float) {
	}
	
	override fun damageEntity(damagesource: DamageSource?, f: Float): Boolean {
		return false
	}
	
	override fun travelToDimension(dimensionId: Int) {
	}
	
	override fun setItemStack(itemstack: ItemStack?) {
		this.item = itemstack ?: ItemStack(Blocks.BARRIER)
		super.setItemStack(item)
	}
	
	override fun getItemStack(): ItemStack {
		return item
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy