本文整理了Java中net.minecraft.util.NonNullList.get()
方法的一些代码示例,展示了NonNullList.get()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。NonNullList.get()
方法的具体详情如下:
包路径:net.minecraft.util.NonNullList
类名称: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 );
内容来源于网络,如有侵权,请联系作者删除!