From 51e82587c748dfffd0e49436ca7f7194da3daf41 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Thu, 4 Jun 2020 23:25:11 +0200 Subject: [PATCH] Added older registries back in --- build.gradle | 3 +- .../java/appeng/bootstrap/FeatureFactory.java | 4 +- .../java/appeng/bootstrap/IItemBuilder.java | 5 +- .../bootstrap/ItemDefinitionBuilder.java | 63 +-- .../crafting/ItemEncodedPatternRendering.java | 5 +- src/main/java/appeng/core/AEConfig.java | 30 +- src/main/java/appeng/core/Api.java | 120 +++--- src/main/java/appeng/core/ApiDefinitions.java | 14 +- .../java/appeng/core/api/ApiClientHelper.java | 20 +- .../appeng/core/api/definitions/ApiItems.java | 369 +++++++++++------- .../core/api/definitions/ApiMaterials.java | 38 +- .../appeng/core/api/definitions/ApiParts.java | 12 +- .../java/appeng/entity/AEBaseEntityItem.java | 4 +- .../appeng/entity/EntityChargedQuartz.java | 7 +- .../appeng/entity/EntityGrowingCrystal.java | 7 +- src/main/java/appeng/entity/EntityIds.java | 57 --- .../java/appeng/entity/EntitySingularity.java | 6 +- .../appeng/items/misc/ItemEncodedPattern.java | 5 +- .../appeng/items/parts/ItemPartRendering.java | 17 +- .../storage/ItemCreativeStorageCell.java | 1 - .../appeng/items/storage/ItemViewCell.java | 7 +- .../appeng/items/tools/ToolBiometricCard.java | 5 +- .../appeng/items/tools/ToolMemoryCard.java | 5 +- .../appeng/items/tools/ToolNetworkTool.java | 5 +- .../items/tools/powered/ToolChargedStaff.java | 5 +- .../tools/powered/ToolColorApplicator.java | 5 +- .../tools/powered/ToolEntropyManipulator.java | 5 +- .../items/tools/powered/ToolMatterCannon.java | 5 +- .../items/tools/powered/ToolPortableCell.java | 5 +- .../tools/powered/ToolWirelessTerminal.java | 5 +- .../powered/powersink/AEBasePoweredItem.java | 13 +- .../items/tools/quartz/ToolQuartzAxe.java | 4 +- .../tools/quartz/ToolQuartzCuttingKnife.java | 8 +- .../items/tools/quartz/ToolQuartzHoe.java | 4 +- .../items/tools/quartz/ToolQuartzPickaxe.java | 4 +- .../items/tools/quartz/ToolQuartzSpade.java | 4 +- .../items/tools/quartz/ToolQuartzSword.java | 4 +- .../items/tools/quartz/ToolQuartzWrench.java | 7 +- 38 files changed, 453 insertions(+), 434 deletions(-) delete mode 100644 src/main/java/appeng/entity/EntityIds.java diff --git a/build.gradle b/build.gradle index 305c1ba2f..b1e49b705 100644 --- a/build.gradle +++ b/build.gradle @@ -79,7 +79,7 @@ sourceSets { include 'appeng/util/inv/InvOperation.java' 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/**' include 'appeng/core/api/definitions/ApiItems.java' include 'appeng/items/tools/quartz/**' include 'appeng/items/AEBaseItem.java' @@ -100,6 +100,7 @@ sourceSets { include 'appeng/debug/**' include 'appeng/core/localization/**' include 'appeng/core/stats/**' + include 'appeng/client/render/crafting/ItemEncodedPatternRendering.java' exclude 'appeng/parts/p2p/PartP2PFluids.java' exclude 'appeng/parts/p2p/PartP2PItems.java' include 'appeng/tile/AEBaseTile.java' diff --git a/src/main/java/appeng/bootstrap/FeatureFactory.java b/src/main/java/appeng/bootstrap/FeatureFactory.java index a3cf5d804..5c07ac2bb 100644 --- a/src/main/java/appeng/bootstrap/FeatureFactory.java +++ b/src/main/java/appeng/bootstrap/FeatureFactory.java @@ -95,9 +95,9 @@ public class FeatureFactory return new BlockDefinitionBuilder( this, id, block ).features( this.defaultFeatures ); } - public IItemBuilder item( String id, Supplier item ) + public IItemBuilder item( String id, Function itemFactory ) { - return new ItemDefinitionBuilder( this, id, item ).features( this.defaultFeatures ); + return new ItemDefinitionBuilder( this, id, itemFactory ).features( this.defaultFeatures ); } public TileEntityBuilder tileEntity(String id, Class teClass, Function, T> factory) diff --git a/src/main/java/appeng/bootstrap/IItemBuilder.java b/src/main/java/appeng/bootstrap/IItemBuilder.java index 01d3aaf45..8b53e3d64 100644 --- a/src/main/java/appeng/bootstrap/IItemBuilder.java +++ b/src/main/java/appeng/bootstrap/IItemBuilder.java @@ -19,6 +19,7 @@ package appeng.bootstrap; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -44,7 +45,9 @@ public interface IItemBuilder IItemBuilder itemGroup( ItemGroup tab ); -//FIXME IItemBuilder rendering( ItemRenderingCustomizer callback ); + IItemBuilder props(Consumer customizer); + + IItemBuilder rendering( ItemRenderingCustomizer callback ); /** * Registers a custom dispenser behavior for this item. diff --git a/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java b/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java index 23463b5d8..09c786929 100644 --- a/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java +++ b/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; import java.util.List; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -38,6 +39,8 @@ import appeng.core.CreativeTab; import appeng.api.features.AEFeature; import appeng.core.features.ItemDefinition; import appeng.util.Platform; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; class ItemDefinitionBuilder implements IItemBuilder @@ -47,28 +50,29 @@ class ItemDefinitionBuilder implements IItemBuilder private final String registryName; - private final Supplier itemSupplier; + private final Function itemFactory; private final EnumSet features = EnumSet.noneOf( AEFeature.class ); private final List> boostrapComponents = new ArrayList<>(); + private final Item.Properties props = new Item.Properties(); + private Supplier dispenserBehaviorSupplier; -// FIXME -// @OnlyIn( Dist.CLIENT ) -// private ItemRendering itemRendering; -// + @OnlyIn( Dist.CLIENT ) + private ItemRendering itemRendering; + private ItemGroup itemGroup = CreativeTab.instance; - ItemDefinitionBuilder( FeatureFactory factory, String registryName, Supplier itemSupplier ) + ItemDefinitionBuilder( FeatureFactory factory, String registryName, Function itemFactory ) { this.factory = factory; this.registryName = registryName; - this.itemSupplier = itemSupplier; + this.itemFactory = itemFactory; if( Platform.hasClientClasses() ) { - // FIXME this.itemRendering = new ItemRendering(); + this.itemRendering = new ItemRendering(); } } @@ -101,16 +105,23 @@ class ItemDefinitionBuilder implements IItemBuilder return this; } -// FIXME @Override -// FIXME public IItemBuilder rendering( ItemRenderingCustomizer callback ) -// FIXME { -// FIXME if( Platform.hasClientClasses() ) -// FIXME { -// FIXME this.customizeForClient( callback ); -// FIXME } -// FIXME -// FIXME return this; -// FIXME } + @Override + public IItemBuilder props( Consumer consumer ) + { + consumer.accept(props); + return this; + } + + @Override + public IItemBuilder rendering( ItemRenderingCustomizer callback ) + { + if( Platform.hasClientClasses() ) + { + this.customizeForClient( callback ); + } + + return this; + } @Override public IItemBuilder dispenserBehavior( Supplier behavior ) @@ -119,16 +130,18 @@ class ItemDefinitionBuilder implements IItemBuilder return this; } -// FIXME @OnlyIn( Dist.CLIENT ) -// FIXME private void customizeForClient( ItemRenderingCustomizer callback ) -// FIXME { -// FIXME callback.customize( this.itemRendering ); -// FIXME } + @OnlyIn( Dist.CLIENT ) + private void customizeForClient( ItemRenderingCustomizer callback ) + { + callback.customize( this.itemRendering ); + } @Override public ItemDefinition build() { - Item item = this.itemSupplier.get(); + props.group(itemGroup); + + Item item = this.itemFactory.apply(props); item.setRegistryName( AppEng.MOD_ID, this.registryName ); ItemDefinition definition = new ItemDefinition( this.registryName, item, features ); @@ -150,7 +163,7 @@ class ItemDefinitionBuilder implements IItemBuilder if( Platform.hasClientClasses() ) { -// FIXME this.itemRendering.apply( this.factory, item ); + this.itemRendering.apply( this.factory, item ); } return definition; diff --git a/src/main/java/appeng/client/render/crafting/ItemEncodedPatternRendering.java b/src/main/java/appeng/client/render/crafting/ItemEncodedPatternRendering.java index 812c09f07..bbedf2c52 100644 --- a/src/main/java/appeng/client/render/crafting/ItemEncodedPatternRendering.java +++ b/src/main/java/appeng/client/render/crafting/ItemEncodedPatternRendering.java @@ -2,7 +2,6 @@ package appeng.client.render.crafting; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -21,8 +20,8 @@ public class ItemEncodedPatternRendering extends ItemRenderingCustomizer @OnlyIn( Dist.CLIENT ) public void customize( IItemRendering rendering ) { - rendering.builtInModel( "models/item/builtin/encoded_pattern", new ItemEncodedPatternModel() ); - rendering.model( new ModelResourceLocation( MODEL, "inventory" ) ).variants( MODEL ); + // FIXME rendering.builtInModel( "models/item/builtin/encoded_pattern", new ItemEncodedPatternModel() ); + // FIXME rendering.model( new ModelResourceLocation( MODEL, "inventory" ) ).variants( MODEL ); } } diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index ac32132c1..73971c5ca 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -35,6 +35,7 @@ import net.minecraftforge.fml.config.ModConfig; import org.apache.commons.lang3.tuple.Pair; import java.util.*; +import java.util.function.DoubleSupplier; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -68,7 +69,7 @@ public final class AEConfig implements IConfigurableObject, IConfigManagerHost public static final String PACKET_CHANNEL = "AE"; // Config instance - private static AEConfig instance; + private static final AEConfig instance = new AEConfig(); private final IConfigManager settings = new ConfigManager( this ); @@ -138,9 +139,6 @@ public final class AEConfig implements IConfigurableObject, IConfigManagerHost @SubscribeEvent public static void onModConfigEvent(final ModConfig.ModConfigEvent configEvent) { if (configEvent.getConfig().getSpec() == CLIENT_SPEC) { - if (instance == null) { - instance = new AEConfig(); - } instance.syncConfig(CLIENT); } } @@ -529,34 +527,34 @@ public final class AEConfig implements IConfigurableObject, IConfigManagerHost return this.oreDoublePercentage; } - public int getWirelessTerminalBattery() + public DoubleSupplier getWirelessTerminalBattery() { - return this.wirelessTerminalBattery; + return () -> this.wirelessTerminalBattery; } - public int getEntropyManipulatorBattery() + public DoubleSupplier getEntropyManipulatorBattery() { - return this.entropyManipulatorBattery; + return () -> this.entropyManipulatorBattery; } - public int getMatterCannonBattery() + public DoubleSupplier getMatterCannonBattery() { - return this.matterCannonBattery; + return () -> this.matterCannonBattery; } - public int getPortableCellBattery() + public DoubleSupplier getPortableCellBattery() { - return this.portableCellBattery; + return () -> this.portableCellBattery; } - public int getColorApplicatorBattery() + public DoubleSupplier getColorApplicatorBattery() { - return this.colorApplicatorBattery; + return () -> this.colorApplicatorBattery; } - public int getChargedStaffBattery() + public DoubleSupplier getChargedStaffBattery() { - return this.chargedStaffBattery; + return () -> this.chargedStaffBattery; } public float getSpawnChargedChance() diff --git a/src/main/java/appeng/core/Api.java b/src/main/java/appeng/core/Api.java index 6217a6b40..d251c6811 100644 --- a/src/main/java/appeng/core/Api.java +++ b/src/main/java/appeng/core/Api.java @@ -22,64 +22,67 @@ package appeng.core; import appeng.api.IAppEngApi; import appeng.api.features.IRegistryContainer; import appeng.api.networking.IGridHelper; -import appeng.api.parts.IPartHelper; import appeng.api.storage.IStorageHelper; import appeng.api.util.IClientHelper; +import appeng.core.api.ApiClientHelper; +import appeng.core.api.ApiGrid; +import appeng.core.api.ApiPart; +import appeng.core.api.ApiStorage; import appeng.core.features.registries.PartModels; +import appeng.core.features.registries.RegistryContainer; public final class Api implements IAppEngApi { public static final Api INSTANCE = new Api(); -// FIXME private final ApiPart partHelper; + private final ApiPart partHelper; // private MovableTileRegistry MovableRegistry = new MovableTileRegistry(); -// FIXME private final IRegistryContainer registryContainer; -// FIXME private final IStorageHelper storageHelper; -// FIXME private final IGridHelper networkHelper; + private final IRegistryContainer registryContainer; + private final IStorageHelper storageHelper; + private final IGridHelper networkHelper; private final ApiDefinitions definitions; -// FIXME private final IClientHelper client; + private final IClientHelper client; private Api() { -// FIXME this.storageHelper = new ApiStorage(); -// FIXME this.networkHelper = new ApiGrid(); -// FIXME this.registryContainer = new RegistryContainer(); -// FIXME this.partHelper = new ApiPart(); - PartModels partModels = new PartModels(); - this.definitions = new ApiDefinitions( partModels /* FIXME (PartModels) this.registryContainer.partModels() */ ); -// FIXME this.client = new ApiClientHelper(); + this.storageHelper = new ApiStorage(); + this.networkHelper = new ApiGrid(); + this.registryContainer = new RegistryContainer(); + this.partHelper = new ApiPart(); + this.definitions = new ApiDefinitions( (PartModels) this.registryContainer.partModels() ); + this.client = new ApiClientHelper(); } -// FIXME public PartModels getPartModels() -// FIXME { -// FIXME return (PartModels) this.registryContainer.partModels(); -// FIXME } -// FIXME -// FIXME @Override -// FIXME public IRegistryContainer registries() -// FIXME { -// FIXME return this.registryContainer; -// FIXME } -// FIXME -// FIXME @Override -// FIXME public IStorageHelper storage() -// FIXME { -// FIXME return this.storageHelper; -// FIXME } -// FIXME -// FIXME @Override -// FIXME public IGridHelper grid() -// FIXME { -// FIXME return this.networkHelper; -// FIXME } -// FIXME -// FIXME @Override -// FIXME public ApiPart partHelper() -// FIXME { -// FIXME return this.partHelper; -// FIXME } + public PartModels getPartModels() + { + return (PartModels) this.registryContainer.partModels(); + } + + @Override + public IRegistryContainer registries() + { + return this.registryContainer; + } + + @Override + public IStorageHelper storage() + { + return this.storageHelper; + } + + @Override + public IGridHelper grid() + { + return this.networkHelper; + } + + @Override + public ApiPart partHelper() + { + return this.partHelper; + } @Override public ApiDefinitions definitions() @@ -87,35 +90,10 @@ public final class Api implements IAppEngApi return this.definitions; } -// FIXME @Override -// FIXME public IClientHelper client() -// FIXME { -// FIXME return this.client; -// FIXME } + @Override + public IClientHelper client() + { + return this.client; + } - // FIXME - @Override - public IRegistryContainer registries() { - return null; - } - // FIXME - @Override - public IStorageHelper storage() { - return null; - } - // FIXME - @Override - public IGridHelper grid() { - return null; - } - // FIXME - @Override - public IPartHelper partHelper() { - return null; - } - // FIXME - @Override - public IClientHelper client() { - return null; - } } diff --git a/src/main/java/appeng/core/ApiDefinitions.java b/src/main/java/appeng/core/ApiDefinitions.java index 8fbce252f..82d2c39dd 100644 --- a/src/main/java/appeng/core/ApiDefinitions.java +++ b/src/main/java/appeng/core/ApiDefinitions.java @@ -26,6 +26,8 @@ import appeng.api.definitions.IParts; import appeng.bootstrap.FeatureFactory; import appeng.core.api.definitions.ApiBlocks; import appeng.core.api.definitions.ApiItems; +import appeng.core.api.definitions.ApiMaterials; +import appeng.core.api.definitions.ApiParts; import appeng.core.features.registries.PartModels; @@ -36,8 +38,8 @@ public final class ApiDefinitions implements IDefinitions { private final ApiBlocks blocks; private final ApiItems items; - //private final ApiMaterials materials; - //private final ApiParts parts; + private final ApiMaterials materials; + private final ApiParts parts; private final FeatureFactory registry = new FeatureFactory(); @@ -45,8 +47,8 @@ public final class ApiDefinitions implements IDefinitions { this.blocks = new ApiBlocks( this.registry, partModels ); this.items = new ApiItems( this.registry ); - //this.materials = new ApiMaterials( this.registry ); - //this.parts = new ApiParts( this.registry, partModels ); + this.materials = new ApiMaterials( this.registry ); + this.parts = new ApiParts( this.registry, partModels ); } public FeatureFactory getRegistry() @@ -69,12 +71,12 @@ public final class ApiDefinitions implements IDefinitions @Override public IMaterials materials() { - return null /* FIXME */; + return materials; } @Override public IParts parts() { - return null /* FIXME */; + return parts; } } diff --git a/src/main/java/appeng/core/api/ApiClientHelper.java b/src/main/java/appeng/core/api/ApiClientHelper.java index 03c79f0a9..82312a7af 100644 --- a/src/main/java/appeng/core/api/ApiClientHelper.java +++ b/src/main/java/appeng/core/api/ApiClientHelper.java @@ -11,6 +11,7 @@ import appeng.api.storage.data.IAEStack; import appeng.api.util.IClientHelper; import appeng.core.localization.GuiText; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; public class ApiClientHelper implements IClientHelper @@ -27,10 +28,15 @@ public class ApiClientHelper implements IClientHelper if( cellInventory != null ) { - lines.add( cellInventory.getUsedBytes() + " " + GuiText.Of.getLocal() + ' ' + cellInventory.getTotalBytes() + ' ' + GuiText.BytesUsed.getLocal() ); + lines.add(new StringTextComponent(cellInventory.getUsedBytes() + " ") + .appendSibling(GuiText.Of.textComponent()) + .appendText(" " + cellInventory.getTotalBytes() + " ") + .appendSibling(GuiText.BytesUsed.textComponent())); - lines.add( cellInventory.getStoredItemTypes() + " " + GuiText.Of.getLocal() + ' ' + cellInventory.getTotalItemTypes() + ' ' + GuiText.Types - .getLocal() ); + lines.add(new StringTextComponent(cellInventory.getStoredItemTypes() + " ") + .appendSibling(GuiText.Of.textComponent()) + .appendText(" " + cellInventory.getTotalItemTypes() + " ") + .appendSibling(GuiText.Types.textComponent())); } if( handler.isPreformatted() ) @@ -39,11 +45,15 @@ public class ApiClientHelper implements IClientHelper if( handler.isFuzzy() ) { - lines.add( GuiText.Partitioned.getLocal() + " - " + list + ' ' + GuiText.Fuzzy.getLocal() ); + lines.add( GuiText.Partitioned.textComponent() + .appendText(" - " + list + " ") + .appendSibling(GuiText.Fuzzy.textComponent())); } else { - lines.add( GuiText.Partitioned.getLocal() + " - " + list + ' ' + GuiText.Precise.getLocal() ); + lines.add( GuiText.Partitioned.textComponent() + .appendText(" - " + list + " ") + .appendSibling(GuiText.Precise.textComponent())); } } diff --git a/src/main/java/appeng/core/api/definitions/ApiItems.java b/src/main/java/appeng/core/api/definitions/ApiItems.java index 5ad9524e3..bc6d92636 100644 --- a/src/main/java/appeng/core/api/definitions/ApiItems.java +++ b/src/main/java/appeng/core/api/definitions/ApiItems.java @@ -24,7 +24,37 @@ import appeng.api.definitions.IItems; import appeng.api.util.AEColoredItemDefinition; import appeng.bootstrap.FeatureFactory; import appeng.api.features.AEFeature; +import appeng.bootstrap.components.IEntityRegistrationComponent; +import appeng.client.render.crafting.ItemEncodedPatternRendering; +import appeng.core.CreativeTabFacade; +import appeng.debug.ToolDebugCard; +import appeng.debug.ToolEraser; +import appeng.debug.ToolMeteoritePlacer; +import appeng.debug.ToolReplicatorCard; +import appeng.entity.EntityGrowingCrystal; +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.*; +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.*; +import appeng.items.tools.powered.*; import appeng.items.tools.quartz.*; +import net.minecraft.entity.EntityClassification; +import net.minecraft.entity.EntityType; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraftforge.common.ToolType; + +import java.util.function.Consumer; /** @@ -32,209 +62,250 @@ import appeng.items.tools.quartz.*; */ public final class ApiItems implements IItems { - // 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 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; - private IItemDefinition netherQuartzAxe; - private IItemDefinition netherQuartzHoe; - private IItemDefinition netherQuartzShovel; - private IItemDefinition netherQuartzPick; - private IItemDefinition netherQuartzSword; - private IItemDefinition netherQuartzWrench; - private IItemDefinition netherQuartzKnife; + 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 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 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 cellCreative; - private IItemDefinition viewCell; + private final IItemDefinition cellCreative; + private final IItemDefinition viewCell; - private IItemDefinition cell1k; - private IItemDefinition cell4k; - private IItemDefinition cell16k; - private IItemDefinition cell64k; + private final IItemDefinition cell1k; + private final IItemDefinition cell4k; + private final IItemDefinition cell16k; + private final IItemDefinition cell64k; - private IItemDefinition fluidCell1k; - private IItemDefinition fluidCell4k; - private IItemDefinition fluidCell16k; - private IItemDefinition fluidCell64k; + private final IItemDefinition fluidCell1k; + private final IItemDefinition fluidCell4k; + private final IItemDefinition fluidCell16k; + private final IItemDefinition fluidCell64k; - private IItemDefinition spatialCell2; - private IItemDefinition spatialCell16; - private IItemDefinition spatialCell128; + private final IItemDefinition spatialCell2; + private final IItemDefinition spatialCell16; + private final IItemDefinition spatialCell128; - private IItemDefinition facade; - private IItemDefinition crystalSeed; + private final IItemDefinition facade; + private final IItemDefinition crystalSeed; // rv1 - private IItemDefinition encodedPattern; - private IItemDefinition colorApplicator; + private final IItemDefinition encodedPattern; + private final IItemDefinition colorApplicator; - private IItemDefinition paintBall; - private AEColoredItemDefinition coloredPaintBall; - private AEColoredItemDefinition coloredLumenPaintBall; + private final IItemDefinition paintBall; + private final AEColoredItemDefinition coloredPaintBall; + private final AEColoredItemDefinition coloredLumenPaintBall; // unsupported dev tools - private IItemDefinition toolEraser; - private IItemDefinition toolMeteoritePlacer; - private IItemDefinition toolDebugCard; - private IItemDefinition toolReplicatorCard; + private final IItemDefinition toolEraser; + private final IItemDefinition toolMeteoritePlacer; + private final IItemDefinition toolDebugCard; + private final IItemDefinition toolReplicatorCard; - private IItemDefinition dummyFluidItem; + private final IItemDefinition dummyFluidItem; public ApiItems( FeatureFactory registry ) { FeatureFactory certusTools = registry.features( AEFeature.CERTUS_QUARTZ_TOOLS ); - this.certusQuartzAxe = certusTools.item( "certus_quartz_axe", () -> new ToolQuartzAxe( AEFeature.CERTUS_QUARTZ_TOOLS ) ) + this.certusQuartzAxe = certusTools.item( "certus_quartz_axe", props -> new ToolQuartzAxe( props, AEFeature.CERTUS_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_AXE ) .build(); - this.certusQuartzHoe = certusTools.item( "certus_quartz_hoe", () -> new ToolQuartzHoe( AEFeature.CERTUS_QUARTZ_TOOLS ) ) + this.certusQuartzHoe = certusTools.item( "certus_quartz_hoe", props -> new ToolQuartzHoe( props, AEFeature.CERTUS_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_HOE ) .build(); - this.certusQuartzShovel = certusTools.item( "certus_quartz_spade", () -> new ToolQuartzSpade( AEFeature.CERTUS_QUARTZ_TOOLS ) ) + this.certusQuartzShovel = certusTools.item( "certus_quartz_spade", props -> new ToolQuartzSpade( props, AEFeature.CERTUS_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_SPADE ) .build(); - this.certusQuartzPick = certusTools.item( "certus_quartz_pickaxe", () -> new ToolQuartzPickaxe( AEFeature.CERTUS_QUARTZ_TOOLS ) ) + this.certusQuartzPick = certusTools.item( "certus_quartz_pickaxe", props -> new ToolQuartzPickaxe( props, AEFeature.CERTUS_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_PICKAXE ) .build(); - this.certusQuartzSword = certusTools.item( "certus_quartz_sword", () -> new ToolQuartzSword( AEFeature.CERTUS_QUARTZ_TOOLS ) ) + this.certusQuartzSword = certusTools.item( "certus_quartz_sword", props -> new ToolQuartzSword( props, AEFeature.CERTUS_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.COMBAT) .addFeatures( AEFeature.QUARTZ_SWORD ) .build(); this.certusQuartzWrench = certusTools.item( "certus_quartz_wrench", ToolQuartzWrench::new ) + .itemGroup(ItemGroup.TOOLS) + .props(props -> props.maxStackSize( 1 ) ) .addFeatures( AEFeature.QUARTZ_WRENCH ) // 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 ) ) + this.certusQuartzKnife = certusTools.item( "certus_quartz_cutting_knife", props -> new ToolQuartzCuttingKnife( props, AEFeature.CERTUS_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) + .props(props -> props.maxStackSize(1).maxDamage(50).setNoRepair()) .addFeatures( AEFeature.QUARTZ_KNIFE ) // FIXME .bootstrap( item -> (IOreDictComponent) side -> OreDictionary.registerOre( "itemQuartzKnife", new ItemStack( item ) ) ) .build(); FeatureFactory netherTools = registry.features( AEFeature.NETHER_QUARTZ_TOOLS ); - this.netherQuartzAxe = netherTools.item( "nether_quartz_axe", () -> new ToolQuartzAxe( AEFeature.NETHER_QUARTZ_TOOLS ) ) + this.netherQuartzAxe = netherTools.item( "nether_quartz_axe", props -> new ToolQuartzAxe( props, AEFeature.NETHER_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_AXE ) .build(); - this.netherQuartzHoe = netherTools.item( "nether_quartz_hoe", () -> new ToolQuartzHoe( AEFeature.NETHER_QUARTZ_TOOLS ) ) + this.netherQuartzHoe = netherTools.item( "nether_quartz_hoe", props -> new ToolQuartzHoe( props, AEFeature.NETHER_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_HOE ) .build(); - this.netherQuartzShovel = netherTools.item( "nether_quartz_spade", () -> new ToolQuartzSpade( AEFeature.NETHER_QUARTZ_TOOLS ) ) + this.netherQuartzShovel = netherTools.item( "nether_quartz_spade", props -> new ToolQuartzSpade( props, AEFeature.NETHER_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_SPADE ) .build(); - this.netherQuartzPick = netherTools.item( "nether_quartz_pickaxe", () -> new ToolQuartzPickaxe( AEFeature.NETHER_QUARTZ_TOOLS ) ) + this.netherQuartzPick = netherTools.item( "nether_quartz_pickaxe", props -> new ToolQuartzPickaxe( props, AEFeature.NETHER_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) .addFeatures( AEFeature.QUARTZ_PICKAXE ) .build(); - this.netherQuartzSword = netherTools.item( "nether_quartz_sword", () -> new ToolQuartzSword( AEFeature.NETHER_QUARTZ_TOOLS ) ) + this.netherQuartzSword = netherTools.item( "nether_quartz_sword", props -> new ToolQuartzSword( props, AEFeature.NETHER_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.COMBAT) .addFeatures( AEFeature.QUARTZ_SWORD ) .build(); this.netherQuartzWrench = netherTools.item( "nether_quartz_wrench", ToolQuartzWrench::new ) + .itemGroup(ItemGroup.TOOLS) + .props(props -> props.maxStackSize( 1 ) ) .addFeatures( AEFeature.QUARTZ_WRENCH ) // 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 ) ) + this.netherQuartzKnife = netherTools.item( "nether_quartz_cutting_knife", props -> new ToolQuartzCuttingKnife( props, AEFeature.NETHER_QUARTZ_TOOLS ) ) + .itemGroup(ItemGroup.TOOLS) + .props(props -> props.maxStackSize(1).maxDamage(50).setNoRepair()) .addFeatures( AEFeature.QUARTZ_KNIFE ) // 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(); + Consumer chargedDefaults = props -> props.maxStackSize( 1 ).maxDamage( 32 ).setNoRepair(); + + FeatureFactory powerTools = registry.features( AEFeature.POWERED_TOOLS ); + this.entropyManipulator = powerTools.item( "entropy_manipulator", ToolEntropyManipulator::new ) + .props(chargedDefaults) + .addFeatures( AEFeature.ENTROPY_MANIPULATOR ) + .dispenserBehavior( DispenserBlockTool::new ) + .build(); + this.wirelessTerminal = powerTools.item( "wireless_terminal", ToolWirelessTerminal::new ) + .props(chargedDefaults) + .addFeatures( AEFeature.WIRELESS_ACCESS_TERMINAL ) + .build(); + this.chargedStaff = powerTools.item( "charged_staff", ToolChargedStaff::new ) + .props(chargedDefaults) + .addFeatures( AEFeature.CHARGED_STAFF ) + .build(); + this.massCannon = powerTools.item( "matter_cannon", ToolMatterCannon::new ) + .props(chargedDefaults) + .addFeatures( AEFeature.MATTER_CANNON ) + .dispenserBehavior( DispenserMatterCannon::new ) + .build(); + this.portableCell = powerTools.item( "portable_cell", ToolPortableCell::new ) + .props(chargedDefaults) + .addFeatures( AEFeature.PORTABLE_CELL, AEFeature.STORAGE_CELLS ) + .build(); + this.colorApplicator = powerTools.item( "color_applicator", ToolColorApplicator::new ) + .props(chargedDefaults) + .addFeatures( AEFeature.COLOR_APPLICATOR ) + .dispenserBehavior( DispenserBlockTool::new ) + .rendering( new ToolColorApplicatorRendering() ) + .build(); + + this.biometricCard = registry.item( "biometric_card", ToolBiometricCard::new ) + .props(props -> props.maxStackSize( 1 )) + .rendering( new ToolBiometricCardRendering() ) + .features( AEFeature.SECURITY ) + .build(); + this.memoryCard = registry.item( "memory_card", ToolMemoryCard::new ) + .props(props -> props.maxStackSize( 1 )) + .rendering( new ToolMemoryCardRendering() ) + .features( AEFeature.MEMORY_CARD ) + .build(); + this.networkTool = registry.item( "network_tool", ToolNetworkTool::new ) + .props(props -> props.maxStackSize( 1 ).addToolType( ToolType.get("wrench"), 0 ) ) + .features( AEFeature.NETWORK_TOOL ) + .build(); + + this.cellCreative = registry.item( "creative_storage_cell", ItemCreativeStorageCell::new ) + .props(props -> props.maxStackSize(1)) + .features( AEFeature.STORAGE_CELLS, AEFeature.CREATIVE ) + .build(); + this.viewCell = registry.item( "view_cell", ItemViewCell::new ) + .props(props -> props.maxStackSize(1)) + .features( AEFeature.VIEW_CELL ) + .build(); + + FeatureFactory storageCells = registry.features( AEFeature.STORAGE_CELLS ); + this.cell1k = storageCells.item( "storage_cell_1k", props -> new BasicItemStorageCell(props, MaterialType.CELL1K_PART, 1 ) ).build(); + this.cell4k = storageCells.item( "storage_cell_4k", props -> new BasicItemStorageCell(props, MaterialType.CELL4K_PART, 4 ) ).build(); + this.cell16k = storageCells.item( "storage_cell_16k", props -> new BasicItemStorageCell(props, MaterialType.CELL16K_PART, 16 ) ).build(); + this.cell64k = storageCells.item( "storage_cell_64k", props -> new BasicItemStorageCell(props, MaterialType.CELL64K_PART, 64 ) ).build(); + + this.fluidCell1k = storageCells.item( "fluid_storage_cell_1k", props -> new BasicFluidStorageCell(props, MaterialType.FLUID_CELL1K_PART, 1 ) ).build(); + this.fluidCell4k = storageCells.item( "fluid_storage_cell_4k", props -> new BasicFluidStorageCell(props, MaterialType.FLUID_CELL4K_PART, 4 ) ).build(); + this.fluidCell16k = storageCells.item( "fluid_storage_cell_16k", props -> new BasicFluidStorageCell(props, MaterialType.FLUID_CELL16K_PART, 16 ) ).build(); + this.fluidCell64k = storageCells.item( "fluid_storage_cell_64k", props -> new BasicFluidStorageCell(props, MaterialType.FLUID_CELL64K_PART, 64 ) ).build(); + + FeatureFactory spatialCells = registry.features( AEFeature.SPATIAL_IO ); + this.spatialCell2 = spatialCells.item( "spatial_storage_cell_2_cubed", props -> new ItemSpatialStorageCell(props, 2 ) ).build(); + this.spatialCell16 = spatialCells.item( "spatial_storage_cell_16_cubed", props -> new ItemSpatialStorageCell(props, 16 ) ).build(); + this.spatialCell128 = spatialCells.item( "spatial_storage_cell_128_cubed", props -> new ItemSpatialStorageCell(props, 128 ) ).build(); + + this.facade = registry.item( "facade", ItemFacade::new ) + .features( AEFeature.FACADES ) + .itemGroup( 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( EntityType.Builder.create(EntityGrowingCrystal::new, EntityClassification.MISC) + .setTrackingRange(16) + .setUpdateInterval(4) + .setShouldReceiveVelocityUpdates(true) + .build("appliedenergistics2:growing_crystal") + .setRegistryName("appliedenergistics2:growing_crystal") + ); + } ) + .build(); + + // rv1 + this.encodedPattern = registry.item( "encoded_pattern", ItemEncodedPattern::new ) + .props(props -> props.maxStackSize(1)) + .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/api/definitions/ApiMaterials.java b/src/main/java/appeng/core/api/definitions/ApiMaterials.java index 31cb865e6..ae4d3b251 100644 --- a/src/main/java/appeng/core/api/definitions/ApiMaterials.java +++ b/src/main/java/appeng/core/api/definitions/ApiMaterials.java @@ -22,8 +22,8 @@ package appeng.core.api.definitions; import java.util.Arrays; import java.util.stream.Collectors; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.EntityEntryBuilder; +import net.minecraft.entity.EntityClassification; +import net.minecraft.entity.EntityType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -35,7 +35,6 @@ import appeng.bootstrap.ItemRenderingCustomizer; import appeng.bootstrap.components.IEntityRegistrationComponent; import appeng.core.features.DamagedItemDefinition; import appeng.entity.EntityChargedQuartz; -import appeng.entity.EntityIds; import appeng.entity.EntitySingularity; import appeng.items.materials.ItemMaterial; import appeng.items.materials.MaterialType; @@ -124,15 +123,14 @@ public final class ApiMaterials implements IMaterials public ApiMaterials( FeatureFactory registry ) { - final ItemMaterial materials = new ItemMaterial(); - registry.item( "material", () -> materials ) + IItemDefinition materialDef = registry.item( "material", ItemMaterial::new ) .rendering( new ItemRenderingCustomizer() { @Override @OnlyIn( Dist.CLIENT ) public void customize( IItemRendering rendering ) { - rendering.meshDefinition( is -> materials.getTypeByStack( is ).getModel() ); + // FIXME rendering.meshDefinition( is -> materials.getTypeByStack( is ).getModel() ); // Register a resource location for every material type rendering.variants( Arrays.stream( MaterialType.values() ) .map( MaterialType::getModel ) @@ -141,21 +139,23 @@ public final class ApiMaterials implements IMaterials } ) .bootstrap( item -> (IEntityRegistrationComponent) r -> { - r.register( EntityEntryBuilder.create() - .entity( EntitySingularity.class ) - .id( new ResourceLocation( "appliedenergistics2", EntitySingularity.class.getName() ), EntityIds.get( EntitySingularity.class ) ) - .name( EntitySingularity.class.getSimpleName() ) - .tracker( 16, 4, true ) - .build() ); - r.register( EntityEntryBuilder.create() - .entity( EntityChargedQuartz.class ) - .id( new ResourceLocation( "appliedenergistics2", EntityChargedQuartz.class.getName() ), - EntityIds.get( EntityChargedQuartz.class ) ) - .name( EntityChargedQuartz.class.getSimpleName() ) - .tracker( 16, 4, true ) - .build() ); + r.register( EntityType.Builder.create(EntitySingularity::new, EntityClassification.MISC) + .setTrackingRange(16) + .setUpdateInterval(4) + .setShouldReceiveVelocityUpdates(true) + .build("appliedenergistics2:singularity") + .setRegistryName("appliedenergistics2:singularity") + ); + r.register( EntityType.Builder.create(EntityChargedQuartz::new, EntityClassification.MISC) + .setTrackingRange(16) + .setUpdateInterval(4) + .setShouldReceiveVelocityUpdates(true) + .build("appliedenergistics2:charged_quartz") + .setRegistryName("appliedenergistics2:charged_quartz") + ); } ) .build(); + final ItemMaterial materials = (ItemMaterial) materialDef.item(); this.cell2SpatialPart = new DamagedItemDefinition( "material.cell.spatial.2", materials.createMaterial( MaterialType.CELL2_SPATIAL_PART ) ); this.cell16SpatialPart = new DamagedItemDefinition( "material.cell.spatial.16", materials.createMaterial( MaterialType.CELL16_SPATIAL_PART ) ); diff --git a/src/main/java/appeng/core/api/definitions/ApiParts.java b/src/main/java/appeng/core/api/definitions/ApiParts.java index b4ef20b1e..88ad8243c 100644 --- a/src/main/java/appeng/core/api/definitions/ApiParts.java +++ b/src/main/java/appeng/core/api/definitions/ApiParts.java @@ -88,10 +88,10 @@ public final class ApiParts implements IParts public ApiParts( FeatureFactory registry, PartModels partModels ) { - final ItemPart itemPart = new ItemPart(); - registry.item( "part", () -> itemPart ) - .rendering( new ItemPartRendering( partModels, itemPart ) ) + IItemDefinition itemPartDef = registry.item( "part", ItemPart::new ) + .rendering( new ItemPartRendering( partModels ) ) .build(); + final ItemPart itemPart = (ItemPart) itemPartDef.item(); // Register all part models for( PartType partType : PartType.values() ) @@ -126,9 +126,9 @@ public final class ApiParts implements IParts this.fluidFormationPlane = new DamagedItemDefinition( "part.plane.fluid_formation", itemPart.createPart( PartType.FLUID_FORMATION_PLANE ) ); this.p2PTunnelME = new DamagedItemDefinition( "part.tunnel.me", itemPart.createPart( PartType.P2P_TUNNEL_ME ) ); this.p2PTunnelRedstone = new DamagedItemDefinition( "part.tunnel.redstone", itemPart.createPart( PartType.P2P_TUNNEL_REDSTONE ) ); - this.p2PTunnelItems = new DamagedItemDefinition( "part.tunnel.item", itemPart.createPart( PartType.P2P_TUNNEL_ITEMS ) ); - this.p2PTunnelFluids = new DamagedItemDefinition( "part.tunnel.fluid", itemPart.createPart( PartType.P2P_TUNNEL_FLUIDS ) ); - this.p2PTunnelEU = new DamagedItemDefinition( "part.tunnel.eu", itemPart.createPart( PartType.P2P_TUNNEL_IC2 ) ); + this.p2PTunnelItems = null; // FIXME new DamagedItemDefinition( "part.tunnel.item", itemPart.createPart( PartType.P2P_TUNNEL_ITEMS ) ); + this.p2PTunnelFluids = null; // FIXME new DamagedItemDefinition( "part.tunnel.fluid", itemPart.createPart( PartType.P2P_TUNNEL_FLUIDS ) ); + this.p2PTunnelEU = null; // FIXME new DamagedItemDefinition( "part.tunnel.eu", itemPart.createPart( PartType.P2P_TUNNEL_IC2 ) ); this.p2PTunnelFE = new DamagedItemDefinition( "part.tunnel.fe", itemPart.createPart( PartType.P2P_TUNNEL_FE ) ); this.p2PTunnelLight = new DamagedItemDefinition( "part.tunnel.light", itemPart.createPart( PartType.P2P_TUNNEL_LIGHT ) ); // this.p2PTunnelOpenComputers = new DamagedItemDefinition( itemMultiPart.createPart( diff --git a/src/main/java/appeng/entity/AEBaseEntityItem.java b/src/main/java/appeng/entity/AEBaseEntityItem.java index 639c29e48..abd7fca88 100644 --- a/src/main/java/appeng/entity/AEBaseEntityItem.java +++ b/src/main/java/appeng/entity/AEBaseEntityItem.java @@ -32,9 +32,9 @@ import net.minecraft.world.World; public abstract class AEBaseEntityItem extends ItemEntity { - public AEBaseEntityItem( final World world ) + public AEBaseEntityItem( EntityType entityType, final World world ) { - super( EntityType.ITEM, world ); + super( entityType, world ); } public AEBaseEntityItem( final World world, final double x, final double y, final double z, final ItemStack stack ) diff --git a/src/main/java/appeng/entity/EntityChargedQuartz.java b/src/main/java/appeng/entity/EntityChargedQuartz.java index f59a2c048..1515957b4 100644 --- a/src/main/java/appeng/entity/EntityChargedQuartz.java +++ b/src/main/java/appeng/entity/EntityChargedQuartz.java @@ -24,6 +24,7 @@ import java.util.List; import net.minecraft.block.BlockState; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; import net.minecraft.entity.item.ItemEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -47,7 +48,11 @@ public final class EntityChargedQuartz extends AEBaseEntityItem private int delay = 0; private int transformTime = 0; - public EntityChargedQuartz( final World w, final double x, final double y, final double z, final ItemStack is ) + public EntityChargedQuartz(EntityType entityType, World world) { + super(entityType, world); + } + + public EntityChargedQuartz(final World w, final double x, final double y, final double z, final ItemStack is ) { super( w, x, y, z, is ); } diff --git a/src/main/java/appeng/entity/EntityGrowingCrystal.java b/src/main/java/appeng/entity/EntityGrowingCrystal.java index 207731cba..7b98b77ea 100644 --- a/src/main/java/appeng/entity/EntityGrowingCrystal.java +++ b/src/main/java/appeng/entity/EntityGrowingCrystal.java @@ -21,6 +21,7 @@ package appeng.entity; import net.minecraft.block.BlockState; import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityType; import net.minecraft.entity.item.ItemEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -43,7 +44,11 @@ public final class EntityGrowingCrystal extends ItemEntity private int progress_1000 = 0; - public EntityGrowingCrystal( final World w, final double x, final double y, final double z, final ItemStack is ) + public EntityGrowingCrystal(EntityType type, World world) { + super(type, world); + } + + public EntityGrowingCrystal(final World w, final double x, final double y, final double z, final ItemStack is ) { super( w, x, y, z, is ); this.setNoDespawn(); diff --git a/src/main/java/appeng/entity/EntityIds.java b/src/main/java/appeng/entity/EntityIds.java deleted file mode 100644 index a79ac012e..000000000 --- a/src/main/java/appeng/entity/EntityIds.java +++ /dev/null @@ -1,57 +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.entity; - - -import net.minecraft.entity.Entity; - - -public final class EntityIds -{ - private static final int TINY_TNT = 10; - private static final int SINGULARITY = 11; - private static final int CHARGED_QUARTZ = 12; - private static final int GROWING_CRYSTAL = 13; - - private EntityIds() - { - } - - public static int get( final Class droppedEntity ) - { - if( droppedEntity == EntityTinyTNTPrimed.class ) - { - return TINY_TNT; - } - if( droppedEntity == EntitySingularity.class ) - { - return SINGULARITY; - } - if( droppedEntity == EntityChargedQuartz.class ) - { - return CHARGED_QUARTZ; - } - if( droppedEntity == EntityGrowingCrystal.class ) - { - return GROWING_CRYSTAL; - } - - throw new IllegalStateException( "Missing entity id: " + droppedEntity.getName() ); - } -} diff --git a/src/main/java/appeng/entity/EntitySingularity.java b/src/main/java/appeng/entity/EntitySingularity.java index 1ee9ab619..2ce6e067e 100644 --- a/src/main/java/appeng/entity/EntitySingularity.java +++ b/src/main/java/appeng/entity/EntitySingularity.java @@ -23,6 +23,7 @@ import java.util.Date; import java.util.List; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; import net.minecraft.entity.item.ItemEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -43,10 +44,9 @@ public final class EntitySingularity extends AEBaseEntityItem private static int randTickSeed = 0; - @Reflected - public EntitySingularity( final World w ) + public EntitySingularity(EntityType entityType, final World w ) { - super( w ); + super( entityType, w ); } public EntitySingularity( final World w, final double x, final double y, final double z, final ItemStack is ) diff --git a/src/main/java/appeng/items/misc/ItemEncodedPattern.java b/src/main/java/appeng/items/misc/ItemEncodedPattern.java index dbab5b105..c30cec375 100644 --- a/src/main/java/appeng/items/misc/ItemEncodedPattern.java +++ b/src/main/java/appeng/items/misc/ItemEncodedPattern.java @@ -56,9 +56,8 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt // rather simple client side caching. private static final Map SIMPLE_CACHE = new WeakHashMap<>(); - public ItemEncodedPattern() - { - super(new Item.Properties().maxStackSize(1)); + public ItemEncodedPattern(Properties properties) { + super(properties); } @Override diff --git a/src/main/java/appeng/items/parts/ItemPartRendering.java b/src/main/java/appeng/items/parts/ItemPartRendering.java index 8be4ed197..4f02aed12 100644 --- a/src/main/java/appeng/items/parts/ItemPartRendering.java +++ b/src/main/java/appeng/items/parts/ItemPartRendering.java @@ -45,12 +45,9 @@ public class ItemPartRendering extends ItemRenderingCustomizer private final PartModels partModels; - private final ItemPart item; - - public ItemPartRendering( PartModels partModels, ItemPart item ) + public ItemPartRendering( PartModels partModels ) { this.partModels = partModels; - this.item = item; } @Override @@ -137,10 +134,10 @@ public class ItemPartRendering extends ItemRenderingCustomizer this.partModels.registerModels( partResourceLocs ); } - private ModelResourceLocation getItemMeshDefinition( ItemStack is ) - { - PartType partType = this.item.getTypeByStack( is ); - int variant = this.item.variantOf( is.getDamage() ); - return partType.getItemModels().get( variant ); - } + // FIXME private ModelResourceLocation getItemMeshDefinition( ItemStack is ) + // FIXME { + // FIXME PartType partType = this.item.getTypeByStack( is ); + // FIXME int variant = this.item.variantOf( is.getDamage() ); + // FIXME return partType.getItemModels().get( variant ); + // FIXME } } diff --git a/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java b/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java index b72a2ac02..0c140b6cf 100644 --- a/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java +++ b/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java @@ -46,7 +46,6 @@ public class ItemCreativeStorageCell extends AEBaseItem implements ICellWorkbenc public ItemCreativeStorageCell(Properties props) { super(props); - // FIXME this.setMaxStackSize( 1 ); } @Override diff --git a/src/main/java/appeng/items/storage/ItemViewCell.java b/src/main/java/appeng/items/storage/ItemViewCell.java index c198bed7f..04d867bdd 100644 --- a/src/main/java/appeng/items/storage/ItemViewCell.java +++ b/src/main/java/appeng/items/storage/ItemViewCell.java @@ -44,12 +44,11 @@ import appeng.util.prioritylist.PrecisePriorityList; public class ItemViewCell extends AEBaseItem implements ICellWorkbenchItem { - public ItemViewCell() - { - super(new Item.Properties().maxStackSize(1)); + public ItemViewCell(Properties properties) { + super(properties); } - public static IPartitionList createFilter( final ItemStack[] list ) + public static IPartitionList createFilter(final ItemStack[] list ) { IPartitionList myPartitionList = null; diff --git a/src/main/java/appeng/items/tools/ToolBiometricCard.java b/src/main/java/appeng/items/tools/ToolBiometricCard.java index d99f13c89..b63557f43 100644 --- a/src/main/java/appeng/items/tools/ToolBiometricCard.java +++ b/src/main/java/appeng/items/tools/ToolBiometricCard.java @@ -49,9 +49,8 @@ import appeng.util.Platform; public class ToolBiometricCard extends AEBaseItem implements IBiometricCard { - public ToolBiometricCard() - { - super( new Properties().maxStackSize( 1 ) ); + public ToolBiometricCard(Properties properties) { + super(properties); } @Override diff --git a/src/main/java/appeng/items/tools/ToolMemoryCard.java b/src/main/java/appeng/items/tools/ToolMemoryCard.java index 3f52a2db0..c03734e41 100644 --- a/src/main/java/appeng/items/tools/ToolMemoryCard.java +++ b/src/main/java/appeng/items/tools/ToolMemoryCard.java @@ -62,9 +62,8 @@ public class ToolMemoryCard extends AEBaseItem implements IMemoryCard AEColor.TRANSPARENT, }; - public ToolMemoryCard() - { - super( new Properties().maxStackSize( 1 ) ); + public ToolMemoryCard(Properties properties) { + super(properties); } @Override diff --git a/src/main/java/appeng/items/tools/ToolNetworkTool.java b/src/main/java/appeng/items/tools/ToolNetworkTool.java index 1e1ed244a..a9dfac7e8 100644 --- a/src/main/java/appeng/items/tools/ToolNetworkTool.java +++ b/src/main/java/appeng/items/tools/ToolNetworkTool.java @@ -58,9 +58,8 @@ import appeng.util.Platform; public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench { - public ToolNetworkTool() - { - super(new Item.Properties().maxStackSize( 1 ).addToolType( ToolType.get("wrench"), 0 )); + public ToolNetworkTool(Properties properties) { + super(properties); } @Override diff --git a/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java b/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java index 2c1a5ce97..77f107d57 100644 --- a/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java +++ b/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java @@ -20,6 +20,7 @@ package appeng.items.tools.powered; import net.minecraft.entity.LivingEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.math.AxisAlignedBB; @@ -35,9 +36,9 @@ import appeng.util.Platform; public class ToolChargedStaff extends AEBasePoweredItem { - public ToolChargedStaff() + public ToolChargedStaff(Item.Properties props) { - super( AEConfig.instance().getChargedStaffBattery() ); + super( AEConfig.instance().getChargedStaffBattery(), props ); } @Override diff --git a/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java b/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java index e3fb24fa7..7b3f29594 100644 --- a/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java +++ b/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java @@ -51,6 +51,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.SnowballItem; import net.minecraft.nbt.CompoundNBT; @@ -87,9 +88,9 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe } } - public ToolColorApplicator() + public ToolColorApplicator(Item.Properties props) { - super( AEConfig.instance().getColorApplicatorBattery() ); + super( AEConfig.instance().getColorApplicatorBattery(), props ); } @Override diff --git a/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java b/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java index 9dea9fe05..da853893a 100644 --- a/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java +++ b/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java @@ -31,6 +31,7 @@ import net.minecraft.block.TNTBlock; import net.minecraft.block.material.Material; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.util.ActionResult; @@ -60,9 +61,9 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT private final Map heatUp; private final Map coolDown; - public ToolEntropyManipulator() + public ToolEntropyManipulator(Item.Properties props) { - super( AEConfig.instance().getEntropyManipulatorBattery() ); + super( AEConfig.instance().getEntropyManipulatorBattery(), props ); this.heatUp = new HashMap<>(); this.coolDown = new HashMap<>(); diff --git a/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java b/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java index d1f55e228..ed92ac988 100644 --- a/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java +++ b/src/main/java/appeng/items/tools/powered/ToolMatterCannon.java @@ -29,6 +29,7 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.entity.item.ItemEntity; import net.minecraft.entity.passive.SheepEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.*; @@ -73,9 +74,9 @@ import appeng.util.Platform; public class ToolMatterCannon extends AEBasePoweredItem implements IStorageCell { - public ToolMatterCannon() + public ToolMatterCannon(Item.Properties props) { - super( AEConfig.instance().getMatterCannonBattery() ); + super( AEConfig.instance().getMatterCannonBattery(), props ); } @OnlyIn( Dist.CLIENT ) diff --git a/src/main/java/appeng/items/tools/powered/ToolPortableCell.java b/src/main/java/appeng/items/tools/powered/ToolPortableCell.java index 54b0c6fd4..e5ae9dc1f 100644 --- a/src/main/java/appeng/items/tools/powered/ToolPortableCell.java +++ b/src/main/java/appeng/items/tools/powered/ToolPortableCell.java @@ -24,6 +24,7 @@ import java.util.Set; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.ActionResultType; @@ -60,9 +61,9 @@ import appeng.util.Platform; public class ToolPortableCell extends AEBasePoweredItem implements IStorageCell, IGuiItem, IItemGroup { - public ToolPortableCell() + public ToolPortableCell(Item.Properties props) { - super( AEConfig.instance().getPortableCellBattery() ); + super( AEConfig.instance().getPortableCellBattery(), props ); } @Override diff --git a/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java b/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java index 43e1ddb0c..da40c5a59 100644 --- a/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java +++ b/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java @@ -24,6 +24,7 @@ import java.util.List; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.ActionResult; @@ -52,9 +53,9 @@ import appeng.util.ConfigManager; public class ToolWirelessTerminal extends AEBasePoweredItem implements IWirelessTermHandler { - public ToolWirelessTerminal() + public ToolWirelessTerminal(Item.Properties props) { - super( AEConfig.instance().getWirelessTerminalBattery() ); + super( AEConfig.instance().getWirelessTerminalBattery(), props ); } @Override diff --git a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java index a0efa3a52..981a69bc3 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java +++ b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java @@ -21,6 +21,7 @@ package appeng.items.tools.powered.powersink; import java.text.MessageFormat; import java.util.List; +import java.util.function.DoubleSupplier; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.ItemGroup; @@ -47,14 +48,12 @@ public abstract class AEBasePoweredItem extends AEBaseItem implements IAEItemPow { private static final String CURRENT_POWER_NBT_KEY = "internalCurrentPower"; private static final String MAX_POWER_NBT_KEY = "internalMaxPower"; - private final double powerCapacity; + private final DoubleSupplier powerCapacity; - public AEBasePoweredItem( final double powerCapacity ) + public AEBasePoweredItem(final DoubleSupplier powerCapacity, Properties props ) { - super(new Properties().maxStackSize( 1 ).maxDamage( 32 ).setNoRepair()); - //FIXME -// this.hasSubtypes = false; -// this.setFull3D(); + super(props); +// FIXME this.setFull3D(); this.powerCapacity = powerCapacity; } @@ -153,7 +152,7 @@ public abstract class AEBasePoweredItem extends AEBaseItem implements IAEItemPow @Override public double getAEMaxPower( final ItemStack is ) { - return this.powerCapacity; + return this.powerCapacity.getAsDouble(); } @Override diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java index 4d0b283d5..262a0e9e0 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java @@ -33,9 +33,9 @@ public class ToolQuartzAxe extends AxeItem { private final AEFeature type; - public ToolQuartzAxe( final AEFeature type ) + public ToolQuartzAxe( Item.Properties props, final AEFeature type ) { - super( ItemTier.IRON, 6.0F, -3.1F, ( new Item.Properties() ).group( ItemGroup.TOOLS ) ); + super( ItemTier.IRON, 6.0F, -3.1F, props ); this.type = type; } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java index 246b26360..df784d4d4 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java @@ -42,13 +42,9 @@ public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem { private final AEFeature type; - public ToolQuartzCuttingKnife( final AEFeature type ) + public ToolQuartzCuttingKnife( Item.Properties props, final AEFeature type ) { - super(new Item.Properties() - .group(ItemGroup.TOOLS) - .maxStackSize(1) - .maxDamage(50) - .setNoRepair()); + super(props); this.type = type; } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java index 1622fcd76..6abc82dd1 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java @@ -33,9 +33,9 @@ public class ToolQuartzHoe extends HoeItem { private final AEFeature type; - public ToolQuartzHoe( final AEFeature type ) + public ToolQuartzHoe( Item.Properties props, final AEFeature type ) { - super( ItemTier.IRON, -1.0F, ( new Item.Properties() ).group( ItemGroup.TOOLS ) ); + super( ItemTier.IRON, -1.0F, props); this.type = type; } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java index e9e0abda5..7396f48c3 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java @@ -33,9 +33,9 @@ public class ToolQuartzPickaxe extends PickaxeItem { private final AEFeature type; - public ToolQuartzPickaxe( final AEFeature type ) + public ToolQuartzPickaxe( Item.Properties props, final AEFeature type ) { - super( ItemTier.IRON, 1, -2.8F, ( new Item.Properties() ).group( ItemGroup.TOOLS ) ); + super( ItemTier.IRON, 1, -2.8F, props ); this.type = type; } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java index a94f910a8..79eca8093 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java @@ -33,9 +33,9 @@ public class ToolQuartzSpade extends ShovelItem { private final AEFeature type; - public ToolQuartzSpade( final AEFeature type ) + public ToolQuartzSpade( Item.Properties props, final AEFeature type ) { - super( ItemTier.IRON, 1.5F, -3.0F, ( new Item.Properties() ).group( ItemGroup.TOOLS ) ); + super( ItemTier.IRON, 1.5F, -3.0F, props ); this.type = type; } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java index 078bab035..079db162a 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java @@ -33,9 +33,9 @@ public class ToolQuartzSword extends SwordItem { private final AEFeature type; - public ToolQuartzSword( AEFeature type ) + public ToolQuartzSword( Item.Properties props, AEFeature type ) { - super( ItemTier.IRON, 3, -2.4F, ( new Item.Properties() ).group( ItemGroup.COMBAT ) ); + super( ItemTier.IRON, 3, -2.4F, props ); this.type = type; } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java index 98d7078c6..f27e746f6 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java @@ -22,6 +22,7 @@ package appeng.items.tools.quartz; import appeng.core.CreativeTab; import net.minecraft.block.Block; 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; @@ -38,11 +39,9 @@ import appeng.util.Platform; public class ToolQuartzWrench extends AEBaseItem implements IAEWrench { - public ToolQuartzWrench() + public ToolQuartzWrench(Item.Properties props) { - super( new Properties() - .group(ItemGroup.TOOLS) - .maxStackSize( 1 ) ); + super( props ); } @Override