package com.dta.extracarts.mods.minechem.entities;
import com.dta.extracarts.client.OpenableGUI;
import com.dta.extracarts.entities.EntityExtraCartChestMinecart;
import com.dta.extracarts.mods.minechem.MinechemModule;
import com.dta.extracarts.mods.minechem.client.ContainerLeadedChestCart;
import com.dta.extracarts.mods.minechem.client.GUILeadedChestCart;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.registry.GameRegistry;
import mods.railcraft.api.carts.IMinecart;
import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
/**
* Created by Skylar on 3/30/2015.
*/
@Optional.Interface(iface = "mods.railcraft.api.carts.IMinecart", modid = "RailcraftAPI|carts")
public class EntityLeadedChestCart extends EntityExtraCartChestMinecart implements OpenableGUI, IMinecart {
private Block leadedChest = GameRegistry.findBlock("minechem", "tile.leadChest");
public EntityLeadedChestCart(World world) {
super(world);
}
@Override
public void killMinecart(DamageSource par1DamageSource) {
super.killMinecart(par1DamageSource, new ItemStack(leadedChest, 1, 0));
}
@Override
public int getSizeInventory() {
return 9;
}
@Override
public Block func_145817_o() {
return leadedChest;
}
@Override
public Block func_145820_n() {
return leadedChest;
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUILeadedChestCart(player.inventory, this);
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerLeadedChestCart(player.inventory, this);
}
@Optional.Method(modid = "RailcraftAPI|carts")
public boolean doesCartMatchFilter(ItemStack stack, EntityMinecart cart) {
ItemStack CartStack = new ItemStack(MinechemModule.itemLeadedChestCart, 1, 0);
if (cart instanceof EntityLeadedChestCart && stack.getItem() == CartStack.getItem() && stack.getItemDamage() == 0) {
return true;
}
return false;
}
}