diff --git a/build.gradle b/build.gradle index acfc2186f..7a0be8770 100644 --- a/build.gradle +++ b/build.gradle @@ -80,8 +80,11 @@ sourceSets { include 'appeng/core/features/registries/PartModels.java' include 'appeng/core/features/registries/PartModels.java' include 'appeng/core/api/definitions/ApiBlocks.java' - include 'appeng/core/api/definitions/ApiBlocks.java' + include 'appeng/core/api/definitions/ApiItems.java' + include 'appeng/items/tools/quartz/**' + include 'appeng/items/AEBaseItem.java' include 'appeng/util/helpers/ItemComparisonHelper.java' + include 'appeng/items/contents/QuartzKnifeObj.java' include 'appeng/core/ApiDefinitions.java' include 'appeng/core/Api.java' include 'appeng/decorative/solid/BlockQuartzOre.java' @@ -96,6 +99,10 @@ sourceSets { include 'appeng/core/features/IStackSrc.java' include 'appeng/helpers/ICustomNameObject.java' include 'appeng/core/CreativeTab.java' + include 'appeng/core/CreativeTabFacade.java' + include 'appeng/decorative/AEDecorativeBlock.java' + include 'appeng/decorative/solid/BlockQuartzPillar.java' + include 'appeng/helpers/MetaRotation.java' include 'appeng/core/features/ActivityState.java' include 'appeng/core/features/BlockStackSrc.java' include 'appeng/core/features/ItemStackSrc.java' @@ -106,6 +113,14 @@ sourceSets { include 'appeng/util/inv/IAEAppEngInventory.java' include 'appeng/decorative/solid/BlockChargedQuartzOre.java' include 'appeng/client/render/effects/ChargedOreFX.java' + include 'appeng/bootstrap/components/BuiltInModelComponent.java' + include 'appeng/bootstrap/components/ModelOverrideComponent.java' + include 'appeng/client/render/model/GlassBakedModel.java' + include 'appeng/decorative/solid/BlockQuartzGlass.java' + include 'appeng/decorative/solid/GlassState.java' + include 'appeng/client/render/model/GlassModel.java' + include 'appeng/client/render/model/RenderHelper.java' + include 'appeng/client/render/model/GlassModelLoader.java' // include 'appeng/client/ClientHelper.java' // include 'appeng/server/ServerHelper.java' include 'appeng/block/AEBaseBlock.java' diff --git a/src/api/java/appeng/api/definitions/IBlockDefinition.java b/src/api/java/appeng/api/definitions/IBlockDefinition.java index 3d4c50330..4e7172918 100644 --- a/src/api/java/appeng/api/definitions/IBlockDefinition.java +++ b/src/api/java/appeng/api/definitions/IBlockDefinition.java @@ -23,7 +23,8 @@ import net.minecraft.block.Block; import net.minecraft.item.BlockItem; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockReader; -import net.minecraftforge.fml.RegistryObject; + +import java.util.Optional; public interface IBlockDefinition extends IItemDefinition @@ -31,12 +32,20 @@ public interface IBlockDefinition extends IItemDefinition /** * @return the {@link Block} implementation if applicable */ - RegistryObject maybeBlock(); + default Optional maybeBlock() { + return Optional.of(block()); + } + + Block block(); /** * @return the {@link BlockItem} implementation if applicable */ - RegistryObject maybeBlockItem(); + default Optional maybeBlockItem() { + return Optional.of(blockItem()); + } + + BlockItem blockItem(); /** * Compare Block with world. diff --git a/src/api/java/appeng/api/definitions/IItemDefinition.java b/src/api/java/appeng/api/definitions/IItemDefinition.java index a0c6e5ed7..bc8a91660 100644 --- a/src/api/java/appeng/api/definitions/IItemDefinition.java +++ b/src/api/java/appeng/api/definitions/IItemDefinition.java @@ -44,12 +44,20 @@ public interface IItemDefinition extends IComparableDefinition /** * @return the {@link Item} Implementation if applicable */ - Optional maybeItem(); + default Optional maybeItem() { + return Optional.of(item()); + } + + Item item(); /** * @return an {@link ItemStack} with specified quantity of this item. */ - Optional maybeStack( int stackSize ); + default Optional maybeStack( int stackSize ) { + return Optional.of(stack(stackSize)); + } + + ItemStack stack( int stackSize ); /** * @return true if definition is enabled diff --git a/src/api/java/appeng/api/parts/IPartItem.java b/src/api/java/appeng/api/parts/IPartItem.java index 82146958c..ffe5d58d1 100644 --- a/src/api/java/appeng/api/parts/IPartItem.java +++ b/src/api/java/appeng/api/parts/IPartItem.java @@ -44,7 +44,7 @@ import net.minecraft.item.ItemStack; * {@literal @}Override * public default EnumActionResult onItemUse(ItemStack is, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) * { - * return AEApi.instance().partHelper().placeBus( is, pos, side, player, hand, world ); + * return Api.INSTANCE.partHelper().placeBus( is, pos, side, player, hand, world ); * } * * diff --git a/src/api/java/appeng/api/storage/data/IAEFluidStack.java b/src/api/java/appeng/api/storage/data/IAEFluidStack.java index f2456faef..ec9f8f449 100644 --- a/src/api/java/appeng/api/storage/data/IAEFluidStack.java +++ b/src/api/java/appeng/api/storage/data/IAEFluidStack.java @@ -37,7 +37,7 @@ import net.minecraftforge.fluids.FluidStack; * * Don't Implement. * - * Construct with AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class).createStack( FluidStack ) + * Construct with Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class).createStack( FluidStack ) */ public interface IAEFluidStack extends IAEStack { diff --git a/src/api/java/appeng/api/storage/data/IAEItemStack.java b/src/api/java/appeng/api/storage/data/IAEItemStack.java index cdda428c4..80aa2ebaf 100644 --- a/src/api/java/appeng/api/storage/data/IAEItemStack.java +++ b/src/api/java/appeng/api/storage/data/IAEItemStack.java @@ -36,7 +36,7 @@ import net.minecraft.item.ItemStack; * * Don't Implement. * - * Construct with AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class).createStack( ItemStack ) + * Construct with Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class).createStack( ItemStack ) */ public interface IAEItemStack extends IAEStack { diff --git a/src/api/java/appeng/api/storage/data/IItemList.java b/src/api/java/appeng/api/storage/data/IItemList.java index 4d37ce012..d8b1de885 100644 --- a/src/api/java/appeng/api/storage/data/IItemList.java +++ b/src/api/java/appeng/api/storage/data/IItemList.java @@ -35,8 +35,8 @@ import appeng.api.storage.IStorageChannel; * Don't Implement. * * Construct with - * - For items: AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class).createList() - * - For fluids: AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class).createList() + * - For items: Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class).createList() + * - For fluids: Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class).createList() * - Replace with the corresponding {@link IStorageChannel} type for non native channels */ public interface IItemList> extends IItemContainer, Iterable diff --git a/src/api/java/appeng/api/util/IOrientableBlock.java b/src/api/java/appeng/api/util/IOrientableBlock.java index e044932ce..516c3a9c3 100644 --- a/src/api/java/appeng/api/util/IOrientableBlock.java +++ b/src/api/java/appeng/api/util/IOrientableBlock.java @@ -34,11 +34,6 @@ import net.minecraft.world.IBlockReader; public interface IOrientableBlock { - /** - * @return if this block uses metadata to store its rotation. - */ - boolean usesMetadata(); - /** * @param world world of block * @param pos The position of the block. diff --git a/src/main/java/appeng/block/AEBaseBlock.java b/src/main/java/appeng/block/AEBaseBlock.java index 013d13f63..1d40cb81a 100644 --- a/src/main/java/appeng/block/AEBaseBlock.java +++ b/src/main/java/appeng/block/AEBaseBlock.java @@ -425,6 +425,7 @@ public abstract class AEBaseBlock extends Block return null; } + @Deprecated protected IProperty[] getAEStates() { return new IProperty[0]; diff --git a/src/main/java/appeng/block/crafting/ItemCraftingStorage.java b/src/main/java/appeng/block/crafting/ItemCraftingStorage.java index a58def29e..16df341d6 100644 --- a/src/main/java/appeng/block/crafting/ItemCraftingStorage.java +++ b/src/main/java/appeng/block/crafting/ItemCraftingStorage.java @@ -39,7 +39,7 @@ public class ItemCraftingStorage extends AEBaseBlockItem @Override public ItemStack getContainerItem( final ItemStack itemStack ) { - return AEApi.instance().definitions().blocks().craftingUnit().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().blocks().craftingUnit().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override diff --git a/src/main/java/appeng/block/misc/BlockCharger.java b/src/main/java/appeng/block/misc/BlockCharger.java index 68c9db1cd..3b21974a5 100644 --- a/src/main/java/appeng/block/misc/BlockCharger.java +++ b/src/main/java/appeng/block/misc/BlockCharger.java @@ -111,7 +111,7 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision { final TileCharger tc = (TileCharger) tile; - if( AEApi.instance().definitions().materials().certusQuartzCrystalCharged().isSameAs( tc.getInternalInventory().getStackInSlot( 0 ) ) ) + if( Api.INSTANCE.definitions().materials().certusQuartzCrystalCharged().isSameAs( tc.getInternalInventory().getStackInSlot( 0 ) ) ) { final double xOff = 0.0; final double yOff = 0.0; diff --git a/src/main/java/appeng/block/paint/PaintBakedModel.java b/src/main/java/appeng/block/paint/PaintBakedModel.java index 3a972c7d7..dbe9ae67a 100644 --- a/src/main/java/appeng/block/paint/PaintBakedModel.java +++ b/src/main/java/appeng/block/paint/PaintBakedModel.java @@ -188,7 +188,7 @@ class PaintBakedModel implements IBakedModel @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } static List getRequiredTextures() diff --git a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java index d22c0f384..448fa984c 100644 --- a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java +++ b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java @@ -70,7 +70,7 @@ class QnbFormedBakedModel implements IBakedModel this.coveredCableTexture = bakedTextureGetter.apply( TEXTURE_COVERED_CABLE ); this.lightTexture = bakedTextureGetter.apply( TEXTURE_RING_LIGHT ); this.lightCornerTexture = bakedTextureGetter.apply( TEXTURE_RING_LIGHT_CORNER ); - this.linkBlock = AEApi.instance().definitions().blocks().quantumLink().maybeBlock().orElse( null ); + this.linkBlock = Api.INSTANCE.definitions().blocks().quantumLink().maybeBlock().orElse( null ); } @Override diff --git a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java index bea439a21..339d77349 100644 --- a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java +++ b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java @@ -78,7 +78,7 @@ class BlockDefinitionBuilder implements IBlockBuilder private boolean disableItem = false; - private Function itemFactory; + private BiFunction itemFactory; @OnlyIn( Dist.CLIENT ) private BlockRendering blockRendering; @@ -157,7 +157,7 @@ class BlockDefinitionBuilder implements IBlockBuilder } @Override - public IBlockBuilder item( Function factory ) + public IBlockBuilder item( BiFunction factory ) { this.itemFactory = factory; return this; @@ -258,17 +258,24 @@ class BlockDefinitionBuilder implements IBlockBuilder return null; } + Item.Properties itemProperties = new Item.Properties(); + + if (itemGroup != null) { + itemProperties.group(itemGroup); + } + // FIXME: Allow more/all item properties + if( this.itemFactory != null ) { - return this.itemFactory.apply( block ); + return this.itemFactory.apply( block, itemProperties ); } else if( block instanceof AEBaseBlock ) { - return new AEBaseBlockItem( block, new Item.Properties() /* FIXME THIS IS THE IMPORTANT BIT */ ); + return new AEBaseBlockItem( block, itemProperties ); } else { - return new BlockItem( block, null ); + return new BlockItem( block, itemProperties ); } } } diff --git a/src/main/java/appeng/bootstrap/BlockRendering.java b/src/main/java/appeng/bootstrap/BlockRendering.java index e812d84fc..328db4911 100644 --- a/src/main/java/appeng/bootstrap/BlockRendering.java +++ b/src/main/java/appeng/bootstrap/BlockRendering.java @@ -27,6 +27,7 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -39,7 +40,7 @@ class BlockRendering implements IBlockRendering { @OnlyIn( Dist.CLIENT ) - private BiFunction modelCustomizer; + private BiFunction modelCustomizer; @OnlyIn( Dist.CLIENT ) private IBlockColor blockColor; @@ -55,7 +56,7 @@ class BlockRendering implements IBlockRendering @Override @OnlyIn( Dist.CLIENT ) - public IBlockRendering modelCustomizer( BiFunction customizer ) + public IBlockRendering modelCustomizer( BiFunction customizer ) { this.modelCustomizer = customizer; return this; diff --git a/src/main/java/appeng/bootstrap/FeatureFactory.java b/src/main/java/appeng/bootstrap/FeatureFactory.java index 90bc67811..1b3b7869b 100644 --- a/src/main/java/appeng/bootstrap/FeatureFactory.java +++ b/src/main/java/appeng/bootstrap/FeatureFactory.java @@ -29,11 +29,14 @@ import java.util.Map; import java.util.function.BiFunction; import java.util.function.Supplier; +import appeng.bootstrap.components.BuiltInModelComponent; +import appeng.bootstrap.components.ModelOverrideComponent; import net.minecraft.block.Block; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.item.Item; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -55,11 +58,11 @@ public class FeatureFactory private final Map, List> bootstrapComponents; -//FIXME @OnlyIn( Dist.CLIENT ) -//FIXME private ModelOverrideComponent modelOverrideComponent; + @OnlyIn( Dist.CLIENT ) + private ModelOverrideComponent modelOverrideComponent; -//FIXME @OnlyIn( Dist.CLIENT ) -//FIXME private BuiltInModelComponent builtInModelComponent; + @OnlyIn( Dist.CLIENT ) + private BuiltInModelComponent builtInModelComponent; public final TileEntityComponent tileEntityComponent; @@ -73,10 +76,10 @@ public class FeatureFactory if( Platform.isClient() ) { - // FIXME this.modelOverrideComponent = new ModelOverrideComponent(); - // FIXME this.addBootstrapComponent( this.modelOverrideComponent ); - // FIXME this.builtInModelComponent = new BuiltInModelComponent(); - // FIXME this.addBootstrapComponent( this.builtInModelComponent ); + this.modelOverrideComponent = new ModelOverrideComponent(); + this.addBootstrapComponent( this.modelOverrideComponent ); + this.builtInModelComponent = new BuiltInModelComponent(); + this.addBootstrapComponent( this.builtInModelComponent ); } } @@ -87,8 +90,8 @@ public class FeatureFactory this.tileEntityComponent = parent.tileEntityComponent; if( Platform.isClient() ) { - // FIXME this.modelOverrideComponent = parent.modelOverrideComponent; - // FIXME this.builtInModelComponent = parent.builtInModelComponent; + this.modelOverrideComponent = parent.modelOverrideComponent; + this.builtInModelComponent = parent.builtInModelComponent; } } @@ -139,13 +142,13 @@ public class FeatureFactory @OnlyIn( Dist.CLIENT ) void addBuiltInModel( String path, IUnbakedModel model ) { - // FIXME this.builtInModelComponent.addModel( path, model ); + this.builtInModelComponent.addModel( path, model ); } @OnlyIn( Dist.CLIENT ) - void addModelOverride( String resourcePath, BiFunction customizer ) + void addModelOverride( String resourcePath, BiFunction customizer ) { - // FIXME this.modelOverrideComponent.addOverride( resourcePath, customizer ); + this.modelOverrideComponent.addOverride( resourcePath, customizer ); } public Iterator getBootstrapComponents( Class eventType ) diff --git a/src/main/java/appeng/bootstrap/IBlockBuilder.java b/src/main/java/appeng/bootstrap/IBlockBuilder.java index f1d3f39de..b5447ee77 100644 --- a/src/main/java/appeng/bootstrap/IBlockBuilder.java +++ b/src/main/java/appeng/bootstrap/IBlockBuilder.java @@ -54,7 +54,7 @@ public interface IBlockBuilder */ IBlockBuilder useCustomItemModel(); - IBlockBuilder item( Function factory ); + IBlockBuilder item( BiFunction factory ); T build(); } diff --git a/src/main/java/appeng/bootstrap/IBlockRendering.java b/src/main/java/appeng/bootstrap/IBlockRendering.java index d92238aba..9b6e19230 100644 --- a/src/main/java/appeng/bootstrap/IBlockRendering.java +++ b/src/main/java/appeng/bootstrap/IBlockRendering.java @@ -26,6 +26,7 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -37,7 +38,7 @@ public interface IBlockRendering { @OnlyIn( Dist.CLIENT ) - IBlockRendering modelCustomizer( BiFunction customizer ); + IBlockRendering modelCustomizer( BiFunction customizer ); @OnlyIn( Dist.CLIENT ) IBlockRendering blockColor( IBlockColor blockColor ); diff --git a/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java b/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java index acbf80e12..4cbe22d0a 100644 --- a/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java +++ b/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java @@ -131,11 +131,6 @@ class ItemDefinitionBuilder implements IItemBuilder @Override public ItemDefinition build() { - if( !AEConfig.instance().areFeaturesEnabled( this.features ) ) - { - return new ItemDefinition( this.registryName, null ); - } - Item item = this.itemSupplier.get(); item.setRegistryName( AppEng.MOD_ID, this.registryName ); diff --git a/src/main/java/appeng/bootstrap/components/BuiltInModelComponent.java b/src/main/java/appeng/bootstrap/components/BuiltInModelComponent.java index 32c1916fd..bc26cf4f2 100644 --- a/src/main/java/appeng/bootstrap/components/BuiltInModelComponent.java +++ b/src/main/java/appeng/bootstrap/components/BuiltInModelComponent.java @@ -19,16 +19,13 @@ package appeng.bootstrap.components; -import java.util.HashMap; -import java.util.Map; - import com.google.common.base.Preconditions; - import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.model.ModelLoaderRegistry; -import net.minecraftforge.registries.ForgeRegistries; + +import java.util.HashMap; +import java.util.Map; @OnlyIn( Dist.CLIENT ) public class BuiltInModelComponent implements IPreInitComponent @@ -48,8 +45,8 @@ public class BuiltInModelComponent implements IPreInitComponent public void preInitialize( Dist dist ) { this.hasInitialized = true; - -// FIXME BuiltInModelLoader loader = new BuiltInModelLoader( this.builtInModels ); -// FIXME ModelLoaderRegistry.registerLoader( loader ); +// +// BuiltInModelLoader loader = new BuiltInModelLoader( this.builtInModels ); +// ModelLoaderRegistry.registerLoader( loader ); } } diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java b/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java index b10d88c4f..6bd704a9d 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java @@ -95,7 +95,7 @@ public class GuiCraftAmount extends AEBaseGui ItemStack myIcon = null; final Object target = ( (AEBaseContainer) this.inventorySlots ).getTarget(); - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); final IParts parts = definitions.parts(); if( target instanceof WirelessTerminalGuiObject ) diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java index 88d8e108d..52fb9bae5 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java @@ -62,9 +62,9 @@ public class GuiCraftConfirm extends AEBaseGui private final int rows = 5; - private final IItemList storage = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - private final IItemList pending = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - private final IItemList missing = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList storage = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList pending = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList missing = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private final List visual = new ArrayList<>(); diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java b/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java index cf8fc2689..53d469ee1 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java @@ -84,9 +84,9 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource private final ContainerCraftingCPU craftingCpu; - private IItemList storage = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - private IItemList active = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - private IItemList pending = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private IItemList storage = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private IItemList active = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private IItemList pending = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private List visual = new ArrayList<>(); private GuiButton cancel; @@ -110,9 +110,9 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource public void clearItems() { - this.storage = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - this.active = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - this.pending = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.storage = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.active = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.pending = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); this.visual = new ArrayList<>(); } diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java b/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java index 954e8ee87..8cbf18bd5 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java @@ -65,7 +65,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU this.status = (ContainerCraftingStatus) this.inventorySlots; final Object target = this.status.getTarget(); - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); final IParts parts = definitions.parts(); if( target instanceof WirelessTerminalGuiObject ) diff --git a/src/main/java/appeng/client/gui/implementations/GuiIOPort.java b/src/main/java/appeng/client/gui/implementations/GuiIOPort.java index a81bc7736..1f661163f 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiIOPort.java +++ b/src/main/java/appeng/client/gui/implementations/GuiIOPort.java @@ -91,7 +91,7 @@ public class GuiIOPort extends GuiUpgradeable { super.drawBG( offsetX, offsetY, mouseX, mouseY ); - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); definitions.items().cell1k().maybeStack( 1 ).ifPresent( cell1kStack -> this.drawItem( offsetX + 66 - 8, offsetY + 17, cell1kStack ) ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java index 6097c844c..256b8dcb1 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java @@ -349,7 +349,7 @@ public class GuiInterfaceTerminal extends AEBaseGui if( !parsedItemStack.isEmpty() ) { final String displayName = Platform - .getItemDisplayName( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( parsedItemStack ) ) + .getItemDisplayName( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( parsedItemStack ) ) .toLowerCase(); if( displayName.contains( searchTerm ) ) { diff --git a/src/main/java/appeng/client/me/FluidRepo.java b/src/main/java/appeng/client/me/FluidRepo.java index 241fce6fa..0939685eb 100644 --- a/src/main/java/appeng/client/me/FluidRepo.java +++ b/src/main/java/appeng/client/me/FluidRepo.java @@ -50,7 +50,7 @@ import net.minecraft.util.text.ITextComponent; */ public class FluidRepo { - private final IItemList list = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList(); + private final IItemList list = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList(); private final ArrayList view = new ArrayList<>(); private final IScrollSource src; private final ISortSource sortSrc; diff --git a/src/main/java/appeng/client/me/ItemRepo.java b/src/main/java/appeng/client/me/ItemRepo.java index f5ada3c25..a796ef6ab 100644 --- a/src/main/java/appeng/client/me/ItemRepo.java +++ b/src/main/java/appeng/client/me/ItemRepo.java @@ -51,7 +51,7 @@ import net.minecraft.util.text.ITextComponent; public class ItemRepo { - private final IItemList list = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList list = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private final ArrayList view = new ArrayList<>(); private final IScrollSource src; private final ISortSource sortSrc; diff --git a/src/main/java/appeng/client/render/FacadeBakedItemModel.java b/src/main/java/appeng/client/render/FacadeBakedItemModel.java index 0638fb341..f1407262b 100644 --- a/src/main/java/appeng/client/render/FacadeBakedItemModel.java +++ b/src/main/java/appeng/client/render/FacadeBakedItemModel.java @@ -86,6 +86,6 @@ public class FacadeBakedItemModel extends DelegateBakedModel @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java b/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java index ae36f8c1f..2c498dbca 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java @@ -364,6 +364,6 @@ public class CableBusBakedModel implements IBakedModel @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java b/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java index 2e7431f16..54d84bdd8 100644 --- a/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java @@ -109,7 +109,7 @@ public class FacadeBuilder { BakedPipeline pipeline = this.pipelines.get(); Quad collectorQuad = this.collectors.get(); - boolean transparent = AEApi.instance().partHelper().getCableRenderMode().transparentFacades; + boolean transparent = Api.INSTANCE.partHelper().getCableRenderMode().transparentFacades; Map facadeStates = renderState.getFacades(); List partBoxes = renderState.getBoundingBoxes(); Set sidesWithParts = renderState.getAttachments().keySet(); diff --git a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java index 228f910eb..c9d4657c9 100644 --- a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java +++ b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java @@ -137,6 +137,6 @@ public class P2PTunnelFrequencyBakedModel implements IBakedModel, IPartBakedMode @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java b/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java index 456a1ea2c..0e8c577f7 100644 --- a/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java @@ -308,6 +308,6 @@ abstract class CraftingCubeBakedModel implements IBakedModel @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/model/GlassBakedModel.java b/src/main/java/appeng/client/render/model/GlassBakedModel.java index 8a21d51b7..054039113 100644 --- a/src/main/java/appeng/client/render/model/GlassBakedModel.java +++ b/src/main/java/appeng/client/render/model/GlassBakedModel.java @@ -19,13 +19,11 @@ package appeng.client.render.model; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Random; +import java.util.*; import java.util.function.Function; import java.util.stream.IntStream; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import com.google.common.base.Strings; @@ -33,48 +31,63 @@ import com.google.common.base.Strings; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.IBakedModel; +import net.minecraft.client.renderer.model.ItemOverrideList; +import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.VertexFormat; +import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; import appeng.decorative.solid.BlockQuartzGlass; import appeng.decorative.solid.GlassState; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.ILightReader; +import net.minecraftforge.client.model.ModelDataManager; +import net.minecraftforge.client.model.data.IDynamicBakedModel; +import net.minecraftforge.client.model.data.IModelData; +import net.minecraftforge.client.model.data.ModelDataMap; +import net.minecraftforge.client.model.data.ModelProperty; +import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; -class GlassBakedModel implements IBakedModel +class GlassBakedModel implements IDynamicBakedModel { + // This unlisted property is used to determine the actual block that should be rendered + public static final ModelProperty GLASS_STATE = new ModelProperty<>(); + private static final byte[][][] OFFSETS = generateOffsets(); // Alternating textures based on position - static final ResourceLocation TEXTURE_A = new ResourceLocation( "appliedenergistics2:blocks/glass/quartz_glass_a" ); - static final ResourceLocation TEXTURE_B = new ResourceLocation( "appliedenergistics2:blocks/glass/quartz_glass_b" ); - static final ResourceLocation TEXTURE_C = new ResourceLocation( "appliedenergistics2:blocks/glass/quartz_glass_c" ); - static final ResourceLocation TEXTURE_D = new ResourceLocation( "appliedenergistics2:blocks/glass/quartz_glass_d" ); + static final Material TEXTURE_A = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( "appliedenergistics2:block/glass/quartz_glass_a" )); + static final Material TEXTURE_B = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( "appliedenergistics2:block/glass/quartz_glass_b" )); + static final Material TEXTURE_C = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( "appliedenergistics2:block/glass/quartz_glass_c" )); + static final Material TEXTURE_D = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( "appliedenergistics2:block/glass/quartz_glass_d" )); // Frame texture - static final ResourceLocation[] TEXTURES_FRAME = generateTexturesFrame(); + static final Material[] TEXTURES_FRAME = generateTexturesFrame(); // Generates the required textures for the frame - private static ResourceLocation[] generateTexturesFrame() + private static Material[] generateTexturesFrame() { return IntStream.range( 1, 16 ) .mapToObj( Integer::toBinaryString ) .map( s -> Strings.padStart( s, 4, '0' ) ) - .map( s -> new ResourceLocation( "appliedenergistics2:blocks/glass/quartz_glass_frame" + s ) ) - .toArray( ResourceLocation[]::new ); + .map( s -> new ResourceLocation( "appliedenergistics2:block/glass/quartz_glass_frame" + s ) ) + .map( rl -> new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, rl) ) + .toArray( Material[]::new ); } private final TextureAtlasSprite[] glassTextures; private final TextureAtlasSprite[] frameTextures; - private final VertexFormat vertexFormat; - - public GlassBakedModel( VertexFormat format, Function bakedTextureGetter ) + public GlassBakedModel( Function bakedTextureGetter ) { this.glassTextures = new TextureAtlasSprite[] { bakedTextureGetter.apply( TEXTURE_A ), @@ -83,8 +96,6 @@ class GlassBakedModel implements IBakedModel bakedTextureGetter.apply( TEXTURE_D ) }; - this.vertexFormat = format; - // The first frame texture would be empty, so we simply leave it set to null here this.frameTextures = new TextureAtlasSprite[16]; for( int i = 0; i < TEXTURES_FRAME.length; i++ ) @@ -94,15 +105,14 @@ class GlassBakedModel implements IBakedModel } @Override - public List getQuads( @Nullable BlockState state, @Nullable Direction side, long rand ) + public List getQuads( @Nullable BlockState state, @Nullable Direction side, Random rand, IModelData extraData ) { - if( !( state instanceof IExtendedBlockState ) || side == null ) + if( side == null ) { return Collections.emptyList(); } - final IExtendedBlockState extState = (IExtendedBlockState) state; - final GlassState glassState = extState.getValue( BlockQuartzGlass.GLASS_STATE ); + final GlassState glassState = extraData.getData( GLASS_STATE ); if( glassState == null ) { @@ -153,6 +163,13 @@ class GlassBakedModel implements IBakedModel return quads; } + @Override + public boolean func_230044_c_() + { + // TODO: Forge: Auto-generated method stub + return false; + } + /** * Creates the bitmask that indicates, in which directions (in terms of u,v space) a border should be drawn. */ @@ -217,8 +234,9 @@ class GlassBakedModel implements IBakedModel float v1 = MathHelper.clamp( 0 - vOffset, 0, 16 ); float v2 = MathHelper.clamp( 16 - vOffset, 0, 16 ); - UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder( this.vertexFormat ); - builder.setTexture( sprite ); + + BakedQuadBuilder builder = new BakedQuadBuilder(sprite); + builder.setQuadOrientation(side); this.putVertex( builder, normal, c1.x, c1.y, c1.z, sprite, u1, v1 ); this.putVertex( builder, normal, c2.x, c2.y, c2.z, sprite, u1, v2 ); this.putVertex( builder, normal, c3.x, c3.y, c3.z, sprite, u2, v2 ); @@ -231,11 +249,13 @@ class GlassBakedModel implements IBakedModel * has to be precisely the order * in which the vertex elements had been declared in the vertex format. */ - private void putVertex( UnpackedBakedQuad.Builder builder, Vec3d normal, double x, double y, double z, TextureAtlasSprite sprite, float u, float v ) + private void putVertex( BakedQuadBuilder builder, Vec3d normal, double x, double y, double z, TextureAtlasSprite sprite, float u, float v ) { - for( int e = 0; e < this.vertexFormat.getElementCount(); e++ ) + VertexFormat vertexFormat = builder.getVertexFormat(); + for( int e = 0; e < vertexFormat.getElements().size(); e++ ) { - switch( this.vertexFormat.getElement( e ).getUsage() ) + VertexFormatElement el = vertexFormat.getElements().get(e); + switch( el.getUsage() ) { case POSITION: builder.put( e, (float) x, (float) y, (float) z, 1.0f ); @@ -244,7 +264,7 @@ class GlassBakedModel implements IBakedModel builder.put( e, 1.0f, 1.0f, 1.0f, 1.0f ); break; case UV: - if( this.vertexFormat.getElement( e ).getIndex() == 0 ) + if( el.getIndex() == 0 ) { u = sprite.getInterpolatedU( u ); v = sprite.getInterpolatedV( v ); @@ -264,7 +284,7 @@ class GlassBakedModel implements IBakedModel @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } @Override @@ -291,12 +311,6 @@ class GlassBakedModel implements IBakedModel return this.frameTextures[this.frameTextures.length - 1]; } - @Override - public ItemCameraTransforms getItemCameraTransforms() - { - return ItemCameraTransforms.DEFAULT; - } - private static byte[][][] generateOffsets() { final Random r = new Random( 924 ); @@ -312,4 +326,31 @@ class GlassBakedModel implements IBakedModel return offset; } + + @Nonnull + @Override + public IModelData getModelData(@Nonnull ILightReader world, @Nonnull BlockPos pos, @Nonnull BlockState state, @Nonnull IModelData tileData) { + + EnumSet flushWith = EnumSet.noneOf( Direction.class ); + // Test every direction for another glass block + for( Direction facing : Direction.values() ) + { + if( isGlassBlock( world, pos, facing ) ) + { + flushWith.add( facing ); + } + } + + GlassState glassState = new GlassState( pos.getX(), pos.getY(), pos.getZ(), flushWith ); + return new ModelDataMap.Builder() + .withInitial(GLASS_STATE, glassState) + .build(); + + } + + private static boolean isGlassBlock(IBlockReader world, BlockPos pos, Direction facing ) + { + return world.getBlockState( pos.offset( facing ) ).getBlock() instanceof BlockQuartzGlass; + } + } diff --git a/src/main/java/appeng/client/render/model/GlassModel.java b/src/main/java/appeng/client/render/model/GlassModel.java index 6ccae53da..76d894fc9 100644 --- a/src/main/java/appeng/client/render/model/GlassModel.java +++ b/src/main/java/appeng/client/render/model/GlassModel.java @@ -19,52 +19,40 @@ package appeng.client.render.model; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.Set; import java.util.function.Function; import com.google.common.collect.ImmutableSet; -import net.minecraft.client.renderer.block.model.IBakedModel; +import com.mojang.datafixers.util.Pair; +import net.minecraft.client.renderer.model.*; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModel; -import net.minecraftforge.common.model.IModelState; -import net.minecraftforge.common.model.TRSRTransformation; +import net.minecraftforge.client.model.IModelConfiguration; +import net.minecraftforge.client.model.geometry.IModelGeometry; +import javax.annotation.Nullable; /** * Model class for the connected texture glass model. */ -public class GlassModel implements IModel +public class GlassModel implements IModelGeometry { @Override - public Collection getDependencies() - { - return Collections.emptySet(); + public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { + return new GlassBakedModel( spriteGetter ); } @Override - public Collection getTextures() - { - return ImmutableSet.builder() - .add( GlassBakedModel.TEXTURE_A, GlassBakedModel.TEXTURE_B, GlassBakedModel.TEXTURE_C, GlassBakedModel.TEXTURE_D ) - .add( GlassBakedModel.TEXTURES_FRAME ) + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { + return ImmutableSet.builder() + .add(GlassBakedModel.TEXTURE_A, GlassBakedModel.TEXTURE_B, GlassBakedModel.TEXTURE_C, GlassBakedModel.TEXTURE_D) + .add(GlassBakedModel.TEXTURES_FRAME) .build(); } - @Override - public IBakedModel bake( IModelState state, VertexFormat format, Function bakedTextureGetter ) - { - return new GlassBakedModel( format, bakedTextureGetter ); - } - - @Override - public IModelState getDefaultState() - { - return TRSRTransformation.identity(); - } - } diff --git a/src/main/java/appeng/client/render/model/GlassModelLoader.java b/src/main/java/appeng/client/render/model/GlassModelLoader.java new file mode 100644 index 000000000..765733ad8 --- /dev/null +++ b/src/main/java/appeng/client/render/model/GlassModelLoader.java @@ -0,0 +1,21 @@ +package appeng.client.render.model; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonObject; +import net.minecraft.resources.IResourceManager; +import net.minecraftforge.client.model.IModelLoader; + +public class GlassModelLoader implements IModelLoader { + + public static final GlassModelLoader INSTANCE = new GlassModelLoader(); + + @Override + public void onResourceManagerReload(IResourceManager resourceManager) { + } + + @Override + public GlassModel read(JsonDeserializationContext deserializationContext, JsonObject modelContents) { + return new GlassModel(); + } + +} diff --git a/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java b/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java index eb40dbe0b..f63a2725f 100644 --- a/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java +++ b/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java @@ -255,6 +255,6 @@ class SpatialPylonBakedModel implements IBakedModel @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/container/AEBaseContainer.java b/src/main/java/appeng/container/AEBaseContainer.java index 3c193bee5..7050c4074 100644 --- a/src/main/java/appeng/container/AEBaseContainer.java +++ b/src/main/java/appeng/container/AEBaseContainer.java @@ -803,7 +803,7 @@ public abstract class AEBaseContainer extends Container if( !isg.isEmpty() && releaseQty > 0 ) { - IAEItemStack ais = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( isg ); + IAEItemStack ais = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( isg ); ais.setStackSize( 1 ); final IAEItemStack extracted = ais.copy(); @@ -893,7 +893,7 @@ public abstract class AEBaseContainer extends Container } else { - IAEItemStack ais = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( player.inventory.getItemStack() ); + IAEItemStack ais = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( player.inventory.getItemStack() ); ais = Platform.poweredInsert( this.getPowerSource(), this.getCellInventory(), ais, this.getActionSource() ); if( ais != null ) { @@ -942,7 +942,7 @@ public abstract class AEBaseContainer extends Container } else { - IAEItemStack ais = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( player.inventory.getItemStack() ); + IAEItemStack ais = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( player.inventory.getItemStack() ); ais.setStackSize( 1 ); ais = Platform.poweredInsert( this.getPowerSource(), this.getCellInventory(), ais, this.getActionSource() ); if( ais == null ) @@ -1041,7 +1041,7 @@ public abstract class AEBaseContainer extends Container return input; } final IAEItemStack ais = Platform.poweredInsert( this.getPowerSource(), this.getCellInventory(), - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( input ), + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( input ), this.getActionSource() ); if( ais == null ) { diff --git a/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java b/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java index 927d9e94a..9e412bdd7 100644 --- a/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java +++ b/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java @@ -225,11 +225,11 @@ public class ContainerCellWorkbench extends ContainerUpgradeable final IItemHandler inv = this.getUpgradeable().getInventoryByName( "config" ); final ItemStack is = this.getUpgradeable().getInventoryByName( "cell" ).getStackInSlot( 0 ); - final IStorageChannel channel = is.getItem() instanceof IStorageCell ? ( (IStorageCell) is.getItem() ).getChannel() : AEApi.instance() + final IStorageChannel channel = is.getItem() instanceof IStorageCell ? ( (IStorageCell) is.getItem() ).getChannel() : Api.INSTANCE .storage() .getStorageChannel( IItemStorageChannel.class ); - final IMEInventory cellInv = AEApi.instance().registries().cell().getCellInventory( is, null, channel ); + final IMEInventory cellInv = Api.INSTANCE.registries().cell().getCellInventory( is, null, channel ); Iterator i = new NullIterator<>(); if( cellInv != null ) diff --git a/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java b/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java index 5fd6c81e7..d84f64f00 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java @@ -209,7 +209,7 @@ public class ContainerCraftConfirm extends AEBaseContainer final PacketMEInventoryUpdate b = new PacketMEInventoryUpdate( (byte) 1 ); final PacketMEInventoryUpdate c = this.result.isSimulation() ? new PacketMEInventoryUpdate( (byte) 2 ) : null; - final IItemList plan = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList plan = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); this.result.populatePlan( plan ); this.setUsedBytes( this.result.getByteTotal() ); @@ -226,7 +226,7 @@ public class ContainerCraftConfirm extends AEBaseContainer p.setStackSize( out.getCountRequestable() ); final IStorageGrid sg = this.getGrid().getCache( IStorageGrid.class ); - final IMEInventory items = sg.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + final IMEInventory items = sg.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); IAEItemStack m = null; if( c != null && this.result.isSimulation() ) diff --git a/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java b/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java index 78a229856..3fea1ec39 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java @@ -53,7 +53,7 @@ import appeng.util.Platform; public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorHandlerReceiver, ICustomNameObject { - private final IItemList list = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList list = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private IGrid network; private CraftingCPUCluster monitor = null; private String cpuName = null; diff --git a/src/main/java/appeng/container/implementations/ContainerInscriber.java b/src/main/java/appeng/container/implementations/ContainerInscriber.java index 467bf678a..5a3898a7e 100644 --- a/src/main/java/appeng/container/implementations/ContainerInscriber.java +++ b/src/main/java/appeng/container/implementations/ContainerInscriber.java @@ -120,14 +120,14 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres if( s == this.middle ) { - IItemDefinition press = AEApi.instance().definitions().materials().namePress(); + IItemDefinition press = Api.INSTANCE.definitions().materials().namePress(); if( press.isSameAs( top ) || press.isSameAs( bot ) ) { return !press.isSameAs( is ); } boolean matches = false; - for( final IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() ) + for( final IInscriberRecipe recipe : Api.INSTANCE.registries().inscriber().getRecipes() ) { final boolean matchA = !top .isEmpty() && ( Platform.itemComparisons().isSameItem( top, recipe.getTopOptional().orElse( ItemStack.EMPTY ) ) || Platform @@ -168,14 +168,14 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres } // name presses - final IItemDefinition namePress = AEApi.instance().definitions().materials().namePress(); + final IItemDefinition namePress = Api.INSTANCE.definitions().materials().namePress(); if( namePress.isSameAs( otherSlot ) ) { return namePress.isSameAs( is ); } // everything else - for( final IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() ) + for( final IInscriberRecipe recipe : Api.INSTANCE.registries().inscriber().getRecipes() ) { boolean isValid = false; if( Platform.itemComparisons().isSameItem( otherSlot, recipe.getTopOptional().orElse( ItemStack.EMPTY ) ) ) diff --git a/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java b/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java index e62625432..60b73f53d 100644 --- a/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java +++ b/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java @@ -78,7 +78,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa private final SlotRestrictedInput[] cellView = new SlotRestrictedInput[5]; private final IMEMonitor monitor; - private final IItemList items = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList items = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private final IConfigManager clientCM; private final ITerminalHost host; @GuiSync( 99 ) @@ -109,7 +109,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa { this.serverCM = monitorable.getConfigManager(); - this.monitor = monitorable.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + this.monitor = monitorable.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); if( this.monitor != null ) { this.monitor.addListener( this, null ); @@ -189,7 +189,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa { if( Platform.isServer() ) { - if( this.monitor != this.host.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ) + if( this.monitor != this.host.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) ) { this.setValidContainer( false ); } diff --git a/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java b/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java index d22c74388..78909a198 100644 --- a/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java +++ b/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java @@ -114,7 +114,7 @@ public class ContainerNetworkStatus extends AEBaseContainer for( final Class machineClass : this.network.getMachinesClasses() ) { - final IItemList list = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList list = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); for( final IGridNode machine : this.network.getMachines( machineClass ) ) { final IGridBlock blk = machine.getGridBlock(); diff --git a/src/main/java/appeng/container/implementations/ContainerPatternTerm.java b/src/main/java/appeng/container/implementations/ContainerPatternTerm.java index 0c8bd3cb8..77b2db119 100644 --- a/src/main/java/appeng/container/implementations/ContainerPatternTerm.java +++ b/src/main/java/appeng/container/implementations/ContainerPatternTerm.java @@ -237,7 +237,7 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA } // add a new encoded pattern. - Optional maybePattern = AEApi.instance().definitions().items().encodedPattern().maybeStack( 1 ); + Optional maybePattern = Api.INSTANCE.definitions().items().encodedPattern().maybeStack( 1 ); if( maybePattern.isPresent() ) { output = maybePattern.get(); @@ -334,7 +334,7 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA return false; } - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); boolean isPattern = definitions.items().encodedPattern().isSameAs( output ); isPattern |= definitions.materials().blankPattern().isSameAs( output ); @@ -419,7 +419,7 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA } final IMEMonitor storage = this.getPatternTerminal() - .getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + .getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); final IItemList all = storage.getStorageList(); final ItemStack is = r.getCraftingResult( ic ); diff --git a/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java b/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java index b256f3dbf..ec8bd5eaf 100644 --- a/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java +++ b/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java @@ -121,7 +121,7 @@ public class ContainerQuartzKnife extends AEBaseContainer { if( ContainerQuartzKnife.this.myName.length() > 0 ) { - return AEApi.instance().definitions().materials().namePress().maybeStack( 1 ).map( namePressStack -> + return Api.INSTANCE.definitions().materials().namePress().maybeStack( 1 ).map( namePressStack -> { final CompoundNBT compound = namePressStack.getOrCreateTag(); compound.putString("InscribeName", ContainerQuartzKnife.this.myName); diff --git a/src/main/java/appeng/container/implementations/ContainerSecurityStation.java b/src/main/java/appeng/container/implementations/ContainerSecurityStation.java index cc32e1c15..b976c864a 100644 --- a/src/main/java/appeng/container/implementations/ContainerSecurityStation.java +++ b/src/main/java/appeng/container/implementations/ContainerSecurityStation.java @@ -156,7 +156,7 @@ public class ContainerSecurityStation extends ContainerMEMonitorable implements networkEncodable = (INetworkEncodable) term.getItem(); } - final IWirelessTermHandler wTermHandler = AEApi.instance().registries().wireless().getWirelessTerminalHandler( term ); + final IWirelessTermHandler wTermHandler = Api.INSTANCE.registries().wireless().getWirelessTerminalHandler( term ); if( wTermHandler != null ) { networkEncodable = wTermHandler; diff --git a/src/main/java/appeng/container/implementations/ContainerStorageBus.java b/src/main/java/appeng/container/implementations/ContainerStorageBus.java index da276db6e..a12f9f93d 100644 --- a/src/main/java/appeng/container/implementations/ContainerStorageBus.java +++ b/src/main/java/appeng/container/implementations/ContainerStorageBus.java @@ -159,7 +159,7 @@ public class ContainerStorageBus extends ContainerUpgradeable if( cellInv != null ) { final IItemList list = cellInv - .getAvailableItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + .getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); i = list.iterator(); } diff --git a/src/main/java/appeng/container/slot/SlotCraftingTerm.java b/src/main/java/appeng/container/slot/SlotCraftingTerm.java index 48af73642..8c88812ca 100644 --- a/src/main/java/appeng/container/slot/SlotCraftingTerm.java +++ b/src/main/java/appeng/container/slot/SlotCraftingTerm.java @@ -107,7 +107,7 @@ public class SlotCraftingTerm extends AppEngCraftingSlot return; } - final IMEMonitor inv = this.storage.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + final IMEMonitor inv = this.storage.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); final int howManyPerCraft = this.getStack().getCount(); int maxTimesToCraft = 0; diff --git a/src/main/java/appeng/container/slot/SlotPatternTerm.java b/src/main/java/appeng/container/slot/SlotPatternTerm.java index d4749057f..a22b16f08 100644 --- a/src/main/java/appeng/container/slot/SlotPatternTerm.java +++ b/src/main/java/appeng/container/slot/SlotPatternTerm.java @@ -52,7 +52,7 @@ public class SlotPatternTerm extends SlotCraftingTerm public AppEngPacket getRequest( final boolean shift ) throws IOException { return new PacketPatternSlot( this - .getPattern(), AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( this.getStack() ), shift ); + .getPattern(), Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( this.getStack() ), shift ); } @Override diff --git a/src/main/java/appeng/container/slot/SlotRestrictedInput.java b/src/main/java/appeng/container/slot/SlotRestrictedInput.java index 3013020db..b2a9183c6 100644 --- a/src/main/java/appeng/container/slot/SlotRestrictedInput.java +++ b/src/main/java/appeng/container/slot/SlotRestrictedInput.java @@ -122,7 +122,7 @@ public class SlotRestrictedInput extends AppEngSlot return false; } - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); final IMaterials materials = definitions.materials(); final IItems items = definitions.items(); @@ -170,7 +170,7 @@ public class SlotRestrictedInput extends AppEngSlot return true; } - for( final ItemStack optional : AEApi.instance().registries().inscriber().getOptionals() ) + for( final ItemStack optional : Api.INSTANCE.registries().inscriber().getOptionals() ) { if( Platform.itemComparisons().isSameItem( i, optional ) ) { @@ -194,7 +194,7 @@ public class SlotRestrictedInput extends AppEngSlot case VIEW_CELL: return items.viewCell().isSameAs( i ); case ORE: - return appeng.api.AEApi.instance().registries().grinder().getRecipeForInput( i ) != null; + return appeng.api.Api.INSTANCE.registries().grinder().getRecipeForInput( i ) != null; case FUEL: return TileEntityFurnace.getItemBurnTime( i ) > 0; case POWERED_TOOL: @@ -208,20 +208,20 @@ public class SlotRestrictedInput extends AppEngSlot case SPATIAL_STORAGE_CELLS: return i.getItem() instanceof ISpatialStorageCell && ( (ISpatialStorageCell) i.getItem() ).isSpatialStorage( i ); case STORAGE_CELLS: - return AEApi.instance().registries().cell().isCellHandled( i ); + return Api.INSTANCE.registries().cell().isCellHandled( i ); case WORKBENCH_CELL: return i.getItem() instanceof ICellWorkbenchItem && ( (ICellWorkbenchItem) i.getItem() ).isEditable( i ); case STORAGE_COMPONENT: return i.getItem() instanceof IStorageComponent && ( (IStorageComponent) i.getItem() ).isStorageComponent( i ); case TRASH: - if( AEApi.instance().registries().cell().isCellHandled( i ) ) + if( Api.INSTANCE.registries().cell().isCellHandled( i ) ) { return false; } return !( i.getItem() instanceof IStorageComponent && ( (IStorageComponent) i.getItem() ).isStorageComponent( i ) ); case ENCODABLE_ITEM: - return i.getItem() instanceof INetworkEncodable || AEApi.instance().registries().wireless().isWirelessTerminal( i ); + return i.getItem() instanceof INetworkEncodable || Api.INSTANCE.registries().wireless().isWirelessTerminal( i ); case BIOMETRIC_CARD: return i.getItem() instanceof IBiometricCard; case UPGRADES: diff --git a/src/main/java/appeng/core/ApiDefinitions.java b/src/main/java/appeng/core/ApiDefinitions.java index 05c4f4f31..8fbce252f 100644 --- a/src/main/java/appeng/core/ApiDefinitions.java +++ b/src/main/java/appeng/core/ApiDefinitions.java @@ -25,6 +25,7 @@ import appeng.api.definitions.IMaterials; import appeng.api.definitions.IParts; import appeng.bootstrap.FeatureFactory; import appeng.core.api.definitions.ApiBlocks; +import appeng.core.api.definitions.ApiItems; import appeng.core.features.registries.PartModels; @@ -33,9 +34,8 @@ import appeng.core.features.registries.PartModels; */ public final class ApiDefinitions implements IDefinitions { - // TODO : Check if this can be final again after the Register part. - private ApiBlocks blocks; -// private ApiItems items; + private final ApiBlocks blocks; + private final ApiItems items; //private final ApiMaterials materials; //private final ApiParts parts; @@ -44,20 +44,10 @@ public final class ApiDefinitions implements IDefinitions public ApiDefinitions( final PartModels partModels ) { this.blocks = new ApiBlocks( this.registry, partModels ); -// this.items = new ApiItems( this.registry ); + this.items = new ApiItems( this.registry ); //this.materials = new ApiMaterials( this.registry ); //this.parts = new ApiParts( this.registry, partModels ); } - // - // public void addBlocks( final PartModels partModels ) - // { - // this.blocks = new ApiBlocks( registry, partModels ); - // } - // - // public void addItems() - // { - // this.items = new ApiItems( registry ); - // } public FeatureFactory getRegistry() { @@ -73,7 +63,7 @@ public final class ApiDefinitions implements IDefinitions @Override public IItems items() { - return null /* FIXME */; + return items; } @Override diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index ef999d4c8..b91ced442 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -22,6 +22,7 @@ package appeng.core; import java.io.File; import appeng.client.ClientHelper; +import appeng.core.features.AEFeature; import appeng.server.ServerHelper; import net.minecraft.block.Block; import net.minecraft.entity.EntityType; @@ -83,6 +84,9 @@ public final class AppEng //FIXMEthis.registration = new Registration(); //FIXMEMinecraftForge.EVENT_BUS.register( this.registration ); + CreativeTab.init(); + CreativeTabFacade.init(); + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); Registration registration = new Registration(); modEventBus.addGenericListener(Block.class, registration::registerBlocks); @@ -140,11 +144,6 @@ public final class AppEng // // AELog.info( "Pre Initialization ( started )" ); // -// CreativeTab.init(); -// if( AEConfig.instance().isFeatureEnabled( AEFeature.FACADES ) ) -// { -// CreativeTabFacade.init(); -// } // // for( final IntegrationType type : IntegrationType.values() ) // { @@ -172,7 +171,7 @@ public final class AppEng // // // Instantiate all Plugins // List injectables = Lists.newArrayList( -// AEApi.instance() ); +// Api.INSTANCE ); // new PluginLoader().loadPlugins( injectables, event.getAsmData() ); // } // diff --git a/src/main/java/appeng/core/CreativeTab.java b/src/main/java/appeng/core/CreativeTab.java index 0f676b647..30cb60e0a 100644 --- a/src/main/java/appeng/core/CreativeTab.java +++ b/src/main/java/appeng/core/CreativeTab.java @@ -38,7 +38,7 @@ public final class CreativeTab static void init() { - instance = new ItemGroup( 11, "appliedenergistics2" ) + instance = new ItemGroup( "appliedenergistics2" ) { @Override @@ -49,13 +49,15 @@ public final class CreativeTab private ItemStack getIconItemStack() { - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); final IBlocks blocks = definitions.blocks(); final IItems items = definitions.items(); final IMaterials materials = definitions.materials(); - return this.findFirst( blocks.controller(), blocks.chest(), blocks.cellWorkbench(), blocks.fluixBlock(), items.cell1k(), items.networkTool(), - materials.fluixCrystal(), materials.certusQuartzCrystal(), materials.skyDust() ); + return findFirst(blocks.quartzOre()); + + // FIXME return this.findFirst( blocks.controller(), blocks.chest(), blocks.cellWorkbench(), blocks.fluixBlock(), items.cell1k(), items.networkTool(), + // FIXME materials.fluixCrystal(), materials.certusQuartzCrystal(), materials.skyDust() ); } private ItemStack findFirst( final IItemDefinition... choices ) diff --git a/src/main/java/appeng/core/CreativeTabFacade.java b/src/main/java/appeng/core/CreativeTabFacade.java index ab59c5fd6..92d1f49be 100644 --- a/src/main/java/appeng/core/CreativeTabFacade.java +++ b/src/main/java/appeng/core/CreativeTabFacade.java @@ -22,44 +22,34 @@ package appeng.core; import java.util.Optional; import net.minecraft.block.Blocks; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import appeng.api.AEApi; -import appeng.items.parts.ItemFacade; -public final class CreativeTabFacade extends CreativeTabs +public final class CreativeTabFacade { - - public static CreativeTabFacade instance = null; - - public CreativeTabFacade() - { - super( "appliedenergistics2.facades" ); - } + public static ItemGroup instance = null; static void init() { - instance = new CreativeTabFacade(); + instance = new ItemGroup("appliedenergistics2.facades") { + + @Override + public ItemStack createIcon() + { + + // FIXME final Optional maybeFacade = Api.INSTANCE.definitions().items().facade().maybeItem(); + // FIXME if( maybeFacade.isPresent() ) + { + // FIXME return ( (ItemFacade) maybeFacade.get() ).getCreativeTabIcon(); + } + + return new ItemStack( Blocks.OAK_PLANKS ); + } + }; } - @Override - public ItemStack getTabIconItem() - { - return this.getIconItemStack(); - } - - @Override - public ItemStack getIconItemStack() - { - final Optional maybeFacade = AEApi.instance().definitions().items().facade().maybeItem(); - if( maybeFacade.isPresent() ) - { - return ( (ItemFacade) maybeFacade.get() ).getCreativeTabIcon(); - } - - return new ItemStack( Blocks.PLANKS ); - } } \ No newline at end of file diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index f0df4deb5..4640e4d91 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -19,49 +19,39 @@ package appeng.core; -import java.io.File; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashSet; -import java.util.Set; - -import javax.annotation.Nonnull; - import appeng.bootstrap.IModelRegistry; +import appeng.bootstrap.components.IBlockRegistrationComponent; import appeng.bootstrap.components.IEntityRegistrationComponent; +import appeng.bootstrap.components.IItemRegistrationComponent; import appeng.bootstrap.components.IModelRegistrationComponent; import appeng.client.render.effects.ChargedOreFX; -import com.google.common.base.Preconditions; - -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.advancements.ICriterionInstance; -import net.minecraft.advancements.ICriterionTrigger; +import appeng.client.render.model.GlassModelLoader; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemModelMesher; import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.entity.EntityType; import net.minecraft.item.Item; -import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.ParticleType; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.dimension.DimensionType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; +import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.eventbus.api.GenericEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.registries.IForgeRegistry; -import appeng.bootstrap.components.IBlockRegistrationComponent; -import appeng.bootstrap.components.IItemRegistrationComponent; final class Registration { -// DimensionType storageDimensionType; + + public Registration() { + ModelLoaderRegistry.registerLoader(new ResourceLocation(AppEng.MOD_ID, "glass"), GlassModelLoader.INSTANCE); + } + + // DimensionType storageDimensionType; // int storageDimensionID; // Biome storageBiome; // AdvancementTriggers advancementTriggers; @@ -191,6 +181,7 @@ final class Registration @OnlyIn( Dist.CLIENT ) public void modelRegistryEvent( ModelRegistryEvent event ) { + final ApiDefinitions definitions = Api.INSTANCE.definitions(); final IModelRegistry registry = new IModelRegistry() { @Override @@ -200,7 +191,7 @@ final class Registration @Override public void setCustomModelResourceLocation(Item item, int metadata, ModelResourceLocation model) { - // TODO: this does not actually work + // FIXME: this does not actually work ItemModelMesher mesher = Minecraft.getInstance().getItemRenderer().getItemModelMesher(); mesher.register(item, model); } diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index 72c21e9f0..0004151a6 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -22,13 +22,19 @@ package appeng.core.api.definitions; import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlocks; import appeng.api.definitions.ITileDefinition; +import appeng.bootstrap.BlockRenderingCustomizer; import appeng.bootstrap.FeatureFactory; +import appeng.bootstrap.IBlockRendering; +import appeng.bootstrap.IItemRendering; +import appeng.client.render.model.GlassModel; import appeng.core.features.AEFeature; import appeng.core.features.registries.PartModels; -import appeng.decorative.solid.BlockChargedQuartzOre; -import appeng.decorative.solid.BlockQuartzOre; +import appeng.decorative.AEDecorativeBlock; +import appeng.decorative.solid.*; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; /** @@ -114,34 +120,37 @@ public final class ApiBlocks implements IBlocks private IBlockDefinition cubeGenerator; private IBlockDefinition energyGenerator; + private static final Block.Properties QUARTZ_PROPERTIES = Block.Properties.create(Material.ROCK) + .hardnessAndResistance(3, 5); + public ApiBlocks( FeatureFactory registry, PartModels partModels ) { - this.quartzOre = registry.block( "quartz_ore", () -> new BlockQuartzOre(Block.Properties.create(Material.ROCK).hardnessAndResistance(3, 5))) + this.quartzOre = registry.block( "quartz_ore", () -> new BlockQuartzOre(QUARTZ_PROPERTIES)) .features( AEFeature.CERTUS_ORE ) .build(); - this.quartzOreCharged = registry.block( "charged_quartz_ore", () -> new BlockChargedQuartzOre(Block.Properties.create(Material.ROCK).hardnessAndResistance(3, 5)) ) + this.quartzOreCharged = registry.block( "charged_quartz_ore", () -> new BlockChargedQuartzOre(QUARTZ_PROPERTIES) ) .features( AEFeature.CERTUS_ORE, AEFeature.CHARGED_CERTUS_ORE ) .build(); // this.matrixFrame = registry.block( "matrix_frame", BlockMatrixFrame::new ).features( AEFeature.SPATIAL_IO ).build(); // -// FeatureFactory deco = registry.features( AEFeature.DECORATIVE_BLOCKS ); -// this.quartzBlock = deco.block( "quartz_block", BlockQuartz::new ).build(); -// this.quartzPillar = deco.block( "quartz_pillar", BlockQuartzPillar::new ).build(); -// this.chiseledQuartzBlock = deco.block( "chiseled_quartz_block", BlockChiseledQuartz::new ).build(); -// -// this.quartzGlass = registry.features( AEFeature.QUARTZ_GLASS ) -// .block( "quartz_glass", BlockQuartzGlass::new ) + FeatureFactory deco = registry.features( AEFeature.DECORATIVE_BLOCKS ); + this.quartzBlock = deco.block( "quartz_block", () -> new AEDecorativeBlock(QUARTZ_PROPERTIES) ).build(); + this.quartzPillar = deco.block( "quartz_pillar", () -> new BlockQuartzPillar(QUARTZ_PROPERTIES) ).build(); + this.chiseledQuartzBlock = deco.block( "chiseled_quartz_block", () -> new AEDecorativeBlock(QUARTZ_PROPERTIES) ).build(); + + this.quartzGlass = registry.features( AEFeature.QUARTZ_GLASS ) + .block( "quartz_glass", BlockQuartzGlass::new ) // .useCustomItemModel() -// FIXME .rendering( new BlockRenderingCustomizer() -// FIXME { -// FIXME @Override -// FIXME @OnlyIn( Dist.CLIENT ) -// FIXME public void customize( IBlockRendering rendering, IItemRendering itemRendering ) -// FIXME { -// FIXME rendering.builtInModel( "models/block/builtin/quartz_glass", new GlassModel() ); -// FIXME } -// FIXME } ) -// .build(); +// .rendering( new BlockRenderingCustomizer() +// { +// @Override +// @OnlyIn( Dist.CLIENT) +// public void customize(IBlockRendering rendering, IItemRendering itemRendering ) +// { +// rendering.builtInModel( "models/block/builtin/quartz_glass", new GlassModel() ); +// } +// } ) + .build(); // this.quartzVibrantGlass = deco.block( "quartz_vibrant_glass", BlockQuartzLamp::new ) // .addFeatures( AEFeature.DECORATIVE_LIGHTS, AEFeature.QUARTZ_GLASS ) // .useCustomItemModel() diff --git a/src/main/java/appeng/core/api/definitions/ApiItems.java b/src/main/java/appeng/core/api/definitions/ApiItems.java index e69d39eea..97c5ed38c 100644 --- a/src/main/java/appeng/core/api/definitions/ApiItems.java +++ b/src/main/java/appeng/core/api/definitions/ApiItems.java @@ -19,62 +19,12 @@ package appeng.core.api.definitions; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.EntityEntryBuilder; -import net.minecraftforge.oredict.OreDictionary; - import appeng.api.definitions.IItemDefinition; import appeng.api.definitions.IItems; import appeng.api.util.AEColoredItemDefinition; import appeng.bootstrap.FeatureFactory; -import appeng.bootstrap.components.IEntityRegistrationComponent; -import appeng.bootstrap.components.IOreDictComponent; -import appeng.client.render.crafting.ItemEncodedPatternRendering; -import appeng.core.CreativeTabFacade; import appeng.core.features.AEFeature; -import appeng.debug.ToolDebugCard; -import appeng.debug.ToolEraser; -import appeng.debug.ToolMeteoritePlacer; -import appeng.debug.ToolReplicatorCard; -import appeng.entity.EntityGrowingCrystal; -import appeng.entity.EntityIds; -import appeng.fluids.items.BasicFluidStorageCell; -import appeng.fluids.items.FluidDummyItem; -import appeng.fluids.items.FluidDummyItemRendering; -import appeng.hooks.DispenserBlockTool; -import appeng.hooks.DispenserMatterCannon; -import appeng.items.materials.MaterialType; -import appeng.items.misc.ItemCrystalSeed; -import appeng.items.misc.ItemCrystalSeedRendering; -import appeng.items.misc.ItemEncodedPattern; -import appeng.items.misc.ItemPaintBall; -import appeng.items.misc.ItemPaintBallRendering; -import appeng.items.parts.FacadeRendering; -import appeng.items.parts.ItemFacade; -import appeng.items.storage.BasicItemStorageCell; -import appeng.items.storage.ItemCreativeStorageCell; -import appeng.items.storage.ItemSpatialStorageCell; -import appeng.items.storage.ItemViewCell; -import appeng.items.tools.ToolBiometricCard; -import appeng.items.tools.ToolBiometricCardRendering; -import appeng.items.tools.ToolMemoryCard; -import appeng.items.tools.ToolMemoryCardRendering; -import appeng.items.tools.ToolNetworkTool; -import appeng.items.tools.powered.ToolChargedStaff; -import appeng.items.tools.powered.ToolColorApplicator; -import appeng.items.tools.powered.ToolColorApplicatorRendering; -import appeng.items.tools.powered.ToolEntropyManipulator; -import appeng.items.tools.powered.ToolMatterCannon; -import appeng.items.tools.powered.ToolPortableCell; -import appeng.items.tools.powered.ToolWirelessTerminal; -import appeng.items.tools.quartz.ToolQuartzAxe; -import appeng.items.tools.quartz.ToolQuartzCuttingKnife; -import appeng.items.tools.quartz.ToolQuartzHoe; -import appeng.items.tools.quartz.ToolQuartzPickaxe; -import appeng.items.tools.quartz.ToolQuartzSpade; -import appeng.items.tools.quartz.ToolQuartzSword; -import appeng.items.tools.quartz.ToolQuartzWrench; +import appeng.items.tools.quartz.*; /** @@ -82,66 +32,67 @@ import appeng.items.tools.quartz.ToolQuartzWrench; */ public final class ApiItems implements IItems { - private final IItemDefinition certusQuartzAxe; - private final IItemDefinition certusQuartzHoe; - private final IItemDefinition certusQuartzShovel; - private final IItemDefinition certusQuartzPick; - private final IItemDefinition certusQuartzSword; - private final IItemDefinition certusQuartzWrench; - private final IItemDefinition certusQuartzKnife; + // FIXME: Make final after porting + private IItemDefinition certusQuartzAxe; + private IItemDefinition certusQuartzHoe; + private IItemDefinition certusQuartzShovel; + private IItemDefinition certusQuartzPick; + private IItemDefinition certusQuartzSword; + private IItemDefinition certusQuartzWrench; + private IItemDefinition certusQuartzKnife; - private final IItemDefinition netherQuartzAxe; - private final IItemDefinition netherQuartzHoe; - private final IItemDefinition netherQuartzShovel; - private final IItemDefinition netherQuartzPick; - private final IItemDefinition netherQuartzSword; - private final IItemDefinition netherQuartzWrench; - private final IItemDefinition netherQuartzKnife; + private IItemDefinition netherQuartzAxe; + private IItemDefinition netherQuartzHoe; + private IItemDefinition netherQuartzShovel; + private IItemDefinition netherQuartzPick; + private IItemDefinition netherQuartzSword; + private IItemDefinition netherQuartzWrench; + private IItemDefinition netherQuartzKnife; - private final IItemDefinition entropyManipulator; - private final IItemDefinition wirelessTerminal; - private final IItemDefinition biometricCard; - private final IItemDefinition chargedStaff; - private final IItemDefinition massCannon; - private final IItemDefinition memoryCard; - private final IItemDefinition networkTool; - private final IItemDefinition portableCell; + private IItemDefinition entropyManipulator; + private IItemDefinition wirelessTerminal; + private IItemDefinition biometricCard; + private IItemDefinition chargedStaff; + private IItemDefinition massCannon; + private IItemDefinition memoryCard; + private IItemDefinition networkTool; + private IItemDefinition portableCell; - private final IItemDefinition cellCreative; - private final IItemDefinition viewCell; + private IItemDefinition cellCreative; + private IItemDefinition viewCell; - private final IItemDefinition cell1k; - private final IItemDefinition cell4k; - private final IItemDefinition cell16k; - private final IItemDefinition cell64k; + private IItemDefinition cell1k; + private IItemDefinition cell4k; + private IItemDefinition cell16k; + private IItemDefinition cell64k; - private final IItemDefinition fluidCell1k; - private final IItemDefinition fluidCell4k; - private final IItemDefinition fluidCell16k; - private final IItemDefinition fluidCell64k; + private IItemDefinition fluidCell1k; + private IItemDefinition fluidCell4k; + private IItemDefinition fluidCell16k; + private IItemDefinition fluidCell64k; - private final IItemDefinition spatialCell2; - private final IItemDefinition spatialCell16; - private final IItemDefinition spatialCell128; + private IItemDefinition spatialCell2; + private IItemDefinition spatialCell16; + private IItemDefinition spatialCell128; - private final IItemDefinition facade; - private final IItemDefinition crystalSeed; + private IItemDefinition facade; + private IItemDefinition crystalSeed; // rv1 - private final IItemDefinition encodedPattern; - private final IItemDefinition colorApplicator; + private IItemDefinition encodedPattern; + private IItemDefinition colorApplicator; - private final IItemDefinition paintBall; - private final AEColoredItemDefinition coloredPaintBall; - private final AEColoredItemDefinition coloredLumenPaintBall; + private IItemDefinition paintBall; + private AEColoredItemDefinition coloredPaintBall; + private AEColoredItemDefinition coloredLumenPaintBall; // unsupported dev tools - private final IItemDefinition toolEraser; - private final IItemDefinition toolMeteoritePlacer; - private final IItemDefinition toolDebugCard; - private final IItemDefinition toolReplicatorCard; + private IItemDefinition toolEraser; + private IItemDefinition toolMeteoritePlacer; + private IItemDefinition toolDebugCard; + private IItemDefinition toolReplicatorCard; - private final IItemDefinition dummyFluidItem; + private IItemDefinition dummyFluidItem; public ApiItems( FeatureFactory registry ) { @@ -163,11 +114,11 @@ public final class ApiItems implements IItems .build(); this.certusQuartzWrench = certusTools.item( "certus_quartz_wrench", ToolQuartzWrench::new ) .addFeatures( AEFeature.QUARTZ_WRENCH ) - .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzWrench", new ItemStack( item ) ) ) +// FIXME .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzWrench", new ItemStack( item ) ) ) .build(); this.certusQuartzKnife = certusTools.item( "certus_quartz_cutting_knife", () -> new ToolQuartzCuttingKnife( AEFeature.CERTUS_QUARTZ_TOOLS ) ) .addFeatures( AEFeature.QUARTZ_KNIFE ) - .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzKnife", new ItemStack( item ) ) ) +// FIXME .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzKnife", new ItemStack( item ) ) ) .build(); FeatureFactory netherTools = registry.features( AEFeature.NETHER_QUARTZ_TOOLS ); @@ -188,102 +139,102 @@ public final class ApiItems implements IItems .build(); this.netherQuartzWrench = netherTools.item( "nether_quartz_wrench", ToolQuartzWrench::new ) .addFeatures( AEFeature.QUARTZ_WRENCH ) - .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzWrench", new ItemStack( item ) ) ) +// FIXME .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzWrench", new ItemStack( item ) ) ) .build(); this.netherQuartzKnife = netherTools.item( "nether_quartz_cutting_knife", () -> new ToolQuartzCuttingKnife( AEFeature.NETHER_QUARTZ_TOOLS ) ) .addFeatures( AEFeature.QUARTZ_KNIFE ) - .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzKnife", new ItemStack( item ) ) ) +// FIXME .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzKnife", new ItemStack( item ) ) ) .build(); - FeatureFactory powerTools = registry.features( AEFeature.POWERED_TOOLS ); - this.entropyManipulator = powerTools.item( "entropy_manipulator", ToolEntropyManipulator::new ) - .addFeatures( AEFeature.ENTROPY_MANIPULATOR ) - .dispenserBehavior( DispenserBlockTool::new ) - .build(); - this.wirelessTerminal = powerTools.item( "wireless_terminal", ToolWirelessTerminal::new ).addFeatures( AEFeature.WIRELESS_ACCESS_TERMINAL ).build(); - this.chargedStaff = powerTools.item( "charged_staff", ToolChargedStaff::new ).addFeatures( AEFeature.CHARGED_STAFF ).build(); - this.massCannon = powerTools.item( "matter_cannon", ToolMatterCannon::new ) - .addFeatures( AEFeature.MATTER_CANNON ) - .dispenserBehavior( DispenserMatterCannon::new ) - .build(); - this.portableCell = powerTools.item( "portable_cell", ToolPortableCell::new ).addFeatures( AEFeature.PORTABLE_CELL, AEFeature.STORAGE_CELLS ).build(); - this.colorApplicator = powerTools.item( "color_applicator", ToolColorApplicator::new ) - .addFeatures( AEFeature.COLOR_APPLICATOR ) - .dispenserBehavior( DispenserBlockTool::new ) - .rendering( new ToolColorApplicatorRendering() ) - .build(); - - this.biometricCard = registry.item( "biometric_card", ToolBiometricCard::new ) - .rendering( new ToolBiometricCardRendering() ) - .features( AEFeature.SECURITY ) - .build(); - this.memoryCard = registry.item( "memory_card", ToolMemoryCard::new ) - .rendering( new ToolMemoryCardRendering() ) - .features( AEFeature.MEMORY_CARD ) - .build(); - this.networkTool = registry.item( "network_tool", ToolNetworkTool::new ).features( AEFeature.NETWORK_TOOL ).build(); - - this.cellCreative = registry.item( "creative_storage_cell", ItemCreativeStorageCell::new ) - .features( AEFeature.STORAGE_CELLS, AEFeature.CREATIVE ) - .build(); - this.viewCell = registry.item( "view_cell", ItemViewCell::new ).features( AEFeature.VIEW_CELL ).build(); - - FeatureFactory storageCells = registry.features( AEFeature.STORAGE_CELLS ); - this.cell1k = storageCells.item( "storage_cell_1k", () -> new BasicItemStorageCell( MaterialType.CELL1K_PART, 1 ) ).build(); - this.cell4k = storageCells.item( "storage_cell_4k", () -> new BasicItemStorageCell( MaterialType.CELL4K_PART, 4 ) ).build(); - this.cell16k = storageCells.item( "storage_cell_16k", () -> new BasicItemStorageCell( MaterialType.CELL16K_PART, 16 ) ).build(); - this.cell64k = storageCells.item( "storage_cell_64k", () -> new BasicItemStorageCell( MaterialType.CELL64K_PART, 64 ) ).build(); - - this.fluidCell1k = storageCells.item( "fluid_storage_cell_1k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL1K_PART, 1 ) ).build(); - this.fluidCell4k = storageCells.item( "fluid_storage_cell_4k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL4K_PART, 4 ) ).build(); - this.fluidCell16k = storageCells.item( "fluid_storage_cell_16k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL16K_PART, 16 ) ).build(); - this.fluidCell64k = storageCells.item( "fluid_storage_cell_64k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL64K_PART, 64 ) ).build(); - - FeatureFactory spatialCells = registry.features( AEFeature.SPATIAL_IO ); - this.spatialCell2 = spatialCells.item( "spatial_storage_cell_2_cubed", () -> new ItemSpatialStorageCell( 2 ) ).build(); - this.spatialCell16 = spatialCells.item( "spatial_storage_cell_16_cubed", () -> new ItemSpatialStorageCell( 16 ) ).build(); - this.spatialCell128 = spatialCells.item( "spatial_storage_cell_128_cubed", () -> new ItemSpatialStorageCell( 128 ) ).build(); - - this.facade = registry.item( "facade", ItemFacade::new ) - .features( AEFeature.FACADES ) - .creativeTab( CreativeTabFacade.instance ) - .rendering( new FacadeRendering() ) - .build(); - this.crystalSeed = registry.item( "crystal_seed", ItemCrystalSeed::new ) - .features( AEFeature.CRYSTAL_SEEDS ) - .rendering( new ItemCrystalSeedRendering() ) - .bootstrap( item -> (IEntityRegistrationComponent) r -> - { - r.register( EntityEntryBuilder.create() - .entity( EntityGrowingCrystal.class ) - .id( new ResourceLocation( "appliedenergistics2", EntityGrowingCrystal.class.getName() ), - EntityIds.get( EntityGrowingCrystal.class ) ) - .name( EntityGrowingCrystal.class.getSimpleName() ) - .tracker( 16, 4, true ) - .build() ); - } ) - .build(); - - // rv1 - this.encodedPattern = registry.item( "encoded_pattern", ItemEncodedPattern::new ) - .features( AEFeature.PATTERNS ) - .rendering( new ItemEncodedPatternRendering() ) - .build(); - - this.paintBall = registry.item( "paint_ball", ItemPaintBall::new ) - .features( AEFeature.PAINT_BALLS ) - .rendering( new ItemPaintBallRendering() ) - .build(); - this.coloredPaintBall = registry.colored( this.paintBall, 0 ); - this.coloredLumenPaintBall = registry.colored( this.paintBall, 20 ); - - FeatureFactory debugTools = registry.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE ); - this.toolEraser = debugTools.item( "debug_eraser", ToolEraser::new ).build(); - this.toolMeteoritePlacer = debugTools.item( "debug_meteorite_placer", ToolMeteoritePlacer::new ).build(); - this.toolDebugCard = debugTools.item( "debug_card", ToolDebugCard::new ).build(); - this.toolReplicatorCard = debugTools.item( "debug_replicator_card", ToolReplicatorCard::new ).build(); - - this.dummyFluidItem = registry.item( "dummy_fluid_item", FluidDummyItem::new ).rendering( new FluidDummyItemRendering() ).build(); +// FeatureFactory powerTools = registry.features( AEFeature.POWERED_TOOLS ); +// this.entropyManipulator = powerTools.item( "entropy_manipulator", ToolEntropyManipulator::new ) +// .addFeatures( AEFeature.ENTROPY_MANIPULATOR ) +// .dispenserBehavior( DispenserBlockTool::new ) +// .build(); +// this.wirelessTerminal = powerTools.item( "wireless_terminal", ToolWirelessTerminal::new ).addFeatures( AEFeature.WIRELESS_ACCESS_TERMINAL ).build(); +// this.chargedStaff = powerTools.item( "charged_staff", ToolChargedStaff::new ).addFeatures( AEFeature.CHARGED_STAFF ).build(); +// this.massCannon = powerTools.item( "matter_cannon", ToolMatterCannon::new ) +// .addFeatures( AEFeature.MATTER_CANNON ) +// .dispenserBehavior( DispenserMatterCannon::new ) +// .build(); +// this.portableCell = powerTools.item( "portable_cell", ToolPortableCell::new ).addFeatures( AEFeature.PORTABLE_CELL, AEFeature.STORAGE_CELLS ).build(); +// this.colorApplicator = powerTools.item( "color_applicator", ToolColorApplicator::new ) +// .addFeatures( AEFeature.COLOR_APPLICATOR ) +// .dispenserBehavior( DispenserBlockTool::new ) +// .rendering( new ToolColorApplicatorRendering() ) +// .build(); +// +// this.biometricCard = registry.item( "biometric_card", ToolBiometricCard::new ) +// .rendering( new ToolBiometricCardRendering() ) +// .features( AEFeature.SECURITY ) +// .build(); +// this.memoryCard = registry.item( "memory_card", ToolMemoryCard::new ) +// .rendering( new ToolMemoryCardRendering() ) +// .features( AEFeature.MEMORY_CARD ) +// .build(); +// this.networkTool = registry.item( "network_tool", ToolNetworkTool::new ).features( AEFeature.NETWORK_TOOL ).build(); +// +// this.cellCreative = registry.item( "creative_storage_cell", ItemCreativeStorageCell::new ) +// .features( AEFeature.STORAGE_CELLS, AEFeature.CREATIVE ) +// .build(); +// this.viewCell = registry.item( "view_cell", ItemViewCell::new ).features( AEFeature.VIEW_CELL ).build(); +// +// FeatureFactory storageCells = registry.features( AEFeature.STORAGE_CELLS ); +// this.cell1k = storageCells.item( "storage_cell_1k", () -> new BasicItemStorageCell( MaterialType.CELL1K_PART, 1 ) ).build(); +// this.cell4k = storageCells.item( "storage_cell_4k", () -> new BasicItemStorageCell( MaterialType.CELL4K_PART, 4 ) ).build(); +// this.cell16k = storageCells.item( "storage_cell_16k", () -> new BasicItemStorageCell( MaterialType.CELL16K_PART, 16 ) ).build(); +// this.cell64k = storageCells.item( "storage_cell_64k", () -> new BasicItemStorageCell( MaterialType.CELL64K_PART, 64 ) ).build(); +// +// this.fluidCell1k = storageCells.item( "fluid_storage_cell_1k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL1K_PART, 1 ) ).build(); +// this.fluidCell4k = storageCells.item( "fluid_storage_cell_4k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL4K_PART, 4 ) ).build(); +// this.fluidCell16k = storageCells.item( "fluid_storage_cell_16k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL16K_PART, 16 ) ).build(); +// this.fluidCell64k = storageCells.item( "fluid_storage_cell_64k", () -> new BasicFluidStorageCell( MaterialType.FLUID_CELL64K_PART, 64 ) ).build(); +// +// FeatureFactory spatialCells = registry.features( AEFeature.SPATIAL_IO ); +// this.spatialCell2 = spatialCells.item( "spatial_storage_cell_2_cubed", () -> new ItemSpatialStorageCell( 2 ) ).build(); +// this.spatialCell16 = spatialCells.item( "spatial_storage_cell_16_cubed", () -> new ItemSpatialStorageCell( 16 ) ).build(); +// this.spatialCell128 = spatialCells.item( "spatial_storage_cell_128_cubed", () -> new ItemSpatialStorageCell( 128 ) ).build(); +// +// this.facade = registry.item( "facade", ItemFacade::new ) +// .features( AEFeature.FACADES ) +// .creativeTab( CreativeTabFacade.instance ) +// .rendering( new FacadeRendering() ) +// .build(); +// this.crystalSeed = registry.item( "crystal_seed", ItemCrystalSeed::new ) +// .features( AEFeature.CRYSTAL_SEEDS ) +// .rendering( new ItemCrystalSeedRendering() ) +// .bootstrap( item -> (IEntityRegistrationComponent) r -> +// { +// r.register( EntityEntryBuilder.create() +// .entity( EntityGrowingCrystal.class ) +// .id( new ResourceLocation( "appliedenergistics2", EntityGrowingCrystal.class.getName() ), +// EntityIds.get( EntityGrowingCrystal.class ) ) +// .name( EntityGrowingCrystal.class.getSimpleName() ) +// .tracker( 16, 4, true ) +// .build() ); +// } ) +// .build(); +// +// // rv1 +// this.encodedPattern = registry.item( "encoded_pattern", ItemEncodedPattern::new ) +// .features( AEFeature.PATTERNS ) +// .rendering( new ItemEncodedPatternRendering() ) +// .build(); +// +// this.paintBall = registry.item( "paint_ball", ItemPaintBall::new ) +// .features( AEFeature.PAINT_BALLS ) +// .rendering( new ItemPaintBallRendering() ) +// .build(); +// this.coloredPaintBall = registry.colored( this.paintBall, 0 ); +// this.coloredLumenPaintBall = registry.colored( this.paintBall, 20 ); +// +// FeatureFactory debugTools = registry.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE ); +// this.toolEraser = debugTools.item( "debug_eraser", ToolEraser::new ).build(); +// this.toolMeteoritePlacer = debugTools.item( "debug_meteorite_placer", ToolMeteoritePlacer::new ).build(); +// this.toolDebugCard = debugTools.item( "debug_card", ToolDebugCard::new ).build(); +// this.toolReplicatorCard = debugTools.item( "debug_replicator_card", ToolReplicatorCard::new ).build(); +// +// this.dummyFluidItem = registry.item( "dummy_fluid_item", FluidDummyItem::new ).rendering( new FluidDummyItemRendering() ).build(); } @Override diff --git a/src/main/java/appeng/core/features/BlockDefinition.java b/src/main/java/appeng/core/features/BlockDefinition.java index 763aa40ec..ee7660228 100644 --- a/src/main/java/appeng/core/features/BlockDefinition.java +++ b/src/main/java/appeng/core/features/BlockDefinition.java @@ -35,39 +35,40 @@ import net.minecraftforge.fml.RegistryObject; public class BlockDefinition extends ItemDefinition implements IBlockDefinition { - private final RegistryObject block; + private final Block block; + + private final BlockItem blockItem; public BlockDefinition( String registryName, Block block, BlockItem item ) { super( registryName, item ); - this.block = null; // FIXME // Optional.ofNullable( block ); + this.block = block; + this.blockItem = item; } @Override - public final RegistryObject maybeBlock() + public final Block block() { return this.block; } @Override - public RegistryObject maybeBlockItem() + public BlockItem blockItem() { - // FIXME - return null; -// return this.block.map( BlockItem::new ); + return blockItem; } @Override - public final Optional maybeStack( int stackSize ) + public final ItemStack stack( int stackSize ) { Preconditions.checkArgument( stackSize > 0 ); - return this.block.map( b -> new ItemStack( b, stackSize ) ); + return new ItemStack(block, stackSize); } @Override public final boolean isSameAs( final IBlockReader world, final BlockPos pos ) { - return this.block.isPresent() && world.getBlockState( pos ).getBlock() == this.block.get(); + return world.getBlockState( pos ).getBlock() == this.block; } } diff --git a/src/main/java/appeng/core/features/ItemDefinition.java b/src/main/java/appeng/core/features/ItemDefinition.java index b074906a0..20dd032a4 100644 --- a/src/main/java/appeng/core/features/ItemDefinition.java +++ b/src/main/java/appeng/core/features/ItemDefinition.java @@ -36,13 +36,13 @@ import appeng.util.Platform; public class ItemDefinition implements IItemDefinition { private final String identifier; - private final Optional item; + private final Item item; public ItemDefinition( String registryName, Item item ) { Preconditions.checkArgument( !Strings.isNullOrEmpty( registryName ), "registryName" ); this.identifier = registryName; - this.item = Optional.ofNullable( item ); + this.item = item; } @Nonnull @@ -53,27 +53,28 @@ public class ItemDefinition implements IItemDefinition } @Override - public final Optional maybeItem() + public final Item item() { return this.item; } @Override - public Optional maybeStack( final int stackSize ) + public ItemStack stack( final int stackSize ) { - return this.item.map( item -> new ItemStack( item, stackSize ) ); + return new ItemStack( item, stackSize ); } @Override public boolean isEnabled() { - return this.item.isPresent(); + // FIXME sadly we can only set this after registration + return true; } @Override public final boolean isSameAs( final ItemStack comparableStack ) { - return this.isEnabled() && Platform.itemComparisons().isEqualItemType( comparableStack, this.maybeStack( 1 ).get() ); + return Platform.itemComparisons().isEqualItemType( comparableStack, this.stack( 1 ) ); } } diff --git a/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java b/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java index 9ec42b6bd..c5f56a7c2 100644 --- a/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java +++ b/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java @@ -56,7 +56,7 @@ public final class P2PTunnelRegistry implements IP2PTunnelRegistry public void configure() { - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); final IBlocks blocks = definitions.blocks(); final IParts parts = definitions.parts(); diff --git a/src/main/java/appeng/core/features/registries/WirelessRegistry.java b/src/main/java/appeng/core/features/registries/WirelessRegistry.java index 743b81183..32aedad40 100644 --- a/src/main/java/appeng/core/features/registries/WirelessRegistry.java +++ b/src/main/java/appeng/core/features/registries/WirelessRegistry.java @@ -102,7 +102,7 @@ public final class WirelessRegistry implements IWirelessTermRegistry } final long parsedKey = Long.parseLong( unparsedKey ); - final ILocatable securityStation = AEApi.instance().registries().locatable().getLocatableBy( parsedKey ); + final ILocatable securityStation = Api.INSTANCE.registries().locatable().getLocatableBy( parsedKey ); if( securityStation == null ) { player.sendMessage( PlayerMessages.StationCanNotBeLocated.get() ); diff --git a/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java b/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java index 80bf54bc5..3cce5ce1c 100644 --- a/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java +++ b/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java @@ -24,7 +24,7 @@ public class BasicItemCellGuiHandler implements ICellGuiHandler @Override public > boolean isHandlerFor( final IStorageChannel channel ) { - return channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java b/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java index 4a9f3e81c..d7db4a79b 100644 --- a/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java +++ b/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java @@ -43,7 +43,7 @@ public final class CreativeCellHandler implements ICellHandler @Override public ICellInventoryHandler getCellInventory( final ItemStack is, final ISaveProvider container, final IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) && !is.isEmpty() && is + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) && !is.isEmpty() && is .getItem() instanceof ItemCreativeStorageCell ) { return CreativeCellInventory.getCell( is ); diff --git a/src/main/java/appeng/core/sync/GuiBridge.java b/src/main/java/appeng/core/sync/GuiBridge.java index b402ccb6b..cff58f6db 100644 --- a/src/main/java/appeng/core/sync/GuiBridge.java +++ b/src/main/java/appeng/core/sync/GuiBridge.java @@ -318,7 +318,7 @@ public enum GuiBridge implements IGuiHandler return ( (IGuiItem) it.getItem() ).getGuiObject( it, w, new BlockPos( x, y, z ) ); } - final IWirelessTermHandler wh = AEApi.instance().registries().wireless().getWirelessTerminalHandler( it ); + final IWirelessTermHandler wh = Api.INSTANCE.registries().wireless().getWirelessTerminalHandler( it ); if( wh != null ) { return new WirelessTerminalGuiObject( wh, it, player, w, x, y, z ); diff --git a/src/main/java/appeng/core/sync/packets/PacketClick.java b/src/main/java/appeng/core/sync/packets/PacketClick.java index dcac011ba..c15a0b187 100644 --- a/src/main/java/appeng/core/sync/packets/PacketClick.java +++ b/src/main/java/appeng/core/sync/packets/PacketClick.java @@ -113,7 +113,7 @@ public class PacketClick extends AppEngPacket public void serverPacketData( final INetworkInfo manager, final AppEngPacket packet, final PlayerEntity player ) { final ItemStack is = player.inventory.getCurrentItem(); - final IItems items = AEApi.instance().definitions().items(); + final IItems items = Api.INSTANCE.definitions().items(); final IComparableDefinition maybeMemoryCard = items.memoryCard(); final IComparableDefinition maybeColorApplicator = items.colorApplicator(); final BlockPos pos = new BlockPos( this.x, this.y, this.z ); diff --git a/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java b/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java index 2e80af8bf..86a1c7fe0 100644 --- a/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java +++ b/src/main/java/appeng/core/sync/packets/PacketJEIRecipe.java @@ -139,7 +139,7 @@ public class PacketJEIRecipe extends AppEngPacket if( inv != null && this.recipe != null && security != null ) { - final IMEMonitor storage = inv.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + final IMEMonitor storage = inv.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); final IPartitionList filter = ItemViewCell.createFilter( cct.getViewCells() ); for( int x = 0; x < craftMatrix.getSlots(); x++ ) diff --git a/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java b/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java index cb3fc6390..f02f671f1 100644 --- a/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java +++ b/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java @@ -88,7 +88,7 @@ public class PacketPatternSlot extends AppEngPacket this.writeItem( slotItem, data ); for( int x = 0; x < 9; x++ ) { - this.pattern[x] = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( pat.getStackInSlot( x ) ); + this.pattern[x] = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( pat.getStackInSlot( x ) ); this.writeItem( this.pattern[x], data ); } diff --git a/src/main/java/appeng/crafting/CraftingJob.java b/src/main/java/appeng/crafting/CraftingJob.java index abe751200..b050f078d 100644 --- a/src/main/java/appeng/crafting/CraftingJob.java +++ b/src/main/java/appeng/crafting/CraftingJob.java @@ -55,8 +55,8 @@ public class CraftingJob implements Runnable, ICraftingJob private final MECraftingInventory original; private final World world; - private final IItemList crafting = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - private final IItemList missing = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList crafting = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList missing = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private final HashMap opsAndMultiplier = new HashMap<>(); private final Object monitor = new Object(); private final Stopwatch watch = Stopwatch.createUnstarted(); @@ -87,7 +87,7 @@ public class CraftingJob implements Runnable, ICraftingJob final ICraftingGrid cc = grid.getCache( ICraftingGrid.class ); final IStorageGrid sg = grid.getCache( IStorageGrid.class ); this.original = new MECraftingInventory( sg - .getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ), actionSrc, false, false, false ); + .getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ), actionSrc, false, false, false ); this.setTree( this.getCraftingTree( cc, what ) ); this.availableCheck = null; diff --git a/src/main/java/appeng/crafting/CraftingTreeNode.java b/src/main/java/appeng/crafting/CraftingTreeNode.java index f62391378..1c83c1808 100644 --- a/src/main/java/appeng/crafting/CraftingTreeNode.java +++ b/src/main/java/appeng/crafting/CraftingTreeNode.java @@ -45,7 +45,7 @@ public class CraftingTreeNode // what slot! private final int slot; private final CraftingJob job; - private final IItemList used = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList used = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); // parent node. private final CraftingTreeProcess parent; private final World world; diff --git a/src/main/java/appeng/crafting/CraftingTreeProcess.java b/src/main/java/appeng/crafting/CraftingTreeProcess.java index 704f27e9f..09ce95dce 100644 --- a/src/main/java/appeng/crafting/CraftingTreeProcess.java +++ b/src/main/java/appeng/crafting/CraftingTreeProcess.java @@ -208,7 +208,7 @@ public class CraftingTreeProcess ItemStack is = ic.getStackInSlot( x ); is = Platform.getContainerItem( is ); - final IAEItemStack o = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( is ); + final IAEItemStack o = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( is ); if( o != null ) { this.bytes++; @@ -227,7 +227,7 @@ public class CraftingTreeProcess if( this.containerItems ) { final ItemStack is = Platform.getContainerItem( stack.createItemStack() ); - final IAEItemStack o = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( is ); + final IAEItemStack o = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( is ); if( o != null ) { this.bytes++; diff --git a/src/main/java/appeng/crafting/MECraftingInventory.java b/src/main/java/appeng/crafting/MECraftingInventory.java index 06c83c038..4d12c1975 100644 --- a/src/main/java/appeng/crafting/MECraftingInventory.java +++ b/src/main/java/appeng/crafting/MECraftingInventory.java @@ -50,7 +50,7 @@ public class MECraftingInventory implements IMEInventory public MECraftingInventory() { - this.localCache = new ItemListIgnoreCrafting<>( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + this.localCache = new ItemListIgnoreCrafting<>( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); this.extractedCache = null; this.injectedCache = null; this.missingCache = null; @@ -70,7 +70,7 @@ public class MECraftingInventory implements IMEInventory if( this.logMissing ) { - this.missingCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.missingCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { @@ -79,7 +79,7 @@ public class MECraftingInventory implements IMEInventory if( this.logExtracted ) { - this.extractedCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.extractedCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { @@ -88,7 +88,7 @@ public class MECraftingInventory implements IMEInventory if( this.logInjections ) { - this.injectedCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.injectedCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { @@ -96,7 +96,7 @@ public class MECraftingInventory implements IMEInventory } this.localCache = this.target - .getAvailableItems( new ItemListIgnoreCrafting<>( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ) ); + .getAvailableItems( new ItemListIgnoreCrafting<>( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ) ); this.par = parent; } @@ -110,7 +110,7 @@ public class MECraftingInventory implements IMEInventory if( logMissing ) { - this.missingCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.missingCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { @@ -119,7 +119,7 @@ public class MECraftingInventory implements IMEInventory if( logExtracted ) { - this.extractedCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.extractedCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { @@ -128,14 +128,14 @@ public class MECraftingInventory implements IMEInventory if( logInjections ) { - this.injectedCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.injectedCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { this.injectedCache = null; } - this.localCache = new ItemListIgnoreCrafting<>( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + this.localCache = new ItemListIgnoreCrafting<>( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); for( final IAEItemStack is : target.getStorageList() ) { this.localCache.add( target.extractItems( is, Actionable.SIMULATE, src ) ); @@ -153,7 +153,7 @@ public class MECraftingInventory implements IMEInventory if( logMissing ) { - this.missingCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.missingCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { @@ -162,7 +162,7 @@ public class MECraftingInventory implements IMEInventory if( logExtracted ) { - this.extractedCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.extractedCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { @@ -171,14 +171,14 @@ public class MECraftingInventory implements IMEInventory if( logInjections ) { - this.injectedCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + this.injectedCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); } else { this.injectedCache = null; } - this.localCache = target.getAvailableItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + this.localCache = target.getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); this.par = null; } @@ -259,7 +259,7 @@ public class MECraftingInventory implements IMEInventory @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } public IItemList getItemList() @@ -269,8 +269,8 @@ public class MECraftingInventory implements IMEInventory public boolean commit( final IActionSource src ) { - final IItemList added = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); - final IItemList pulled = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList added = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList pulled = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); boolean failed = false; if( this.logInjections ) diff --git a/src/main/java/appeng/decorative/AEDecorativeBlock.java b/src/main/java/appeng/decorative/AEDecorativeBlock.java index 43e3c3abc..f815e9c97 100644 --- a/src/main/java/appeng/decorative/AEDecorativeBlock.java +++ b/src/main/java/appeng/decorative/AEDecorativeBlock.java @@ -19,15 +19,12 @@ package appeng.decorative; -import net.minecraft.block.material.Material; - import appeng.block.AEBaseBlock; -public abstract class AEDecorativeBlock extends AEBaseBlock +public class AEDecorativeBlock extends AEBaseBlock { - public AEDecorativeBlock( final Material mat ) - { - super( mat ); + public AEDecorativeBlock(Properties props) { + super(props); } } diff --git a/src/main/java/appeng/decorative/solid/BlockChargedQuartzOre.java b/src/main/java/appeng/decorative/solid/BlockChargedQuartzOre.java index 5fada1490..5abd1c44d 100644 --- a/src/main/java/appeng/decorative/solid/BlockChargedQuartzOre.java +++ b/src/main/java/appeng/decorative/solid/BlockChargedQuartzOre.java @@ -42,7 +42,7 @@ public class BlockChargedQuartzOre extends BlockQuartzOre // @Override // public Item getItemDropped( final BlockState state, final Random rand, final int fortune ) // { -// return AEApi.instance() +// return Api.INSTANCE // .definitions() // .materials() // .certusQuartzCrystalCharged() @@ -53,7 +53,7 @@ public class BlockChargedQuartzOre extends BlockQuartzOre // @Override // public int damageDropped( final BlockState state ) // { -// return AEApi.instance() +// return Api.INSTANCE // .definitions() // .materials() // .certusQuartzCrystalCharged() @@ -65,7 +65,7 @@ public class BlockChargedQuartzOre extends BlockQuartzOre // @Override // public ItemStack getPickBlock( BlockState state, RayTraceResult target, World world, BlockPos pos, PlayerEntity player ) // { -// return AEApi.instance() +// return Api.INSTANCE // .definitions() // .blocks() // .quartzOreCharged() diff --git a/src/main/java/appeng/decorative/solid/BlockChiseledQuartz.java b/src/main/java/appeng/decorative/solid/BlockChiseledQuartz.java deleted file mode 100644 index 0fc08c7ab..000000000 --- a/src/main/java/appeng/decorative/solid/BlockChiseledQuartz.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.decorative.solid; - - -import net.minecraft.block.material.Material; - -import appeng.decorative.AEDecorativeBlock; - - -public final class BlockChiseledQuartz extends AEDecorativeBlock -{ - public BlockChiseledQuartz() - { - super( Material.ROCK ); - } -} diff --git a/src/main/java/appeng/decorative/solid/BlockQuartz.java b/src/main/java/appeng/decorative/solid/BlockQuartz.java deleted file mode 100644 index 71c31bc30..000000000 --- a/src/main/java/appeng/decorative/solid/BlockQuartz.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.decorative.solid; - - -import net.minecraft.block.material.Material; - -import appeng.decorative.AEDecorativeBlock; - - -public final class BlockQuartz extends AEDecorativeBlock -{ - public BlockQuartz() - { - super( Material.ROCK ); - } -} diff --git a/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java b/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java index b8f8d9ba1..fad3a0ce1 100644 --- a/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java +++ b/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java @@ -22,94 +22,80 @@ package appeng.decorative.solid; import java.util.EnumSet; import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.BlockStateContainer; import net.minecraft.block.BlockState; +import net.minecraft.entity.EntityType; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockReader; -import net.minecraftforge.common.property.ExtendedBlockState; -import net.minecraftforge.common.property.IExtendedBlockState; -import net.minecraftforge.common.property.IUnlistedProperty; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.model.data.ModelProperty; import appeng.block.AEBaseBlock; -import appeng.helpers.AEGlassMaterial; - public class BlockQuartzGlass extends AEBaseBlock { - // This unlisted property is used to determine the actual block that should be rendered - public static final UnlistedGlassStateProperty GLASS_STATE = new UnlistedGlassStateProperty(); - public BlockQuartzGlass() { - super( Material.GLASS ); - this.setLightOpacity( 0 ); + super( Properties.create(Material.GLASS) ); + // FIXME this.setLightOpacity( 0 ); this.setOpaque( false ); } - @Override - protected BlockStateContainer createBlockState() - { - IProperty[] listedProperties = new IProperty[0]; - IUnlistedProperty[] unlistedProperties = new IUnlistedProperty[] { GLASS_STATE }; - return new ExtendedBlockState( this, listedProperties, unlistedProperties ); +// @Override +// protected BlockStateContainer createBlockState() +// { +// IProperty[] listedProperties = new IProperty[0]; +// IUnlistedProperty[] unlistedProperties = new IUnlistedProperty[] { GLASS_STATE }; +// return new ExtendedBlockState( this, listedProperties, unlistedProperties ); +// } + +// FIXME @Override +// FIXME public BlockRenderLayer getBlockLayer() +// FIXME { +// FIXME return BlockRenderLayer.CUTOUT; +// FIXME } + +// FIXME @Override +// FIXME public boolean shouldSideBeRendered( final BlockState state, final IBlockReader w, final BlockPos pos, final Direction side ) +// FIXME { +// FIXME BlockPos adjacentPos = pos.offset( side ); +// FIXME +// FIXME final Material mat = w.getBlockState( adjacentPos ).getMaterial(); +// FIXME +// FIXME if( mat == Material.GLASS || mat == AEGlassMaterial.INSTANCE ) +// FIXME { +// FIXME if( w.getBlockState( adjacentPos ).getRenderType() == this.getRenderType( state ) ) +// FIXME { +// FIXME return false; +// FIXME } +// FIXME } +// FIXME +// FIXME return super.shouldSideBeRendered( state, w, pos, side ); +// FIXME } + + // BEGIN: Copied from AbstractGlassBlock + @OnlyIn(Dist.CLIENT) + public float getAmbientOcclusionLightValue(BlockState state, IBlockReader worldIn, BlockPos pos) { + return 1.0F; } - @Override - public BlockState getExtendedState( BlockState state, IBlockReader world, BlockPos pos ) - { - - EnumSet flushWith = EnumSet.noneOf( Direction.class ); - // Test every direction for another glass block - for( Direction facing : Direction.values() ) - { - if( isGlassBlock( world, pos, facing ) ) - { - flushWith.add( facing ); - } - } - - GlassState glassState = new GlassState( pos.getX(), pos.getY(), pos.getZ(), flushWith ); - - IExtendedBlockState extState = (IExtendedBlockState) state; - - return extState.withProperty( GLASS_STATE, glassState ); + public boolean propagatesSkylightDown(BlockState state, IBlockReader reader, BlockPos pos) { + return true; } - private static boolean isGlassBlock( IBlockReader world, BlockPos pos, Direction facing ) - { - return world.getBlockState( pos.offset( facing ) ).getBlock() instanceof BlockQuartzGlass; - } - - @Override - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.CUTOUT; - } - - @Override - public boolean shouldSideBeRendered( final BlockState state, final IBlockReader w, final BlockPos pos, final Direction side ) - { - BlockPos adjacentPos = pos.offset( side ); - - final Material mat = w.getBlockState( adjacentPos ).getMaterial(); - - if( mat == Material.GLASS || mat == AEGlassMaterial.INSTANCE ) - { - if( w.getBlockState( adjacentPos ).getRenderType() == this.getRenderType( state ) ) - { - return false; - } - } - - return super.shouldSideBeRendered( state, w, pos, side ); - } - - @Override - public boolean isFullCube( BlockState state ) - { + public boolean causesSuffocation(BlockState state, IBlockReader worldIn, BlockPos pos) { return false; } + + public boolean isNormalCube(BlockState state, IBlockReader worldIn, BlockPos pos) { + return false; + } + + public boolean canEntitySpawn(BlockState state, IBlockReader worldIn, BlockPos pos, EntityType type) { + return false; + } + // END: Copied from AbstractGlassBlock + } diff --git a/src/main/java/appeng/decorative/solid/BlockQuartzOre.java b/src/main/java/appeng/decorative/solid/BlockQuartzOre.java index dd4e537b9..b6a55c8e9 100644 --- a/src/main/java/appeng/decorative/solid/BlockQuartzOre.java +++ b/src/main/java/appeng/decorative/solid/BlockQuartzOre.java @@ -74,7 +74,7 @@ public class BlockQuartzOre extends AEBaseBlock // @Override // public Item getItemDropped( final BlockState state, final Random rand, final int fortune ) // { -// return AEApi.instance() +// return Api.INSTANCE // .definitions() // .materials() // .certusQuartzCrystal() @@ -86,7 +86,7 @@ public class BlockQuartzOre extends AEBaseBlock // @Override // public int damageDropped( final BlockState state ) // { -// return AEApi.instance() +// return Api.INSTANCE // .definitions() // .materials() // .certusQuartzCrystal() diff --git a/src/main/java/appeng/decorative/solid/BlockQuartzPillar.java b/src/main/java/appeng/decorative/solid/BlockQuartzPillar.java index 3caef9c81..96be9e9e7 100644 --- a/src/main/java/appeng/decorative/solid/BlockQuartzPillar.java +++ b/src/main/java/appeng/decorative/solid/BlockQuartzPillar.java @@ -19,9 +19,11 @@ package appeng.decorative.solid; -import net.minecraft.block.material.Material; +import appeng.decorative.AEDecorativeBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; import net.minecraft.state.EnumProperty; -import net.minecraft.state.IProperty; +import net.minecraft.state.StateContainer; import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; @@ -29,32 +31,24 @@ import net.minecraft.world.IBlockReader; import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; -import appeng.block.AEBaseBlock; import appeng.helpers.MetaRotation; -public class BlockQuartzPillar extends AEBaseBlock implements IOrientableBlock +public class BlockQuartzPillar extends AEDecorativeBlock implements IOrientableBlock { public static final EnumProperty AXIS = BlockStateProperties.AXIS; - public BlockQuartzPillar() - { - super( Material.ROCK ); + public BlockQuartzPillar(Properties props) { + super(props); // The upwards facing pillar is the default (i.e. for the item model) this.setDefaultState( this.getDefaultState().with( AXIS, Direction.Axis.Y ) ); } @Override - protected IProperty[] getAEStates() - { - return new IProperty[] { AXIS }; - } - - @Override - public boolean usesMetadata() - { - return true; + protected void fillStateContainer(StateContainer.Builder builder) { + super.fillStateContainer(builder); + builder.add(AXIS); } @Override diff --git a/src/main/java/appeng/entity/EntityChargedQuartz.java b/src/main/java/appeng/entity/EntityChargedQuartz.java index f724d4c32..654b6fda2 100644 --- a/src/main/java/appeng/entity/EntityChargedQuartz.java +++ b/src/main/java/appeng/entity/EntityChargedQuartz.java @@ -97,7 +97,7 @@ public final class EntityChargedQuartz extends AEBaseEntityItem private boolean transform() { final ItemStack item = this.getItem(); - final IMaterials materials = AEApi.instance().definitions().materials(); + final IMaterials materials = Api.INSTANCE.definitions().materials(); if( materials.certusQuartzCrystalCharged().isSameAs( item ) ) { diff --git a/src/main/java/appeng/entity/EntitySingularity.java b/src/main/java/appeng/entity/EntitySingularity.java index 02e94d963..65f7a691f 100644 --- a/src/main/java/appeng/entity/EntitySingularity.java +++ b/src/main/java/appeng/entity/EntitySingularity.java @@ -80,7 +80,7 @@ public final class EntitySingularity extends AEBaseEntityItem final ItemStack item = this.getItem(); - final IMaterials materials = AEApi.instance().definitions().materials(); + final IMaterials materials = Api.INSTANCE.definitions().materials(); if( materials.singularity().isSameAs( item ) ) { diff --git a/src/main/java/appeng/entity/EntityTinyTNTPrimed.java b/src/main/java/appeng/entity/EntityTinyTNTPrimed.java index ea7ee3fb3..a276754b1 100644 --- a/src/main/java/appeng/entity/EntityTinyTNTPrimed.java +++ b/src/main/java/appeng/entity/EntityTinyTNTPrimed.java @@ -88,7 +88,7 @@ public final class EntityTinyTNTPrimed extends TNTEntity implements IEntityAddit if( this.isInWater() && Platform.isServer() ) // put out the fuse. { - AEApi.instance().definitions().blocks().tinyTNT().maybeStack( 1 ).ifPresent( tntStack -> + Api.INSTANCE.definitions().blocks().tinyTNT().maybeStack( 1 ).ifPresent( tntStack -> { final ItemEntity item = new ItemEntity( this.world, this.getPosX(), this.getPosY(), this.getPosZ(), tntStack ); diff --git a/src/main/java/appeng/facade/FacadeContainer.java b/src/main/java/appeng/facade/FacadeContainer.java index cd7689b6e..e0cd6215b 100644 --- a/src/main/java/appeng/facade/FacadeContainer.java +++ b/src/main/java/appeng/facade/FacadeContainer.java @@ -133,7 +133,7 @@ public class FacadeContainer implements IFacadeContainer ids[1] = out.readInt(); ids[0] = Math.abs( ids[0] ); - Optional maybeFacadeItem = AEApi.instance().definitions().items().facade().maybeItem(); + Optional maybeFacadeItem = Api.INSTANCE.definitions().items().facade().maybeItem(); if( maybeFacadeItem.isPresent() ) { final ItemFacade ifa = (ItemFacade) maybeFacadeItem.get(); diff --git a/src/main/java/appeng/facade/FacadePart.java b/src/main/java/appeng/facade/FacadePart.java index 6817df1d1..12cbbd869 100644 --- a/src/main/java/appeng/facade/FacadePart.java +++ b/src/main/java/appeng/facade/FacadePart.java @@ -103,7 +103,7 @@ public class FacadePart implements IFacadePart, IBoxProvider @Override public boolean isTransparent() { - if( AEApi.instance().partHelper().getCableRenderMode().transparentFacades ) + if( Api.INSTANCE.partHelper().getCableRenderMode().transparentFacades ) { return true; } diff --git a/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java b/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java index f94237a7f..c93048c31 100644 --- a/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java +++ b/src/main/java/appeng/fluids/container/ContainerFluidStorageBus.java @@ -164,7 +164,7 @@ public class ContainerFluidStorageBus extends ContainerFluidConfigurable if( cellInv != null ) { final IItemList list = cellInv - .getAvailableItems( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList() ); + .getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList() ); i = list.iterator(); } diff --git a/src/main/java/appeng/fluids/container/ContainerFluidTerminal.java b/src/main/java/appeng/fluids/container/ContainerFluidTerminal.java index c0cfae63a..a207c03a0 100644 --- a/src/main/java/appeng/fluids/container/ContainerFluidTerminal.java +++ b/src/main/java/appeng/fluids/container/ContainerFluidTerminal.java @@ -81,7 +81,7 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa { private final IConfigManager clientCM; private final IMEMonitor monitor; - private final IItemList fluids = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList(); + private final IItemList fluids = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList(); @GuiSync( 99 ) public boolean hasPower = false; private ITerminalHost terminal; @@ -103,7 +103,7 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa if( Platform.isServer() ) { this.serverCM = terminal.getConfigManager(); - this.monitor = terminal.getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ); + this.monitor = terminal.getInventory( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ); if( this.monitor != null ) { @@ -266,7 +266,7 @@ public class ContainerFluidTerminal extends AEBaseContainer implements IConfigMa { if( Platform.isServer() ) { - if( this.monitor != this.terminal.getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) ) + if( this.monitor != this.terminal.getInventory( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) ) { this.setValidContainer( false ); } diff --git a/src/main/java/appeng/fluids/helper/DualityFluidInterface.java b/src/main/java/appeng/fluids/helper/DualityFluidInterface.java index 14b161c71..e984bdfbb 100644 --- a/src/main/java/appeng/fluids/helper/DualityFluidInterface.java +++ b/src/main/java/appeng/fluids/helper/DualityFluidInterface.java @@ -90,10 +90,10 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable private int isWorking = -1; private int priority; - private final MEMonitorPassThrough items = new MEMonitorPassThrough<>( new NullInventory(), AEApi.instance() + private final MEMonitorPassThrough items = new MEMonitorPassThrough<>( new NullInventory(), Api.INSTANCE .storage() .getStorageChannel( IItemStorageChannel.class ) ); - private final MEMonitorPassThrough fluids = new MEMonitorPassThrough<>( new NullInventory(), AEApi.instance() + private final MEMonitorPassThrough fluids = new MEMonitorPassThrough<>( new NullInventory(), Api.INSTANCE .storage() .getStorageChannel( IFluidStorageChannel.class ) ); @@ -132,7 +132,7 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable @Override public > IMEMonitor getInventory( IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { if( this.hasConfig() ) { @@ -141,7 +141,7 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable return (IMEMonitor) this.items; } - else if( channel == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) + else if( channel == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) { if( this.hasConfig() ) { @@ -207,8 +207,8 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable { try { - this.items.setInternal( this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ); - this.fluids.setInternal( this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) ); + this.items.setInternal( this.gridProxy.getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) ); + this.fluids.setInternal( this.gridProxy.getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) ); } catch( final GridAccessException gae ) { @@ -372,7 +372,7 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable try { final IMEInventory dest = this.gridProxy.getStorage() - .getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ); + .getInventory( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ); final IEnergySource src = this.gridProxy.getEnergy(); if( work.getStackSize() > 0 ) diff --git a/src/main/java/appeng/fluids/items/BasicFluidStorageCell.java b/src/main/java/appeng/fluids/items/BasicFluidStorageCell.java index baba7fbe9..0b1d8a616 100644 --- a/src/main/java/appeng/fluids/items/BasicFluidStorageCell.java +++ b/src/main/java/appeng/fluids/items/BasicFluidStorageCell.java @@ -87,7 +87,7 @@ public final class BasicFluidStorageCell extends AbstractStorageCell getChannel() { - return AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } @Override @@ -105,7 +105,7 @@ public final class BasicFluidStorageCell extends AbstractStorageCell + Api.INSTANCE.definitions().materials().emptyStorageCell().maybeStack( 1 ).ifPresent( is -> { final ItemStack extraA = ia.addItems( is ); if( !extraA.isEmpty() ) diff --git a/src/main/java/appeng/fluids/parts/FluidHandlerAdapter.java b/src/main/java/appeng/fluids/parts/FluidHandlerAdapter.java index ad531097b..ae4bc3dbd 100644 --- a/src/main/java/appeng/fluids/parts/FluidHandlerAdapter.java +++ b/src/main/java/appeng/fluids/parts/FluidHandlerAdapter.java @@ -152,7 +152,7 @@ public class FluidHandlerAdapter implements IMEInventory, IBaseMo @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/fluids/parts/PartFluidAnnihilationPlane.java b/src/main/java/appeng/fluids/parts/PartFluidAnnihilationPlane.java index db304f875..5992a731e 100644 --- a/src/main/java/appeng/fluids/parts/PartFluidAnnihilationPlane.java +++ b/src/main/java/appeng/fluids/parts/PartFluidAnnihilationPlane.java @@ -288,7 +288,7 @@ public class PartFluidAnnihilationPlane extends PartBasicState implements IGridT try { final IStorageGrid storage = this.getProxy().getStorage(); - final IMEInventory inv = storage.getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ); + final IMEInventory inv = storage.getInventory( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ); if( modulate ) { diff --git a/src/main/java/appeng/fluids/parts/PartFluidFormationPlane.java b/src/main/java/appeng/fluids/parts/PartFluidFormationPlane.java index cb996798e..bda68abfa 100644 --- a/src/main/java/appeng/fluids/parts/PartFluidFormationPlane.java +++ b/src/main/java/appeng/fluids/parts/PartFluidFormationPlane.java @@ -63,7 +63,7 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane myHandler = new MEInventoryHandler<>( this, AEApi.instance() + private final MEInventoryHandler myHandler = new MEInventoryHandler<>( this, Api.INSTANCE .storage() .getStorageChannel( IFluidStorageChannel.class ) ); private final AEFluidInventory config = new AEFluidInventory( this, 63 ); @@ -81,7 +81,7 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane 0 ? IncludeExclude.BLACKLIST : IncludeExclude.WHITELIST ); this.myHandler.setPriority( this.getPriority() ); - final IItemList priorityList = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList(); + final IItemList priorityList = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList(); final int slotsToUse = 18 + this.getInstalledUpgrades( Upgrades.CAPACITY ) * 9; for( int x = 0; x < this.config.getSlots() && x < slotsToUse; x++ ) @@ -196,13 +196,13 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane getChannel() { - return AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } @Override public List getCellArray( final IStorageChannel channel ) { - if( this.getProxy().isActive() && channel == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) + if( this.getProxy().isActive() && channel == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) { final List handler = new ArrayList<>( 1 ); handler.add( this.myHandler ); @@ -225,7 +225,7 @@ public class PartFluidFormationPlane extends PartAbstractFormationPlane o, IAEStack fullStack, IAEStack diffStack, IActionSource src, IStorageChannel chan ) { - if( chan == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) && fullStack.equals( this.config.getFluidInSlot( 0 ) ) ) + if( chan == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) && fullStack.equals( this.config.getFluidInSlot( 0 ) ) ) { this.lastReportedValue = fullStack.getStackSize(); this.updateState(); @@ -179,7 +179,7 @@ public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatc { try { - final IStorageChannel channel = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + final IStorageChannel channel = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); final IMEMonitor inventory = this.getProxy().getStorage().getInventory( channel ); this.updateReportingValue( inventory ); @@ -205,7 +205,7 @@ public class PartFluidLevelEmitter extends PartUpgradeable implements IStackWatc private void configureWatchers() { - final IFluidStorageChannel channel = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + final IFluidStorageChannel channel = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); if( this.stackWatcher != null ) { diff --git a/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java b/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java index 934618be5..a22e938e0 100644 --- a/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java +++ b/src/main/java/appeng/fluids/parts/PartFluidStorageBus.java @@ -124,7 +124,7 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni IStorageMonitorable inventory = accessor.getInventory( this.source ); if( inventory != null ) { - return inventory.getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ); + return inventory.getInventory( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ); } // So this could / can be a design decision. If the tile does support our custom capability, @@ -167,7 +167,7 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni this.resetCacheLogic = 0; final IMEInventory in = this.getInternalHandler(); - IItemList before = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList(); + IItemList before = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList(); if( in != null ) { before = in.getAvailableItems( before ); @@ -183,7 +183,7 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni if( in != out ) { - IItemList after = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList(); + IItemList after = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList(); if( out != null ) { after = out.getAvailableItems( after ); @@ -269,7 +269,7 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni { this.getProxy() .getStorage() - .postAlterationOfStoredItems( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ), change, this.source ); + .postAlterationOfStoredItems( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ), change, this.source ); } } catch( final GridAccessException e ) @@ -313,13 +313,13 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni { this.checkInterfaceVsStorageBus( target, this.getSide().getOpposite() ); - this.handler = new MEInventoryHandler<>( inv, AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ); + this.handler = new MEInventoryHandler<>( inv, Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ); this.handler.setBaseAccess( (AccessRestriction) this.getConfigManager().getSetting( Settings.ACCESS ) ); this.handler.setWhitelist( this.getInstalledUpgrades( Upgrades.INVERTER ) > 0 ? IncludeExclude.BLACKLIST : IncludeExclude.WHITELIST ); this.handler.setPriority( this.getPriority() ); - final IItemList priorityList = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList(); + final IItemList priorityList = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList(); final int slotsToUse = 18 + this.getInstalledUpgrades( Upgrades.CAPACITY ) * 9; for( int x = 0; x < this.config.getSlots() && x < slotsToUse; x++ ) @@ -461,7 +461,7 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni @Override public IStorageChannel getStorageChannel() { - return AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } public IAEFluidTank getConfig() @@ -490,7 +490,7 @@ public class PartFluidStorageBus extends PartSharedStorageBus implements IMEMoni @Override public ItemStack getItemStackRepresentation() { - return AEApi.instance().definitions().parts().fluidStorageBus().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().parts().fluidStorageBus().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override diff --git a/src/main/java/appeng/fluids/parts/PartSharedFluidBus.java b/src/main/java/appeng/fluids/parts/PartSharedFluidBus.java index 2956fd474..f49e6b205 100644 --- a/src/main/java/appeng/fluids/parts/PartSharedFluidBus.java +++ b/src/main/java/appeng/fluids/parts/PartSharedFluidBus.java @@ -178,7 +178,7 @@ public abstract class PartSharedFluidBus extends PartUpgradeable implements IGri protected IFluidStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java b/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java index e1d35899c..5a3144abb 100644 --- a/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java +++ b/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java @@ -42,7 +42,7 @@ public class BasicFluidCellGuiHandler implements ICellGuiHandler @Override public > boolean isHandlerFor( final IStorageChannel channel ) { - return channel == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return channel == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/fluids/tile/TileFluidInterface.java b/src/main/java/appeng/fluids/tile/TileFluidInterface.java index 384ab2164..0eb01993f 100644 --- a/src/main/java/appeng/fluids/tile/TileFluidInterface.java +++ b/src/main/java/appeng/fluids/tile/TileFluidInterface.java @@ -179,7 +179,7 @@ public class TileFluidInterface extends AENetworkTile implements IGridTickable, @Override public ItemStack getItemStackRepresentation() { - return AEApi.instance().definitions().blocks().fluidIface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().blocks().fluidIface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override diff --git a/src/main/java/appeng/fluids/util/AEFluidStack.java b/src/main/java/appeng/fluids/util/AEFluidStack.java index 4b82dd944..a7eba3a75 100644 --- a/src/main/java/appeng/fluids/util/AEFluidStack.java +++ b/src/main/java/appeng/fluids/util/AEFluidStack.java @@ -232,7 +232,7 @@ public final class AEFluidStack extends AEStack implements IAEFlu @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index 7391c4bf3..ba6d38301 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -128,10 +128,10 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn private final AppEngInternalAEInventory config = new AppEngInternalAEInventory( this, NUMBER_OF_CONFIG_SLOTS ); private final AppEngInternalInventory storage = new AppEngInternalInventory( this, NUMBER_OF_STORAGE_SLOTS ); private final AppEngInternalInventory patterns = new AppEngInternalInventory( this, NUMBER_OF_PATTERN_SLOTS ); - private final MEMonitorPassThrough items = new MEMonitorPassThrough<>( new NullInventory(), AEApi.instance() + private final MEMonitorPassThrough items = new MEMonitorPassThrough<>( new NullInventory(), Api.INSTANCE .storage() .getStorageChannel( IItemStorageChannel.class ) ); - private final MEMonitorPassThrough fluids = new MEMonitorPassThrough<>( new NullInventory(), AEApi.instance() + private final MEMonitorPassThrough fluids = new MEMonitorPassThrough<>( new NullInventory(), Api.INSTANCE .storage() .getStorageChannel( IFluidStorageChannel.class ) ); private final UpgradeInventory upgrades; @@ -419,7 +419,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn if( req == null && !stored.isEmpty() ) { - final IAEItemStack work = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( stored ); + final IAEItemStack work = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( stored ); this.requireWork[slot] = work.setStackSize( -work.getStackSize() ); return; } @@ -442,7 +442,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn else // Stored != null; dispose! { - final IAEItemStack work = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( stored ); + final IAEItemStack work = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( stored ); this.requireWork[slot] = work.setStackSize( -work.getStackSize() ); return; } @@ -507,7 +507,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn @Override public boolean canInsert( final ItemStack stack ) { - final IAEItemStack out = this.destination.injectItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( stack ), + final IAEItemStack out = this.destination.injectItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( stack ), Actionable.SIMULATE, null ); if( out == null ) { @@ -534,8 +534,8 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn { try { - this.items.setInternal( this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ); - this.fluids.setInternal( this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) ); + this.items.setInternal( this.gridProxy.getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) ); + this.fluids.setInternal( this.gridProxy.getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) ); } catch( final GridAccessException gae ) { @@ -663,7 +663,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn boolean changed = false; try { - this.destination = this.gridProxy.getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + this.destination = this.gridProxy.getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); final IEnergySource src = this.gridProxy.getEnergy(); if( this.craftingTracker.isBusy( x ) ) @@ -790,7 +790,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn @Override public > IMEMonitor getInventory( IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { if( this.hasConfig() ) { @@ -799,7 +799,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn return (IMEMonitor) this.items; } - else if( channel == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) + else if( channel == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) { if( this.hasConfig() ) { @@ -884,7 +884,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn @Override public > IMEMonitor getInventory( IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { return (IMEMonitor) new InterfaceInventory( di ); } diff --git a/src/main/java/appeng/helpers/MultiCraftingTracker.java b/src/main/java/appeng/helpers/MultiCraftingTracker.java index 9e8021a35..b50d78d57 100644 --- a/src/main/java/appeng/helpers/MultiCraftingTracker.java +++ b/src/main/java/appeng/helpers/MultiCraftingTracker.java @@ -61,7 +61,7 @@ public class MultiCraftingTracker if( link != null && !link.isEmpty() ) { - this.setLink( x, AEApi.instance().storage().loadCraftingLink( link, this.owner ) ); + this.setLink( x, Api.INSTANCE.storage().loadCraftingLink( link, this.owner ) ); } } } diff --git a/src/main/java/appeng/helpers/PatternHelper.java b/src/main/java/appeng/helpers/PatternHelper.java index 2bc7f5386..e3a0a65fc 100644 --- a/src/main/java/appeng/helpers/PatternHelper.java +++ b/src/main/java/appeng/helpers/PatternHelper.java @@ -104,7 +104,7 @@ public class PatternHelper implements ICraftingPatternDetails, Comparable implement public PortableCellViewer( final ItemStack is, final int slot ) { - super( AEApi.instance().registries().cell().getCellInventory( is, null, AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ); + super( Api.INSTANCE.registries().cell().getCellInventory( is, null, Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) ); this.ips = (IAEItemPowerStorage) is.getItem(); this.target = is; this.inventorySlot = slot; @@ -85,7 +85,7 @@ public class PortableCellViewer extends MEMonitorHandler implement @Override public > IMEMonitor getInventory( IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { return (IMEMonitor) this; } diff --git a/src/main/java/appeng/items/misc/ItemCrystalSeed.java b/src/main/java/appeng/items/misc/ItemCrystalSeed.java index 470aefdf5..4a7fb09e9 100644 --- a/src/main/java/appeng/items/misc/ItemCrystalSeed.java +++ b/src/main/java/appeng/items/misc/ItemCrystalSeed.java @@ -66,7 +66,7 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal public static ResolverResult getResolver( final int certus2 ) { - return AEApi.instance() + return Api.INSTANCE .definitions() .items() .crystalSeed() @@ -109,7 +109,7 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal public ItemStack triggerGrowth( final ItemStack is ) { final int newDamage = getProgress( is ) + 1; - final IMaterials materials = AEApi.instance().definitions().materials(); + final IMaterials materials = Api.INSTANCE.definitions().materials(); final int size = is.getCount(); if( newDamage == CERTUS + SINGLE_OFFSET ) diff --git a/src/main/java/appeng/items/misc/ItemEncodedPattern.java b/src/main/java/appeng/items/misc/ItemEncodedPattern.java index d1a378b48..72e6c53b6 100644 --- a/src/main/java/appeng/items/misc/ItemEncodedPattern.java +++ b/src/main/java/appeng/items/misc/ItemEncodedPattern.java @@ -85,7 +85,7 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt final PlayerInventory inv = player.inventory; - ItemStack is = AEApi.instance().definitions().materials().blankPattern().maybeStack( stack.getCount() ).orElse( ItemStack.EMPTY ); + ItemStack is = Api.INSTANCE.definitions().materials().blankPattern().maybeStack( stack.getCount() ).orElse( ItemStack.EMPTY ); if( !is.isEmpty() ) { for( int s = 0; s < player.inventory.getSizeInventory(); s++ ) diff --git a/src/main/java/appeng/items/parts/ItemFacade.java b/src/main/java/appeng/items/parts/ItemFacade.java index 18ff34572..519f459f4 100644 --- a/src/main/java/appeng/items/parts/ItemFacade.java +++ b/src/main/java/appeng/items/parts/ItemFacade.java @@ -69,7 +69,7 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte @Override public EnumActionResult onItemUseFirst( final PlayerEntity player, final World world, final BlockPos pos, final Direction side, final float hitX, final float hitY, final float hitZ, final Hand hand ) { - return AEApi.instance().partHelper().placeBus( player.getHeldItem( hand ), pos, side, player, hand, world ); + return Api.INSTANCE.partHelper().placeBus( player.getHeldItem( hand ), pos, side, player, hand, world ); } @Override @@ -308,7 +308,7 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte public ItemStack createFromIDs( final int[] ids ) { - ItemStack facadeStack = AEApi.instance() + ItemStack facadeStack = Api.INSTANCE .definitions() .items() .facade() diff --git a/src/main/java/appeng/items/parts/ItemPart.java b/src/main/java/appeng/items/parts/ItemPart.java index 8bfca2354..4e56b321f 100644 --- a/src/main/java/appeng/items/parts/ItemPart.java +++ b/src/main/java/appeng/items/parts/ItemPart.java @@ -159,7 +159,7 @@ public final class ItemPart extends AEBaseItem implements IPartItem, IItemGroup return EnumActionResult.FAIL; } - return AEApi.instance().partHelper().placeBus( player.getHeldItem( hand ), pos, side, player, hand, w ); + return Api.INSTANCE.partHelper().placeBus( player.getHeldItem( hand ), pos, side, player, hand, w ); } @Override diff --git a/src/main/java/appeng/items/storage/AbstractStorageCell.java b/src/main/java/appeng/items/storage/AbstractStorageCell.java index 4a2e78766..4e85bf495 100644 --- a/src/main/java/appeng/items/storage/AbstractStorageCell.java +++ b/src/main/java/appeng/items/storage/AbstractStorageCell.java @@ -79,9 +79,9 @@ public abstract class AbstractStorageCell> extends AEBaseI @Override public void addInformation(final ItemStack stack, final World world, final List lines, final ITooltipFlag advancedTooltips ) { - AEApi.instance() + Api.INSTANCE .client() - .addCellInformation( AEApi.instance().registries().cell().getCellInventory( stack, null, this.getChannel() ), lines ); + .addCellInformation( Api.INSTANCE.registries().cell().getCellInventory( stack, null, this.getChannel() ), lines ); } @Override @@ -175,7 +175,7 @@ public abstract class AbstractStorageCell> extends AEBaseI } final PlayerInventory playerInventory = player.inventory; - final IMEInventoryHandler inv = AEApi.instance().registries().cell().getCellInventory( stack, null, this.getChannel() ); + final IMEInventoryHandler inv = Api.INSTANCE.registries().cell().getCellInventory( stack, null, this.getChannel() ); if( inv != null && playerInventory.getCurrentItem() == stack ) { final InventoryAdaptor ia = InventoryAdaptor.getAdaptor( player ); @@ -229,7 +229,7 @@ public abstract class AbstractStorageCell> extends AEBaseI @Override public ItemStack getContainerItem( final ItemStack itemStack ) { - return AEApi.instance() + return Api.INSTANCE .definitions() .materials() .emptyStorageCell() diff --git a/src/main/java/appeng/items/storage/BasicItemStorageCell.java b/src/main/java/appeng/items/storage/BasicItemStorageCell.java index 68e1b8efa..e31a0b6eb 100644 --- a/src/main/java/appeng/items/storage/BasicItemStorageCell.java +++ b/src/main/java/appeng/items/storage/BasicItemStorageCell.java @@ -79,13 +79,13 @@ public final class BasicItemStorageCell extends AbstractStorageCell getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override protected void dropEmptyStorageCellCase( final InventoryAdaptor ia, final PlayerEntity player ) { - AEApi.instance().definitions().materials().emptyStorageCell().maybeStack( 1 ).ifPresent( is -> + Api.INSTANCE.definitions().materials().emptyStorageCell().maybeStack( 1 ).ifPresent( is -> { final ItemStack extraA = ia.addItems( is ); if( !extraA.isEmpty() ) diff --git a/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java b/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java index 3519bf497..8b21bca6c 100644 --- a/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java +++ b/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java @@ -81,11 +81,11 @@ public class ItemCreativeStorageCell extends AEBaseItem implements ICellWorkbenc @Override public void addInformation(final ItemStack stack, final World world, final List lines, final ITooltipFlag advancedTooltips ) { - final IMEInventoryHandler inventory = AEApi.instance() + final IMEInventoryHandler inventory = Api.INSTANCE .registries() .cell() .getCellInventory( stack, null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); if( inventory instanceof ICellInventoryHandler ) { diff --git a/src/main/java/appeng/items/storage/ItemViewCell.java b/src/main/java/appeng/items/storage/ItemViewCell.java index c4a1d37b1..b304f4a48 100644 --- a/src/main/java/appeng/items/storage/ItemViewCell.java +++ b/src/main/java/appeng/items/storage/ItemViewCell.java @@ -62,7 +62,7 @@ public class ItemViewCell extends AEBaseItem implements ICellWorkbenchItem if( ( currentViewCell.getItem() instanceof ItemViewCell ) ) { - final IItemList priorityList = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList priorityList = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); final ICellWorkbenchItem vc = (ICellWorkbenchItem) currentViewCell.getItem(); final IItemHandler upgrades = vc.getUpgradesInventory( currentViewCell ); diff --git a/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java b/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java index 7c195d329..a8519af39 100644 --- a/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java +++ b/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java @@ -117,11 +117,11 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe ItemStack paintBall = this.getColor( is ); - final IMEInventory inv = AEApi.instance() + final IMEInventory inv = Api.INSTANCE .registries() .cell() .getCellInventory( is, null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); if( inv != null ) { final IAEItemStack option = inv.extractItems( AEItemStack.fromItemStack( paintBall ), Actionable.SIMULATE, new BaseActionSource() ); @@ -267,15 +267,15 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe { ItemStack newColor = ItemStack.EMPTY; - final IMEInventory inv = AEApi.instance() + final IMEInventory inv = Api.INSTANCE .registries() .cell() .getCellInventory( is, null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); if( inv != null ) { final IItemList itemList = inv - .getAvailableItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + .getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); if( anchor.isEmpty() ) { final IAEItemStack firstItem = itemList.getFirstItem(); @@ -428,13 +428,13 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe { super.addInformation( stack, world, lines, advancedTooltips ); - final ICellInventoryHandler cdi = AEApi.instance() + final ICellInventoryHandler cdi = Api.INSTANCE .registries() .cell() .getCellInventory( stack, null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); - AEApi.instance().client().addCellInformation( cdi, lines ); + Api.INSTANCE.client().addCellInformation( cdi, lines ); } @Override @@ -501,7 +501,7 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java b/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java index 98374d87f..1a747c2d5 100644 --- a/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java +++ b/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java @@ -93,13 +93,13 @@ public class ToolMatterCannon extends AEBasePoweredItem implements IStorageCell< { super.addInformation( stack, world, lines, advancedTooltips ); - final ICellInventoryHandler cdi = AEApi.instance() + final ICellInventoryHandler cdi = Api.INSTANCE .registries() .cell() .getCellInventory( stack, null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); - AEApi.instance().client().addCellInformation( cdi, lines ); + Api.INSTANCE.client().addCellInformation( cdi, lines ); } @Override @@ -115,15 +115,15 @@ public class ToolMatterCannon extends AEBasePoweredItem implements IStorageCell< shots += cu.getInstalledUpgrades( Upgrades.SPEED ); } - final ICellInventoryHandler inv = AEApi.instance() + final ICellInventoryHandler inv = Api.INSTANCE .registries() .cell() .getCellInventory( p.getHeldItem( hand ), null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); if( inv != null ) { final IItemList itemList = inv - .getAvailableItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + .getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); IAEItemStack req = itemList.getFirstItem(); if( req instanceof IAEItemStack ) { @@ -162,7 +162,7 @@ public class ToolMatterCannon extends AEBasePoweredItem implements IStorageCell< final double d1 = Vec3d.y; final double d2 = Vec3d.z; - final float penetration = AEApi.instance().registries().matterCannon().getPenetration( ammo ); // 196.96655f; + final float penetration = Api.INSTANCE.registries().matterCannon().getPenetration( ammo ); // 196.96655f; if( penetration <= 0 ) { final ItemStack type = aeAmmo.asItemStackRepresentation(); @@ -291,7 +291,7 @@ public class ToolMatterCannon extends AEBasePoweredItem implements IStorageCell< final Block whatsThere = w.getBlockState( hitPos ).getBlock(); if( whatsThere.isReplaceable( w, hitPos ) && w.isAirBlock( hitPos ) ) { - AEApi.instance().definitions().blocks().paint().maybeBlock().ifPresent( paintBlock -> + Api.INSTANCE.definitions().blocks().paint().maybeBlock().ifPresent( paintBlock -> { w.setBlockState( hitPos, paintBlock.getDefaultState(), 3 ); } ); @@ -495,7 +495,7 @@ public class ToolMatterCannon extends AEBasePoweredItem implements IStorageCell< @Override public boolean isBlackListed( final ItemStack cellItem, final IAEItemStack requestedAddition ) { - final float pen = AEApi.instance().registries().matterCannon().getPenetration( requestedAddition.createItemStack() ); + final float pen = Api.INSTANCE.registries().matterCannon().getPenetration( requestedAddition.createItemStack() ); if( pen > 0 ) { return false; @@ -530,6 +530,6 @@ public class ToolMatterCannon extends AEBasePoweredItem implements IStorageCell< @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } } diff --git a/src/main/java/appeng/items/tools/powered/ToolPortableCell.java b/src/main/java/appeng/items/tools/powered/ToolPortableCell.java index f21d0bcbe..ec8bcbe50 100644 --- a/src/main/java/appeng/items/tools/powered/ToolPortableCell.java +++ b/src/main/java/appeng/items/tools/powered/ToolPortableCell.java @@ -83,13 +83,13 @@ public class ToolPortableCell extends AEBasePoweredItem implements IStorageCell< { super.addInformation( stack, world, lines, advancedTooltips ); - final ICellInventoryHandler cdi = AEApi.instance() + final ICellInventoryHandler cdi = Api.INSTANCE .registries() .cell() .getCellInventory( stack, null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); - AEApi.instance().client().addCellInformation( cdi, lines ); + Api.INSTANCE.client().addCellInformation( cdi, lines ); } @Override @@ -137,7 +137,7 @@ public class ToolPortableCell extends AEBasePoweredItem implements IStorageCell< @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java b/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java index 9d812155b..42e186fc2 100644 --- a/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java +++ b/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java @@ -58,7 +58,7 @@ public class ToolWirelessTerminal extends AEBasePoweredItem implements IWireless @Override public ActionResult onItemRightClick( final World w, final PlayerEntity player, final Hand hand ) { - AEApi.instance().registries().wireless().openWirelessTerminalGui( player.getHeldItem( hand ), w, player ); + Api.INSTANCE.registries().wireless().openWirelessTerminalGui( player.getHeldItem( hand ), w, player ); return new ActionResult<>( EnumActionResult.SUCCESS, player.getHeldItem( hand ) ); } @@ -101,7 +101,7 @@ public class ToolWirelessTerminal extends AEBasePoweredItem implements IWireless @Override public boolean canHandle( final ItemStack is ) { - return AEApi.instance().definitions().items().wirelessTerminal().isSameAs( is ); + return Api.INSTANCE.definitions().items().wirelessTerminal().isSameAs( is ); } @Override diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java index b08731b7d..d07563e55 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java @@ -20,19 +20,19 @@ package appeng.items.tools.quartz; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUseContext; import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.Direction; +import net.minecraft.util.ActionResultType; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import appeng.api.implementations.guiobjects.IGuiItem; import appeng.api.implementations.guiobjects.IGuiItemObject; -import appeng.api.util.AEPartLocation; import appeng.core.features.AEFeature; -import appeng.core.sync.GuiBridge; import appeng.items.AEBaseItem; import appeng.items.contents.QuartzKnifeObj; import appeng.util.Platform; @@ -44,19 +44,22 @@ public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem public ToolQuartzCuttingKnife( final AEFeature type ) { + super(new Item.Properties() + .group(ItemGroup.TOOLS) + .maxStackSize(1) + .maxDamage(50) + .setNoRepair()); this.type = type; - this.setMaxDamage( 50 ); - this.setMaxStackSize( 1 ); } @Override - public EnumActionResult onItemUse( final PlayerEntity p, final World worldIn, final BlockPos pos, final Hand hand, final Direction side, final float hitX, final float hitY, final float hitZ ) + public ActionResultType onItemUse(ItemUseContext context ) { if( Platform.isServer() ) { - Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_QUARTZ_KNIFE ); +// FIXME Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_QUARTZ_KNIFE ); } - return EnumActionResult.SUCCESS; + return ActionResultType.SUCCESS; } @Override @@ -64,10 +67,10 @@ public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem { if( Platform.isServer() ) { - Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_QUARTZ_KNIFE ); +// FIXME Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_QUARTZ_KNIFE ); } p.swingArm( hand ); - return new ActionResult<>( EnumActionResult.SUCCESS, p.getHeldItem( hand ) ); + return new ActionResult<>( ActionResultType.SUCCESS, p.getHeldItem( hand ) ); } @Override @@ -76,17 +79,11 @@ public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem return Platform.canRepair( this.type, a, b ); } - @Override - public boolean isRepairable() - { - return false; - } - @Override public ItemStack getContainerItem( final ItemStack itemStack ) { ItemStack copy = itemStack.copy(); - copy.setItemDamage( itemStack.getDamage() + 1 ); + copy.setDamage( itemStack.getDamage() + 1 ); return copy; } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java index ec7ac701f..98d7078c6 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java @@ -19,8 +19,10 @@ package appeng.items.tools.quartz; +import appeng.core.CreativeTab; import net.minecraft.block.Block; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.util.ActionResultType; @@ -38,20 +40,21 @@ public class ToolQuartzWrench extends AEBaseItem implements IAEWrench public ToolQuartzWrench() { - super( new Properties().maxStackSize( 1 ) ); + super( new Properties() + .group(ItemGroup.TOOLS) + .maxStackSize( 1 ) ); } @Override public ActionResultType onItemUse( ItemUseContext context ) { final Block b = context.getWorld().getBlockState( context.getPos() ).getBlock(); - if( b != null && !context.getPlayer().isShiftKeyDown() && Platform.hasPermissions( new DimensionalCoord( context.getWorld(), context.getPos() ), + if( !context.getPlayer().isCrouching() && Platform.hasPermissions( new DimensionalCoord( context.getWorld(), context.getPos() ), context.getPlayer() ) ) { if( Platform.isClient() ) { - // TODO 1.10-R - if we return FAIL on client, action will not be sent to server. Fix that in all - // Block#onItemUseFirst overrides. + // TODO 1.10-R - if we return FAIL on client, action will not be sent to server. Fix that in all Block#onItemUseFirst overrides. return !context.getWorld().isRemote ? ActionResultType.SUCCESS : ActionResultType.PASS; } diff --git a/src/main/java/appeng/me/Grid.java b/src/main/java/appeng/me/Grid.java index daab0dbd5..532cd3307 100644 --- a/src/main/java/appeng/me/Grid.java +++ b/src/main/java/appeng/me/Grid.java @@ -54,7 +54,7 @@ public class Grid implements IGrid { this.pivot = center; - final Map, IGridCache> myCaches = AEApi.instance().registries().gridCache().createCacheInstance( this ); + final Map, IGridCache> myCaches = Api.INSTANCE.registries().gridCache().createCacheInstance( this ); for( final Entry, IGridCache> c : myCaches.entrySet() ) { final Class key = c.getKey(); diff --git a/src/main/java/appeng/me/cache/CraftingGridCache.java b/src/main/java/appeng/me/cache/CraftingGridCache.java index 7bd105ade..10b3af6bd 100644 --- a/src/main/java/appeng/me/cache/CraftingGridCache.java +++ b/src/main/java/appeng/me/cache/CraftingGridCache.java @@ -250,7 +250,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper this.emitableItems.clear(); // update the stuff that was in the list... - this.storageGrid.postAlterationOfStoredItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ), oldItems.keySet(), + this.storageGrid.postAlterationOfStoredItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ), oldItems.keySet(), new BaseActionSource() ); // re-create list.. @@ -287,7 +287,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper this.craftableItems.put( e.getKey(), ImmutableList.copyOf( e.getValue() ) ); } - this.storageGrid.postAlterationOfStoredItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ), this.craftableItems.keySet(), + this.storageGrid.postAlterationOfStoredItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ), this.craftableItems.keySet(), new BaseActionSource() ); } @@ -367,7 +367,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper { final List list = new ArrayList<>( 1 ); - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { list.add( this ); } @@ -456,7 +456,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/me/cache/GridStorageCache.java b/src/main/java/appeng/me/cache/GridStorageCache.java index 6693b80b8..2e51b1734 100644 --- a/src/main/java/appeng/me/cache/GridStorageCache.java +++ b/src/main/java/appeng/me/cache/GridStorageCache.java @@ -75,7 +75,7 @@ public class GridStorageCache implements IStorageGrid this.storageNetworks = new IdentityHashMap<>(); this.storageMonitors = new IdentityHashMap<>(); - AEApi.instance().storage().storageChannels().forEach( channel -> this.storageMonitors.put( channel, new NetworkMonitor<>( this, channel ) ) ); + Api.INSTANCE.storage().storageChannels().forEach( channel -> this.storageMonitors.put( channel, new NetworkMonitor<>( this, channel ) ) ); } @Override diff --git a/src/main/java/appeng/me/cache/PathGridCache.java b/src/main/java/appeng/me/cache/PathGridCache.java index 224a9eb07..32653be99 100644 --- a/src/main/java/appeng/me/cache/PathGridCache.java +++ b/src/main/java/appeng/me/cache/PathGridCache.java @@ -351,7 +351,7 @@ public class PathGridCache implements IPathingGrid { for( final IGridNode n : this.requireChannels ) { - PlayerEntity player = AEApi.instance().registries().players().findPlayer( n.getPlayerID() ); + PlayerEntity player = Api.INSTANCE.registries().players().findPlayer( n.getPlayerID() ); if( player instanceof PlayerEntityMP ) { currentBracket.trigger( (PlayerEntityMP) player ); diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index c8e84aad8..a31d0e74c 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -102,7 +102,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU private MECraftingInventory inventory = new MECraftingInventory(); private IAEItemStack finalOutput; private boolean waiting = false; - private IItemList waitingFor = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private IItemList waitingFor = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private long availableStorage = 0; private MachineSource machineSrc = null; private int accelerator = 0; @@ -546,7 +546,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU } final IItemList list; - this.getListOfItem( list = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(), CraftingItemList.ALL ); + this.getListOfItem( list = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(), CraftingItemList.ALL ); for( final IAEItemStack is : list ) { this.postChange( is, this.machineSrc ); @@ -839,7 +839,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU } final IStorageGrid sg = g.getCache( IStorageGrid.class ); - final IMEInventory ii = sg.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + final IMEInventory ii = sg.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); for( IAEItemStack is : this.inventory.getItemList() ) { @@ -883,7 +883,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU } final IStorageGrid sg = g.getCache( IStorageGrid.class ); - final IMEInventory storage = sg.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + final IMEInventory storage = sg.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); final MECraftingInventory ci = new MECraftingInventory( storage, true, false, false ); try @@ -914,7 +914,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU this.submitLink( this.myLastLink ); this.submitLink( whatLink ); - final IItemList list = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList list = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); this.getListOfItem( list, CraftingItemList.ALL ); for( final IAEItemStack ge : list ) { @@ -1282,7 +1282,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU private IItemList readList( final NBTTagList tag ) { - final IItemList out = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList out = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); if( tag == null ) { @@ -1326,7 +1326,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU this.lastTime = System.nanoTime(); this.elapsedTime = 0; - final IItemList list = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList list = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); this.getListOfItem( list, CraftingItemList.ACTIVE ); this.getListOfItem( list, CraftingItemList.PENDING ); diff --git a/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java b/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java index e40e13b1e..46f0cade4 100644 --- a/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java +++ b/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java @@ -87,7 +87,7 @@ public class QuantumCalculator extends MBCalculator } num++; - final IBlocks blocks = AEApi.instance().definitions().blocks(); + final IBlocks blocks = Api.INSTANCE.definitions().blocks(); if( num == 5 ) { if( !this.isBlockAtLocation( w, p, blocks.quantumLink() ) ) diff --git a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java index b9fa26a74..1b86d299c 100644 --- a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java @@ -113,7 +113,7 @@ public class QuantumCluster implements ILocatable, IAECluster } } - final ILocatable myOtherSide = this.otherSide == 0 ? null : AEApi.instance().registries().locatable().getLocatableBy( this.otherSide ); + final ILocatable myOtherSide = this.otherSide == 0 ? null : Api.INSTANCE.registries().locatable().getLocatableBy( this.otherSide ); boolean shutdown = false; @@ -156,7 +156,7 @@ public class QuantumCluster implements ILocatable, IAECluster } } - sideA.connection = sideB.connection = new ConnectionWrapper( AEApi.instance() + sideA.connection = sideB.connection = new ConnectionWrapper( Api.INSTANCE .grid() .createGridConnection( sideA.getNode(), sideB.getNode() ) ); @@ -190,7 +190,7 @@ public class QuantumCluster implements ILocatable, IAECluster private boolean canUseNode( final long qe ) { - final QuantumCluster qc = (QuantumCluster) AEApi.instance().registries().locatable().getLocatableBy( qe ); + final QuantumCluster qc = (QuantumCluster) Api.INSTANCE.registries().locatable().getLocatableBy( qe ); if( qc != null ) { final World theWorld = qc.center.getWorld(); diff --git a/src/main/java/appeng/me/helpers/AENetworkProxy.java b/src/main/java/appeng/me/helpers/AENetworkProxy.java index d722a9fe7..e558fd21d 100644 --- a/src/main/java/appeng/me/helpers/AENetworkProxy.java +++ b/src/main/java/appeng/me/helpers/AENetworkProxy.java @@ -29,7 +29,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.Direction; -import appeng.api.AEApi; import appeng.api.networking.GridFlags; import appeng.api.networking.GridNotification; import appeng.api.networking.IGrid; @@ -147,7 +146,7 @@ public class AENetworkProxy implements IGridBlock { if( this.node == null && Platform.isServer() && this.isReady ) { - this.node = AEApi.instance().grid().createGridNode( this ); + this.node = Api.INSTANCE.grid().createGridNode( this ); this.readFromNBT( this.data ); this.node.updateState(); } diff --git a/src/main/java/appeng/me/storage/CreativeCellInventory.java b/src/main/java/appeng/me/storage/CreativeCellInventory.java index 53031553c..315d0e25b 100644 --- a/src/main/java/appeng/me/storage/CreativeCellInventory.java +++ b/src/main/java/appeng/me/storage/CreativeCellInventory.java @@ -38,7 +38,7 @@ import appeng.util.item.AEItemStack; public class CreativeCellInventory implements IMEInventoryHandler { - private final IItemList itemListCache = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList itemListCache = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); protected CreativeCellInventory( final ItemStack o ) { @@ -56,7 +56,7 @@ public class CreativeCellInventory implements IMEInventoryHandler public static ICellInventoryHandler getCell( final ItemStack o ) { - return new BasicCellInventoryHandler( new CreativeCellInventory( o ), AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + return new BasicCellInventoryHandler( new CreativeCellInventory( o ), Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); } @Override @@ -96,7 +96,7 @@ public class CreativeCellInventory implements IMEInventoryHandler @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/me/storage/MEMonitorIFluidHandler.java b/src/main/java/appeng/me/storage/MEMonitorIFluidHandler.java index 2a3a9dc4a..ecdfbc022 100644 --- a/src/main/java/appeng/me/storage/MEMonitorIFluidHandler.java +++ b/src/main/java/appeng/me/storage/MEMonitorIFluidHandler.java @@ -48,7 +48,7 @@ import appeng.api.storage.data.IItemList; public class MEMonitorIFluidHandler implements IMEMonitor, ITickingMonitor { private final IFluidHandler handler; - private final IItemList list = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createList(); + private final IItemList list = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createList(); private final HashMap, Object> listeners = new HashMap<>(); private final NavigableMap memory; private IActionSource mySource; @@ -120,7 +120,7 @@ public class MEMonitorIFluidHandler implements IMEMonitor, ITicki @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); } @Override @@ -169,7 +169,7 @@ public class MEMonitorIFluidHandler implements IMEMonitor, ITicki if( newIS != null ) { - stack = ( old == null || old.aeStack == null ? AEApi.instance() + stack = ( old == null || old.aeStack == null ? Api.INSTANCE .storage() .getStorageChannel( IFluidStorageChannel.class ) .createStack( newIS ) : old.aeStack.copy() ); @@ -342,7 +342,7 @@ public class MEMonitorIFluidHandler implements IMEMonitor, ITicki else { this.fluidStack = is.copy(); - this.aeStack = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ).createStack( is ); + this.aeStack = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ).createStack( is ); } } } diff --git a/src/main/java/appeng/me/storage/MEMonitorIInventory.java b/src/main/java/appeng/me/storage/MEMonitorIInventory.java index 8b58eca4d..df5c32d47 100644 --- a/src/main/java/appeng/me/storage/MEMonitorIInventory.java +++ b/src/main/java/appeng/me/storage/MEMonitorIInventory.java @@ -50,7 +50,7 @@ public class MEMonitorIInventory implements IMEMonitor, ITickingMo { private final InventoryAdaptor adaptor; - private final IItemList list = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList list = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private final HashMap, Object> listeners = new HashMap<>(); private final NavigableMap memory; private IActionSource mySource; @@ -138,7 +138,7 @@ public class MEMonitorIInventory implements IMEMonitor, ITickingMo @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override @@ -182,7 +182,7 @@ public class MEMonitorIInventory implements IMEMonitor, ITickingMo final int newSize = ( newIS.isEmpty() ? 0 : newIS.getCount() ); final int diff = newSize - ( oldIS.isEmpty() ? 0 : oldIS.getCount() ); - final IAEItemStack stack = ( old == null || old.aeStack == null ? AEApi.instance() + final IAEItemStack stack = ( old == null || old.aeStack == null ? Api.INSTANCE .storage() .getStorageChannel( IItemStorageChannel.class ) .createStack( newIS ) : old.aeStack.copy() ); @@ -357,7 +357,7 @@ public class MEMonitorIInventory implements IMEMonitor, ITickingMo else { this.itemStack = is.copy(); - this.aeStack = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( is ); + this.aeStack = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( is ); } } } diff --git a/src/main/java/appeng/me/storage/NullInventory.java b/src/main/java/appeng/me/storage/NullInventory.java index 615a11f3f..ec0cb33b5 100644 --- a/src/main/java/appeng/me/storage/NullInventory.java +++ b/src/main/java/appeng/me/storage/NullInventory.java @@ -54,7 +54,7 @@ public class NullInventory> implements IMEInventoryHandler @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/me/storage/SecurityStationInventory.java b/src/main/java/appeng/me/storage/SecurityStationInventory.java index b4b9fb23f..9984bac17 100644 --- a/src/main/java/appeng/me/storage/SecurityStationInventory.java +++ b/src/main/java/appeng/me/storage/SecurityStationInventory.java @@ -39,7 +39,7 @@ import appeng.tile.misc.TileSecurityStation; public class SecurityStationInventory implements IMEInventoryHandler { - private final IItemList storedItems = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemList storedItems = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); private final TileSecurityStation securityTile; public SecurityStationInventory( final TileSecurityStation ts ) @@ -52,7 +52,7 @@ public class SecurityStationInventory implements IMEInventoryHandler iface = definitions.blocks().iface().maybeStack( 1 ); diff --git a/src/main/java/appeng/parts/CableBusContainer.java b/src/main/java/appeng/parts/CableBusContainer.java index f15f596bd..76f64b978 100644 --- a/src/main/java/appeng/parts/CableBusContainer.java +++ b/src/main/java/appeng/parts/CableBusContainer.java @@ -427,7 +427,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } } - if( AEApi.instance().partHelper().getCableRenderMode().opaqueFacades ) + if( Api.INSTANCE.partHelper().getCableRenderMode().opaqueFacades ) { final IFacadeContainer fc = this.getFacadeContainer(); for( final AEPartLocation side : AEPartLocation.SIDE_LOCATIONS ) @@ -632,7 +632,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I { try { - AEApi.instance().grid().createGridConnection( cn, sn ); + Api.INSTANCE.grid().createGridConnection( cn, sn ); } catch( final FailedConnectionException e ) { @@ -755,7 +755,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } } - if( AEApi.instance().partHelper().getCableRenderMode().opaqueFacades || !visual ) + if( Api.INSTANCE.partHelper().getCableRenderMode().opaqueFacades || !visual ) { if( includeFacades && s != null && s != AEPartLocation.INTERNAL ) { diff --git a/src/main/java/appeng/parts/PartPlacement.java b/src/main/java/appeng/parts/PartPlacement.java index 3cac61804..2ed8d2e10 100644 --- a/src/main/java/appeng/parts/PartPlacement.java +++ b/src/main/java/appeng/parts/PartPlacement.java @@ -230,7 +230,7 @@ public class PartPlacement BlockPos te_pos = pos; - final IBlockDefinition multiPart = AEApi.instance().definitions().blocks().multiPart(); + final IBlockDefinition multiPart = Api.INSTANCE.definitions().blocks().multiPart(); if( host == null && pass == PlaceType.PLACE_ITEM ) { Direction offset = null; @@ -431,7 +431,7 @@ public class PartPlacement else { final ItemStack held = event.getPlayer().getHeldItem( event.getHand() ); - final IItems items = AEApi.instance().definitions().items(); + final IItems items = Api.INSTANCE.definitions().items(); boolean supportedItem = items.memoryCard().isSameAs( held ); supportedItem |= items.colorApplicator().isSameAs( held ); diff --git a/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java b/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java index c0be5a03a..80d795915 100644 --- a/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java +++ b/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java @@ -337,7 +337,7 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab final IStorageGrid storage = this.getProxy().getStorage(); final IEnergyGrid energy = this.getProxy().getEnergy(); final IAEItemStack overflow = Platform.poweredInsert( energy, - storage.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ), itemToStore, this.mySrc ); + storage.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ), itemToStore, this.mySrc ); this.isAccepting = overflow == null; @@ -530,7 +530,7 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab for( final ItemStack itemStack : itemStacks ) { final IAEItemStack itemToTest = AEItemStack.fromItemStack( itemStack ); - final IAEItemStack overflow = storage.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + final IAEItemStack overflow = storage.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) .injectItems( itemToTest, Actionable.SIMULATE, this.mySrc ); if( overflow == null || itemToTest.getStackSize() > overflow.getStackSize() ) { diff --git a/src/main/java/appeng/parts/automation/PartExportBus.java b/src/main/java/appeng/parts/automation/PartExportBus.java index a380153b3..cba343cb2 100644 --- a/src/main/java/appeng/parts/automation/PartExportBus.java +++ b/src/main/java/appeng/parts/automation/PartExportBus.java @@ -133,7 +133,7 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest final IMEMonitor inv = this.getProxy() .getStorage() .getInventory( - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); final IEnergyGrid energy = this.getProxy().getEnergy(); final ICraftingGrid cg = this.getProxy().getCrafting(); final FuzzyMode fzMode = (FuzzyMode) this.getConfigManager().getSetting( Settings.FUZZY_MODE ); diff --git a/src/main/java/appeng/parts/automation/PartFormationPlane.java b/src/main/java/appeng/parts/automation/PartFormationPlane.java index 586f4688a..5e615673d 100644 --- a/src/main/java/appeng/parts/automation/PartFormationPlane.java +++ b/src/main/java/appeng/parts/automation/PartFormationPlane.java @@ -90,7 +90,7 @@ public class PartFormationPlane extends PartAbstractFormationPlane return MODELS.getModels(); } - private final MEInventoryHandler myHandler = new MEInventoryHandler<>( this, AEApi.instance() + private final MEInventoryHandler myHandler = new MEInventoryHandler<>( this, Api.INSTANCE .storage() .getStorageChannel( IItemStorageChannel.class ) ); private final AppEngInternalAEInventory Config = new AppEngInternalAEInventory( this, 63 ); @@ -111,7 +111,7 @@ public class PartFormationPlane extends PartAbstractFormationPlane this.myHandler.setWhitelist( this.getInstalledUpgrades( Upgrades.INVERTER ) > 0 ? IncludeExclude.BLACKLIST : IncludeExclude.WHITELIST ); this.myHandler.setPriority( this.getPriority() ); - final IItemList priorityList = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList priorityList = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); final int slotsToUse = 18 + this.getInstalledUpgrades( Upgrades.CAPACITY ) * 9; for( int x = 0; x < this.Config.getSlots() && x < slotsToUse; x++ ) @@ -206,7 +206,7 @@ public class PartFormationPlane extends PartAbstractFormationPlane @Override public List getCellArray( final IStorageChannel channel ) { - if( this.getProxy().isActive() && channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( this.getProxy().isActive() && channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { final List handler = new ArrayList<>( 1 ); handler.add( this.myHandler ); @@ -363,7 +363,7 @@ public class PartFormationPlane extends PartAbstractFormationPlane @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override @@ -375,7 +375,7 @@ public class PartFormationPlane extends PartAbstractFormationPlane @Override public ItemStack getItemStackRepresentation() { - return AEApi.instance().definitions().parts().formationPlane().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().parts().formationPlane().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override diff --git a/src/main/java/appeng/parts/automation/PartImportBus.java b/src/main/java/appeng/parts/automation/PartImportBus.java index 9326bd139..40898123f 100644 --- a/src/main/java/appeng/parts/automation/PartImportBus.java +++ b/src/main/java/appeng/parts/automation/PartImportBus.java @@ -96,9 +96,9 @@ public class PartImportBus extends PartSharedItemBus implements IInventoryDestin final IMEMonitor inv = this.getProxy() .getStorage() .getInventory( - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); - final IAEItemStack out = inv.injectItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( stack ), + final IAEItemStack out = inv.injectItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( stack ), Actionable.SIMULATE, this.source ); if( out == null ) @@ -171,7 +171,7 @@ public class PartImportBus extends PartSharedItemBus implements IInventoryDestin final IMEMonitor inv = this.getProxy() .getStorage() .getInventory( - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); final IEnergyGrid energy = this.getProxy().getEnergy(); boolean Configured = false; @@ -231,7 +231,7 @@ public class PartImportBus extends PartSharedItemBus implements IInventoryDestin if( !newItems.isEmpty() ) { - final IAEItemStack aeStack = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( newItems ); + final IAEItemStack aeStack = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( newItems ); final IAEItemStack failed = Platform.poweredInsert( energy, inv, aeStack, this.source ); if( failed != null ) diff --git a/src/main/java/appeng/parts/automation/PartLevelEmitter.java b/src/main/java/appeng/parts/automation/PartLevelEmitter.java index 52b3685ef..59e7220b8 100644 --- a/src/main/java/appeng/parts/automation/PartLevelEmitter.java +++ b/src/main/java/appeng/parts/automation/PartLevelEmitter.java @@ -276,7 +276,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH this.updateState(); // no more item stuff.. - this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ).removeListener( this ); + this.getProxy().getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ).removeListener( this ); } catch( final GridAccessException e ) { @@ -292,13 +292,13 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH { this.getProxy() .getStorage() - .getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + .getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) .addListener( this, this.getProxy().getGrid() ); } else { - this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ).removeListener( this ); + this.getProxy().getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ).removeListener( this ); if( this.myWatcher != null ) { @@ -306,7 +306,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH } } - this.updateReportingValue( this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ); + this.updateReportingValue( this.getProxy().getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) ); } catch( final GridAccessException e ) { @@ -362,7 +362,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH @Override public void onStackChange( final IItemList o, final IAEStack fullStack, final IAEStack diffStack, final IActionSource src, final IStorageChannel chan ) { - if( chan == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) && fullStack.equals( this.config.getAEStackInSlot( 0 ) ) && this + if( chan == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) && fullStack.equals( this.config.getAEStackInSlot( 0 ) ) && this .getInstalledUpgrades( Upgrades.FUZZY ) == 0 ) { this.lastReportedValue = fullStack.getStackSize(); @@ -408,7 +408,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH { try { - this.updateReportingValue( this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ); + this.updateReportingValue( this.getProxy().getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) ); } catch( final GridAccessException e ) { diff --git a/src/main/java/appeng/parts/automation/PlaneBakedModel.java b/src/main/java/appeng/parts/automation/PlaneBakedModel.java index 56578c08a..b8a87c06f 100644 --- a/src/main/java/appeng/parts/automation/PlaneBakedModel.java +++ b/src/main/java/appeng/parts/automation/PlaneBakedModel.java @@ -117,6 +117,6 @@ public class PlaneBakedModel implements IBakedModel @Override public ItemOverrideList getOverrides() { - return ItemOverrideList.NONE; + return ItemOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java b/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java index ebc840af9..b469a737f 100644 --- a/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java +++ b/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java @@ -218,7 +218,7 @@ class ItemHandlerAdapter implements IMEInventory, IBaseMonitor in = this.getInternalHandler(); - IItemList before = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + IItemList before = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); if( in != null ) { before = in.getAvailableItems( before ); @@ -363,7 +363,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC if( in != out ) { - IItemList after = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + IItemList after = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); if( out != null ) { after = out.getAvailableItems( after ); @@ -385,7 +385,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC IStorageMonitorable inventory = accessor.getInventory( this.mySrc ); if( inventory != null ) { - return inventory.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + return inventory.getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); } // So this could / can be a design decision. If the tile does support our custom capability, @@ -472,13 +472,13 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC { this.checkInterfaceVsStorageBus( target, this.getSide().getOpposite() ); - this.handler = new MEInventoryHandler( inv, AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + this.handler = new MEInventoryHandler( inv, Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); this.handler.setBaseAccess( (AccessRestriction) this.getConfigManager().getSetting( Settings.ACCESS ) ); this.handler.setWhitelist( this.getInstalledUpgrades( Upgrades.INVERTER ) > 0 ? IncludeExclude.BLACKLIST : IncludeExclude.WHITELIST ); this.handler.setPriority( this.priority ); - final IItemList priorityList = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + final IItemList priorityList = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); final int slotsToUse = 18 + this.getInstalledUpgrades( Upgrades.CAPACITY ) * 9; for( int x = 0; x < this.Config.getSlots() && x < slotsToUse; x++ ) @@ -571,7 +571,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC @Override public List getCellArray( final IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { final IMEInventoryHandler out = this.getProxy().isActive() ? this.getInternalHandler() : null; if( out != null ) @@ -636,7 +636,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC @Override public ItemStack getItemStackRepresentation() { - return AEApi.instance().definitions().parts().storageBus().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().parts().storageBus().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override diff --git a/src/main/java/appeng/parts/misc/PartToggleBus.java b/src/main/java/appeng/parts/misc/PartToggleBus.java index 8ea0ccce5..0760cd3b1 100644 --- a/src/main/java/appeng/parts/misc/PartToggleBus.java +++ b/src/main/java/appeng/parts/misc/PartToggleBus.java @@ -188,7 +188,7 @@ public class PartToggleBus extends PartBasicState { try { - this.connection = AEApi.instance().grid().createGridConnection( this.getProxy().getNode(), this.getOuterProxy().getNode() ); + this.connection = Api.INSTANCE.grid().createGridConnection( this.getProxy().getNode(), this.getOuterProxy().getNode() ); } catch( final FailedConnectionException e ) { diff --git a/src/main/java/appeng/parts/networking/PartCable.java b/src/main/java/appeng/parts/networking/PartCable.java index 757b4bd21..a985efa9f 100644 --- a/src/main/java/appeng/parts/networking/PartCable.java +++ b/src/main/java/appeng/parts/networking/PartCable.java @@ -114,7 +114,7 @@ public class PartCable extends AEBasePart implements IPartCable { ItemStack newPart = null; - final IParts parts = AEApi.instance().definitions().parts(); + final IParts parts = Api.INSTANCE.definitions().parts(); if( this.getCableConnectionType() == AECableType.GLASS ) { diff --git a/src/main/java/appeng/parts/p2p/PartP2PTunnel.java b/src/main/java/appeng/parts/p2p/PartP2PTunnel.java index 0c6202102..6462369fa 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PTunnel.java +++ b/src/main/java/appeng/parts/p2p/PartP2PTunnel.java @@ -124,7 +124,7 @@ public abstract class PartP2PTunnel extends PartBasicSt return super.getItemStack( type ); } - final Optional maybeMEStack = AEApi.instance().definitions().parts().p2PTunnelME().maybeStack( 1 ); + final Optional maybeMEStack = Api.INSTANCE.definitions().parts().p2PTunnelME().maybeStack( 1 ); if( maybeMEStack.isPresent() ) { return maybeMEStack.get(); @@ -195,7 +195,7 @@ public abstract class PartP2PTunnel extends PartBasicSt // UniqueIdentifier id = GameRegistry.findUniqueIdentifierFor( is.getItem() ); // AELog.info( "ID:" + id.toString() + " : " + is.getItemDamage() ); - final TunnelType tt = AEApi.instance().registries().p2pTunnel().getTunnelTypeByItem( is ); + final TunnelType tt = Api.INSTANCE.registries().p2pTunnel().getTunnelTypeByItem( is ); if( !is.isEmpty() && is.getItem() instanceof IMemoryCard ) { final IMemoryCard mc = (IMemoryCard) is.getItem(); @@ -244,7 +244,7 @@ public abstract class PartP2PTunnel extends PartBasicSt { final ItemStack newType; - final IParts parts = AEApi.instance().definitions().parts(); + final IParts parts = Api.INSTANCE.definitions().parts(); switch( tt ) { diff --git a/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java b/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java index eaf156618..094d24e60 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java +++ b/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java @@ -241,7 +241,7 @@ public class PartP2PTunnelME extends PartP2PTunnel implements I { connections.getConnections() .put( me.getGridNode(), - new TunnelConnection( me, AEApi.instance() + new TunnelConnection( me, Api.INSTANCE .grid() .createGridConnection( this.outerProxy.getNode(), me.outerProxy.getNode() ) ) ); diff --git a/src/main/java/appeng/parts/reporting/AbstractPartMonitor.java b/src/main/java/appeng/parts/reporting/AbstractPartMonitor.java index 104c61eae..7719b0de7 100644 --- a/src/main/java/appeng/parts/reporting/AbstractPartMonitor.java +++ b/src/main/java/appeng/parts/reporting/AbstractPartMonitor.java @@ -225,7 +225,7 @@ public abstract class AbstractPartMonitor extends AbstractPartDisplay implements } this.updateReportingValue( - this.getProxy().getStorage().getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) ); + this.getProxy().getStorage().getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) ); } } catch( final GridAccessException e ) diff --git a/src/main/java/appeng/parts/reporting/PartConversionMonitor.java b/src/main/java/appeng/parts/reporting/PartConversionMonitor.java index fc0757500..d2f70c638 100644 --- a/src/main/java/appeng/parts/reporting/PartConversionMonitor.java +++ b/src/main/java/appeng/parts/reporting/PartConversionMonitor.java @@ -179,7 +179,7 @@ public class PartConversionMonitor extends AbstractPartMonitor final IEnergySource energy = this.getProxy().getEnergy(); final IMEMonitor cell = this.getProxy() .getStorage() - .getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + .getInventory( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); if( allItems ) { @@ -235,7 +235,7 @@ public class PartConversionMonitor extends AbstractPartMonitor final IMEMonitor cell = this.getProxy() .getStorage() .getInventory( - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); input.setStackSize( count ); diff --git a/src/main/java/appeng/recipes/AEItemResolver.java b/src/main/java/appeng/recipes/AEItemResolver.java index 76e78905d..4330f2cff 100644 --- a/src/main/java/appeng/recipes/AEItemResolver.java +++ b/src/main/java/appeng/recipes/AEItemResolver.java @@ -47,7 +47,7 @@ public class AEItemResolver implements ISubItemResolver if( nameSpace.equals( AppEng.MOD_ID ) ) { - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); final IItems items = definitions.items(); final IParts parts = definitions.parts(); diff --git a/src/main/java/appeng/recipes/factories/recipes/PartRecipeFactory.java b/src/main/java/appeng/recipes/factories/recipes/PartRecipeFactory.java index 1b1ccae97..234130172 100644 --- a/src/main/java/appeng/recipes/factories/recipes/PartRecipeFactory.java +++ b/src/main/java/appeng/recipes/factories/recipes/PartRecipeFactory.java @@ -98,7 +98,7 @@ public class PartRecipeFactory implements IRecipeFactory private static ItemStack getPart( JsonObject resultObject ) { String ingredient = JSONUtils.getString( resultObject, "part" ); - Object result = AEApi.instance().registries().recipes().resolveItem( AppEng.MOD_ID, ingredient ); + Object result = Api.INSTANCE.registries().recipes().resolveItem( AppEng.MOD_ID, ingredient ); if( result instanceof ResolverResult ) { ResolverResult resolverResult = (ResolverResult) result; diff --git a/src/main/java/appeng/recipes/game/DisassembleRecipe.java b/src/main/java/appeng/recipes/game/DisassembleRecipe.java index 373f2e6cc..1d12028d4 100644 --- a/src/main/java/appeng/recipes/game/DisassembleRecipe.java +++ b/src/main/java/appeng/recipes/game/DisassembleRecipe.java @@ -55,7 +55,7 @@ public final class DisassembleRecipe extends net.minecraftforge.registries.IForg public DisassembleRecipe() { - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); final IBlocks blocks = definitions.blocks(); final IItems items = definitions.items(); final IMaterials mats = definitions.materials(); @@ -105,15 +105,15 @@ public final class DisassembleRecipe extends net.minecraftforge.registries.IForg { ItemStack storageCellStack = maybeCellOutput.get(); // make sure the storage cell stackInSlot empty... - final IMEInventory cellInv = AEApi.instance() + final IMEInventory cellInv = Api.INSTANCE .registries() .cell() .getCellInventory( stackInSlot, null, - AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ); + Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ); if( cellInv != null ) { final IItemList list = cellInv - .getAvailableItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + .getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); if( !list.isEmpty() ) { return ItemStack.EMPTY; diff --git a/src/main/java/appeng/recipes/game/FacadeRecipe.java b/src/main/java/appeng/recipes/game/FacadeRecipe.java index 7605c8da5..8e6f9d757 100644 --- a/src/main/java/appeng/recipes/game/FacadeRecipe.java +++ b/src/main/java/appeng/recipes/game/FacadeRecipe.java @@ -43,7 +43,7 @@ public final class FacadeRecipe extends net.minecraftforge.registries.IForgeRegi public FacadeRecipe( ItemFacade facade ) { this.facade = facade; - final IDefinitions definitions = AEApi.instance().definitions(); + final IDefinitions definitions = Api.INSTANCE.definitions(); this.anchor = definitions.parts().cableAnchor(); } diff --git a/src/main/java/appeng/recipes/handlers/GrinderHandler.java b/src/main/java/appeng/recipes/handlers/GrinderHandler.java index dc6f8f0d6..d6f6c82f1 100644 --- a/src/main/java/appeng/recipes/handlers/GrinderHandler.java +++ b/src/main/java/appeng/recipes/handlers/GrinderHandler.java @@ -34,7 +34,7 @@ public class GrinderHandler implements IAERecipeFactory turns = JSONUtils.getInt( json, "turns" ); } - final IGrinderRegistry reg = AEApi.instance().registries().grinder(); + final IGrinderRegistry reg = Api.INSTANCE.registries().grinder(); for( int i = 0; i < input.length; ++i ) { final IGrinderRecipeBuilder builder = reg.builder(); diff --git a/src/main/java/appeng/recipes/handlers/InscriberHandler.java b/src/main/java/appeng/recipes/handlers/InscriberHandler.java index 89a048d62..1e851f2b8 100644 --- a/src/main/java/appeng/recipes/handlers/InscriberHandler.java +++ b/src/main/java/appeng/recipes/handlers/InscriberHandler.java @@ -44,7 +44,7 @@ public class InscriberHandler implements IAERecipeFactory bottom = CraftingHelper.getIngredient( JSONUtils.getJsonObject( ingredients, "bottom" ), ctx ).getMatchingStacks(); } - final IInscriberRegistry reg = AEApi.instance().registries().inscriber(); + final IInscriberRegistry reg = Api.INSTANCE.registries().inscriber(); for( int i = 0; i < top.length; ++i ) { for( int j = 0; j < bottom.length; ++j ) diff --git a/src/main/java/appeng/services/CompassService.java b/src/main/java/appeng/services/CompassService.java index 193f31f92..b4f7fe558 100644 --- a/src/main/java/appeng/services/CompassService.java +++ b/src/main/java/appeng/services/CompassService.java @@ -134,7 +134,7 @@ public final class CompassService // lower level... final Chunk c = w.getChunkFromChunkCoords( cx, cz ); - Optional maybeBlock = AEApi.instance().definitions().blocks().skyStoneBlock().maybeBlock(); + Optional maybeBlock = Api.INSTANCE.definitions().blocks().skyStoneBlock().maybeBlock(); if( maybeBlock.isPresent() ) { Block skyStoneBlock = maybeBlock.get(); diff --git a/src/main/java/appeng/spatial/CachedPlane.java b/src/main/java/appeng/spatial/CachedPlane.java index 7321647af..cd2da5486 100644 --- a/src/main/java/appeng/spatial/CachedPlane.java +++ b/src/main/java/appeng/spatial/CachedPlane.java @@ -59,7 +59,7 @@ public class CachedPlane private final List tiles = new ArrayList<>(); private final List ticks = new ArrayList<>(); private final World world; - private final IMovableRegistry reg = AEApi.instance().registries().movable(); + private final IMovableRegistry reg = Api.INSTANCE.registries().movable(); private final List updates = new ArrayList<>(); private int verticalBits; private final BlockState matrixBlockState; @@ -67,7 +67,7 @@ public class CachedPlane public CachedPlane( final World w, final int minX, final int minY, final int minZ, final int maxX, final int maxY, final int maxZ ) { - Block matrixFrameBlock = AEApi.instance().definitions().blocks().matrixFrame().maybeBlock().orElse( null ); + Block matrixFrameBlock = Api.INSTANCE.definitions().blocks().matrixFrame().maybeBlock().orElse( null ); if( matrixFrameBlock != null ) { this.matrixBlockState = matrixFrameBlock.getDefaultState(); @@ -115,7 +115,7 @@ public class CachedPlane } } - final IMovableRegistry mr = AEApi.instance().registries().movable(); + final IMovableRegistry mr = Api.INSTANCE.registries().movable(); for( int cx = 0; cx < this.cx_size; cx++ ) { @@ -203,13 +203,13 @@ public class CachedPlane private IMovableHandler getHandler( final TileEntity te ) { - final IMovableRegistry mr = AEApi.instance().registries().movable(); + final IMovableRegistry mr = Api.INSTANCE.registries().movable(); return mr.getHandler( te ); } void swap( final CachedPlane dst ) { - final IMovableRegistry mr = AEApi.instance().registries().movable(); + final IMovableRegistry mr = Api.INSTANCE.registries().movable(); if( dst.x_size == this.x_size && dst.y_size == this.y_size && dst.z_size == this.z_size ) { diff --git a/src/main/java/appeng/spatial/StorageChunkProvider.java b/src/main/java/appeng/spatial/StorageChunkProvider.java index a840a9352..2e44f154e 100644 --- a/src/main/java/appeng/spatial/StorageChunkProvider.java +++ b/src/main/java/appeng/spatial/StorageChunkProvider.java @@ -59,7 +59,7 @@ public class StorageChunkProvider extends ChunkGeneratorOverworld biomes[k] = biomeId; } - AEApi.instance().definitions().blocks().matrixFrame().maybeBlock().ifPresent( block -> this.fillChunk( chunk, block.getDefaultState() ) ); + Api.INSTANCE.definitions().blocks().matrixFrame().maybeBlock().ifPresent( block -> this.fillChunk( chunk, block.getDefaultState() ) ); chunk.setModified( false ); diff --git a/src/main/java/appeng/spatial/StorageHelper.java b/src/main/java/appeng/spatial/StorageHelper.java index 2c9d5b0d4..d6cc364ff 100644 --- a/src/main/java/appeng/spatial/StorageHelper.java +++ b/src/main/java/appeng/spatial/StorageHelper.java @@ -161,7 +161,7 @@ public class StorageHelper public void swapRegions( final World srcWorld, final int srcX, final int srcY, final int srcZ, final World dstWorld, final int dstX, final int dstY, final int dstZ, final int scaleX, final int scaleY, final int scaleZ ) { - AEApi.instance() + Api.INSTANCE .definitions() .blocks() .matrixFrame() diff --git a/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java b/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java index d8a2b6816..b8c040509 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java @@ -190,7 +190,7 @@ public class TileCraftingMonitorTile extends TileCraftingTile implements IColora @Override protected ItemStack getItemFromTile( final Object obj ) { - final Optional is = AEApi.instance().definitions().blocks().craftingMonitor().maybeStack( 1 ); + final Optional is = Api.INSTANCE.definitions().blocks().craftingMonitor().maybeStack( 1 ); return is.orElseGet( () -> super.getItemFromTile( obj ) ); } diff --git a/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java b/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java index 712bc1986..54e429890 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java @@ -35,7 +35,7 @@ public class TileCraftingStorageTile extends TileCraftingTile @Override protected ItemStack getItemFromTile( final Object obj ) { - final IBlocks blocks = AEApi.instance().definitions().blocks(); + final IBlocks blocks = Api.INSTANCE.definitions().blocks(); final int storage = ( (TileCraftingTile) obj ).getStorageBytes() / KILO_SCALAR; Optional is; diff --git a/src/main/java/appeng/tile/crafting/TileCraftingTile.java b/src/main/java/appeng/tile/crafting/TileCraftingTile.java index 6afaf6437..b7b546770 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingTile.java @@ -83,11 +83,11 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP if( ( (TileCraftingTile) obj ).isAccelerator() ) { - is = AEApi.instance().definitions().blocks().craftingAccelerator().maybeStack( 1 ); + is = Api.INSTANCE.definitions().blocks().craftingAccelerator().maybeStack( 1 ); } else { - is = AEApi.instance().definitions().blocks().craftingUnit().maybeStack( 1 ); + is = Api.INSTANCE.definitions().blocks().craftingUnit().maybeStack( 1 ); } return is.orElseGet( () -> super.getItemFromTile( obj ) ); @@ -319,7 +319,7 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP throw new IllegalStateException( this.cluster + " does not contain any kind of blocks, which were destroyed." ); } - for( IAEItemStack ais : inv.getAvailableItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ) ) + for( IAEItemStack ais : inv.getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ) ) { ais = ais.copy(); ais.setStackSize( ais.getDefinition().getMaxStackSize() ); diff --git a/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java b/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java index 9983f9300..dc1967164 100644 --- a/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java +++ b/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java @@ -99,7 +99,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade public TileMolecularAssembler() { - final ITileDefinition assembler = AEApi.instance().definitions().blocks().molecularAssembler(); + final ITileDefinition assembler = Api.INSTANCE.definitions().blocks().molecularAssembler(); this.settings = new ConfigManager( this ); this.settings.registerSetting( Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE ); diff --git a/src/main/java/appeng/tile/grindstone/TileGrinder.java b/src/main/java/appeng/tile/grindstone/TileGrinder.java index 63a834cbe..5d1321793 100644 --- a/src/main/java/appeng/tile/grindstone/TileGrinder.java +++ b/src/main/java/appeng/tile/grindstone/TileGrinder.java @@ -91,7 +91,7 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable continue; } - final IGrinderRecipe r = AEApi.instance().registries().grinder().getRecipeForInput( item ); + final IGrinderRecipe r = Api.INSTANCE.registries().grinder().getRecipeForInput( item ); if( r != null ) { if( item.getCount() >= r.getInput().getCount() ) @@ -127,7 +127,7 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable this.points++; final ItemStack processing = this.inv.getStackInSlot( 6 ); - final IGrinderRecipe r = AEApi.instance().registries().grinder().getRecipeForInput( processing ); + final IGrinderRecipe r = Api.INSTANCE.registries().grinder().getRecipeForInput( processing ); if( r != null ) { if( r.getRequiredTurns() > this.points ) @@ -198,7 +198,7 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable @Override public boolean allowInsert( IItemHandler inv, int slotIndex, ItemStack stack ) { - if( AEApi.instance().registries().grinder().getRecipeForInput( stack ) == null ) + if( Api.INSTANCE.registries().grinder().getRecipeForInput( stack ) == null ) { return false; } diff --git a/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java b/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java index 2dded7b51..925b83caa 100644 --- a/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java +++ b/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java @@ -177,7 +177,7 @@ public class AppEngInternalAEInventory implements IItemHandlerModifiable, Iterab { if( existing.isEmpty() ) { - this.inv[slot] = AEApi.instance() + this.inv[slot] = Api.INSTANCE .storage() .getStorageChannel( IItemStorageChannel.class ) .createStack( @@ -226,7 +226,7 @@ public class AppEngInternalAEInventory implements IItemHandlerModifiable, Iterab public void setStackInSlot( final int slot, final ItemStack newItemStack ) { ItemStack oldStack = this.getStackInSlot( slot ).copy(); - this.inv[slot] = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createStack( newItemStack ); + this.inv[slot] = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createStack( newItemStack ); if( this.te != null && Platform.isServer() ) { diff --git a/src/main/java/appeng/tile/misc/CondenserItemInventory.java b/src/main/java/appeng/tile/misc/CondenserItemInventory.java index d9b121a3b..36b6510f6 100644 --- a/src/main/java/appeng/tile/misc/CondenserItemInventory.java +++ b/src/main/java/appeng/tile/misc/CondenserItemInventory.java @@ -104,7 +104,7 @@ class CondenserItemInventory implements IMEMonitor, ITickingMonito @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/tile/misc/TileCharger.java b/src/main/java/appeng/tile/misc/TileCharger.java index ca63bf726..fff82dfca 100644 --- a/src/main/java/appeng/tile/misc/TileCharger.java +++ b/src/main/java/appeng/tile/misc/TileCharger.java @@ -135,7 +135,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable, IGrid final ItemStack myItem = this.inv.getStackInSlot( 0 ); if( this.getInternalCurrentPower() > POWER_THRESHOLD ) { - final IMaterials materials = AEApi.instance().definitions().materials(); + final IMaterials materials = Api.INSTANCE.definitions().materials(); if( materials.certusQuartzCrystal().isSameAs( myItem ) ) { @@ -185,7 +185,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable, IGrid { ItemStack held = player.inventory.getCurrentItem(); - if( AEApi.instance().definitions().materials().certusQuartzCrystal().isSameAs( held ) || Platform.isChargeable( held ) ) + if( Api.INSTANCE.definitions().materials().certusQuartzCrystal().isSameAs( held ) || Platform.isChargeable( held ) ) { held = player.inventory.decrStackSize( player.inventory.currentItem, 1 ); this.inv.setStackInSlot( 0, held ); @@ -219,7 +219,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable, IGrid if( !myItem.isEmpty() ) { - final IMaterials materials = AEApi.instance().definitions().materials(); + final IMaterials materials = Api.INSTANCE.definitions().materials(); if( Platform.isChargeable( myItem ) ) { @@ -227,7 +227,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable, IGrid if( ps.getAEMaxPower( myItem ) > ps.getAECurrentPower( myItem ) ) { - final double chargeRate = AEApi.instance().registries().charger().getChargeRate( myItem.getItem() ); + final double chargeRate = Api.INSTANCE.registries().charger().getChargeRate( myItem.getItem() ); double extractedAmount = this.extractAEPower( chargeRate, Actionable.MODULATE, PowerMultiplier.CONFIG ); @@ -298,7 +298,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable, IGrid @Override public boolean allowInsert( IItemHandler inv, final int i, final ItemStack itemstack ) { - final IItemDefinition cert = AEApi.instance().definitions().materials().certusQuartzCrystal(); + final IItemDefinition cert = Api.INSTANCE.definitions().materials().certusQuartzCrystal(); return Platform.isChargeable( itemstack ) || cert.isSameAs( itemstack ); } @@ -317,7 +317,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable, IGrid } } - return AEApi.instance().definitions().materials().certusQuartzCrystalCharged().isSameAs( extractedItem ); + return Api.INSTANCE.definitions().materials().certusQuartzCrystalCharged().isSameAs( extractedItem ); } } } diff --git a/src/main/java/appeng/tile/misc/TileCondenser.java b/src/main/java/appeng/tile/misc/TileCondenser.java index 71e4d258a..8442c3a11 100644 --- a/src/main/java/appeng/tile/misc/TileCondenser.java +++ b/src/main/java/appeng/tile/misc/TileCondenser.java @@ -161,7 +161,7 @@ public class TileCondenser extends AEBaseInvTile implements IConfigManagerHost, private ItemStack getOutput() { - final IMaterials materials = AEApi.instance().definitions().materials(); + final IMaterials materials = Api.INSTANCE.definitions().materials(); switch( (CondenserOutput) this.cm.getSetting( Settings.CONDENSER_OUTPUT ) ) { @@ -316,7 +316,7 @@ public class TileCondenser extends AEBaseInvTile implements IConfigManagerHost, { if( doFill ) { - final IStorageChannel chan = AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ); + final IStorageChannel chan = Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ); TileCondenser.this.addPower( ( resource == null ? 0.0 : (double) resource.amount ) / chan.transferFactor() ); } @@ -364,7 +364,7 @@ public class TileCondenser extends AEBaseInvTile implements IConfigManagerHost, @Override public > IMEMonitor getInventory( IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { return (IMEMonitor) this.itemInventory; } diff --git a/src/main/java/appeng/tile/misc/TileInscriber.java b/src/main/java/appeng/tile/misc/TileInscriber.java index 57b625ed3..3e4c1ec59 100644 --- a/src/main/java/appeng/tile/misc/TileInscriber.java +++ b/src/main/java/appeng/tile/misc/TileInscriber.java @@ -109,7 +109,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, this.getProxy().setIdlePowerUsage( 0 ); this.settings = new ConfigManager( this ); - final ITileDefinition inscriberDefinition = AEApi.instance().definitions().blocks().inscriber(); + final ITileDefinition inscriberDefinition = Api.INSTANCE.definitions().blocks().inscriber(); this.upgrades = new DefinitionUpgradeInventory( inscriberDefinition, this, this.getUpgradeSlots() ); this.sideItemHandler.setMaxStackSize( 1, 64 ); @@ -311,7 +311,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, return null; } - final IComparableDefinition namePress = AEApi.instance().definitions().materials().namePress(); + final IComparableDefinition namePress = Api.INSTANCE.definitions().materials().namePress(); final boolean isNameA = namePress.isSameAs( plateA ); final boolean isNameB = namePress.isSameAs( plateB ); @@ -324,7 +324,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, return this.makeNamePressRecipe( input, plateB, plateA ); } - for( final IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() ) + for( final IInscriberRecipe recipe : Api.INSTANCE.registries().inscriber().getRecipes() ) { final boolean matchA = ( plateA.isEmpty() && !recipe.getTopOptional().isPresent() ) || ( Platform.itemComparisons() @@ -567,7 +567,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, final List inputs = Lists.newArrayList( startingItem ); final InscriberProcessType type = InscriberProcessType.INSCRIBE; - final IInscriberRecipeBuilder builder = AEApi.instance().registries().inscriber().builder(); + final IInscriberRecipeBuilder builder = Api.INSTANCE.registries().inscriber().builder(); builder.withInputs( inputs ).withOutput( renamedItem ).withProcessType( type ); if( !plateA.isEmpty() ) @@ -617,11 +617,11 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, if( inv == TileInscriber.this.topItemHandler || inv == TileInscriber.this.bottomItemHandler ) { - if( AEApi.instance().definitions().materials().namePress().isSameAs( stack ) ) + if( Api.INSTANCE.definitions().materials().namePress().isSameAs( stack ) ) { return true; } - for( final ItemStack optionals : AEApi.instance().registries().inscriber().getOptionals() ) + for( final ItemStack optionals : Api.INSTANCE.registries().inscriber().getOptionals() ) { if( Platform.itemComparisons().isSameItem( stack, optionals ) ) { diff --git a/src/main/java/appeng/tile/misc/TileInterface.java b/src/main/java/appeng/tile/misc/TileInterface.java index 9043b3a2f..d499912c0 100644 --- a/src/main/java/appeng/tile/misc/TileInterface.java +++ b/src/main/java/appeng/tile/misc/TileInterface.java @@ -358,7 +358,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, II @Override public ItemStack getItemStackRepresentation() { - return AEApi.instance().definitions().blocks().iface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().blocks().iface().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override diff --git a/src/main/java/appeng/tile/misc/TileSecurityStation.java b/src/main/java/appeng/tile/misc/TileSecurityStation.java index c8963f709..54035145c 100644 --- a/src/main/java/appeng/tile/misc/TileSecurityStation.java +++ b/src/main/java/appeng/tile/misc/TileSecurityStation.java @@ -278,7 +278,7 @@ public class TileSecurityStation extends AENetworkTile implements ITerminalHost, @Override public > IMEMonitor getInventory( IStorageChannel channel ) { - if( channel == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( channel == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { return (IMEMonitor) this.securityMonitor; } @@ -318,7 +318,7 @@ public class TileSecurityStation extends AENetworkTile implements ITerminalHost, @Override public void readPermissions( final Map> playerPerms ) { - final IPlayerRegistry pr = AEApi.instance().registries().players(); + final IPlayerRegistry pr = Api.INSTANCE.registries().players(); // read permissions for( final IAEItemStack ais : this.inventory.getStoredItems() ) diff --git a/src/main/java/appeng/tile/networking/TileWireless.java b/src/main/java/appeng/tile/networking/TileWireless.java index c230a1a8f..9d0ddbc5b 100644 --- a/src/main/java/appeng/tile/networking/TileWireless.java +++ b/src/main/java/appeng/tile/networking/TileWireless.java @@ -60,7 +60,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi public TileWireless() { - this.inv.setFilter( new AEItemDefinitionFilter( AEApi.instance().definitions().materials().wirelessBooster() ) ); + this.inv.setFilter( new AEItemDefinitionFilter( Api.INSTANCE.definitions().materials().wirelessBooster() ) ); this.getProxy().setFlags( GridFlags.REQUIRE_CHANNEL ); this.getProxy().setValidSides( EnumSet.noneOf( Direction.class ) ); } diff --git a/src/main/java/appeng/tile/qnb/TileQuantumBridge.java b/src/main/java/appeng/tile/qnb/TileQuantumBridge.java index fd778132c..f16d65df7 100644 --- a/src/main/java/appeng/tile/qnb/TileQuantumBridge.java +++ b/src/main/java/appeng/tile/qnb/TileQuantumBridge.java @@ -141,7 +141,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock private boolean isCenter() { - return AEApi.instance() + return Api.INSTANCE .definitions() .blocks() .quantumLink() @@ -168,7 +168,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock { super.onReady(); - final IBlockDefinition quantumRing = AEApi.instance().definitions().blocks().quantumRing(); + final IBlockDefinition quantumRing = Api.INSTANCE.definitions().blocks().quantumRing(); final Optional maybeLinkBlock = quantumRing.maybeBlock(); final Optional maybeLinkStack = quantumRing.maybeStack( 1 ); diff --git a/src/main/java/appeng/tile/storage/TileChest.java b/src/main/java/appeng/tile/storage/TileChest.java index 5e9aa5fca..538f6e86d 100644 --- a/src/main/java/appeng/tile/storage/TileChest.java +++ b/src/main/java/appeng/tile/storage/TileChest.java @@ -221,12 +221,12 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal if( !is.isEmpty() ) { this.isCached = true; - ICellHandler cellHandler = AEApi.instance().registries().cell().getHandler( is ); + ICellHandler cellHandler = Api.INSTANCE.registries().cell().getHandler( is ); if( cellHandler != null ) { double power = 1.0; - for( IStorageChannel channel : AEApi.instance().storage().storageChannels() ) + for( IStorageChannel channel : Api.INSTANCE.storage().storageChannels() ) { final ICellInventoryHandler newCell = cellHandler.getCellInventory( is, this, channel ); if( newCell != null ) @@ -241,7 +241,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal this.accessor = new Accessor(); if( this.cellHandler != null && this.cellHandler - .getChannel() == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) + .getChannel() == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) { this.fluidHandler = new FluidHandler(); } @@ -277,7 +277,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal this.updateHandler(); final ItemStack cell = this.getCell(); - final ICellHandler ch = AEApi.instance().registries().cell().getHandler( cell ); + final ICellHandler ch = Api.INSTANCE.registries().cell().getHandler( cell ); if( this.cellHandler != null && ch != null ) { @@ -534,7 +534,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal { this.updateHandler(); - if( this.cellHandler != null && this.cellHandler.getChannel() == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( this.cellHandler != null && this.cellHandler.getChannel() == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { final IAEItemStack returns = Platform.poweredInsert( this, this.cellHandler, AEItemStack.fromItemStack( this.inputInventory.getStackInSlot( 0 ) ), this.mySrc ); @@ -621,11 +621,11 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal this.updateHandler(); if( this.cellHandler != null ) { - final ICellHandler ch = AEApi.instance().registries().cell().getHandler( this.getCell() ); + final ICellHandler ch = Api.INSTANCE.registries().cell().getHandler( this.getCell() ); if( ch != null ) { - final ICellGuiHandler chg = AEApi.instance().registries().cell().getGuiHandler( this.cellHandler.getChannel(), this.getCell() ); + final ICellGuiHandler chg = Api.INSTANCE.registries().cell().getGuiHandler( this.cellHandler.getChannel(), this.getCell() ); if( chg != null ) { chg.openChestGui( p, this, ch, this.cellHandler, this.getCell(), this.cellHandler.getChannel() ); @@ -844,7 +844,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal { TileChest.this.updateHandler(); if( TileChest.this.cellHandler != null && TileChest.this.cellHandler - .getChannel() == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) + .getChannel() == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) { final IAEFluidStack results = Platform.poweredInsert( TileChest.this, TileChest.this.cellHandler, AEFluidStack.fromFluidStack( resource ), TileChest.this.mySrc, doFill ? Actionable.MODULATE : Actionable.SIMULATE ); @@ -876,7 +876,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal TileChest.this.updateHandler(); if( TileChest.this.cellHandler != null && TileChest.this.cellHandler - .getChannel() == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) + .getChannel() == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) { return this.TANK_PROPS; } @@ -899,7 +899,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal { TileChest.this.updateHandler(); return TileChest.this.cellHandler != null && TileChest.this.cellHandler - .getChannel() == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + .getChannel() == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } return false; } @@ -917,7 +917,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal @Override public boolean allowInsert( IItemHandler inv, int slot, ItemStack stack ) { - return AEApi.instance().registries().cell().getHandler( stack ) != null; + return Api.INSTANCE.registries().cell().getHandler( stack ) != null; } } @@ -925,7 +925,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal @Override public ItemStack getItemStackRepresentation() { - return AEApi.instance().definitions().blocks().chest().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().blocks().chest().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override @@ -934,11 +934,11 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, ITerminal this.updateHandler(); if( this.cellHandler != null ) { - if( this.cellHandler.getChannel() == AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) ) + if( this.cellHandler.getChannel() == Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ) ) { return GuiBridge.GUI_ME; } - if( this.cellHandler.getChannel() == AEApi.instance().storage().getStorageChannel( IFluidStorageChannel.class ) ) + if( this.cellHandler.getChannel() == Api.INSTANCE.storage().getStorageChannel( IFluidStorageChannel.class ) ) { return GuiBridge.GUI_FLUID_TERMINAL; } diff --git a/src/main/java/appeng/tile/storage/TileDrive.java b/src/main/java/appeng/tile/storage/TileDrive.java index 051c22611..0e355a8ba 100644 --- a/src/main/java/appeng/tile/storage/TileDrive.java +++ b/src/main/java/appeng/tile/storage/TileDrive.java @@ -279,7 +279,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior { if( !this.isCached ) { - final Collection>> storageChannels = AEApi.instance().storage().storageChannels(); + final Collection>> storageChannels = Api.INSTANCE.storage().storageChannels(); storageChannels.forEach( channel -> this.inventoryHandlers.put( channel, new ArrayList<>( 10 ) ) ); double power = 2.0; @@ -292,7 +292,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior if( !is.isEmpty() ) { - this.handlersBySlot[x] = AEApi.instance().registries().cell().getHandler( is ); + this.handlersBySlot[x] = Api.INSTANCE.registries().cell().getHandler( is ); if( this.handlersBySlot[x] != null ) { @@ -394,7 +394,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior @Override public boolean allowInsert( IItemHandler inv, int slot, ItemStack stack ) { - return !stack.isEmpty() && AEApi.instance().registries().cell().isCellHandled( stack ); + return !stack.isEmpty() && Api.INSTANCE.registries().cell().isCellHandled( stack ); } } @@ -402,7 +402,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior @Override public ItemStack getItemStackRepresentation() { - return AEApi.instance().definitions().blocks().drive().maybeStack( 1 ).orElse( ItemStack.EMPTY ); + return Api.INSTANCE.definitions().blocks().drive().maybeStack( 1 ).orElse( ItemStack.EMPTY ); } @Override diff --git a/src/main/java/appeng/tile/storage/TileIOPort.java b/src/main/java/appeng/tile/storage/TileIOPort.java index d51ac2813..cecde4574 100644 --- a/src/main/java/appeng/tile/storage/TileIOPort.java +++ b/src/main/java/appeng/tile/storage/TileIOPort.java @@ -105,7 +105,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC this.mySrc = new MachineSource( this ); this.lastRedstoneState = YesNo.UNDECIDED; - final Block ioPortBlock = AEApi.instance().definitions().blocks().iOPort().maybeBlock().get(); + final Block ioPortBlock = Api.INSTANCE.definitions().blocks().iOPort().maybeBlock().get(); this.upgrades = new BlockUpgradeInventory( ioPortBlock, this, NUMBER_OF_UPGRADE_SLOTS ); } @@ -303,7 +303,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC { boolean shouldMove = true; - for( IStorageChannel> c : AEApi.instance().storage().storageChannels() ) + for( IStorageChannel> c : Api.INSTANCE.storage().storageChannels() ) { if( itemsToMove > 0 ) { @@ -370,9 +370,9 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC this.currentCell = is; this.cachedInventories = new IdentityHashMap<>(); - for( IStorageChannel> c : AEApi.instance().storage().storageChannels() ) + for( IStorageChannel> c : Api.INSTANCE.storage().storageChannels() ) { - this.cachedInventories.put( c, AEApi.instance().registries().cell().getCellInventory( is, null, c ) ); + this.cachedInventories.put( c, Api.INSTANCE.registries().cell().getCellInventory( is, null, c ) ); } } diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index 5e0a78d64..dffa3ba43 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -19,7 +19,11 @@ package appeng.util; +import appeng.api.definitions.IItemDefinition; import appeng.api.implementations.items.IAEWrench; +import appeng.api.util.DimensionalCoord; +import appeng.core.Api; +import appeng.core.features.AEFeature; import appeng.util.helpers.ItemComparisonHelper; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -27,8 +31,10 @@ import net.minecraft.block.Blocks; import net.minecraft.entity.item.ItemEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IWorld; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.fml.common.thread.SidedThreadGroups; @@ -322,11 +328,14 @@ public class Platform { return CLIENT_INSTALL; } -// -// public static boolean hasPermissions( final DimensionalCoord dc, final PlayerEntity player ) -// { -// return dc.getWorld().canMineBlockBody( player, dc.getPos() ); -// } + + public static boolean hasPermissions(final DimensionalCoord dc, final PlayerEntity player ) + { + if (!dc.isInWorld(player.world)) { + return false; + } + return player.world.canMineBlockBody( player, dc.getPos() ); + } // // /* // * Checks to see if a block is air? @@ -1134,13 +1143,13 @@ public class Platform // @SuppressWarnings( { "rawtypes", "unchecked" } ) // public static void postChanges( final IStorageGrid gs, final ItemStack removed, final ItemStack added, final IActionSource src ) // { -// for( final IStorageChannel chan : AEApi.instance().storage().storageChannels() ) +// for( final IStorageChannel chan : Api.INSTANCE.storage().storageChannels() ) // { // final IItemList myChanges = chan.createList(); // // if( !removed.isEmpty() ) // { -// final IMEInventory myInv = AEApi.instance().registries().cell().getCellInventory( removed, null, chan ); +// final IMEInventory myInv = Api.INSTANCE.registries().cell().getCellInventory( removed, null, chan ); // if( myInv != null ) // { // myInv.getAvailableItems( myChanges ); @@ -1152,7 +1161,7 @@ public class Platform // } // if( !added.isEmpty() ) // { -// final IMEInventory myInv = AEApi.instance().registries().cell().getCellInventory( added, null, chan ); +// final IMEInventory myInv = Api.INSTANCE.registries().cell().getCellInventory( added, null, chan ); // if( myInv != null ) // { // myInv.getAvailableItems( myChanges ); @@ -1435,31 +1444,31 @@ public class Platform } } -// public static boolean canRepair( final AEFeature type, final ItemStack a, final ItemStack b ) -// { -// if( b.isEmpty() || a.isEmpty() ) -// { -// return false; -// } -// -// if( type == AEFeature.CERTUS_QUARTZ_TOOLS ) -// { -// final IItemDefinition certusQuartzCrystal = AEApi.instance().definitions().materials().certusQuartzCrystal(); -// -// return certusQuartzCrystal.isSameAs( b ); -// } -// -// if( type == AEFeature.NETHER_QUARTZ_TOOLS ) -// { -// return Items.QUARTZ == b.getItem(); -// } -// -// return false; -// } -// + public static boolean canRepair(final AEFeature type, final ItemStack a, final ItemStack b ) + { + if( b.isEmpty() || a.isEmpty() ) + { + return false; + } + + if( type == AEFeature.CERTUS_QUARTZ_TOOLS ) + { + final IItemDefinition certusQuartzCrystal = Api.INSTANCE.definitions().materials().certusQuartzCrystal(); + + return certusQuartzCrystal.isSameAs( b ); + } + + if( type == AEFeature.NETHER_QUARTZ_TOOLS ) + { + return Items.QUARTZ == b.getItem(); + } + + return false; + } + // public static List findPreferred( final ItemStack[] is ) // { -// final IParts parts = AEApi.instance().definitions().parts(); +// final IParts parts = Api.INSTANCE.definitions().parts(); // // for( final ItemStack stack : is ) // { @@ -1515,7 +1524,7 @@ public class Platform // // // public static void addStat( final int playerID, final Achievement achievement ) // // { -// // final EntityPlayer p = AEApi.instance().registries().players().findPlayer( playerID ); +// // final EntityPlayer p = Api.INSTANCE.registries().players().findPlayer( playerID ); // // if( p != null ) // // { // // p.addStat( achievement, 1 ); @@ -1524,7 +1533,7 @@ public class Platform // // public static boolean isRecipePrioritized( final ItemStack what ) // { -// final IMaterials materials = AEApi.instance().definitions().materials(); +// final IMaterials materials = Api.INSTANCE.definitions().materials(); // // boolean isPurified = materials.purifiedCertusQuartzCrystal().isSameAs( what ); // isPurified |= materials.purifiedFluixCrystal().isSameAs( what ); diff --git a/src/main/java/appeng/util/inv/IMEAdaptor.java b/src/main/java/appeng/util/inv/IMEAdaptor.java index e47875572..5c91b61c8 100644 --- a/src/main/java/appeng/util/inv/IMEAdaptor.java +++ b/src/main/java/appeng/util/inv/IMEAdaptor.java @@ -64,7 +64,7 @@ public class IMEAdaptor extends InventoryAdaptor private IItemList getList() { - return this.target.getAvailableItems( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList() ); + return this.target.getAvailableItems( Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList() ); } @Override diff --git a/src/main/java/appeng/util/item/AEItemStack.java b/src/main/java/appeng/util/item/AEItemStack.java index e677ed710..fa7fd5c93 100644 --- a/src/main/java/appeng/util/item/AEItemStack.java +++ b/src/main/java/appeng/util/item/AEItemStack.java @@ -189,7 +189,7 @@ public final class AEItemStack extends AEStack implements IAEItemS @Override public IStorageChannel getChannel() { - return AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ); + return Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ); } @Override diff --git a/src/main/java/appeng/util/item/ItemModList.java b/src/main/java/appeng/util/item/ItemModList.java index 60268f679..de573e3d7 100644 --- a/src/main/java/appeng/util/item/ItemModList.java +++ b/src/main/java/appeng/util/item/ItemModList.java @@ -32,7 +32,7 @@ public class ItemModList implements IItemContainer { private final IItemContainer backingStore; - private final IItemContainer overrides = AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ).createList(); + private final IItemContainer overrides = Api.INSTANCE.storage().getStorageChannel( IItemStorageChannel.class ).createList(); public ItemModList( final IItemContainer backend ) { diff --git a/src/main/java/appeng/worldgen/MeteoritePlacer.java b/src/main/java/appeng/worldgen/MeteoritePlacer.java index de3eb8772..50b1dcc46 100644 --- a/src/main/java/appeng/worldgen/MeteoritePlacer.java +++ b/src/main/java/appeng/worldgen/MeteoritePlacer.java @@ -71,7 +71,7 @@ public final class MeteoritePlacer public MeteoritePlacer() { - final IBlocks blocks = AEApi.instance().definitions().blocks(); + final IBlocks blocks = Api.INSTANCE.definitions().blocks(); this.skyChestDefinition = blocks.skyStoneChest(); this.skyStoneDefinition = blocks.skyStoneBlock(); @@ -246,7 +246,7 @@ public final class MeteoritePlacer } ItemStack toAdd = ItemStack.EMPTY; - final IMaterials materials = AEApi.instance().definitions().materials(); + final IMaterials materials = Api.INSTANCE.definitions().materials(); switch( r % 4 ) { diff --git a/src/main/java/appeng/worldgen/QuartzWorldGen.java b/src/main/java/appeng/worldgen/QuartzWorldGen.java index 87ce83e4e..268a172de 100644 --- a/src/main/java/appeng/worldgen/QuartzWorldGen.java +++ b/src/main/java/appeng/worldgen/QuartzWorldGen.java @@ -43,7 +43,7 @@ public final class QuartzWorldGen implements IWorldGenerator public QuartzWorldGen() { - final IBlocks blocks = AEApi.instance().definitions().blocks(); + final IBlocks blocks = Api.INSTANCE.definitions().blocks(); final IBlockDefinition oreDefinition = blocks.quartzOre(); final IBlockDefinition chargedDefinition = blocks.quartzOreCharged(); diff --git a/src/main/resources/assets/appliedenergistics2/advancements/main/root.json b/src/main/resources/assets/appliedenergistics2/advancements/main/root.json index 72e2317b6..3e8da1e27 100644 --- a/src/main/resources/assets/appliedenergistics2/advancements/main/root.json +++ b/src/main/resources/assets/appliedenergistics2/advancements/main/root.json @@ -10,7 +10,7 @@ "description": { "translate": "achievement.ae2.Root.desc" }, - "background": "appliedenergistics2:textures/blocks/sky_stone_brick.png", + "background": "appliedenergistics2:textures/block/sky_stone_brick.png", "show_toast": false, "announce_to_chat": false }, diff --git a/src/main/resources/assets/appliedenergistics2/blockstates/charged_quartz_ore.json b/src/main/resources/assets/appliedenergistics2/blockstates/charged_quartz_ore.json index a7e81fdb4..02550c327 100644 --- a/src/main/resources/assets/appliedenergistics2/blockstates/charged_quartz_ore.json +++ b/src/main/resources/assets/appliedenergistics2/blockstates/charged_quartz_ore.json @@ -1,20 +1,7 @@ { - "forge_marker": 1, - "defaults": { - "textures": { - "all": "appliedenergistics2:blocks/charged_quartz_ore" - } - }, "variants": { - "": [ - { - "model": "appliedenergistics2:block/charged_quartz_ore" - } - ], - "inventory": [ - { - "model": "cube_all" - } - ] + "": { + "model": "appliedenergistics2:block/charged_quartz_ore" + } } } diff --git a/src/main/resources/assets/appliedenergistics2/blockstates/quartz_ore.json b/src/main/resources/assets/appliedenergistics2/blockstates/quartz_ore.json index ba41e31d1..bd6616b07 100644 --- a/src/main/resources/assets/appliedenergistics2/blockstates/quartz_ore.json +++ b/src/main/resources/assets/appliedenergistics2/blockstates/quartz_ore.json @@ -1,7 +1,7 @@ { "variants": { "": { - "model": "appliedenergistics2:block/block/quartz_ore" + "model": "appliedenergistics2:block/quartz_ore" } } } diff --git a/src/main/resources/assets/appliedenergistics2/models/block/builtin/quartz_glass.json b/src/main/resources/assets/appliedenergistics2/models/block/builtin/quartz_glass.json new file mode 100644 index 000000000..4810cdf0d --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/builtin/quartz_glass.json @@ -0,0 +1,3 @@ +{ + "loader": "appliedenergistics2:glass" +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json b/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json index 8a9adfff9..4b1af89b5 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json @@ -2,7 +2,7 @@ "ae2_uvl_marker": true, "parent": "block/block", "textures": { - "block": "blocks/stone", + "block": "block/stone", "quartz": "appliedenergistics2:block/charged_quartz_ore_light", "particle": "appliedenergistics2:block/charged_quartz_ore" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/block/tiny_tnt.json b/src/main/resources/assets/appliedenergistics2/models/block/tiny_tnt.json index 984da70a6..69035134f 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/tiny_tnt.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/tiny_tnt.json @@ -71,9 +71,9 @@ } ], "textures": { - "particle": "blocks/tnt_side", - "side": "blocks/tnt_side", - "top": "blocks/tnt_top", - "bottom": "blocks/tnt_bottom" + "particle": "block/tnt_side", + "side": "block/tnt_side", + "top": "block/tnt_top", + "bottom": "block/tnt_bottom" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fe.json b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fe.json index 84c51d22e..cc011800f 100644 --- a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fe.json +++ b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fe.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:item/part/p2p_tunnel", "textures": { - "type": "minecraft:blocks/gold_block" + "type": "block/gold_block" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fluids.json b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fluids.json index 6aa05aa89..9f7b8ba14 100644 --- a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fluids.json +++ b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_fluids.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:item/part/p2p_tunnel", "textures": { - "type": "blocks/lapis_block" + "type": "block/lapis_block" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_ic2.json b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_ic2.json index 47593c61b..5a563e2d2 100644 --- a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_ic2.json +++ b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_ic2.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:item/part/p2p_tunnel", "textures": { - "type": "minecraft:blocks/diamond_block" + "type": "block/diamond_block" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_items.json b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_items.json index d1758d83a..324821f92 100644 --- a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_items.json +++ b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_items.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:item/part/p2p_tunnel", "textures": { - "type": "blocks/hopper_outside" + "type": "block/hopper_outside" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_light.json b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_light.json index 4712a989f..ab77aace5 100644 --- a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_light.json +++ b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_light.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:item/part/p2p_tunnel", "textures": { - "type": "blocks/quartz_block_top" + "type": "block/quartz_block_top" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_redstone.json b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_redstone.json index b85951c24..c3162cede 100644 --- a/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_redstone.json +++ b/src/main/resources/assets/appliedenergistics2/models/item/part/p2p_tunnel_redstone.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:item/part/p2p_tunnel", "textures": { - "type": "blocks/redstone_block" + "type": "block/redstone_block" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fe.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fe.json index cec89f329..bfcfe8af7 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fe.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fe.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:part/p2p/p2p_tunnel_base", "textures": { - "type": "minecraft:blocks/gold_block" + "type": "block/gold_block" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fluids.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fluids.json index faebf8be7..f13d0e563 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fluids.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_fluids.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:part/p2p/p2p_tunnel_base", "textures": { - "type": "blocks/lapis_block" + "type": "block/lapis_block" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_ic2.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_ic2.json index 743ce3e05..56df8c132 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_ic2.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_ic2.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:part/p2p/p2p_tunnel_base", "textures": { - "type": "minecraft:blocks/diamond_block" + "type": "minecraft:block/diamond_block" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_items.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_items.json index a10653813..9018c143e 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_items.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_items.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:part/p2p/p2p_tunnel_base", "textures": { - "type": "blocks/hopper_outside" + "type": "block/hopper_outside" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_light.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_light.json index 7a0577153..8c94fc815 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_light.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_light.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:part/p2p/p2p_tunnel_base", "textures": { - "type": "blocks/quartz_block_top" + "type": "block/quartz_block_top" } } diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_redstone.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_redstone.json index c63cf2f71..58d03613d 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_redstone.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_redstone.json @@ -1,6 +1,6 @@ { "parent": "appliedenergistics2:part/p2p/p2p_tunnel_base", "textures": { - "type": "blocks/redstone_block" + "type": "block/redstone_block" } }