First attempt at combining the Block registration and TE registration whilst still keeping support for addons.
It might need some refinement in the future.
This commit is contained in:
parent
c91b432e09
commit
458356a2be
10 changed files with 214 additions and 119 deletions
|
@ -9,7 +9,7 @@ aebasename=appliedenergistics2
|
||||||
#########################################################
|
#########################################################
|
||||||
minecraft_version=1.12
|
minecraft_version=1.12
|
||||||
mcp_mappings=snapshot_20170704
|
mcp_mappings=snapshot_20170704
|
||||||
forge_version=14.21.1.2395
|
forge_version=14.21.1.2412
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Installable #
|
# Installable #
|
||||||
|
|
|
@ -100,6 +100,7 @@ public class BlockCableBus extends AEBaseTileBlock
|
||||||
|
|
||||||
// this will actually be overwritten later through setupTile and the
|
// this will actually be overwritten later through setupTile and the
|
||||||
// combined layers
|
// combined layers
|
||||||
|
this.setTileEntity( TileCableBus.class );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -29,6 +29,7 @@ import java.util.function.Supplier;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import appeng.bootstrap.definitions.TileEntityDefinition;
|
||||||
import appeng.core.Registration;
|
import appeng.core.Registration;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
@ -76,7 +77,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
|
|
||||||
private CreativeTabs creativeTab = CreativeTab.instance;
|
private CreativeTabs creativeTab = CreativeTab.instance;
|
||||||
|
|
||||||
private Class<? extends AEBaseTile> teClass;
|
private TileEntityDefinition tileEntityDefinition;
|
||||||
|
|
||||||
private boolean disableItem = false;
|
private boolean disableItem = false;
|
||||||
|
|
||||||
|
@ -156,9 +157,9 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBlockBuilder tileEntity( Class<? extends AEBaseTile> tileEntityClass )
|
public IBlockBuilder tileEntity( TileEntityDefinition tileEntityDefinition )
|
||||||
{
|
{
|
||||||
teClass = tileEntityClass;
|
this.tileEntityDefinition = tileEntityDefinition;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,6 +204,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
@Override
|
@Override
|
||||||
public <T extends IBlockDefinition> T build()
|
public <T extends IBlockDefinition> T build()
|
||||||
{
|
{
|
||||||
|
System.out.println("regName = " + registryName);
|
||||||
if( !AEConfig.instance().areFeaturesEnabled( features ) )
|
if( !AEConfig.instance().areFeaturesEnabled( features ) )
|
||||||
{
|
{
|
||||||
return (T) new TileDefinition( registryName, null, null );
|
return (T) new TileDefinition( registryName, null, null );
|
||||||
|
@ -238,9 +240,15 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
postInitCallbacks.forEach( consumer -> factory.addPostInit( side -> consumer.accept( block, item ) ) );
|
postInitCallbacks.forEach( consumer -> factory.addPostInit( side -> consumer.accept( block, item ) ) );
|
||||||
|
|
||||||
|
|
||||||
if ( teClass != null && block instanceof AEBaseTileBlock )
|
|
||||||
|
if ( tileEntityDefinition != null && block instanceof AEBaseTileBlock )
|
||||||
{
|
{
|
||||||
((AEBaseTileBlock) block).setTileEntity( teClass );
|
( (AEBaseTileBlock) block ).setTileEntity( tileEntityDefinition.getTileEntityClass() );
|
||||||
|
if( tileEntityDefinition.getName() == null )
|
||||||
|
{
|
||||||
|
tileEntityDefinition.setName( registryName );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Platform.isClient() )
|
if( Platform.isClient() )
|
||||||
|
@ -264,9 +272,14 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
if( block instanceof AEBaseTileBlock )
|
if( block instanceof AEBaseTileBlock )
|
||||||
{
|
{
|
||||||
factory.addPreInit( side -> {
|
factory.addPreInit( side -> {
|
||||||
AEBaseTile.registerTileItem( teClass, new BlockStackSrc( block, 0, ActivityState.Enabled ) );
|
AEBaseTile.registerTileItem( tileEntityDefinition == null ? ( (AEBaseTileBlock) block ).getTileEntityClass() : tileEntityDefinition.getTileEntityClass(), new BlockStackSrc( block, 0, ActivityState.Enabled ) );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
if( tileEntityDefinition != null )
|
||||||
|
{
|
||||||
|
factory.tileEntityComponent.addTileEntity( tileEntityDefinition );
|
||||||
|
}
|
||||||
|
|
||||||
return (T) new TileDefinition( registryName, (AEBaseTileBlock) block, item );
|
return (T) new TileDefinition( registryName, (AEBaseTileBlock) block, item );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -23,7 +23,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import appeng.bootstrap.components.ModelRegComponent;
|
import appeng.bootstrap.components.*;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraftforge.client.model.IModel;
|
import net.minecraftforge.client.model.IModel;
|
||||||
|
@ -33,11 +33,6 @@ import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
import appeng.api.definitions.IItemDefinition;
|
import appeng.api.definitions.IItemDefinition;
|
||||||
import appeng.api.util.AEColor;
|
import appeng.api.util.AEColor;
|
||||||
import appeng.api.util.AEColoredItemDefinition;
|
import appeng.api.util.AEColoredItemDefinition;
|
||||||
import appeng.bootstrap.components.BuiltInModelComponent;
|
|
||||||
import appeng.bootstrap.components.InitComponent;
|
|
||||||
import appeng.bootstrap.components.ModelOverrideComponent;
|
|
||||||
import appeng.bootstrap.components.PostInitComponent;
|
|
||||||
import appeng.bootstrap.components.PreInitComponent;
|
|
||||||
import appeng.core.features.AEFeature;
|
import appeng.core.features.AEFeature;
|
||||||
import appeng.core.features.ActivityState;
|
import appeng.core.features.ActivityState;
|
||||||
import appeng.core.features.ColoredItemDefinition;
|
import appeng.core.features.ColoredItemDefinition;
|
||||||
|
@ -58,11 +53,16 @@ public class FeatureFactory
|
||||||
@SideOnly( Side.CLIENT )
|
@SideOnly( Side.CLIENT )
|
||||||
private BuiltInModelComponent builtInModelComponent;
|
private BuiltInModelComponent builtInModelComponent;
|
||||||
|
|
||||||
|
public final TileEntityComponent tileEntityComponent;
|
||||||
|
|
||||||
public FeatureFactory()
|
public FeatureFactory()
|
||||||
{
|
{
|
||||||
this.defaultFeatures = new AEFeature[] { AEFeature.CORE };
|
this.defaultFeatures = new AEFeature[] { AEFeature.CORE };
|
||||||
this.bootstrapComponents = new ArrayList<>();
|
this.bootstrapComponents = new ArrayList<>();
|
||||||
|
|
||||||
|
this.tileEntityComponent = new TileEntityComponent();
|
||||||
|
this.bootstrapComponents.add( tileEntityComponent );
|
||||||
|
|
||||||
if( Platform.isClient() )
|
if( Platform.isClient() )
|
||||||
{
|
{
|
||||||
modelOverrideComponent = new ModelOverrideComponent();
|
modelOverrideComponent = new ModelOverrideComponent();
|
||||||
|
@ -77,6 +77,7 @@ public class FeatureFactory
|
||||||
{
|
{
|
||||||
this.defaultFeatures = defaultFeatures.clone();
|
this.defaultFeatures = defaultFeatures.clone();
|
||||||
this.bootstrapComponents = parent.bootstrapComponents;
|
this.bootstrapComponents = parent.bootstrapComponents;
|
||||||
|
this.tileEntityComponent = parent.tileEntityComponent;
|
||||||
if( Platform.isClient() )
|
if( Platform.isClient() )
|
||||||
{
|
{
|
||||||
this.modelOverrideComponent = parent.modelOverrideComponent;
|
this.modelOverrideComponent = parent.modelOverrideComponent;
|
||||||
|
|
|
@ -22,7 +22,7 @@ package appeng.bootstrap;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import appeng.tile.AEBaseTile;
|
import appeng.bootstrap.definitions.TileEntityDefinition;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
|
@ -48,7 +48,7 @@ public interface IBlockBuilder
|
||||||
|
|
||||||
IBlockBuilder rendering( BlockRenderingCustomizer callback );
|
IBlockBuilder rendering( BlockRenderingCustomizer callback );
|
||||||
|
|
||||||
IBlockBuilder tileEntity( Class<? extends AEBaseTile> teClass );
|
IBlockBuilder tileEntity( TileEntityDefinition tileEntityDefinition );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't register an item for this block.
|
* Don't register an item for this block.
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
package appeng.bootstrap.components;
|
||||||
|
|
||||||
|
import appeng.bootstrap.definitions.TileEntityDefinition;
|
||||||
|
import appeng.core.AppEng;
|
||||||
|
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author GuntherDW
|
||||||
|
*/
|
||||||
|
public class TileEntityComponent implements PreInitComponent
|
||||||
|
{
|
||||||
|
private List<TileEntityDefinition> tileEntityDefinitions = new ArrayList<>();
|
||||||
|
|
||||||
|
public TileEntityComponent()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addTileEntity( TileEntityDefinition tileEntityDefinition )
|
||||||
|
{
|
||||||
|
if( !tileEntityDefinitions.contains( tileEntityDefinition ) )
|
||||||
|
{
|
||||||
|
tileEntityDefinitions.add( tileEntityDefinition );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void preInitialize( Side side )
|
||||||
|
{
|
||||||
|
for( TileEntityDefinition tileEntityDefinition : tileEntityDefinitions )
|
||||||
|
{
|
||||||
|
if ( !tileEntityDefinition.isRegistered() )
|
||||||
|
{
|
||||||
|
GameRegistry.registerTileEntity( tileEntityDefinition.getTileEntityClass(), AppEng.MOD_ID + ":" + tileEntityDefinition.getName() );
|
||||||
|
tileEntityDefinition.setRegistered( true );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
/*
|
||||||
|
* This file is part of Applied Energistics 2.
|
||||||
|
* Copyright (c) 2013 - 2017, 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 <http://www.gnu.org/licenses/lgpl>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package appeng.bootstrap.definitions;
|
||||||
|
|
||||||
|
import appeng.tile.AEBaseTile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author GuntherDW
|
||||||
|
*/
|
||||||
|
public class TileEntityDefinition
|
||||||
|
{
|
||||||
|
|
||||||
|
private final Class<? extends AEBaseTile> tileEntityClass;
|
||||||
|
private String name;
|
||||||
|
private boolean isRegistered = false;
|
||||||
|
|
||||||
|
// This signals the BlockDefinitionBuilder to set the name of the TE to the blockname.
|
||||||
|
public TileEntityDefinition( Class<? extends AEBaseTile> tileEntityClass )
|
||||||
|
{
|
||||||
|
this.tileEntityClass = tileEntityClass;
|
||||||
|
this.name = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TileEntityDefinition( Class<? extends AEBaseTile> tileEntityClass, String optionalName )
|
||||||
|
{
|
||||||
|
this.tileEntityClass = tileEntityClass;
|
||||||
|
this.name = optionalName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Class<? extends AEBaseTile> getTileEntityClass()
|
||||||
|
{
|
||||||
|
return tileEntityClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName( String name )
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRegistered()
|
||||||
|
{
|
||||||
|
return isRegistered;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRegistered( boolean registered )
|
||||||
|
{
|
||||||
|
isRegistered = registered;
|
||||||
|
}
|
||||||
|
}
|
|
@ -393,10 +393,10 @@ public final class Registration
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void registerRecipes(RegistryEvent.Register<IRecipe> event)
|
public void registerRecipes(RegistryEvent.Register<IRecipe> event)
|
||||||
{
|
{
|
||||||
IForgeRegistry<IRecipe> registry = event.getRegistry();
|
final IForgeRegistry<IRecipe> registry = event.getRegistry();
|
||||||
|
|
||||||
Api api = Api.INSTANCE;
|
final Api api = Api.INSTANCE;
|
||||||
ApiDefinitions definitions = api.definitions();
|
final ApiDefinitions definitions = api.definitions();
|
||||||
|
|
||||||
// Perform ore camouflage!
|
// Perform ore camouflage!
|
||||||
ItemMaterial.instance.makeUnique();
|
ItemMaterial.instance.makeUnique();
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
package appeng.core.api.definitions;
|
package appeng.core.api.definitions;
|
||||||
|
|
||||||
|
|
||||||
import appeng.core.AELog;
|
import appeng.bootstrap.definitions.TileEntityDefinition;
|
||||||
import appeng.debug.TileChunkLoader;
|
import appeng.debug.TileChunkLoader;
|
||||||
import appeng.debug.TileCubeGenerator;
|
import appeng.debug.TileCubeGenerator;
|
||||||
import appeng.debug.TileItemGen;
|
import appeng.debug.TileItemGen;
|
||||||
|
@ -41,7 +41,6 @@ import appeng.tile.misc.TileQuartzGrowthAccelerator;
|
||||||
import appeng.tile.misc.TileSecurityStation;
|
import appeng.tile.misc.TileSecurityStation;
|
||||||
import appeng.tile.misc.TileSkyCompass;
|
import appeng.tile.misc.TileSkyCompass;
|
||||||
import appeng.tile.misc.TileVibrationChamber;
|
import appeng.tile.misc.TileVibrationChamber;
|
||||||
import appeng.tile.networking.TileCableBus;
|
|
||||||
import appeng.tile.networking.TileController;
|
import appeng.tile.networking.TileController;
|
||||||
import appeng.tile.networking.TileCreativeEnergyCell;
|
import appeng.tile.networking.TileCreativeEnergyCell;
|
||||||
import appeng.tile.networking.TileDenseEnergyCell;
|
import appeng.tile.networking.TileDenseEnergyCell;
|
||||||
|
@ -156,10 +155,6 @@ import appeng.decorative.solid.BlockSkyStone.SkystoneType;
|
||||||
import appeng.decorative.stair.BlockStairCommon;
|
import appeng.decorative.stair.BlockStairCommon;
|
||||||
import appeng.hooks.DispenserBehaviorTinyTNT;
|
import appeng.hooks.DispenserBehaviorTinyTNT;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal implementation for the API blocks
|
* Internal implementation for the API blocks
|
||||||
*/
|
*/
|
||||||
|
@ -240,22 +235,6 @@ public final class ApiBlocks implements IBlocks
|
||||||
private final IBlockDefinition phantomNode;
|
private final IBlockDefinition phantomNode;
|
||||||
private final IBlockDefinition cubeGenerator;
|
private final IBlockDefinition cubeGenerator;
|
||||||
|
|
||||||
// private List<Class<? extends TileEntity>> registeredClasses = new ArrayList<Class<? extends TileEntity>>();
|
|
||||||
|
|
||||||
private void registerTileEntity( Class<? extends TileEntity> 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 )
|
public ApiBlocks( FeatureFactory registry, PartModels partModels )
|
||||||
{
|
{
|
||||||
// this.quartzOre = new BlockDefinition( "ore.quartz", new OreQuartz() );
|
// this.quartzOre = new BlockDefinition( "ore.quartz", new OreQuartz() );
|
||||||
|
@ -308,39 +287,42 @@ public final class ApiBlocks implements IBlocks
|
||||||
|
|
||||||
this.skyStoneChest = registry.block( "sky_stone_chest", () -> new BlockSkyChest( SkyChestType.STONE ) )
|
this.skyStoneChest = registry.block( "sky_stone_chest", () -> new BlockSkyChest( SkyChestType.STONE ) )
|
||||||
.features( AEFeature.SKY_STONE_CHESTS )
|
.features( AEFeature.SKY_STONE_CHESTS )
|
||||||
.tileEntity( TileSkyChest.class )
|
.tileEntity( new TileEntityDefinition( TileSkyChest.class, "sky_stone_chest" ) )
|
||||||
.rendering( new SkyChestRenderingCustomizer( SkyChestType.STONE ) )
|
.rendering( new SkyChestRenderingCustomizer( SkyChestType.STONE ) )
|
||||||
.build();
|
.build();
|
||||||
this.smoothSkyStoneChest = registry.block( "smooth_sky_stone_chest", () -> new BlockSkyChest( SkyChestType.BLOCK ) )
|
this.smoothSkyStoneChest = registry.block( "smooth_sky_stone_chest", () -> new BlockSkyChest( SkyChestType.BLOCK ) )
|
||||||
.features( AEFeature.SKY_STONE_CHESTS )
|
.features( AEFeature.SKY_STONE_CHESTS )
|
||||||
.tileEntity( TileSkyChest.class )
|
.tileEntity( new TileEntityDefinition( TileSkyChest.class, "sky_stone_chest" ) )
|
||||||
.rendering( new SkyChestRenderingCustomizer( SkyChestType.BLOCK ) )
|
.rendering( new SkyChestRenderingCustomizer( SkyChestType.BLOCK ) )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
this.skyCompass = registry.block( "sky_compass", BlockSkyCompass::new )
|
this.skyCompass = registry.block( "sky_compass", BlockSkyCompass::new )
|
||||||
.features( AEFeature.METEORITE_COMPASS )
|
.features( AEFeature.METEORITE_COMPASS )
|
||||||
.tileEntity( TileSkyCompass.class )
|
.tileEntity( new TileEntityDefinition( TileSkyCompass.class ) )
|
||||||
.rendering( new SkyCompassRendering() )
|
.rendering( new SkyCompassRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.grindstone = registry.block( "grindstone", BlockGrinder::new ).features( AEFeature.GRIND_STONE ).tileEntity( TileGrinder.class ).build();
|
this.grindstone = registry.block( "grindstone", BlockGrinder::new )
|
||||||
|
.features( AEFeature.GRIND_STONE )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileGrinder.class ) )
|
||||||
|
.build();
|
||||||
this.crank = registry.block( "crank", BlockCrank::new )
|
this.crank = registry.block( "crank", BlockCrank::new )
|
||||||
.features( AEFeature.GRIND_STONE )
|
.features( AEFeature.GRIND_STONE )
|
||||||
.tileEntity( TileCrank.class )
|
.tileEntity( new TileEntityDefinition( TileCrank.class ) )
|
||||||
.rendering( new CrankRendering() )
|
.rendering( new CrankRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.inscriber = registry.block( "inscriber", BlockInscriber::new )
|
this.inscriber = registry.block( "inscriber", BlockInscriber::new )
|
||||||
.features( AEFeature.INSCRIBER )
|
.features( AEFeature.INSCRIBER )
|
||||||
.tileEntity( TileInscriber.class )
|
.tileEntity( new TileEntityDefinition( TileInscriber.class ) )
|
||||||
.rendering( new InscriberRendering() )
|
.rendering( new InscriberRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.wirelessAccessPoint = registry.block( "wireless_access_point", BlockWireless::new )
|
this.wirelessAccessPoint = registry.block( "wireless_access_point", BlockWireless::new )
|
||||||
.features( AEFeature.WIRELESS_ACCESS_TERMINAL )
|
.features( AEFeature.WIRELESS_ACCESS_TERMINAL )
|
||||||
.tileEntity( TileWireless.class )
|
.tileEntity( new TileEntityDefinition( TileWireless.class ) )
|
||||||
.rendering( new WirelessRendering() )
|
.rendering( new WirelessRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.charger = registry.block( "charger", BlockCharger::new )
|
this.charger = registry.block( "charger", BlockCharger::new )
|
||||||
.features( AEFeature.CHARGER )
|
.features( AEFeature.CHARGER )
|
||||||
.tileEntity( TileCharger.class )
|
.tileEntity( new TileEntityDefinition( TileCharger.class ) )
|
||||||
.rendering( new BlockRenderingCustomizer()
|
.rendering( new BlockRenderingCustomizer()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -360,122 +342,146 @@ public final class ApiBlocks implements IBlocks
|
||||||
.build();
|
.build();
|
||||||
this.securityStation = registry.block( "security_station", BlockSecurityStation::new )
|
this.securityStation = registry.block( "security_station", BlockSecurityStation::new )
|
||||||
.features( AEFeature.SECURITY )
|
.features( AEFeature.SECURITY )
|
||||||
.tileEntity( TileSecurityStation.class )
|
.tileEntity( new TileEntityDefinition( TileSecurityStation.class ) )
|
||||||
.rendering( new SecurityStationRendering() )
|
.rendering( new SecurityStationRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.quantumRing = registry.block( "quantum_ring", BlockQuantumRing::new )
|
this.quantumRing = registry.block( "quantum_ring", BlockQuantumRing::new )
|
||||||
.features( AEFeature.QUANTUM_NETWORK_BRIDGE )
|
.features( AEFeature.QUANTUM_NETWORK_BRIDGE )
|
||||||
.tileEntity( TileQuantumBridge.class )
|
.tileEntity( new TileEntityDefinition( TileQuantumBridge.class, "quantum_ring" ) )
|
||||||
.rendering( new QuantumBridgeRendering() )
|
.rendering( new QuantumBridgeRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.quantumLink = registry.block( "quantum_link", BlockQuantumLinkChamber::new )
|
this.quantumLink = registry.block( "quantum_link", BlockQuantumLinkChamber::new )
|
||||||
.features( AEFeature.QUANTUM_NETWORK_BRIDGE )
|
.features( AEFeature.QUANTUM_NETWORK_BRIDGE )
|
||||||
.tileEntity( TileQuantumBridge.class )
|
.tileEntity( new TileEntityDefinition( TileQuantumBridge.class, "quantum_ring" ) )
|
||||||
.rendering( new QuantumBridgeRendering() )
|
.rendering( new QuantumBridgeRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.spatialPylon = registry.block( "spatial_pylon", BlockSpatialPylon::new )
|
this.spatialPylon = registry.block( "spatial_pylon", BlockSpatialPylon::new )
|
||||||
.features( AEFeature.SPATIAL_IO )
|
.features( AEFeature.SPATIAL_IO )
|
||||||
.tileEntity( TileSpatialPylon.class )
|
.tileEntity( new TileEntityDefinition( TileSpatialPylon.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new SpatialPylonRendering() )
|
.rendering( new SpatialPylonRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.spatialIOPort = registry.block( "spatial_io_port", BlockSpatialIOPort::new ).features( AEFeature.SPATIAL_IO ).tileEntity( TileSpatialIOPort.class ).build();
|
this.spatialIOPort = registry.block( "spatial_io_port", BlockSpatialIOPort::new )
|
||||||
|
.features( AEFeature.SPATIAL_IO )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileSpatialIOPort.class ) )
|
||||||
|
.build();
|
||||||
this.controller = registry.block( "controller", BlockController::new )
|
this.controller = registry.block( "controller", BlockController::new )
|
||||||
.features( AEFeature.CHANNELS )
|
.features( AEFeature.CHANNELS )
|
||||||
.tileEntity( TileController.class )
|
.tileEntity( new TileEntityDefinition( TileController.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new ControllerRendering() )
|
.rendering( new ControllerRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.drive = registry.block( "drive", BlockDrive::new )
|
this.drive = registry.block( "drive", BlockDrive::new )
|
||||||
.features( AEFeature.STORAGE_CELLS, AEFeature.ME_DRIVE )
|
.features( AEFeature.STORAGE_CELLS, AEFeature.ME_DRIVE )
|
||||||
.tileEntity( TileDrive.class )
|
.tileEntity( new TileEntityDefinition( TileDrive.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new DriveRendering() )
|
.rendering( new DriveRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.chest = registry.block( "chest", BlockChest::new )
|
this.chest = registry.block( "chest", BlockChest::new )
|
||||||
.features( AEFeature.STORAGE_CELLS, AEFeature.ME_CHEST )
|
.features( AEFeature.STORAGE_CELLS, AEFeature.ME_CHEST )
|
||||||
.tileEntity( TileChest.class )
|
.tileEntity( new TileEntityDefinition( TileChest.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new ChestRendering() )
|
.rendering( new ChestRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.iface = registry.block( "interface", BlockInterface::new ).features( AEFeature.INTERFACE ).tileEntity( TileInterface.class ).build();
|
this.iface = registry.block( "interface", BlockInterface::new )
|
||||||
this.cellWorkbench = registry.block( "cell_workbench", BlockCellWorkbench::new ).features( AEFeature.STORAGE_CELLS ).tileEntity( TileCellWorkbench.class ).build();
|
.features( AEFeature.INTERFACE )
|
||||||
this.iOPort = registry.block( "io_port", BlockIOPort::new ).features( AEFeature.STORAGE_CELLS, AEFeature.IO_PORT ).tileEntity( TileIOPort.class ).build();
|
.tileEntity( new TileEntityDefinition( TileInterface.class ) )
|
||||||
this.condenser = registry.block( "condenser", BlockCondenser::new ).features( AEFeature.CONDENSER ).tileEntity( TileCondenser.class ).build();
|
.build();
|
||||||
this.energyAcceptor = registry.block( "energy_acceptor", BlockEnergyAcceptor::new ).features( AEFeature.ENERGY_ACCEPTOR ).tileEntity( TileEnergyAcceptor.class ).build();
|
this.cellWorkbench = registry.block( "cell_workbench", BlockCellWorkbench::new )
|
||||||
this.vibrationChamber = registry.block( "vibration_chamber", BlockVibrationChamber::new ).features( AEFeature.POWER_GEN ).tileEntity( TileVibrationChamber.class ).build();
|
.features( AEFeature.STORAGE_CELLS )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileCellWorkbench.class ) )
|
||||||
|
.build();
|
||||||
|
this.iOPort = registry.block( "io_port", BlockIOPort::new )
|
||||||
|
.features( AEFeature.STORAGE_CELLS, AEFeature.IO_PORT )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileIOPort.class ) )
|
||||||
|
.build();
|
||||||
|
this.condenser = registry.block( "condenser", BlockCondenser::new )
|
||||||
|
.features( AEFeature.CONDENSER )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileCondenser.class ) )
|
||||||
|
.build();
|
||||||
|
this.energyAcceptor = registry.block( "energy_acceptor", BlockEnergyAcceptor::new )
|
||||||
|
.features( AEFeature.ENERGY_ACCEPTOR )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileEnergyAcceptor.class ) )
|
||||||
|
.build();
|
||||||
|
this.vibrationChamber = registry.block( "vibration_chamber", BlockVibrationChamber::new )
|
||||||
|
.features( AEFeature.POWER_GEN )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileVibrationChamber.class ) )
|
||||||
|
.build();
|
||||||
this.quartzGrowthAccelerator = registry.block( "quartz_growth_accelerator", BlockQuartzGrowthAccelerator::new )
|
this.quartzGrowthAccelerator = registry.block( "quartz_growth_accelerator", BlockQuartzGrowthAccelerator::new )
|
||||||
.tileEntity( TileQuartzGrowthAccelerator.class )
|
.tileEntity( new TileEntityDefinition( TileQuartzGrowthAccelerator.class ) )
|
||||||
.features( AEFeature.CRYSTAL_GROWTH_ACCELERATOR )
|
.features( AEFeature.CRYSTAL_GROWTH_ACCELERATOR )
|
||||||
.build();
|
.build();
|
||||||
this.energyCell = registry.block( "energy_cell", BlockEnergyCell::new )
|
this.energyCell = registry.block( "energy_cell", BlockEnergyCell::new )
|
||||||
.features( AEFeature.ENERGY_CELLS )
|
.features( AEFeature.ENERGY_CELLS )
|
||||||
.item( AEBaseItemBlockChargeable::new )
|
.item( AEBaseItemBlockChargeable::new )
|
||||||
.tileEntity( TileEnergyCell.class )
|
.tileEntity( new TileEntityDefinition( TileEnergyCell.class ) )
|
||||||
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "energy_cell" ) ) )
|
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "energy_cell" ) ) )
|
||||||
.build();
|
.build();
|
||||||
this.energyCellDense = registry.block( "dense_energy_cell", BlockDenseEnergyCell::new )
|
this.energyCellDense = registry.block( "dense_energy_cell", BlockDenseEnergyCell::new )
|
||||||
.features( AEFeature.ENERGY_CELLS, AEFeature.DENSE_ENERGY_CELLS )
|
.features( AEFeature.ENERGY_CELLS, AEFeature.DENSE_ENERGY_CELLS )
|
||||||
.item( AEBaseItemBlockChargeable::new )
|
.item( AEBaseItemBlockChargeable::new )
|
||||||
.tileEntity( TileDenseEnergyCell.class )
|
.tileEntity( new TileEntityDefinition( TileDenseEnergyCell.class ) )
|
||||||
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "dense_energy_cell" ) ) )
|
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "dense_energy_cell" ) ) )
|
||||||
.build();
|
.build();
|
||||||
this.energyCellCreative = registry.block( "creative_energy_cell", BlockCreativeEnergyCell::new )
|
this.energyCellCreative = registry.block( "creative_energy_cell", BlockCreativeEnergyCell::new )
|
||||||
.features( AEFeature.CREATIVE )
|
.features( AEFeature.CREATIVE )
|
||||||
.item( AEBaseItemBlockChargeable::new )
|
.item( AEBaseItemBlockChargeable::new )
|
||||||
.tileEntity( TileCreativeEnergyCell.class )
|
.tileEntity( new TileEntityDefinition( TileCreativeEnergyCell.class ) )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
FeatureFactory crafting = registry.features( AEFeature.CRAFTING_CPU );
|
FeatureFactory crafting = registry.features( AEFeature.CRAFTING_CPU );
|
||||||
this.craftingUnit = crafting.block( "crafting_unit", () -> new BlockCraftingUnit( CraftingUnitType.UNIT ) )
|
this.craftingUnit = crafting.block( "crafting_unit", () -> new BlockCraftingUnit( CraftingUnitType.UNIT ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_unit", CraftingUnitType.UNIT ) )
|
.rendering( new CraftingCubeRendering( "crafting_unit", CraftingUnitType.UNIT ) )
|
||||||
.tileEntity( TileCraftingTile.class )
|
.tileEntity( new TileEntityDefinition( TileCraftingTile.class, "crafting_unit" ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.craftingAccelerator = crafting.block( "crafting_accelerator", () -> new BlockCraftingUnit( CraftingUnitType.ACCELERATOR ) )
|
this.craftingAccelerator = crafting.block( "crafting_accelerator", () -> new BlockCraftingUnit( CraftingUnitType.ACCELERATOR ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_accelerator", CraftingUnitType.ACCELERATOR ) )
|
.rendering( new CraftingCubeRendering( "crafting_accelerator", CraftingUnitType.ACCELERATOR ) )
|
||||||
.tileEntity( TileCraftingTile.class )
|
.tileEntity( new TileEntityDefinition( TileCraftingTile.class, "crafting_unit" ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.craftingStorage1k = crafting.block( "crafting_storage_1k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_1K ) )
|
this.craftingStorage1k = crafting.block( "crafting_storage_1k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_1K ) )
|
||||||
.item( ItemCraftingStorage::new )
|
.item( ItemCraftingStorage::new )
|
||||||
.tileEntity( TileCraftingStorageTile.class )
|
.tileEntity( new TileEntityDefinition( TileCraftingStorageTile.class, "crafting_storage" ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_storage_1k", CraftingUnitType.STORAGE_1K ) )
|
.rendering( new CraftingCubeRendering( "crafting_storage_1k", CraftingUnitType.STORAGE_1K ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.craftingStorage4k = crafting.block( "crafting_storage_4k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_4K ) )
|
this.craftingStorage4k = crafting.block( "crafting_storage_4k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_4K ) )
|
||||||
.item( ItemCraftingStorage::new )
|
.item( ItemCraftingStorage::new )
|
||||||
.tileEntity( TileCraftingStorageTile.class )
|
.tileEntity( new TileEntityDefinition( TileCraftingStorageTile.class, "crafting_storage" ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_storage_4k", CraftingUnitType.STORAGE_4K ) )
|
.rendering( new CraftingCubeRendering( "crafting_storage_4k", CraftingUnitType.STORAGE_4K ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.craftingStorage16k = crafting.block( "crafting_storage_16k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_16K ) )
|
this.craftingStorage16k = crafting.block( "crafting_storage_16k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_16K ) )
|
||||||
.item( ItemCraftingStorage::new )
|
.item( ItemCraftingStorage::new )
|
||||||
.tileEntity( TileCraftingStorageTile.class )
|
.tileEntity( new TileEntityDefinition( TileCraftingStorageTile.class, "crafting_storage" ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_storage_16k", CraftingUnitType.STORAGE_16K ) )
|
.rendering( new CraftingCubeRendering( "crafting_storage_16k", CraftingUnitType.STORAGE_16K ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.craftingStorage64k = crafting.block( "crafting_storage_64k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_64K ) )
|
this.craftingStorage64k = crafting.block( "crafting_storage_64k", () -> new BlockCraftingStorage( CraftingUnitType.STORAGE_64K ) )
|
||||||
.item( ItemCraftingStorage::new )
|
.item( ItemCraftingStorage::new )
|
||||||
.tileEntity( TileCraftingStorageTile.class )
|
.tileEntity( new TileEntityDefinition( TileCraftingStorageTile.class, "crafting_storage" ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_storage_64k", CraftingUnitType.STORAGE_64K ) )
|
.rendering( new CraftingCubeRendering( "crafting_storage_64k", CraftingUnitType.STORAGE_64K ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.craftingMonitor = crafting.block( "crafting_monitor", BlockCraftingMonitor::new )
|
this.craftingMonitor = crafting.block( "crafting_monitor", BlockCraftingMonitor::new )
|
||||||
.tileEntity( TileCraftingMonitorTile.class )
|
.tileEntity( new TileEntityDefinition( TileCraftingMonitorTile.class ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_monitor", CraftingUnitType.MONITOR ) )
|
.rendering( new CraftingCubeRendering( "crafting_monitor", CraftingUnitType.MONITOR ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
this.molecularAssembler = registry.block( "molecular_assembler", BlockMolecularAssembler::new ).features( AEFeature.MOLECULAR_ASSEMBLER ).tileEntity( TileMolecularAssembler.class ).build();
|
this.molecularAssembler = registry.block( "molecular_assembler", BlockMolecularAssembler::new )
|
||||||
|
.features( AEFeature.MOLECULAR_ASSEMBLER )
|
||||||
|
.tileEntity( new TileEntityDefinition( TileMolecularAssembler.class ) )
|
||||||
|
.build();
|
||||||
this.lightDetector = registry.block( "light_detector", BlockLightDetector::new )
|
this.lightDetector = registry.block( "light_detector", BlockLightDetector::new )
|
||||||
.features( AEFeature.LIGHT_DETECTOR )
|
.features( AEFeature.LIGHT_DETECTOR )
|
||||||
.tileEntity( TileLightDetector.class )
|
.tileEntity( new TileEntityDefinition( TileLightDetector.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.paint = registry.block( "paint", BlockPaint::new )
|
this.paint = registry.block( "paint", BlockPaint::new )
|
||||||
.features( AEFeature.PAINT_BALLS )
|
.features( AEFeature.PAINT_BALLS )
|
||||||
.tileEntity( TilePaint.class )
|
.tileEntity( new TileEntityDefinition( TilePaint.class ) )
|
||||||
.rendering( new PaintRendering() )
|
.rendering( new PaintRendering() )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
@ -509,62 +515,24 @@ public final class ApiBlocks implements IBlocks
|
||||||
|
|
||||||
this.itemGen = registry.block( "debug_item_gen", BlockItemGen::new )
|
this.itemGen = registry.block( "debug_item_gen", BlockItemGen::new )
|
||||||
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.tileEntity( TileItemGen.class )
|
.tileEntity( new TileEntityDefinition ( TileItemGen.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.chunkLoader = registry.block( "debug_chunk_loader", BlockChunkloader::new )
|
this.chunkLoader = registry.block( "debug_chunk_loader", BlockChunkloader::new )
|
||||||
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.tileEntity( TileChunkLoader.class )
|
.tileEntity( new TileEntityDefinition ( TileChunkLoader.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.phantomNode = registry.block( "debug_phantom_node", BlockPhantomNode::new )
|
this.phantomNode = registry.block( "debug_phantom_node", BlockPhantomNode::new )
|
||||||
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.tileEntity( TilePhantomNode.class )
|
.tileEntity( new TileEntityDefinition ( TilePhantomNode.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.cubeGenerator = registry.block( "debug_cube_gen", BlockCubeGenerator::new )
|
this.cubeGenerator = registry.block( "debug_cube_gen", BlockCubeGenerator::new )
|
||||||
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.tileEntity( TileCubeGenerator.class )
|
.tileEntity( new TileEntityDefinition( TileCubeGenerator.class ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.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 )
|
private static IBlockDefinition makeSlab( String slabId, String doubleSlabId, FeatureFactory registry, IBlockDefinition blockDef )
|
||||||
|
|
Loading…
Reference in a new issue