@Override public int getSizeInventory() { return handler.getSlots(); }
public static Iterable<ItemStack> getBaubles(Entity entity) { if (CAPABILITY_BAUBLES == null) { return Collections.emptyList(); } IBaublesItemHandler handler = entity.getCapability(CAPABILITY_BAUBLES, null); if (handler == null) { return Collections.emptyList(); } return IntStream.range(0, handler.getSlots()).mapToObj(handler::getStackInSlot).filter(stack -> !stack.isEmpty()).collect(Collectors.toList()); }
for(int i = 0; i < baubles.getSlots(); i++) { if(baubles.isItemValidForSlot(i, toEquip, player)) { ItemStack stackInSlot = baubles.getStackInSlot(i);
private void syncSlots(EntityPlayer player, Collection<? extends EntityPlayer> receivers) { IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(player); for (int i = 0; i < baubles.getSlots(); i++) { syncSlot(player, i, baubles.getStackInSlot(i), receivers); } }
private void syncBaubles(EntityPlayer player, IBaublesItemHandler baubles) { ItemStack[] items = baublesSync.get(player.getUniqueID()); if (items == null) { items = new ItemStack[baubles.getSlots()]; Arrays.fill(items, ItemStack.EMPTY); baublesSync.put(player.getUniqueID(), items); } if (items.length != baubles.getSlots()) { ItemStack[] old = items; items = new ItemStack[baubles.getSlots()]; System.arraycopy(old, 0, items, 0, Math.min(old.length, items.length)); baublesSync.put(player.getUniqueID(), items); } Set<EntityPlayer> receivers = null; for (int i = 0; i < baubles.getSlots(); i++) { ItemStack stack = baubles.getStackInSlot(i); IBauble bauble = stack.getCapability(BaublesCapabilities.CAPABILITY_ITEM_BAUBLE, null); if (baubles.isChanged(i) || bauble != null && bauble.willAutoSync(stack, player) && !ItemStack.areItemStacksEqual(stack, items[i])) { if (receivers == null) { receivers = new HashSet<>(((WorldServer) player.world).getEntityTracker().getTrackingPlayers(player)); receivers.add(player); } syncSlot(player, i, stack, receivers); baubles.setChanged(i,false); items[i] = stack == null ? ItemStack.EMPTY : stack.copy(); } } }
/** Baubles **/ private ItemStack getHeadgear(EntityPlayer entity) { IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(entity); for (int i = 0; i < baubles.getSlots(); i++) { ItemStack bauble = baubles.getStackInSlot(i); if (bauble.isEmpty() || bauble.getItem() != GaiaItems.ACCESSORY_HEADGEAR) continue; return bauble; } return ItemStack.EMPTY; } }
/** * Returns if the passed in item is equipped in a bauble slot. Will return the first slot found * @return -1 if not found and slot number if it is found */ public static int isBaubleEquipped(EntityPlayer player, Item bauble) { IBaublesItemHandler handler = getBaublesHandler(player); for (int a=0;a<handler.getSlots();a++) { if (!handler.getStackInSlot(a).isEmpty() && handler.getStackInSlot(a).getItem()==bauble) return a; } return -1; } }
public void dropItemsAt(EntityPlayer player, List<EntityItem> drops, Entity e) { IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(player); for (int i = 0; i < baubles.getSlots(); ++i) { if (baubles.getStackInSlot(i) != null && !baubles.getStackInSlot(i).isEmpty()) { EntityItem ei = new EntityItem(e.world, e.posX, e.posY + e.getEyeHeight(), e.posZ, baubles.getStackInSlot(i).copy()); ei.setPickupDelay(40); float f1 = e.world.rand.nextFloat() * 0.5F; float f2 = e.world.rand.nextFloat() * (float) Math.PI * 2.0F; ei.motionX = (double) (-MathHelper.sin(f2) * f1); ei.motionZ = (double) (MathHelper.cos(f2) * f1); ei.motionY = 0.20000000298023224D; drops.add(ei); baubles.setStackInSlot(i, ItemStack.EMPTY); } } } }
@SubscribeEvent public void playerTick(TickEvent.PlayerTickEvent event) { // player events if (event.phase == TickEvent.Phase.END) { EntityPlayer player = event.player; IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(player); for (int i = 0; i < baubles.getSlots(); i++) { ItemStack stack = baubles.getStackInSlot(i); IBauble bauble = stack.getCapability(BaublesCapabilities.CAPABILITY_ITEM_BAUBLE, null); if (bauble != null) { bauble.onWornTick(stack, player); } } if (!player.world.isRemote) { syncBaubles(player, baubles); } } }
private void dispatchRenders(IBaublesItemHandler inv, EntityPlayer player, RenderType type, float partialTicks) { for(int i = 0; i < inv.getSlots(); i++) { ItemStack stack = inv.getStackInSlot(i); if(stack != null && !stack.isEmpty()) { Item item = stack.getItem(); if(item instanceof IRenderBauble) { GlStateManager.pushMatrix(); GL11.glColor3ub((byte) 255, (byte) 255, (byte) 255); GlStateManager.color(1F, 1F, 1F, 1F); ((IRenderBauble) stack.getItem()).onPlayerBaubleRender(stack, player, type, partialTicks); GlStateManager.popMatrix(); } } } }
@Override public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) { if(!world.isRemote) { IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(player); for(int i = 0; i < baubles.getSlots(); i++) if((baubles.getStackInSlot(i) == null || baubles.getStackInSlot(i).isEmpty()) && baubles.isItemValidForSlot(i, player.getHeldItem(hand), player)) { baubles.setStackInSlot(i, player.getHeldItem(hand).copy()); if(!player.capabilities.isCreativeMode){ player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); } onEquipped(player.getHeldItem(hand), player); break; } } return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, player.getHeldItem(hand)); }
for (int a = 0; a<baubles.getSlots();a++) { ItemStack st = baubles.getStackInSlot(a); if (!st.isEmpty() && st.hasCapability(BaublesCapabilities.CAPABILITY_ITEM_BAUBLE, null)) { int slot = -1; try { slot = Integer.parseInt(args[2]); } catch (Exception e) {} if (slot<0 || slot >= baubles.getSlots()) { sender.sendMessage(new TextComponentTranslation("\u00a7cInvalid arguments")); sender.sendMessage(new TextComponentTranslation("\u00a7cUse /baubles help to get help")); for (int a = 0; a<baubles.getSlots();a++) { baubles.setStackInSlot(a, ItemStack.EMPTY);
int slotShift = baubles.getSlots();