/* * 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.locomotive.LocomotiveRenderType; import mods.railcraft.api.electricity.IElectricMinecart; import mods.railcraft.common.gui.EnumGui; import mods.railcraft.common.gui.GuiHandler; import mods.railcraft.common.items.ItemTicket; import mods.railcraft.common.util.inventory.InvTools; import mods.railcraft.common.util.inventory.wrappers.InventoryMapper; import mods.railcraft.common.util.misc.Game; import mods.railcraft.common.util.sounds.SoundHelper; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; /** * * @author CovertJaguar <http://www.railcraft.info/> */ public class EntityLocomotiveCreative extends EntityLocomotive implements ISidedInventory { private static final int SLOT_TICKET = 0; private static final int[] SLOTS = InvTools.buildSlotArray(0, 1); private final IInventory invTicket = new InventoryMapper(this, SLOT_TICKET, 2, false); public EntityLocomotiveCreative(World world) { super(world); } public EntityLocomotiveCreative(World world, double x, double y, double z) { super(world, x, y, z); } @Override public ICartType getCartType() { return EnumCart.LOCO_CREATIVE; } @Override public String getWhistle() { return SoundHelper.SOUND_LOCOMOTIVE_ELECTRIC_WHISTLE; } @Override protected void openGui(EntityPlayer player) { GuiHandler.openGui(EnumGui.LOCO_CREATIVE, player, worldObj, this); } @Override public void setMode(LocoMode mode) { if (mode == LocoMode.IDLE) mode = LocoMode.SHUTDOWN; super.setMode(mode); } @Override protected int getIdleFuelUse() { return 0; } @Override public int getMoreGoJuice() { return 100; } @Override public LocomotiveRenderType getRenderType() { return LocomotiveRenderType.ELECTRIC; } @Override protected ItemStack getCartItemBase() { return EnumCart.LOCO_CREATIVE.getCartItem(); } @Override public float getOptimalDistance(EntityMinecart cart) { return 0.92f; } @Override public void onUpdate() { super.onUpdate(); } @Override protected IInventory getTicketInventory() { return invTicket; } @Override public int getSizeInventory() { return 2; } @Override public int[] getAccessibleSlotsFromSide(int var1) { return SLOTS; } @Override public boolean canInsertItem(int slot, ItemStack stack, int side) { return isItemValidForSlot(slot, stack); } @Override public boolean canExtractItem(int slot, ItemStack stack, int side) { return slot == SLOT_TICKET; } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { switch (slot) { case SLOT_TICKET: return ItemTicket.FILTER.matches(stack); default: return false; } } @Override public void writeEntityToNBT(NBTTagCompound data) { super.writeEntityToNBT(data); } @Override public void readEntityFromNBT(NBTTagCompound data) { super.readEntityFromNBT(data); } }