Package net.minecraft.entity.item

Examples of net.minecraft.entity.item.EntityMinecart


        if (stackReplace == null)
            return;

        stackStock = getStackInSlot(slotStock);

        EntityMinecart link_A = LinkageManager.instance().getLinkedCartA(this);
        EntityMinecart link_B = LinkageManager.instance().getLinkedCartB(this);

        if (stackStock == null || stackStock.stackSize < stackStock.getMaxStackSize()) {
            ItemStack stack = null;
            if (link_A instanceof IItemTransfer) {
                stack = ((IItemTransfer) link_A).requestItem(this, stackReplace);
View Full Code Here


        clearInv();
    }

    private void emptyCart() {
        movedItemCart = false;
        EntityMinecart cart = CartTools.getMinecartOnSide(worldObj, xCoord, yCoord, zCoord, 0.1f, getOrientation());

        if (cart == null) {
            setPowered(false);
            currentCart = null;
            return;
        }

        IInventory cartInv = null;
        if (cart instanceof IInventory) {
            cartInv = (IInventory) cart;
        }

        if (cartInv == null || cartInv.getSizeInventory() <= 0 || InvTools.isInventoryEmpty(cartInv)) {
            if (CartTools.cartVelocityIsLessThan(cart, STOP_VELOCITY) || cart.isPoweredCart()) {
                setPowered(true);
            }
            return;
        }


        if (cart != currentCart) {
            setPowered(false);
            currentCart = cart;
            transferedItems.clear();
            cartWasSent();
        }

        if (isSendCartGateAction()) {
            if (CartTools.cartVelocityIsLessThan(cart, STOP_VELOCITY)) {
                setPowered(true);
            }
            return;
        }

        ItemStack minecartSlot1 = getCartFilters().getStackInSlot(0);
        ItemStack minecartSlot2 = getCartFilters().getStackInSlot(1);
        if (minecartSlot1 != null || minecartSlot2 != null) {
            if (!CartUtils.doesCartMatchFilter(minecartSlot1, cart) && !CartUtils.doesCartMatchFilter(minecartSlot2, cart)) {
                if (CartTools.cartVelocityIsLessThan(cart, STOP_VELOCITY)) {
                    setPowered(true);
                }
                return;
            }
        }

        if (isPaused())
            return;

        LinkedList<IInventory> chests = new LinkedList<IInventory>(invCache.getAdjecentInventories());
        chests.addLast(invBuffer);

        checkedItems.clear();

        switch (getMode()) {
            case TRANSFER: {
                boolean hasFilter = false;
                for (ItemStack filter : getItemFilters().getContents()) {
                    if (filter == null) {
                        continue;
                    }
                    if (!checkedItems.add(filter)) {
                        continue;
                    }
                    hasFilter = true;
                    Short numMoved = transferedItems.get(filter);
                    if (numMoved == null) {
                        numMoved = 0;
                    }
                    if (numMoved < InvTools.countItems(getItemFilters(), filter)) {
                        ItemStack moved = InvTools.moveOneItem(cartInv, chests, filter);
                        if (moved != null) {
                            movedItemCart = true;
                            numMoved++;
                            transferedItems.put(moved, numMoved);
                            break;
                        }
                    }
                }
                if (!hasFilter) {
                    ItemStack moved = InvTools.moveOneItem(cartInv, chests);
                    if (moved != null) {
                        movedItemCart = true;
                        break;
                    }
                }
                break;
            }
            case STOCK: {
                for (ItemStack filter : getItemFilters().getContents()) {
                    if (filter == null) {
                        continue;
                    }
                    if (!checkedItems.add(filter)) {
                        continue;
                    }
                    int stocked = InvTools.countItems(chests, filter);
                    if (stocked < InvTools.countItems(getItemFilters(), filter)) {
                        ItemStack moved = InvTools.moveOneItem(cartInv, chests, filter);
                        if (moved != null) {
                            movedItemCart = true;
                            break;
                        }
                    }
                }
                break;
            }
            case EXCESS: {
                for (ItemStack filter : getItemFilters().getContents()) {
                    if (filter == null) {
                        continue;
                    }
                    if (!checkedItems.add(filter)) {
                        continue;
                    }
                    int stocked = InvTools.countItems(cartInv, filter);
                    if (stocked > InvTools.countItems(getItemFilters(), filter)) {
                        ItemStack moved = InvTools.moveOneItem(cartInv, chests, filter);
                        if (moved != null) {
                            movedItemCart = true;
                            break;
                        }
                    }
                }
                if (!movedItemCart) {
                    movedItemCart = InvTools.moveOneItemExcept(cartInv, chests, getItemFilters().getContents()) != null;
                }
                break;
            }
            case ALL: {
                boolean hasFilter = false;
                for (ItemStack filter : getItemFilters().getContents()) {
                    if (filter == null) {
                        continue;
                    }
                    if (!checkedItems.add(filter)) {
                        continue;
                    }
                    hasFilter = true;
                    ItemStack moved = InvTools.moveOneItem(cartInv, chests, filter);
                    if (moved != null) {
                        movedItemCart = true;
                        break;
                    }
                }
                if (!hasFilter) {
                    ItemStack moved = InvTools.moveOneItem(cartInv, chests);
                    if (moved != null) {
                        movedItemCart = true;
                        break;
                    }
                }
                break;
            }
        }

        EnumRedstoneMode state = getRedstoneModeController().getButtonState();
        if (state != EnumRedstoneMode.MANUAL && !isPowered() && (CartTools.cartVelocityIsLessThan(cart, STOP_VELOCITY) || cart.isPoweredCart())) {
            if (!movedItemCart && state != EnumRedstoneMode.COMPLETE) {
                setPowered(true);
            } else if (getMode() == EnumTransferMode.TRANSFER && isTranferComplete(getItemFilters().getContents())) {
                setPowered(true);
            } else if (getMode() == EnumTransferMode.STOCK && isStockComplete(chests, getItemFilters().getContents())) {
View Full Code Here

    public static EntityMinecart placeCart(EnumCart cartType, GameProfile owner, ItemStack cartStack, World world, int i, int j, int k) {
        Block block = world.getBlock(i, j, k);
        if (TrackTools.isRailBlock(block))
            if (!CartTools.isMinecartAt(world, i, j, k, 0)) {
                EntityMinecart cart = cartType.makeCart(cartStack, world, (float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F);
                if (cartStack.hasDisplayName())
                    cart.setMinecartName(cartStack.getDisplayName());
                CartTools.setCartOwner(cart, owner);
                if (world.spawnEntityInWorld(cart))
                    return cart;
            }
        return null;
View Full Code Here

    public static List<EntityMinecart> getMinecartsIn(World world, AxisAlignedBB searchBox) {
        List entities = world.getEntitiesWithinAABB(EntityMinecart.class, searchBox);
        List<EntityMinecart> carts = new ArrayList<EntityMinecart>();
        for (Object o : entities) {
            EntityMinecart cart = (EntityMinecart) o;
            if (!cart.isDead)
                carts.add((EntityMinecart) o);
        }
        return carts;
    }
View Full Code Here

            }
        }
    }

    protected void stockBallast() {
        EntityMinecart link = LinkageManager.instance().getLinkedCartA(this);
        if (link instanceof IItemTransfer) {
            IItemTransfer tranfer = (IItemTransfer) link;

            for (int slot = 0; slot < invBallast.getSizeInventory(); slot++) {
                ItemStack stack = invBallast.getStackInSlot(slot);
View Full Code Here

            }
        return false;
    }

    protected void stockTracks() {
        EntityMinecart link = LinkageManager.instance().getLinkedCartA(this);
        if (link instanceof IItemTransfer) {
            IItemTransfer tranfer = (IItemTransfer) link;

            for (int slot = 0; slot < invRails.getSizeInventory(); slot++) {
                ItemStack stack = invRails.getStackInSlot(slot);
View Full Code Here

        if (!canMineBlock(x, y, z, block, meta))
            return false;

        ArrayList<ItemStack> items = block.getDrops(worldObj, x, y, z, meta, 0);
        EntityMinecart link = LinkageManager.instance().getLinkedCartA(this);

        for (ItemStack item : items) {
            if (StackFilter.FUEL.matches(item))
                item = InvTools.moveItemStack(item, invFuel);
View Full Code Here

    public boolean hasFuel() {
        return getFuel() > 0;
    }

    protected void stockFuel() {
        EntityMinecart link = LinkageManager.instance().getLinkedCartA(this);
        if (link instanceof IItemTransfer) {
            IItemTransfer tranfer = (IItemTransfer) link;

            for (int slot = 0; slot < invFuel.getSizeInventory(); slot++) {
                ItemStack stack = invFuel.getStackInSlot(slot);
View Full Code Here

            }
        }

        boolean needsPipe = false;

        EntityMinecart cart = CartTools.getMinecartOnSide(worldObj, xCoord, yCoord, zCoord, 0.2f, ForgeDirection.DOWN);
        if (cart == null) {
            cart = CartTools.getMinecartOnSide(worldObj, xCoord, yCoord - 1, zCoord, 0.2f, ForgeDirection.DOWN);
            needsPipe = true;
        }
View Full Code Here

        if (timeSinceLastSpawn < Integer.MAX_VALUE)
            timeSinceLastSpawn++;
    }

    public void onPulse() {
        EntityMinecart cart = CartTools.getMinecartOnSide(worldObj, xCoord, yCoord, zCoord, 0, direction);
        if (cart == null) {
            if (timeSinceLastSpawn > RailcraftConfig.getCartDispenserMinDelay() * 20)
                for (int ii = 0; ii < getSizeInventory(); ii++) {
                    ItemStack cartStack = getStackInSlot(ii);
                    if (cartStack != null) {
                        int x = MiscTools.getXOnSide(xCoord, direction);
                        int y = MiscTools.getYOnSide(yCoord, direction);
                        int z = MiscTools.getZOnSide(zCoord, direction);
                        boolean minecartItem = cartStack.getItem() instanceof IMinecartItem;
                        if (cartStack.getItem() instanceof ItemMinecart || minecartItem) {
                            boolean canPlace = true;
                            if (minecartItem)
                                canPlace = ((IMinecartItem) cartStack.getItem()).canBePlacedByNonPlayer(cartStack);
                            if (canPlace) {
                                ItemStack placedStack = cartStack.copy();
                                EntityMinecart placedCart = CartTools.placeCart(getOwner(), placedStack, (WorldServer) worldObj, x, y, z);
                                if (placedCart != null) {
                                    decrStackSize(ii, 1);
                                    timeSinceLastSpawn = 0;
                                    break;
                                }
View Full Code Here

TOP

Related Classes of net.minecraft.entity.item.EntityMinecart

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.