net.minecraft.util.NonNullList.get()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(11.9k)|赞(0)|评价(0)|浏览(100)

本文整理了Java中net.minecraft.util.NonNullList.get()方法的一些代码示例,展示了NonNullList.get()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。NonNullList.get()方法的具体详情如下:
包路径:net.minecraft.util.NonNullList
类名称:NonNullList
方法名:get

NonNullList.get介绍

暂无

代码示例

代码示例来源:origin: SlimeKnights/TinkersConstruct

try {
 toolPart = ToolBuilder.tryBuildToolPart(patternSlot.getStack(), ListUtil.getListFrom(input1.getStack(), input2.getStack()), false);
 if(toolPart != null && !toolPart.get(0).isEmpty()) {
  TinkerCraftingEvent.ToolPartCraftingEvent.fireEvent(toolPart.get(0), player);
  (secondary.isEmpty() || toolPart.get(1).isEmpty() || ItemStack.areItemsEqual(secondary, toolPart.get(1)) && ItemStack.areItemStackTagsEqual(secondary, toolPart.get(1)))) {
 craftResult.setInventorySlotContents(0, toolPart.get(0));

代码示例来源:origin: SlimeKnights/TinkersConstruct

/**
 * Builds an Itemstack of this tool with the given materials, if applicable.
 *
 * @param stacks Items to build with. Have to be in the correct order and have exact length. No nulls!
 * @return The built item or null if invalid input.
 */
@Nonnull
public ItemStack buildItemFromStacks(NonNullList<ItemStack> stacks) {
 long itemCount = stacks.stream().filter(stack -> !stack.isEmpty()).count();
 List<Material> materials = new ArrayList<>(stacks.size());
 if(itemCount != requiredComponents.length) {
  return ItemStack.EMPTY;
 }
 // not a valid part arrangement for this tool
 for(int i = 0; i < itemCount; i++) {
  if(!validComponent(i, stacks.get(i))) {
   return ItemStack.EMPTY;
  }
  materials.add(TinkerUtil.getMaterialFromStack(stacks.get(i)));
 }
 return buildItem(materials);
}

代码示例来源:origin: SlimeKnights/TinkersConstruct

@Override
 public Optional<Match> matches(NonNullList<ItemStack> stacks) {
  List<ItemStack> matches = Lists.newArrayList();
  Optional<Match> match = super.matches(stacks);
  while(match.isPresent() && matches.size() < 3) {
   ItemStack stack = match.get().stacks.get(0);
   matches.add(stack);
   // remove all meats of the same kind
   for(int i = 0; i < stacks.size(); i++) {
    if(stacks.get(i).getItem() == stack.getItem()) {
     stacks.set(i, ItemStack.EMPTY);
    }
   }
   match = super.matches(stacks);
  }
  if(matches.size() >= 3) {
   return Optional.of(new Match(matches, 1));
  }
  return Optional.empty();
 }
}

代码示例来源:origin: SlimeKnights/TinkersConstruct

@SubscribeEvent
 public static void onToolPartReplace(TinkerCraftingEvent.ToolPartReplaceEvent event) {
  ItemStack firstStack = event.getToolParts().get(0);
  if(firstStack.getItem() instanceof ToolPart) {
   if(((ToolPart) firstStack.getItem()).getMaterial(firstStack).equals(TinkerMaterials.ardite)) {
    event.setCanceled(true);
   }
  }
 }
}

代码示例来源:origin: SlimeKnights/TinkersConstruct

@Override
public ItemStack repair(ItemStack repairable, NonNullList<ItemStack> repairItems) {
 if(repairable.getItemDamage() == 0) {
  // nothing to repair, full durability
  return ItemStack.EMPTY;
 }
 // don't accept anything that's not wheat
 for(ItemStack repairItem : repairItems) {
  if(repairItem != null && repairItem.getItem() != Items.WHEAT) {
   return ItemStack.EMPTY;
  }
 }
 ItemStack stack = repairable.copy();
 int index = 0;
 while(stack.getItemDamage() > 0 && index < repairItems.size()) {
  ItemStack repairItem = repairItems.get(index);
  if(repairItem.getCount() > 0) {
   repairItem.shrink(1);
   //change = Math.min(change, stack.getMaxDamage() - stack.getItemDamage());
   stack.setItemDamage(stack.getItemDamage() - USES_PER_WHEAT);
   ToolHelper.healTool(stack, USES_PER_WHEAT, null);
  }
  else {
   index++;
  }
 }
 return stack;
}

