Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / InventoryUtils.java
package net.minecraft.server;

import java.util.Random;

public class InventoryUtils {

    private static final Random a = new Random();

    public static void dropInventory(World world, BlockPosition blockposition, IInventory iinventory) {
        dropInventory(world, (double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ(), iinventory);
    }

    public static void dropEntity(World world, Entity entity, IInventory iinventory) {
        dropInventory(world, entity.locX(), entity.locY(), entity.locZ(), iinventory);
    }

    private static void dropInventory(World world, double d0, double d1, double d2, IInventory iinventory) {
        for (int i = 0; i < iinventory.getSize(); ++i) {
            dropItem(world, d0, d1, d2, iinventory.getItem(i));
        }

    }

    public static void a(World world, BlockPosition blockposition, NonNullList<ItemStack> nonnulllist) {
        nonnulllist.forEach((itemstack) -> {
            dropItem(world, (double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ(), itemstack);
        });
    }

    public static void dropItem(World world, double d0, double d1, double d2, ItemStack itemstack) {
        double d3 = (double) EntityTypes.ITEM.i();
        double d4 = 1.0D - d3;
        double d5 = d3 / 2.0D;
        double d6 = Math.floor(d0) + InventoryUtils.a.nextDouble() * d4 + d5;
        double d7 = Math.floor(d1) + InventoryUtils.a.nextDouble() * d4;
        double d8 = Math.floor(d2) + InventoryUtils.a.nextDouble() * d4 + d5;

        while (!itemstack.isEmpty()) {
            EntityItem entityitem = new EntityItem(world, d6, d7, d8, itemstack.cloneAndSubtract(InventoryUtils.a.nextInt(21) + 10));
            float f = 0.05F;

            entityitem.setMot(InventoryUtils.a.nextGaussian() * 0.05000000074505806D, InventoryUtils.a.nextGaussian() * 0.05000000074505806D + 0.20000000298023224D, InventoryUtils.a.nextGaussian() * 0.05000000074505806D);
            world.addEntity(entityitem);
        }

    }
}