private void addNewAttunement( final IItemDefinition definition, final TunnelType type ) { definition.maybeStack( 1 ).ifPresent( definitionStack -> this.addNewAttunement( definitionStack, type ) ); } }
@Nonnull private Optional<ItemStack> getCellOutput( final ItemStack compared ) { for( final Map.Entry<IItemDefinition, IItemDefinition> entry : this.cellMappings.entrySet() ) { if( entry.getKey().isSameAs( compared ) ) { return entry.getValue().maybeStack( 1 ); } } return Optional.empty(); }
private void registerFacadeRecipe( IDefinitions definitions, IModRegistry registry ) { Optional<Item> itemFacade = definitions.items().facade().maybeItem(); Optional<ItemStack> cableAnchor = definitions.parts().cableAnchor().maybeStack( 1 ); if( itemFacade.isPresent() && cableAnchor.isPresent() ) { registry.addRecipeRegistryPlugin( new FacadeRegistryPlugin( (ItemFacade) itemFacade.get(), cableAnchor.get() ) ); } }
public AEColoredItemDefinition colored( IItemDefinition target, int offset ) { ColoredItemDefinition definition = new ColoredItemDefinition(); target.maybeItem().ifPresent( targetItem -> { for( final AEColor color : AEColor.VALID_COLORS ) { final ActivityState state = ActivityState.from( target.isEnabled() ); definition.add( color, new ItemStackSrc( targetItem, offset + color.ordinal(), state ) ); } } ); return definition; }
@Override public boolean allowInsert( IItemHandler inv, int slot, ItemStack stack ) { return this.definition.isSameAs( stack ); }
@Override public void registerItemSubtypes( ISubtypeRegistry subtypeRegistry ) { final Optional<Item> maybeFacade = AEApi.instance().definitions().items().facade().maybeItem(); maybeFacade.ifPresent( subtypeRegistry::useNbtForSubtypes ); }
@Override public int getMaxInstalled( final Upgrades upgrades ) { int max = 0; for( final ItemStack stack : upgrades.getSupported().keySet() ) { if( this.definition.isSameAs( stack ) ) { max = upgrades.getSupported().get( stack ); break; } } return max; } }
@Override public ItemStack getIconItemStack() { final Optional<Item> maybeFacade = AEApi.instance().definitions().items().facade().maybeItem(); if( maybeFacade.isPresent() ) { return ( (ItemFacade) maybeFacade.get() ).getCreativeTabIcon(); } return new ItemStack( Blocks.PLANKS ); } }
private ItemStack findFirst( final IItemDefinition... choices ) { for( final IItemDefinition definition : choices ) { Optional<ItemStack> maybeIs = definition.maybeStack( 1 ); if( maybeIs.isPresent() ) { return maybeIs.get(); } } return new ItemStack( Blocks.CHEST ); } }
@Nonnull private Optional<ItemStack> getNonCellOutput( final ItemStack compared ) { for( final Map.Entry<IItemDefinition, IItemDefinition> entry : this.nonCellMappings.entrySet() ) { if( entry.getKey().isSameAs( compared ) ) { return entry.getValue().maybeStack( 1 ); } } return Optional.empty(); }
public static boolean isRecipePrioritized( final ItemStack what ) { final IMaterials materials = AEApi.instance().definitions().materials(); boolean isPurified = materials.purifiedCertusQuartzCrystal().isSameAs( what ); isPurified |= materials.purifiedFluixCrystal().isSameAs( what ); isPurified |= materials.purifiedNetherQuartzCrystal().isSameAs( what ); return isPurified; } }
certusQuartz.add(AEApi.instance().definitions().materials().certusQuartzCrystalCharged().maybeStack(1).orElse(ItemStack.EMPTY)); certusQuartz.add(AEApi.instance().definitions().materials().purifiedCertusQuartzCrystal().maybeStack(1).orElse(ItemStack.EMPTY)); netherQuartz.add(AEApi.instance().definitions().materials().purifiedNetherQuartzCrystal().maybeStack(1).orElse(ItemStack.EMPTY)); ThEApi.instance().items().coalescenceCore().maybeStack(2).ifPresent(stack -> ThaumcraftApi.addArcaneCraftingRecipe(new ResourceLocation(ModGlobals.MOD_ID, "coalescence_core"), new ShapedArcaneRecipe( recipeGroup, Ingredient.fromStacks(certusQuartz.toArray(new ItemStack[0])), 'F', AEApi.instance().definitions().materials().fluixDust().maybeStack(1).orElse(ItemStack.EMPTY), 'L', AEApi.instance().definitions().materials().logicProcessor().maybeStack(1).orElse(ItemStack.EMPTY) ))); ThEApi.instance().items().diffusionCore().maybeStack(2).ifPresent(stack -> ThaumcraftApi.addArcaneCraftingRecipe(new ResourceLocation(ModGlobals.MOD_ID, "diffusion_core"), new ShapedArcaneRecipe( recipeGroup, Ingredient.fromStacks(netherQuartz.toArray(new ItemStack[0])), 'F', AEApi.instance().definitions().materials().fluixDust().maybeStack(1).orElse(ItemStack.EMPTY), 'L', AEApi.instance().definitions().materials().logicProcessor().maybeStack(1).orElse(ItemStack.EMPTY) ))); ThEApi.instance().items().essentiaComponent1k().maybeStack(1).ifPresent(stack -> { ThaumcraftApi.addArcaneCraftingRecipe(new ResourceLocation(ModGlobals.MOD_ID, "essentia_component_1k"), new ShapedArcaneRecipe( recipeGroup,
@Override public Item getItemDropped( final IBlockState state, final Random rand, final int fortune ) { return AEApi.instance() .definitions() .materials() .certusQuartzCrystalCharged() .maybeItem() .orElseThrow( () -> new MissingDefinitionException( "Tried to access charged certus quartz crystal, even though they are disabled" ) ); }
private void addDescription( IModRegistry registry, IItemDefinition itemDefinition, String message ) { itemDefinition.maybeStack( 1 ).ifPresent( itemStack -> registry.addIngredientInfo( itemStack, ItemStack.class, message ) ); }
@Override public void applyTurn() { this.injectExternalPower( PowerUnits.AE, POWER_PER_CRANK_TURN, Actionable.MODULATE ); final ItemStack myItem = this.inv.getStackInSlot( 0 ); if( this.getInternalCurrentPower() > POWER_THRESHOLD ) { final IMaterials materials = AEApi.instance().definitions().materials(); if( materials.certusQuartzCrystal().isSameAs( myItem ) ) { this.extractAEPower( this.getInternalMaxPower(), Actionable.MODULATE, PowerMultiplier.CONFIG ); materials.certusQuartzCrystalCharged().maybeStack( myItem.getCount() ).ifPresent( charged -> this.inv.setStackInSlot( 0, charged ) ); } } }
private boolean isPattern( final ItemStack output ) { if( output.isEmpty() ) { return false; } final IDefinitions definitions = AEApi.instance().definitions(); boolean isPattern = definitions.items().encodedPattern().isSameAs( output ); isPattern |= definitions.materials().blankPattern().isSameAs( output ); return isPattern; }
@Override public Item getItemDropped( final IBlockState state, final Random rand, final int fortune ) { return AEApi.instance() .definitions() .materials() .certusQuartzCrystal() .maybeItem() .orElseThrow( () -> new MissingDefinitionException( "Tried to access certus quartz crystal, even though they are disabled" ) ); }
private List<ItemStack> getViableStorageComponents( CondenserOutputWrapper recipeWrapper ) { CondenserOutput condenserOutput = recipeWrapper.getCondenserOutput(); IMaterials materials = AEApi.instance().definitions().materials(); List<ItemStack> viableComponents = new ArrayList<>(); materials.cell1kPart().maybeStack( 1 ).ifPresent( itemStack -> this.addViableComponent( condenserOutput, viableComponents, itemStack ) ); materials.cell4kPart().maybeStack( 1 ).ifPresent( itemStack -> this.addViableComponent( condenserOutput, viableComponents, itemStack ) ); materials.cell16kPart().maybeStack( 1 ).ifPresent( itemStack -> this.addViableComponent( condenserOutput, viableComponents, itemStack ) ); materials.cell64kPart().maybeStack( 1 ).ifPresent( itemStack -> this.addViableComponent( condenserOutput, viableComponents, itemStack ) ); return viableComponents; }
if( materials.singularity().isSameAs( item ) ) materials.qESingularity().maybeStack( 2 ).ifPresent( singularityStack ->