代码示例来源:origin: SlimeKnights/TinkersConstruct

if(stacks.get(i).isEmpty()) {
 if(length < 0) {
  length = i;

代码示例来源:origin: SlimeKnights/TinkersConstruct

@Override
public void onCrafting(EntityPlayer player, ItemStack output, IInventory craftMatrix) {
 NonNullList<ItemStack> toolPart = NonNullList.create();
 try {
  toolPart = ToolBuilder.tryBuildToolPart(patternSlot.getStack(), ListUtil.getListFrom(input1.getStack(), input2.getStack()), true);
 } catch(TinkerGuiException e) {
  // don't need any user information at this stage
 }
 if(toolPart == null) {
  // undefined :I
  return;
 }
ItemStack secondOutput = toolPart.get(1);
 ItemStack secondary = secondarySlot.getStack();
 if(secondary.isEmpty()) {
  putStackInSlot(secondarySlot.slotNumber, secondOutput);
 }
 else if(!secondOutput.isEmpty() && ItemStack.areItemsEqual(secondary, secondOutput) && ItemStack.areItemStackTagsEqual(secondary, secondOutput)) {
  secondary.grow(secondOutput.getCount());
 }
 // clean up 0 size stacks
 // todo: this shouldn't be needed anymore, check
 /*for(int i = 0; i < craftMatrix.getSizeInventory(); i++) {
  if(craftMatrix.getStackInSlot(i).isEmpty() != null && craftMatrix.getStackInSlot(i).stackSize == 0) {
   craftMatrix.setInventorySlotContents(i, null);
  }
 }*/
 updateResult();
}

代码示例来源:origin: Vazkii/Botania

public static IItemHandler getFakeInv(EntityPlayer player) {
  ItemStackHandler ret = new ItemStackHandler(player.inventory.mainInventory.size());
  for(int i = 0; i < player.inventory.mainInventory.size(); i++) {
    ret.setStackInSlot(i, player.inventory.mainInventory.get(i).copy());
  }
  return ret;
}

代码示例来源:origin: Vazkii/Botania

@Override
public boolean hasArmorSetItem(EntityPlayer player, int i) {
  if(player == null || player.inventory == null || player.inventory.armorInventory == null)
    return false;
  
  ItemStack stack = player.inventory.armorInventory.get(3 - i);
  if(stack.isEmpty())
    return false;
  switch(i) {
  case 0: return stack.getItem() == ModItems.manaweaveHelm;
  case 1: return stack.getItem() == ModItems.manaweaveChest;
  case 2: return stack.getItem() == ModItems.manaweaveLegs;
  case 3: return stack.getItem() == ModItems.manaweaveBoots;
  }
  return false;
}

代码示例来源:origin: Vazkii/Botania

public boolean hasArmorSetItem(EntityPlayer player, int i) {
  if(player == null || player.inventory == null || player.inventory.armorInventory == null)
    return false;
  
  ItemStack stack = player.inventory.armorInventory.get(3 - i);
  if(stack.isEmpty())
    return false;
  switch(i) {
  case 0: return stack.getItem() == ModItems.manasteelHelm || stack.getItem() == ModItems.manasteelHelmRevealing;
  case 1: return stack.getItem() == ModItems.manasteelChest;
  case 2: return stack.getItem() == ModItems.manasteelLegs;
  case 3: return stack.getItem() == ModItems.manasteelBoots;
  }
  return false;
}

代码示例来源:origin: Vazkii/Botania

@Override
public boolean hasArmorSetItem(EntityPlayer player, int i) {
  if(player == null || player.inventory == null || player.inventory.armorInventory == null)
    return false;
  
  ItemStack stack = player.inventory.armorInventory.get(3 - i);
  if(stack.isEmpty())
    return false;
  switch(i) {
  case 0: return stack.getItem() == ModItems.elementiumHelm || stack.getItem() == ModItems.elementiumHelmRevealing;
  case 1: return stack.getItem() == ModItems.elementiumChest;
  case 2: return stack.getItem() == ModItems.elementiumLegs;
  case 3: return stack.getItem() == ModItems.elementiumBoots;
  }
  return false;
}

代码示例来源:origin: Vazkii/Botania

@Override
public boolean hasArmorSetItem(EntityPlayer player, int i) {
  if(player == null || player.inventory == null || player.inventory.armorInventory == null)
    return false;
  
  ItemStack stack = player.inventory.armorInventory.get(3 - i);
  if(stack.isEmpty())
    return false;
  switch(i) {
  case 0: return stack.getItem() == ModItems.terrasteelHelm || stack.getItem() == ModItems.terrasteelHelmRevealing;
  case 1: return stack.getItem() == ModItems.terrasteelChest;
  case 2: return stack.getItem() == ModItems.terrasteelLegs;
  case 3: return stack.getItem() == ModItems.terrasteelBoots;
  }
  return false;
}

代码示例来源:origin: Vazkii/Botania

/**
   * Gets the sum of all the discounts on IManaDiscountArmor items equipped
   * on the player passed in. This discount can vary based on what the passed tool is.
   */
  public static float getFullDiscountForTools(EntityPlayer player, ItemStack tool) {
    float discount = 0F;
    for(int i = 0; i < player.inventory.armorInventory.size(); i++) {
      ItemStack armor = player.inventory.armorInventory.get(i);
      if(!armor.isEmpty() && armor.getItem() instanceof IManaDiscountArmor)
        discount += ((IManaDiscountArmor) armor.getItem()).getDiscount(armor, i, player, tool);
    }

    ManaDiscountEvent event = new ManaDiscountEvent(player, discount, tool);
    MinecraftForge.EVENT_BUS.post(event);
    discount = event.getDiscount();

    return discount;
  }
}

代码示例来源:origin: Vazkii/Botania

Ingredient input = recipe.getIngredients().get(y * width + x);
      ItemStack[] stacks = input.getMatchingStacks();
      if(stacks.length > 0) {
  break drawGrid;
Ingredient input = recipe.getIngredients().get(index);
if(input != Ingredient.EMPTY) {
  ItemStack[] stacks = input.getMatchingStacks();

代码示例来源:origin: Vazkii/Botania

@Override
@SideOnly(Side.CLIENT)
public void renderRecipe(IGuiLexiconEntry gui, int mx, int my) {
  RecipeElvenTrade recipe = recipes.get(recipeAt);
  TextureManager render = Minecraft.getMinecraft().renderEngine;
  render.bindTexture(elvenTradeOverlay);
  GlStateManager.enableBlend();
  GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  GlStateManager.color(1F, 1F, 1F, 1F);
  ((GuiScreen) gui).drawTexturedModalRect(gui.getLeft(), gui.getTop(), 0, 0, gui.getWidth(), gui.getHeight());
  GlStateManager.disableBlend();
  List<ItemStack> outputs = recipe.getOutputs();
  for(int i = 0; i < outputs.size(); i++) {
    renderItemAtOutputPos(gui, i % 2, i / 2, outputs.get(i));
  }
  List<Object> inputs = recipe.getInputs();
  int i = 0;
  for(Object obj : inputs) {
    Object input = obj;
    if(input instanceof String)
      input = OreDictionary.getOres((String) input).get(0);
    renderItemAtInputPos(gui, i, (ItemStack) input);
    i++;
  }
  TextureAtlasSprite portalIcon = MiscellaneousIcons.INSTANCE.alfPortalTex;
  Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
  ((GuiScreen) gui).drawTexturedModalRect(gui.getLeft() + 22, gui.getTop() + 36, portalIcon, 48, 48);
}

代码示例来源:origin: Vazkii/Botania

@Override
@SideOnly(Side.CLIENT)
public void renderRecipe(IGuiLexiconEntry gui, int mx, int my) {
  T recipe = recipes.get(recipeAt);
  TextureManager render = Minecraft.getMinecraft().renderEngine;
  renderItemAtGridPos(gui, 3, 0, recipe.getOutput(), false);
  renderItemAtGridPos(gui, 2, 1, getMiddleStack(), false);
  List<Object> inputs = recipe.getInputs();
  int degreePerInput = (int) (360F / inputs.size());
  float currentDegree = ConfigHandler.lexiconRotatingItems ? GuiScreen.isShiftKeyDown() ? ticksElapsed : ticksElapsed + ClientTickHandler.partialTicks : 0;
  int inputIndex = ticksElapsed / 40;
  for(Object obj : inputs) {
    Object input = obj;
    if(input instanceof String) {
      NonNullList<ItemStack> list = OreDictionary.getOres((String) input); 
      int size = list.size();
      input = list.get(size - inputIndex % size - 1);
    }
    renderItemAtAngle(gui, currentDegree, (ItemStack) input);
    currentDegree += degreePerInput;
  }
  renderManaBar(gui, recipe, mx, my);
  render.bindTexture(petalOverlay);
  GlStateManager.enableBlend();
  GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  GlStateManager.color(1F, 1F, 1F, 1F);
  ((GuiScreen) gui).drawTexturedModalRect(gui.getLeft(), gui.getTop(), 0, 0, gui.getWidth(), gui.getHeight());
  GlStateManager.disableBlend();
}

代码示例来源:origin: SlimeKnights/TinkersConstruct

@SubscribeEvent(priority = EventPriority.HIGH)
 public void onPlayerClone(PlayerEvent.Clone evt) {
  if(!evt.isWasDeath() || evt.isCanceled()) {
   return;
  }
  if(evt.getOriginal() == null || evt.getEntityPlayer() == null || evt.getEntityPlayer() instanceof FakePlayer) {
   return;
  }
  if(evt.getEntityPlayer().getEntityWorld().getGameRules().getBoolean("keepInventory")) {
   return;
  }

  for(int i = 0; i < evt.getOriginal().inventory.mainInventory.size(); i++) {
   ItemStack stack = evt.getOriginal().inventory.mainInventory.get(i);
   if(TinkerUtil.hasModifier(stack.getTagCompound(), this.identifier)) {
    evt.getEntityPlayer().inventory.addItemStackToInventory(stack);
    evt.getOriginal().inventory.mainInventory.set(i, ItemStack.EMPTY);
   }
  }
 }
}

代码示例来源:origin: Vazkii/Botania

private void registerBrewAspects() {
  for(RecipeBrew brewRecipe : BotaniaAPI.brewRecipes) {
    AspectList aspects = new AspectList();
    
    for(Object input : brewRecipe.getInputs()) {
      ItemStack toAdd = ItemStack.EMPTY;
      if(input instanceof ItemStack) {
        toAdd = (ItemStack) input;
      } else if(input instanceof String) {
        toAdd = OreDictionary.getOres((String) input).get(0);
      }
      AspectList ingredientAspects = AspectHelper.getObjectAspects(toAdd);
      for (Aspect a : ingredientAspects.getAspects())
        aspects.add(a, ingredientAspects.getAmount(a));
    }
    for(Aspect aspect : aspects.getAspects()) {
      aspects.reduce(aspect, aspects.getAmount(aspect) / 2);
    }
    aspects.add(ALCHEMY, 8);
    
    for(ItemStack brewContainer : brewContainers) {
      ItemStack brewed = brewRecipe.getOutput(brewContainer);
      if(!brewed.isEmpty()) {
        proxy.registerObjectTag(brewed, new AspectList().add(aspects));
      }
    }
  }
}

代码示例来源:origin: Vazkii/Botania

for(Object input : inputs) {
  if(input instanceof String)
    input = OreDictionary.getOres((String) input).get(0);

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

final ItemStack itemstack2 = aitemstack.get( i );

相关文章