Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.cifrazia.entity;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.NonNullList;
- import noppes.npcs.entity.EntityNPCInterface;
- import org.apache.commons.lang3.tuple.Pair;
- import org.cifrazia.stat.npc.NpcCapability;
- import org.cifrazia.stat.npc.NpcCapabilityProvider;
- import java.util.List;
- import java.util.stream.Collectors;
- public class EntityDeadNPCWrapper implements IEntityLootable {
- private NpcCapability capability;
- private int invHeight;
- private EntityNPCInterface npc;
- private List<ItemStack> resultDrops;
- public EntityDeadNPCWrapper(EntityNPCInterface npc) {
- this.npc = npc;
- capability = npc.getCapability(NpcCapabilityProvider.NPC_CAP, null);
- resultDrops = capability.drops
- .stream()
- .filter(p -> {
- float v = npc.world.rand.nextFloat();
- return p.getRight() > v;
- })
- .map(Pair::getLeft)
- .collect(Collectors.toList());
- invHeight = (int) Math.ceil(((float)resultDrops.size())/9);
- System.out.println(invHeight);//1
- System.out.println(resultDrops);//apple
- }
- @Override
- public int getLootableInventorySize() {
- return invHeight * 9;
- }
- @Override
- public NonNullList<ItemStack> getInventory() {
- return NonNullList.from(ItemStack.EMPTY, resultDrops.toArray(new ItemStack[0]));
- }
- @Override
- public String getRenderName() {
- return npc.getName();
- }
- @Override
- public float getWidth() {
- return npc.width;
- }
- @Override
- public float getHeight() {
- return npc.height;
- }
- @Override
- public int getInventoryWidth() {
- return 9;
- }
- @Override
- public int getInventoryHeight() {
- return invHeight;
- }
- @Override
- public int getTicksToCorpseDeath() {
- return npc.stats.respawnTime * 1000 / 2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment