diff --git a/src/main/java/appeng/block/networking/BlockCableBus.java b/src/main/java/appeng/block/networking/BlockCableBus.java index 3ac8e7bd..31308992 100644 --- a/src/main/java/appeng/block/networking/BlockCableBus.java +++ b/src/main/java/appeng/block/networking/BlockCableBus.java @@ -387,14 +387,12 @@ public class BlockCableBus extends AEBaseTileBlock noTesrTile = Api.INSTANCE.partHelper().getCombinedInstance( TileCableBus.class ); this.setTileEntity( noTesrTile ); + GameRegistry.registerTileEntity( noTesrTile, AppEng.MOD_ID.toLowerCase() + ":" + "BlockCableBus" ); + if( Platform.isClient() ) { setupTesr(); } - else - { - GameRegistry.registerTileEntity( noTesrTile, AppEng.MOD_ID.toLowerCase() + ":" + "BlockCableBus" ); - } } @SideOnly( Side.CLIENT ) diff --git a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java index 71e8e43e..8f024fbd 100644 --- a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java +++ b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java @@ -225,14 +225,17 @@ class BlockDefinitionBuilder implements IBlockBuilder initCallbacks.forEach( consumer -> factory.addInit( side -> consumer.accept( block, item ) ) ); postInitCallbacks.forEach( consumer -> factory.addPostInit( side -> consumer.accept( block, item ) ) ); + + if ( teClass != null && block instanceof AEBaseTileBlock ) + { + ((AEBaseTileBlock) block).setTileEntity( teClass ); + } + if( Platform.isClient() ) { if( block instanceof AEBaseTileBlock ) { AEBaseTileBlock tileBlock = (AEBaseTileBlock) block; - // Fallback? - if ( teClass != null ) - tileBlock.setTileEntity( teClass ); blockRendering.apply( factory, block, tileBlock.getTileEntityClass() ); } else @@ -248,15 +251,8 @@ class BlockDefinitionBuilder implements IBlockBuilder if( block instanceof AEBaseTileBlock ) { - AEBaseTileBlock tileBlock = (AEBaseTileBlock) block; - if( teClass != null ) - tileBlock.setTileEntity( teClass ); - factory.addPreInit( side -> { AEBaseTile.registerTileItem( teClass, new BlockStackSrc( block, 0, ActivityState.Enabled ) ); - - // TODO: Change after transition phase - GameRegistry.registerTileEntity( teClass, AppEng.MOD_ID.toLowerCase() + ":" + registryName); } ); return (T) new TileDefinition( registryName, (AEBaseTileBlock) block, item ); diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index dd449938..4c2da71a 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -19,6 +19,7 @@ package appeng.core.api.definitions; +import appeng.core.AELog; import appeng.debug.TileChunkLoader; import appeng.debug.TileCubeGenerator; import appeng.debug.TileItemGen; @@ -63,7 +64,9 @@ import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemSlab; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.oredict.OreDictionary; @@ -153,6 +156,9 @@ import appeng.decorative.solid.BlockSkyStone.SkystoneType; import appeng.decorative.stair.BlockStairCommon; import appeng.hooks.DispenserBehaviorTinyTNT; +import java.util.ArrayList; +import java.util.List; + /** * Internal implementation for the API blocks @@ -234,6 +240,22 @@ public final class ApiBlocks implements IBlocks private final IBlockDefinition phantomNode; private final IBlockDefinition cubeGenerator; +// private List> registeredClasses = new ArrayList>(); + + private void registerTileEntity( Class teClass, String name ) + { +// if(this.registeredClasses.contains( teClass ) ) +// { +// AELog.debug( "Already registered " + teClass.getName() +" to Forge!" ); +// return; +// } +// +// registeredClasses.add(teClass); + + GameRegistry.registerTileEntity( teClass, AppEng.MOD_ID.toLowerCase() + ":" + name); + + } + public ApiBlocks( FeatureFactory registry, PartModels partModels ) { // this.quartzOre = new BlockDefinition( "ore.quartz", new OreQuartz() ); @@ -286,12 +308,12 @@ public final class ApiBlocks implements IBlocks this.skyStoneChest = registry.block( "sky_stone_chest", () -> new BlockSkyChest( SkyChestType.STONE ) ) .features( AEFeature.SKY_STONE_CHESTS ) - .tileEntity( TileSkyChest.TileSkyChestStone.class ) + .tileEntity( TileSkyChest.class ) .rendering( new SkyChestRenderingCustomizer( SkyChestType.STONE ) ) .build(); this.smoothSkyStoneChest = registry.block( "smooth_sky_stone_chest", () -> new BlockSkyChest( SkyChestType.BLOCK ) ) .features( AEFeature.SKY_STONE_CHESTS ) - .tileEntity( TileSkyChest.TileSkyChestSmooth.class ) + .tileEntity( TileSkyChest.class ) .rendering( new SkyChestRenderingCustomizer( SkyChestType.BLOCK ) ) .build(); @@ -343,12 +365,12 @@ public final class ApiBlocks implements IBlocks .build(); this.quantumRing = registry.block( "quantum_ring", BlockQuantumRing::new ) .features( AEFeature.QUANTUM_NETWORK_BRIDGE ) - .tileEntity( TileQuantumBridge.TileQuantumBridgeRing.class ) + .tileEntity( TileQuantumBridge.class ) .rendering( new QuantumBridgeRendering() ) .build(); this.quantumLink = registry.block( "quantum_link", BlockQuantumLinkChamber::new ) .features( AEFeature.QUANTUM_NETWORK_BRIDGE ) - .tileEntity( TileQuantumBridge.TileQuantumBridgeGlass.class ) + .tileEntity( TileQuantumBridge.class ) .rendering( new QuantumBridgeRendering() ) .build(); this.spatialPylon = registry.block( "spatial_pylon", BlockSpatialPylon::new ) @@ -412,30 +434,30 @@ public final class ApiBlocks implements IBlocks .build(); this.craftingAccelerator = crafting.block( "crafting_accelerator", () -> new BlockCraftingUnit( CraftingUnitType.ACCELERATOR ) ) .rendering( new CraftingCubeRendering( "crafting_accelerator", CraftingUnitType.ACCELERATOR ) ) - .tileEntity( TileCraftingTile.TileCraftingTileAccelerator.class ) + .tileEntity( TileCraftingTile.class ) .useCustomItemModel() .build(); this.craftingStorage1k = crafting.block( "crafting_storage_1k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_1K ) ) .item( ItemCraftingStorage::new ) - .tileEntity( TileCraftingStorageTile.TileCraftingStorageTile1k.class ) + .tileEntity( TileCraftingStorageTile.class ) .rendering( new CraftingCubeRendering( "crafting_storage_1k", CraftingUnitType.STORAGE_1K ) ) .useCustomItemModel() .build(); this.craftingStorage4k = crafting.block( "crafting_storage_4k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_4K ) ) .item( ItemCraftingStorage::new ) - .tileEntity( TileCraftingStorageTile.TileCraftingStorageTile4k.class ) + .tileEntity( TileCraftingStorageTile.class ) .rendering( new CraftingCubeRendering( "crafting_storage_4k", CraftingUnitType.STORAGE_4K ) ) .useCustomItemModel() .build(); this.craftingStorage16k = crafting.block( "crafting_storage_16k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_16K ) ) .item( ItemCraftingStorage::new ) - .tileEntity( TileCraftingStorageTile.TileCraftingStorageTile16k.class ) + .tileEntity( TileCraftingStorageTile.class ) .rendering( new CraftingCubeRendering( "crafting_storage_16k", CraftingUnitType.STORAGE_16K ) ) .useCustomItemModel() .build(); this.craftingStorage64k = crafting.block( "crafting_storage_64k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_64K ) ) .item( ItemCraftingStorage::new ) - .tileEntity( TileCraftingStorageTile.TileCraftingStorageTile64k.class ) + .tileEntity( TileCraftingStorageTile.class ) .rendering( new CraftingCubeRendering( "crafting_storage_64k", CraftingUnitType.STORAGE_64K ) ) .useCustomItemModel() .build(); @@ -468,7 +490,8 @@ public final class ApiBlocks implements IBlocks this.multiPart = registry.block( "cable_bus", BlockCableBus::new ) .rendering( new CableBusRendering( partModels ) ) - .tileEntity( TileCableBus.class ) + // (handled in BlockCableBus.java and its setupTile()) + // .tileEntity( TileCableBus.class ) .postInit( ( block, item ) -> { ( (BlockCableBus) block ).setupTile(); @@ -504,6 +527,44 @@ public final class ApiBlocks implements IBlocks .tileEntity( TileCubeGenerator.class ) .useCustomItemModel() .build(); + + + this.registerTileEntity( TileSkyChest.class, "sky_stone_chest" ); + this.registerTileEntity( TileSkyCompass.class, "sky_compass" ); + this.registerTileEntity( TileGrinder.class, "grindstone" ); + this.registerTileEntity( TileCrank.class, "crank" ); + this.registerTileEntity( TileInscriber.class, "inscriber" ); + this.registerTileEntity( TileWireless.class, "wireless_access_point" ); + this.registerTileEntity( TileCharger.class, "charger" ); + this.registerTileEntity( TileSecurityStation.class, "security_station" ); + this.registerTileEntity( TileQuantumBridge.class, "quantum_ring" ); + this.registerTileEntity( TileSpatialPylon.class, "spatial_pylon" ); + this.registerTileEntity( TileSpatialIOPort.class, "spatial_io_port" ); + this.registerTileEntity( TileController.class, "controller" ); + this.registerTileEntity( TileDrive.class, "drive" ); + this.registerTileEntity( TileChest.class, "chest" ); + this.registerTileEntity( TileInterface.class, "interface" ); + this.registerTileEntity( TileCellWorkbench.class, "cell_workbench" ); + this.registerTileEntity( TileIOPort.class, "io_port" ); + this.registerTileEntity( TileCondenser.class, "condenser" ); + this.registerTileEntity( TileEnergyAcceptor.class, "energy_acceptor" ); + this.registerTileEntity( TileVibrationChamber.class, "vibration_chamber" ); + this.registerTileEntity( TileQuartzGrowthAccelerator.class, "quartz_growth_accelerator" ); + this.registerTileEntity( TileEnergyCell.class, "energy_cell" ); + this.registerTileEntity( TileDenseEnergyCell.class, "dense_energy_cell" ); + this.registerTileEntity( TileCreativeEnergyCell.class, "creative_energy_cell" ); + this.registerTileEntity( TileCraftingTile.class, "crafting_unit" ); + this.registerTileEntity( TileCraftingStorageTile.class, "crafting_storage" ); + this.registerTileEntity( TileCraftingMonitorTile.class, "crafting_monitor" ); + this.registerTileEntity( TileMolecularAssembler.class, "molecular_assembler" ); + this.registerTileEntity( TileLightDetector.class, "light_detector" ); + this.registerTileEntity( TilePaint.class, "paint" ); + // This is handled by TileCableBus.java + // this.registerTileEntity( TileCableBus.class, "cable_bus" ); + this.registerTileEntity( TileItemGen.class, "debug_item_gen" ); + this.registerTileEntity( TileChunkLoader.class, "debug_chunk_loader" ); + this.registerTileEntity( TilePhantomNode.class, "debug_phantom_node" ); + this.registerTileEntity( TileCubeGenerator.class, "debug_cube_gen" ); } private static IBlockDefinition makeSlab( String slabId, String doubleSlabId, FeatureFactory registry, IBlockDefinition blockDef ) diff --git a/src/main/java/appeng/me/cache/CraftingGridCache.java b/src/main/java/appeng/me/cache/CraftingGridCache.java index 5168e297..445d3ffe 100644 --- a/src/main/java/appeng/me/cache/CraftingGridCache.java +++ b/src/main/java/appeng/me/cache/CraftingGridCache.java @@ -305,27 +305,17 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper { this.craftingCPUClusters.clear(); - IMachineSet machineSets[] = new IMachineSet[4]; // 4 because we have 4 types of Storage Tiles ATM. - - machineSets[0] = this.grid.getMachines( TileCraftingStorageTile.TileCraftingStorageTile1k.class ); - machineSets[1] = this.grid.getMachines( TileCraftingStorageTile.TileCraftingStorageTile4k.class ); - machineSets[2] = this.grid.getMachines( TileCraftingStorageTile.TileCraftingStorageTile16k.class ); - machineSets[3] = this.grid.getMachines( TileCraftingStorageTile.TileCraftingStorageTile64k.class ); - - for ( IMachineSet ms : machineSets ) + for( final IGridNode cst : this.grid.getMachines( TileCraftingStorageTile.class ) ) { - for( final IGridNode cst : ms ) + final TileCraftingStorageTile tile = (TileCraftingStorageTile) cst.getMachine(); + final CraftingCPUCluster cluster = (CraftingCPUCluster) tile.getCluster(); + if( cluster != null ) { - final TileCraftingStorageTile tile = (TileCraftingStorageTile) cst.getMachine(); - final CraftingCPUCluster cluster = (CraftingCPUCluster) tile.getCluster(); - if( cluster != null ) - { - this.craftingCPUClusters.add( cluster ); + this.craftingCPUClusters.add( cluster ); - if( cluster.getLastCraftingLink() != null ) - { - this.addLink( (CraftingLink) cluster.getLastCraftingLink() ); - } + if( cluster.getLastCraftingLink() != null ) + { + this.addLink( (CraftingLink) cluster.getLastCraftingLink() ); } } } diff --git a/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java b/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java index 14f56cc0..c48a885c 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java @@ -32,34 +32,6 @@ public class TileCraftingStorageTile extends TileCraftingTile { private static final int KILO_SCALAR = 1024; - public static class TileCraftingStorageTile1k extends TileCraftingStorageTile - { - public TileCraftingStorageTile1k() { - super(); - } - } - - public static class TileCraftingStorageTile4k extends TileCraftingStorageTile - { - public TileCraftingStorageTile4k() { - super(); - } - } - - public static class TileCraftingStorageTile16k extends TileCraftingStorageTile - { - public TileCraftingStorageTile16k() { - super(); - } - } - - public static class TileCraftingStorageTile64k extends TileCraftingStorageTile - { - public TileCraftingStorageTile64k() { - super(); - } - } - @Override protected ItemStack getItemFromTile( final Object obj ) { diff --git a/src/main/java/appeng/tile/crafting/TileCraftingTile.java b/src/main/java/appeng/tile/crafting/TileCraftingTile.java index 0984e319..38d867c4 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingTile.java @@ -60,13 +60,6 @@ import appeng.util.Platform; public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IPowerChannelState { - public static class TileCraftingTileAccelerator extends TileCraftingTile - { - public TileCraftingTileAccelerator() { - super(); - } - } - private final CraftingCPUCalculator calc = new CraftingCPUCalculator( this ); private NBTTagCompound previousState = null; private boolean isCoreBlock = false; diff --git a/src/main/java/appeng/tile/qnb/TileQuantumBridge.java b/src/main/java/appeng/tile/qnb/TileQuantumBridge.java index 9073891f..b830459c 100644 --- a/src/main/java/appeng/tile/qnb/TileQuantumBridge.java +++ b/src/main/java/appeng/tile/qnb/TileQuantumBridge.java @@ -55,21 +55,6 @@ import appeng.util.Platform; public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock, ITickable { - - public static class TileQuantumBridgeGlass extends TileQuantumBridge - { - public TileQuantumBridgeGlass() { - super(); - } - } - - public static class TileQuantumBridgeRing extends TileQuantumBridge - { - public TileQuantumBridgeRing() { - super(); - } - } - private final byte corner = 16; private final int[] sidesRing = {}; private final int[] sidesLink = { 0 }; diff --git a/src/main/java/appeng/tile/storage/TileSkyChest.java b/src/main/java/appeng/tile/storage/TileSkyChest.java index 58a3a54f..fc2b9327 100644 --- a/src/main/java/appeng/tile/storage/TileSkyChest.java +++ b/src/main/java/appeng/tile/storage/TileSkyChest.java @@ -39,20 +39,6 @@ import appeng.tile.inventory.InvOperation; public class TileSkyChest extends AEBaseInvTile implements ITickable { - public static class TileSkyChestSmooth extends TileSkyChest - { - public TileSkyChestSmooth() { - super(); - } - } - - public static class TileSkyChestStone extends TileSkyChest - { - public TileSkyChestStone() { - super(); - } - } - private final int[] sides = { 0, 1,