/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.carts; import mods.railcraft.api.carts.IItemCart; import mods.railcraft.common.core.RailcraftConfig; import mods.railcraft.common.fluids.FluidItemHelper; import mods.railcraft.common.util.misc.Game; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import java.util.ArrayList; import java.util.List; public class EntityCartChest extends CartContainerBase implements IItemCart { public EntityCartChest(World world) { super(world); } public EntityCartChest(World world, double x, double y, double z) { super(world, x, y, z); } @Override public ICartType getCartType() { return EnumCart.CHEST; } @Override public List<ItemStack> getItemsDropped() { List<ItemStack> items = new ArrayList<ItemStack>(); if (RailcraftConfig.doCartsBreakOnDrop()) { items.add(new ItemStack(Items.minecart)); items.add(new ItemStack(Blocks.chest)); } else items.add(getCartItem()); return items; } @Override public ItemStack getCartItem() { ItemStack stack = new ItemStack(Items.chest_minecart); if (hasCustomInventoryName()) stack.setStackDisplayName(getCommandSenderName()); return stack; } @Override public boolean doInteract(EntityPlayer player) { if (Game.isHost(worldObj)) player.displayGUIChest(this); return true; } @Override public int getMinecartType() { return 1; } @Override public Block func_145820_n() { return Blocks.chest; } @Override public int getDefaultDisplayTileOffset() { return 8; } @Override public boolean canBeRidden() { return false; } @Override public int getSizeInventory() { return 27; } @Override public String getInventoryName() { return "Chest Cart"; } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { if (!RailcraftConfig.chestAllowLiquids()) return getStackInSlot(slot) == null || !FluidItemHelper.isContainer(stack); return true; } @Override public boolean canPassItemRequests() { return true; } @Override public boolean canAcceptPushedItem(EntityMinecart requester, ItemStack stack) { return true; } @Override public boolean canProvidePulledItem(EntityMinecart requester, ItemStack stack) { return true; } }