From 97f04922b9242ddc195840a3f9fe599432bdc9a7 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sat, 6 Jun 2020 22:21:23 +0200 Subject: [PATCH] Restored more initialization code. --- .../bootstrap/ItemDefinitionBuilder.java | 3 +- .../components/IPostInitComponent.java | 4 +- src/main/java/appeng/core/AppEng.java | 3 + src/main/java/appeng/core/Registration.java | 377 +++++++++--------- .../core/api/definitions/ApiBlocks.java | 10 +- 5 files changed, 199 insertions(+), 198 deletions(-) diff --git a/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java b/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java index 09c786929..d89391ffa 100644 --- a/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java +++ b/src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java @@ -27,6 +27,7 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; +import appeng.bootstrap.components.IInitComponent; import net.minecraft.block.DispenserBlock; import net.minecraft.dispenser.IDispenseItemBehavior; import net.minecraft.item.Item; @@ -152,7 +153,7 @@ class ItemDefinitionBuilder implements IItemBuilder // Register custom dispenser behavior if requested if( this.dispenserBehaviorSupplier != null ) { - this.factory.addBootstrapComponent( (IPostInitComponent) side -> + this.factory.addBootstrapComponent( (IInitComponent) () -> { IDispenseItemBehavior behavior = this.dispenserBehaviorSupplier.get(); DispenserBlock.registerDispenseBehavior( item, behavior ); diff --git a/src/main/java/appeng/bootstrap/components/IPostInitComponent.java b/src/main/java/appeng/bootstrap/components/IPostInitComponent.java index 29459fef5..bfa520926 100644 --- a/src/main/java/appeng/bootstrap/components/IPostInitComponent.java +++ b/src/main/java/appeng/bootstrap/components/IPostInitComponent.java @@ -19,13 +19,11 @@ package appeng.bootstrap.components; -import net.minecraftforge.api.distmarker.Dist; - import appeng.bootstrap.IBootstrapComponent; @FunctionalInterface public interface IPostInitComponent extends IBootstrapComponent { - void postInitialize( Dist dist ); + void postInitialize(); } diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index 539789619..e07f5bbc7 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -26,6 +26,7 @@ import appeng.block.paint.PaintSplotchesModel; import appeng.block.qnb.QnbFormedModel; import appeng.bootstrap.components.IClientSetupComponent; import appeng.bootstrap.components.IInitComponent; +import appeng.bootstrap.components.IPostInitComponent; import appeng.client.ClientHelper; import appeng.client.render.DummyFluidItemModel; import appeng.client.render.SimpleModelLoader; @@ -150,8 +151,10 @@ public final class AppEng ApiDefinitions definitions = Api.INSTANCE.definitions(); definitions.getRegistry().getBootstrapComponents( IInitComponent.class ).forEachRemaining(IInitComponent::initialize); + definitions.getRegistry().getBootstrapComponents( IPostInitComponent.class ).forEachRemaining(IPostInitComponent::postInitialize); Registration.setupInternalRegistries(); + Registration.postInit(); if( versionCheckerConfig.isVersionCheckingEnabled() ) { diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index a31744311..14633e131 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -19,7 +19,13 @@ package appeng.core; +import appeng.api.config.Upgrades; +import appeng.api.definitions.IBlocks; +import appeng.api.definitions.IItems; +import appeng.api.definitions.IParts; import appeng.api.features.IRegistryContainer; +import appeng.api.features.IWirelessTermHandler; +import appeng.api.movable.IMovableRegistry; import appeng.api.networking.IGridCacheRegistry; import appeng.api.networking.crafting.ICraftingGrid; import appeng.api.networking.energy.IEnergyGrid; @@ -41,7 +47,6 @@ import appeng.client.gui.implementations.GuiCraftingTerm; import appeng.client.gui.implementations.GuiDrive; import appeng.client.gui.implementations.GuiFormationPlane; import appeng.client.gui.implementations.GuiGrinder; -import appeng.client.gui.implementations.GuiGrinder; import appeng.client.gui.implementations.GuiIOPort; import appeng.client.gui.implementations.GuiInscriber; import appeng.client.gui.implementations.GuiInterface; @@ -55,11 +60,9 @@ import appeng.client.gui.implementations.GuiNetworkTool; import appeng.client.gui.implementations.GuiPatternTerm; import appeng.client.gui.implementations.GuiPriority; import appeng.client.gui.implementations.GuiQNB; -import appeng.client.gui.implementations.GuiQNB; import appeng.client.gui.implementations.GuiQuartzKnife; import appeng.client.gui.implementations.GuiSecurityStation; import appeng.client.gui.implementations.GuiSkyChest; -import appeng.client.gui.implementations.GuiSkyChest; import appeng.client.gui.implementations.GuiSpatialIOPort; import appeng.client.gui.implementations.GuiStorageBus; import appeng.client.gui.implementations.GuiUpgradeable; @@ -72,6 +75,7 @@ import appeng.client.render.tesr.SkyChestTESR; import appeng.container.AEBaseContainer; import appeng.container.ContainerOpener; import appeng.container.implementations.*; +import appeng.core.features.registries.P2PTunnelRegistry; import appeng.core.features.registries.cell.BasicCellHandler; import appeng.core.features.registries.cell.BasicItemCellGuiHandler; import appeng.core.features.registries.cell.CreativeCellHandler; @@ -85,13 +89,13 @@ import appeng.recipes.conditions.FeaturesEnabled; import appeng.recipes.game.DisassembleRecipe; import appeng.recipes.ingredients.PartIngredientSerializer; import appeng.server.AECommand; +import appeng.tile.AEBaseTile; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScreenManager; import net.minecraft.client.renderer.ItemModelMesher; import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.entity.EntityType; -import net.minecraft.inventory.container.Container; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.Item; import net.minecraft.item.crafting.IRecipeSerializer; @@ -635,191 +639,186 @@ final class Registration // event.addCapability( new ResourceLocation( "appliedenergistics2:spatial_dimension_manager" ), new SpatialDimensionManager( event.getObject() ) ); // } // } -// -// void postInit( final FMLPostInitializationEvent event ) -// { -// final IRegistryContainer registries = Api.INSTANCE.registries(); -// ApiDefinitions definitions = Api.INSTANCE.definitions(); -// final IParts parts = definitions.parts(); -// final IBlocks blocks = definitions.blocks(); -// final IItems items = definitions.items(); -// -// this.registerSpatialDimension(); -// -// // default settings.. -// ( (P2PTunnelRegistry) registries.p2pTunnel() ).configure(); -// -// // add to localization.. -// PlayerMessages.values(); -// GuiText.values(); -// -// definitions.getRegistry().getBootstrapComponents( IPostInitComponent.class ).forEachRemaining( b -> b.postInitialize( event.getSide() ) ); -// -// // Interface -// Upgrades.CRAFTING.registerItem( parts.iface(), 1 ); -// Upgrades.CRAFTING.registerItem( blocks.iface(), 1 ); -// -// // IO Port! -// Upgrades.SPEED.registerItem( blocks.iOPort(), 3 ); -// Upgrades.REDSTONE.registerItem( blocks.iOPort(), 1 ); -// -// // Level Emitter! -// Upgrades.FUZZY.registerItem( parts.levelEmitter(), 1 ); -// Upgrades.CRAFTING.registerItem( parts.levelEmitter(), 1 ); -// -// // Import Bus -// Upgrades.FUZZY.registerItem( parts.importBus(), 1 ); -// Upgrades.REDSTONE.registerItem( parts.importBus(), 1 ); -// Upgrades.CAPACITY.registerItem( parts.importBus(), 2 ); -// Upgrades.SPEED.registerItem( parts.importBus(), 4 ); -// -// // Fluid Import Bus -// Upgrades.CAPACITY.registerItem( parts.fluidImportBus(), 2 ); -// Upgrades.REDSTONE.registerItem( parts.fluidImportBus(), 1 ); -// Upgrades.SPEED.registerItem( parts.fluidImportBus(), 4 ); -// -// // Export Bus -// Upgrades.FUZZY.registerItem( parts.exportBus(), 1 ); -// Upgrades.REDSTONE.registerItem( parts.exportBus(), 1 ); -// Upgrades.CAPACITY.registerItem( parts.exportBus(), 2 ); -// Upgrades.SPEED.registerItem( parts.exportBus(), 4 ); -// Upgrades.CRAFTING.registerItem( parts.exportBus(), 1 ); -// -// // Fluid Export Bus -// Upgrades.CAPACITY.registerItem( parts.fluidExportBus(), 2 ); -// Upgrades.REDSTONE.registerItem( parts.fluidExportBus(), 1 ); -// Upgrades.SPEED.registerItem( parts.fluidExportBus(), 4 ); -// -// // Storage Cells -// Upgrades.FUZZY.registerItem( items.cell1k(), 1 ); -// Upgrades.INVERTER.registerItem( items.cell1k(), 1 ); -// -// Upgrades.FUZZY.registerItem( items.cell4k(), 1 ); -// Upgrades.INVERTER.registerItem( items.cell4k(), 1 ); -// -// Upgrades.FUZZY.registerItem( items.cell16k(), 1 ); -// Upgrades.INVERTER.registerItem( items.cell16k(), 1 ); -// -// Upgrades.FUZZY.registerItem( items.cell64k(), 1 ); -// Upgrades.INVERTER.registerItem( items.cell64k(), 1 ); -// -// Upgrades.FUZZY.registerItem( items.portableCell(), 1 ); -// Upgrades.INVERTER.registerItem( items.portableCell(), 1 ); -// -// Upgrades.FUZZY.registerItem( items.viewCell(), 1 ); -// Upgrades.INVERTER.registerItem( items.viewCell(), 1 ); -// -// // Storage Bus -// Upgrades.FUZZY.registerItem( parts.storageBus(), 1 ); -// Upgrades.INVERTER.registerItem( parts.storageBus(), 1 ); -// Upgrades.CAPACITY.registerItem( parts.storageBus(), 5 ); -// -// // Storage Bus Fluids -// Upgrades.INVERTER.registerItem( parts.fluidStorageBus(), 1 ); -// Upgrades.CAPACITY.registerItem( parts.fluidStorageBus(), 5 ); -// -// // Formation Plane -// Upgrades.FUZZY.registerItem( parts.formationPlane(), 1 ); -// Upgrades.INVERTER.registerItem( parts.formationPlane(), 1 ); -// Upgrades.CAPACITY.registerItem( parts.formationPlane(), 5 ); -// -// // Matter Cannon -// Upgrades.FUZZY.registerItem( items.massCannon(), 1 ); -// Upgrades.INVERTER.registerItem( items.massCannon(), 1 ); -// Upgrades.SPEED.registerItem( items.massCannon(), 4 ); -// -// // Molecular Assembler -// Upgrades.SPEED.registerItem( blocks.molecularAssembler(), 5 ); -// -// // Inscriber -// Upgrades.SPEED.registerItem( blocks.inscriber(), 3 ); -// -// // Wireless Terminal Handler -// items.wirelessTerminal().maybeItem().ifPresent( terminal -> registries.wireless().registerWirelessHandler( (IWirelessTermHandler) terminal ) ); -// -// // Charge Rates -// items.chargedStaff().maybeItem().ifPresent( chargedStaff -> registries.charger().addChargeRate( chargedStaff, 320d ) ); -// items.portableCell().maybeItem().ifPresent( chargedStaff -> registries.charger().addChargeRate( chargedStaff, 800d ) ); -// items.colorApplicator().maybeItem().ifPresent( colorApplicator -> registries.charger().addChargeRate( colorApplicator, 800d ) ); -// items.wirelessTerminal().maybeItem().ifPresent( terminal -> registries.charger().addChargeRate( terminal, 8000d ) ); -// items.entropyManipulator().maybeItem().ifPresent( entropyManipulator -> registries.charger().addChargeRate( entropyManipulator, 8000d ) ); -// items.massCannon().maybeItem().ifPresent( massCannon -> registries.charger().addChargeRate( massCannon, 8000d ) ); -// blocks.energyCell().maybeItem().ifPresent( cell -> registries.charger().addChargeRate( cell, 8000d ) ); -// blocks.energyCellDense().maybeItem().ifPresent( cell -> registries.charger().addChargeRate( cell, 16000d ) ); -// -// // add villager trading to black smiths for a few basic materials -// if( AEConfig.instance().isFeatureEnabled( AEFeature.VILLAGER_TRADING ) ) -// { -// // TODO: VILLAGER TRADING -// // VillagerRegistry.instance().getRegisteredVillagers().registerVillageTradeHandler( 3, new AETrading() ); -// } -// -// if( AEConfig.instance().isFeatureEnabled( AEFeature.CERTUS_QUARTZ_WORLD_GEN ) ) -// { -// GameRegistry.registerWorldGenerator( new QuartzWorldGen(), 0 ); -// } -// -// if( AEConfig.instance().isFeatureEnabled( AEFeature.METEORITE_WORLD_GEN ) ) -// { -// GameRegistry.registerWorldGenerator( new MeteoriteWorldGen(), 0 ); -// } -// -// final IMovableRegistry mr = registries.movable(); -// -// /* -// * You can't move bed rock. -// */ -// mr.blacklistBlock( net.minecraft.block.Blocks.BEDROCK ); -// -// /* -// * White List Vanilla... -// */ -// mr.whiteListTileEntity( net.minecraft.tileentity.BannerTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.BeaconTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.BrewingStandTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.ChestTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.CommandBlockTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.ComparatorTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.DaylightDetectorTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.DispenserTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.DropperTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.EnchantingTableTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.EnderChestTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.EndPortalTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.FurnaceTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.HopperTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.MobSpawnerTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.PistonTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.ShulkerBoxTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.SignTileEntity.class ); -// mr.whiteListTileEntity( net.minecraft.tileentity.SkullTileEntity.class ); -// -// /* -// * Whitelist AE2 -// */ -// mr.whiteListTileEntity( AEBaseTile.class ); -// -// /* -// * world gen -// */ -// for( final WorldGenType type : WorldGenType.values() ) -// { -// registries.worldgen().disableWorldGenForProviderID( type, StorageWorldProvider.class ); -// -// // nether -// registries.worldgen().disableWorldGenForDimension( type, -1 ); -// -// // end -// registries.worldgen().disableWorldGenForDimension( type, 1 ); -// } -// -// // whitelist from config -// for( final int dimension : AEConfig.instance().getMeteoriteDimensionWhitelist() ) -// { -// registries.worldgen().enableWorldGenForDimension( WorldGenType.METEORITES, dimension ); -// } -// } -// + + // FIXME LATER + public static void postInit() + { + final IRegistryContainer registries = Api.INSTANCE.registries(); + ApiDefinitions definitions = Api.INSTANCE.definitions(); + final IParts parts = definitions.parts(); + final IBlocks blocks = definitions.blocks(); + final IItems items = definitions.items(); + + // FIXME this.registerSpatialDimension(); + + // default settings.. + ( (P2PTunnelRegistry) registries.p2pTunnel() ).configure(); + + // Interface + Upgrades.CRAFTING.registerItem( parts.iface(), 1 ); + Upgrades.CRAFTING.registerItem( blocks.iface(), 1 ); + + // IO Port! + Upgrades.SPEED.registerItem( blocks.iOPort(), 3 ); + Upgrades.REDSTONE.registerItem( blocks.iOPort(), 1 ); + + // Level Emitter! + Upgrades.FUZZY.registerItem( parts.levelEmitter(), 1 ); + Upgrades.CRAFTING.registerItem( parts.levelEmitter(), 1 ); + + // Import Bus + Upgrades.FUZZY.registerItem( parts.importBus(), 1 ); + Upgrades.REDSTONE.registerItem( parts.importBus(), 1 ); + Upgrades.CAPACITY.registerItem( parts.importBus(), 2 ); + Upgrades.SPEED.registerItem( parts.importBus(), 4 ); + + // Fluid Import Bus + Upgrades.CAPACITY.registerItem( parts.fluidImportBus(), 2 ); + Upgrades.REDSTONE.registerItem( parts.fluidImportBus(), 1 ); + Upgrades.SPEED.registerItem( parts.fluidImportBus(), 4 ); + + // Export Bus + Upgrades.FUZZY.registerItem( parts.exportBus(), 1 ); + Upgrades.REDSTONE.registerItem( parts.exportBus(), 1 ); + Upgrades.CAPACITY.registerItem( parts.exportBus(), 2 ); + Upgrades.SPEED.registerItem( parts.exportBus(), 4 ); + Upgrades.CRAFTING.registerItem( parts.exportBus(), 1 ); + + // Fluid Export Bus + Upgrades.CAPACITY.registerItem( parts.fluidExportBus(), 2 ); + Upgrades.REDSTONE.registerItem( parts.fluidExportBus(), 1 ); + Upgrades.SPEED.registerItem( parts.fluidExportBus(), 4 ); + + // Storage Cells + Upgrades.FUZZY.registerItem( items.cell1k(), 1 ); + Upgrades.INVERTER.registerItem( items.cell1k(), 1 ); + + Upgrades.FUZZY.registerItem( items.cell4k(), 1 ); + Upgrades.INVERTER.registerItem( items.cell4k(), 1 ); + + Upgrades.FUZZY.registerItem( items.cell16k(), 1 ); + Upgrades.INVERTER.registerItem( items.cell16k(), 1 ); + + Upgrades.FUZZY.registerItem( items.cell64k(), 1 ); + Upgrades.INVERTER.registerItem( items.cell64k(), 1 ); + + Upgrades.FUZZY.registerItem( items.portableCell(), 1 ); + Upgrades.INVERTER.registerItem( items.portableCell(), 1 ); + + Upgrades.FUZZY.registerItem( items.viewCell(), 1 ); + Upgrades.INVERTER.registerItem( items.viewCell(), 1 ); + + // Storage Bus + Upgrades.FUZZY.registerItem( parts.storageBus(), 1 ); + Upgrades.INVERTER.registerItem( parts.storageBus(), 1 ); + Upgrades.CAPACITY.registerItem( parts.storageBus(), 5 ); + + // Storage Bus Fluids + Upgrades.INVERTER.registerItem( parts.fluidStorageBus(), 1 ); + Upgrades.CAPACITY.registerItem( parts.fluidStorageBus(), 5 ); + + // Formation Plane + Upgrades.FUZZY.registerItem( parts.formationPlane(), 1 ); + Upgrades.INVERTER.registerItem( parts.formationPlane(), 1 ); + Upgrades.CAPACITY.registerItem( parts.formationPlane(), 5 ); + + // Matter Cannon + Upgrades.FUZZY.registerItem( items.massCannon(), 1 ); + Upgrades.INVERTER.registerItem( items.massCannon(), 1 ); + Upgrades.SPEED.registerItem( items.massCannon(), 4 ); + + // Molecular Assembler + Upgrades.SPEED.registerItem( blocks.molecularAssembler(), 5 ); + + // Inscriber + Upgrades.SPEED.registerItem( blocks.inscriber(), 3 ); + + // Wireless Terminal Handler + items.wirelessTerminal().maybeItem().ifPresent( terminal -> registries.wireless().registerWirelessHandler( (IWirelessTermHandler) terminal ) ); + + // Charge Rates + items.chargedStaff().maybeItem().ifPresent( chargedStaff -> registries.charger().addChargeRate( chargedStaff, 320d ) ); + items.portableCell().maybeItem().ifPresent( chargedStaff -> registries.charger().addChargeRate( chargedStaff, 800d ) ); + items.colorApplicator().maybeItem().ifPresent( colorApplicator -> registries.charger().addChargeRate( colorApplicator, 800d ) ); + items.wirelessTerminal().maybeItem().ifPresent( terminal -> registries.charger().addChargeRate( terminal, 8000d ) ); + items.entropyManipulator().maybeItem().ifPresent( entropyManipulator -> registries.charger().addChargeRate( entropyManipulator, 8000d ) ); + items.massCannon().maybeItem().ifPresent( massCannon -> registries.charger().addChargeRate( massCannon, 8000d ) ); + blocks.energyCell().maybeItem().ifPresent( cell -> registries.charger().addChargeRate( cell, 8000d ) ); + blocks.energyCellDense().maybeItem().ifPresent( cell -> registries.charger().addChargeRate( cell, 16000d ) ); + +// FIXME // add villager trading to black smiths for a few basic materials +// FIXME if( AEConfig.instance().isFeatureEnabled( AEFeature.VILLAGER_TRADING ) ) +// FIXME { +// FIXME // TODO: VILLAGER TRADING +// FIXME // VillagerRegistry.instance().getRegisteredVillagers().registerVillageTradeHandler( 3, new AETrading() ); +// FIXME } + +// FIXME if( AEConfig.instance().isFeatureEnabled( AEFeature.CERTUS_QUARTZ_WORLD_GEN ) ) +// FIXME { +// FIXME GameRegistry.registerWorldGenerator( new QuartzWorldGen(), 0 ); +// FIXME } +// FIXME +// FIXME if( AEConfig.instance().isFeatureEnabled( AEFeature.METEORITE_WORLD_GEN ) ) +// FIXME { +// FIXME GameRegistry.registerWorldGenerator( new MeteoriteWorldGen(), 0 ); +// FIXME } + + final IMovableRegistry mr = registries.movable(); + + /* + * You can't move bed rock. + */ + mr.blacklistBlock( net.minecraft.block.Blocks.BEDROCK ); + + /* + * White List Vanilla... + */ + mr.whiteListTileEntity( net.minecraft.tileentity.BannerTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.BeaconTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.BrewingStandTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.ChestTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.CommandBlockTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.ComparatorTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.DaylightDetectorTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.DispenserTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.DropperTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.EnchantingTableTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.EnderChestTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.EndPortalTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.FurnaceTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.HopperTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.MobSpawnerTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.PistonTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.ShulkerBoxTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.SignTileEntity.class ); + mr.whiteListTileEntity( net.minecraft.tileentity.SkullTileEntity.class ); + + /* + * Whitelist AE2 + */ + mr.whiteListTileEntity( AEBaseTile.class ); + +// FIXME /* +// FIXME * world gen +// FIXME */ +// FIXME for( final WorldGenType type : WorldGenType.values() ) +// FIXME { +// FIXME registries.worldgen().disableWorldGenForProviderID( type, StorageWorldProvider.class ); +// FIXME +// FIXME // nether +// FIXME registries.worldgen().disableWorldGenForDimension( type, -1 ); +// FIXME +// FIXME // end +// FIXME registries.worldgen().disableWorldGenForDimension( type, 1 ); +// FIXME } +// FIXME +// FIXME // whitelist from config +// FIXME for( final int dimension : AEConfig.instance().getMeteoriteDimensionWhitelist() ) +// FIXME { +// FIXME registries.worldgen().enableWorldGenForDimension( WorldGenType.METEORITES, dimension ); +// FIXME } + } + // private static class ModelLoaderWrapper implements IModelRegistry // { // diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index 847865c20..b165c57a1 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -22,6 +22,7 @@ package appeng.core.api.definitions; import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlocks; import appeng.api.definitions.ITileDefinition; +import appeng.api.features.AEFeature; import appeng.block.AEBaseBlockItemChargeable; import appeng.block.crafting.*; import appeng.block.grindstone.BlockCrank; @@ -38,14 +39,12 @@ import appeng.block.spatial.BlockSpatialPylon; import appeng.block.storage.*; import appeng.bootstrap.*; import appeng.bootstrap.components.IEntityRegistrationComponent; -import appeng.bootstrap.components.IPostInitComponent; -import appeng.bootstrap.components.IPreInitComponent; +import appeng.bootstrap.components.IInitComponent; import appeng.bootstrap.definitions.TileEntityDefinition; import appeng.client.render.crafting.CraftingCubeRendering; import appeng.client.render.spatial.SpatialPylonRendering; import appeng.client.render.tesr.CrankTESR; import appeng.client.render.tesr.SkyChestTESR; -import appeng.api.features.AEFeature; import appeng.core.AppEng; import appeng.core.features.registries.PartModels; import appeng.debug.*; @@ -79,6 +78,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.ToolType; + import static appeng.block.crafting.AbstractCraftingUnitBlock.CraftingUnitType; import static appeng.decorative.solid.BlockSkyStone.SkystoneType; @@ -309,7 +309,7 @@ public final class ApiBlocks implements IBlocks .build(); this.tinyTNT = registry.block( "tiny_tnt", BlockTinyTNT::new ) .features( AEFeature.TINY_TNT ) - .bootstrap( ( block, item ) -> (IPreInitComponent) side -> DispenserBlock.registerDispenseBehavior( item, + .bootstrap( ( block, item ) -> (IInitComponent) () -> DispenserBlock.registerDispenseBehavior( item, new DispenserBehaviorTinyTNT() ) ) .bootstrap( ( block, item ) -> (IEntityRegistrationComponent) r -> { @@ -528,7 +528,7 @@ public final class ApiBlocks implements IBlocks // (handled in BlockCableBus.java and its setupTile()) // .tileEntity( TileCableBus.class ) // TODO: why the custom registration? - .bootstrap( ( block, item ) -> (IPostInitComponent) side -> ( (BlockCableBus) block ).setupTile() ) + .bootstrap( ( block, item ) -> (IInitComponent) ((BlockCableBus) block)::setupTile) .build(); this.skyStoneSlab = deco.block( "sky_stone_slab", () -> new SlabBlock( SKYSTONE_PROPERTIES ) )