2022-05-23 23:15:12 +02:00

90 lines
2.2 KiB
Java

package com.hbm.entity.cart;
import com.hbm.items.tool.ItemModMinecart.EnumCartBase;
import com.hbm.render.entity.item.RenderNeoCart;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
public abstract class EntityMinecartNTM extends EntityMinecart {
public static final int cart_base_id = 23;
public EntityMinecartNTM(World p_i1712_1_) {
super(p_i1712_1_);
}
public EntityMinecartNTM(World world, double x, double y, double z, EnumCartBase type) {
super(world, x, y, z);
this.setBase(type);
}
@Override
protected void entityInit() {
super.entityInit();
this.dataWatcher.addObject(cart_base_id, new Integer(0)); //EnumCartBase
}
public void setBase(EnumCartBase type) {
this.dataWatcher.updateObject(cart_base_id, type.ordinal());
}
public EnumCartBase getBase() {
return EnumCartBase.values()[this.dataWatcher.getWatchableObjectInt(cart_base_id)];
}
@Override
public int getMinecartType() {
return -1;
}
@Override
public boolean canBeCollidedWith() {
return true;
}
@Override
public AxisAlignedBB getCollisionBox(Entity entity) {
return entity.boundingBox;
}
@Override
public AxisAlignedBB getBoundingBox() {
return this.boundingBox;
}
@Override
public void killMinecart(DamageSource p_94095_1_) {
this.setDead();
ItemStack itemstack = getCartItem();
if(this.func_95999_t() != null) {
itemstack.setStackDisplayName(this.func_95999_t());
}
this.entityDropItem(itemstack, 0.0F);
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbt) {
super.writeEntityToNBT(nbt);
nbt.setInteger("base", this.dataWatcher.getWatchableObjectInt(cart_base_id));
}
@Override
protected void readEntityFromNBT(NBTTagCompound nbt) {
super.readEntityFromNBT(nbt);
this.dataWatcher.updateObject(23, nbt.getInteger("base"));
}
@SideOnly(Side.CLIENT)
public void renderSpecialContent(RenderNeoCart renderer) { }
}