Fixed stairs

This commit is contained in:
thatsIch
2015-09-29 15:47:55 +02:00
parent 8b921a7b79
commit 59dbfb1452
169 changed files with 1470 additions and 1095 deletions
@@ -47,7 +47,8 @@ public final class AEBlockFeatureHandler implements IFeatureHandler
this.featured = featured;
this.extractor = new FeatureNameExtractor( featured.getClass(), subName );
this.enabled = state == ActivityState.Enabled;
this.definition = new BlockDefinition( featured, state );
// TODO use real identifier
this.definition = new BlockDefinition( featured.getClass().getSimpleName(), featured, state );
}
@Override
@@ -63,25 +64,29 @@ public final class AEBlockFeatureHandler implements IFeatureHandler
}
@Override
public void register(Side side)
public void register( Side side )
{
if( this.enabled )
{
String name = this.extractor.get();
this.featured.setCreativeTab( CreativeTab.instance );
this.featured.setUnlocalizedName( /* "tile." */"appliedenergistics2." + name );
this.featured.setUnlocalizedName( "appliedenergistics2." + name );
this.featured.setBlockTextureName( name );
// Bypass the forge magic with null to register our own itemblock later.
GameRegistry.registerBlock( this.featured, null, name );
GameRegistry.registerItem( this.definition.maybeItem().get(), name );
// register the block/item conversion...
if ( this.definition.maybeItem().isPresent() )
GameData.getBlockItemMap().put( this.featured, this.definition.maybeItem().get() );
if ( side == Side.CLIENT)
CommonHelper.proxy.configureIcon( this.featured, name );
if( this.definition.maybeItem().isPresent() )
{
GameData.getBlockItemMap().put( this.featured, this.definition.maybeItem().get() );
}
if( side == Side.CLIENT )
{
CommonHelper.proxy.configureIcon( this.featured, name );
}
}
}
}
@@ -21,10 +21,13 @@ package appeng.core.features;
import java.util.EnumSet;
import com.google.common.base.Optional;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.fml.common.registry.GameData;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import appeng.api.definitions.ITileDefinition;
import appeng.block.AEBaseTileBlock;
import appeng.block.networking.BlockCableBus;
@@ -32,8 +35,6 @@ import appeng.core.CommonHelper;
import appeng.core.CreativeTab;
import appeng.util.Platform;
import com.google.common.base.Optional;
public final class AECableBusFeatureHandler implements IFeatureHandler
{
@@ -49,7 +50,7 @@ public final class AECableBusFeatureHandler implements IFeatureHandler
this.featured = featured;
this.extractor = new FeatureNameExtractor( featured.getClass(), subName );
this.enabled = state == ActivityState.Enabled;
this.definition = new TileDefinition( featured, state );
this.definition = new TileDefinition( featured.getClass().getSimpleName(), featured, state );
}
@Override
@@ -25,53 +25,111 @@ public enum AEFeature
// is just flat out required by tons of
// important stuff.
CertusQuartzWorldGen( "World" ), MeteoriteWorldGen( "World" ),
DecorativeLights( "World" ), DecorativeQuartzBlocks( "World" ), SkyStoneChests( "World" ), SpawnPressesInMeteorites( "World" ),
GrindStone( "World" ), Flour( "World" ), Inscriber( "World" ),
ChestLoot( "World" ), VillagerTrading( "World" ),
CertusQuartzWorldGen( "World" ),
MeteoriteWorldGen( "World" ),
DecorativeLights( "World" ),
DecorativeQuartzBlocks( "World" ),
SkyStoneChests( "World" ),
SpawnPressesInMeteorites( "World" ),
GrindStone( "World" ),
Flour( "World" ),
Inscriber( "World" ),
ChestLoot( "World" ),
VillagerTrading( "World" ),
TinyTNT( "World" ),
PoweredTools( "ToolsClassifications" ),
CertusQuartzTools( "ToolsClassifications" ),
NetherQuartzTools( "ToolsClassifications" ),
QuartzHoe( "Tools" ), QuartzSpade( "Tools" ), QuartzSword( "Tools" ), QuartzPickaxe( "Tools" ), QuartzAxe( "Tools" ), QuartzKnife( "Tools" ), QuartzWrench( "Tools" ),
QuartzHoe( "Tools" ),
QuartzSpade( "Tools" ),
QuartzSword( "Tools" ),
QuartzPickaxe( "Tools" ),
QuartzAxe( "Tools" ),
QuartzKnife( "Tools" ),
QuartzWrench( "Tools" ),
ChargedStaff( "Tools" ),
EntropyManipulator( "Tools" ),
MatterCannon( "Tools" ),
WirelessAccessTerminal( "Tools" ),
ColorApplicator( "Tools" ),
PaintBalls( "Tools" ),
MeteoriteCompass( "Tools" ),
ChargedStaff( "Tools" ), EntropyManipulator( "Tools" ), MatterCannon( "Tools" ), WirelessAccessTerminal( "Tools" ), ColorApplicator( "Tools" ),
CraftingCPU( "CraftingFeatures" ),
CraftingCPU( "CraftingFeatures" ), PowerGen( "NetworkFeatures" ), Security( "NetworkFeatures" ),
PowerGen( "NetworkFeatures" ),
Security( "NetworkFeatures" ),
SpatialIO( "NetworkFeatures" ),
QuantumNetworkBridge( "NetworkFeatures" ),
Channels( "NetworkFeatures" ),
SpatialIO( "NetworkFeatures" ), QuantumNetworkBridge( "NetworkFeatures" ), Channels( "NetworkFeatures" ),
LevelEmitter( "NetworkBuses" ),
CraftingTerminal( "NetworkBuses" ),
StorageMonitor( "NetworkBuses" ),
P2PTunnel( "NetworkBuses" ),
FormationPlane( "NetworkBuses" ),
AnnihilationPlane( "NetworkBuses" ),
IdentityAnnihilationPlane( "NetworkBuses" ),
ImportBus( "NetworkBuses" ),
ExportBus( "NetworkBuses" ),
StorageBus( "NetworkBuses" ),
PartConversionMonitor( "NetworkBuses" ),
LevelEmitter( "NetworkBuses" ), CraftingTerminal( "NetworkBuses" ), StorageMonitor( "NetworkBuses" ), P2PTunnel( "NetworkBuses" ), FormationPlane( "NetworkBuses" ), AnnihilationPlane( "NetworkBuses" ), IdentityAnnihilationPlane( "NetworkBuses" ), ImportBus( "NetworkBuses" ), ExportBus( "NetworkBuses" ), StorageBus( "NetworkBuses" ), PartConversionMonitor( "NetworkBuses" ),
StorageCells( "Storage" ),
MEChest( "Storage" ),
MEDrive( "Storage" ),
IOPort( "Storage" ),
StorageCells( "Storage" ), PortableCell( "PortableCell" ), MEChest( "Storage" ), MEDrive( "Storage" ), IOPort( "Storage" ),
PortableCell( "PortableCell" ),
NetworkTool( "NetworkTool" ),
DenseEnergyCells( "HigherCapacity" ), DenseCables( "HigherCapacity" ),
DenseEnergyCells( "HigherCapacity" ),
DenseCables( "HigherCapacity" ),
P2PTunnelRF( "P2PTunnels" ), P2PTunnelME( "P2PTunnels" ), P2PTunnelItems( "P2PTunnels" ), P2PTunnelRedstone( "P2PTunnels" ), P2PTunnelEU( "P2PTunnels" ), P2PTunnelLiquids( "P2PTunnels" ), P2PTunnelLight( "P2PTunnels" ), P2PTunnelOpenComputers( "P2PTunnels" ),
P2PTunnelRF( "P2PTunnels" ),
P2PTunnelME( "P2PTunnels" ),
P2PTunnelItems( "P2PTunnels" ),
P2PTunnelRedstone( "P2PTunnels" ),
P2PTunnelEU( "P2PTunnels" ),
P2PTunnelLiquids( "P2PTunnels" ),
P2PTunnelLight( "P2PTunnels" ),
P2PTunnelOpenComputers( "P2PTunnels" ),
MassCannonBlockDamage( "BlockFeatures" ), TinyTNTBlockDamage( "BlockFeatures" ), Facades( "Facades" ),
MassCannonBlockDamage( "BlockFeatures" ),
TinyTNTBlockDamage( "BlockFeatures" ),
UnsupportedDeveloperTools( "Misc", false ), Creative( "Misc" ),
Facades( "Facades" ),
GrinderLogging( "Misc", false ), Logging( "Misc" ), IntegrationLogging( "Misc", false ), WebsiteRecipes( "Misc", false ),
UnsupportedDeveloperTools( "Misc", false ),
Creative( "Misc" ),
GrinderLogging( "Misc", false ),
Logging( "Misc" ),
IntegrationLogging( "Misc", false ),
WebsiteRecipes( "Misc", false ),
UpdateLogging( "Misc", false ),
PacketLogging( "Misc", false ),
CraftingLog( "Misc", false ),
LightDetector( "Misc" ),
LogSecurityAudits( "Misc", false ),
Achievements( "Misc" ),
enableFacadeCrafting( "Crafting" ), inWorldSingularity( "Crafting" ), inWorldFluix( "Crafting" ), inWorldPurification( "Crafting" ), UpdateLogging( "Misc", false ),
enableFacadeCrafting( "Crafting" ),
inWorldSingularity( "Crafting" ),
inWorldFluix( "Crafting" ),
inWorldPurification( "Crafting" ),
InterfaceTerminal( "Crafting" ),
AlphaPass( "Rendering" ), PaintBalls( "Tools" ), PacketLogging( "Misc", false ), CraftingLog( "Misc", false ), InterfaceTerminal( "Crafting" ), LightDetector( "Misc" ),
AlphaPass( "Rendering" ),
enableDisassemblyCrafting( "Crafting" ), MolecularAssembler( "CraftingFeatures" ), MeteoriteCompass( "Tools" ), Patterns( "CraftingFeatures" ),
MolecularAssembler( "CraftingFeatures" ),
ChunkLoggerTrace( "Commands", false ), LogSecurityAudits( "Misc", false ), Achievements( "Misc" );
enableDisassemblyCrafting( "Crafting" ),
Patterns( "CraftingFeatures" ),
ChunkLoggerTrace( "Commands", false );
public final String category;
public final boolean isVisible;
@@ -79,7 +137,7 @@ public enum AEFeature
AEFeature( String cat )
{
this(cat, true);
this( cat, true );
}
AEFeature( String cat, boolean defaultValue )
@@ -21,17 +21,18 @@ package appeng.core.features;
import java.util.EnumSet;
import com.google.common.base.Optional;
import net.minecraftforge.fml.common.registry.GameData;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import appeng.api.definitions.ITileDefinition;
import appeng.block.AEBaseTileBlock;
import appeng.core.CommonHelper;
import appeng.core.CreativeTab;
import appeng.util.Platform;
import com.google.common.base.Optional;
public final class AETileBlockFeatureHandler implements IFeatureHandler
{
@@ -47,7 +48,7 @@ public final class AETileBlockFeatureHandler implements IFeatureHandler
this.featured = featured;
this.extractor = new FeatureNameExtractor( featured.getClass(), subName );
this.enabled = state == ActivityState.Enabled;
this.definition = new TileDefinition( featured, state );
this.definition = new TileDefinition( featured.getClass().getSimpleName(), featured, state );
}
@Override
@@ -63,7 +64,7 @@ public final class AETileBlockFeatureHandler implements IFeatureHandler
}
@Override
public void register(Side side)
public void register( Side side )
{
if( this.enabled )
{
@@ -82,15 +83,19 @@ public final class AETileBlockFeatureHandler implements IFeatureHandler
// Bypass the forge magic with null to register our own itemblock later.
GameRegistry.registerBlock( this.featured, null, registryName );
GameRegistry.registerItem( this.definition.maybeItem().get(), registryName );
// register the block/item conversion...
if ( this.featured != null && this.definition.maybeItem().isPresent() )
GameData.getBlockItemMap().put( this.featured, this.definition.maybeItem().get() );
if( this.definition.maybeItem().isPresent() )
{
GameData.getBlockItemMap().put( this.featured, this.definition.maybeItem().get() );
}
GameRegistry.registerTileEntity( this.featured.getTileEntityClass(), this.featured.toString() );
if ( side == Side.CLIENT)
CommonHelper.proxy.configureIcon( this.featured, name );
if( side == Side.CLIENT )
{
CommonHelper.proxy.configureIcon( this.featured, name );
}
}
}
}
@@ -21,28 +21,29 @@ package appeng.core.features;
import java.lang.reflect.Constructor;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.ObjectArrays;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess;
import appeng.api.definitions.IBlockDefinition;
import appeng.block.AEBaseBlock;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.ObjectArrays;
public class BlockDefinition extends ItemDefinition implements IBlockDefinition
{
private final Block block;
private final boolean enabled;
public BlockDefinition( Block block, ActivityState state )
public BlockDefinition( final String identifier, Block block, ActivityState state )
{
super( constructItemFromBlock( block ), state );
super( identifier, constructItemFromBlock( block ), state );
Preconditions.checkNotNull( block );
Preconditions.checkNotNull( state );
@@ -21,23 +21,35 @@ package appeng.core.features;
import javax.annotation.Nonnull;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess;
import appeng.api.definitions.IItemDefinition;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import appeng.api.definitions.IItemDefinition;
public final class DamagedItemDefinition implements IItemDefinition
{
private final String identifier;
private final IStackSrc source;
public DamagedItemDefinition( @Nonnull IStackSrc source )
public DamagedItemDefinition( @Nonnull String identifier, @Nonnull IStackSrc source )
{
this.source = Preconditions.checkNotNull( source );
Preconditions.checkNotNull( identifier );
Preconditions.checkArgument( !identifier.isEmpty() );
Preconditions.checkNotNull( source );
this.identifier = identifier;
this.source = source;
}
@Nonnull
@Override
public String identifier()
{
return this.identifier;
}
@Override
@@ -59,11 +71,7 @@ public final class DamagedItemDefinition implements IItemDefinition
@Override
public boolean isSameAs( ItemStack comparableStack )
{
if( comparableStack == null )
{
return false;
}
return comparableStack.getItem() == this.source.getItem() && comparableStack.getItemDamage() == this.source.getDamage();
// is available && is same item && has same damage
return comparableStack != null && comparableStack.getItem() == this.source.getItem() && comparableStack.getItemDamage() == this.source.getDamage();
}
}
@@ -19,6 +19,8 @@
package appeng.core.features;
import javax.annotation.Nonnull;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
@@ -31,18 +33,29 @@ import appeng.util.Platform;
public class ItemDefinition implements IItemDefinition
{
private final String identifier;
private final Item item;
private final boolean enabled;
public ItemDefinition( Item item, ActivityState state )
public ItemDefinition( String identifier, Item item, ActivityState state )
{
Preconditions.checkNotNull( identifier );
Preconditions.checkArgument( !identifier.isEmpty() );
Preconditions.checkNotNull( item );
Preconditions.checkNotNull( state );
this.identifier = identifier;
this.item = item;
this.enabled = state == ActivityState.Enabled;
}
@Nonnull
@Override
public String identifier()
{
return this.identifier;
}
@Override
public final Optional<Item> maybeItem()
{
@@ -48,7 +48,7 @@ public final class ItemFeatureHandler implements IFeatureHandler
this.item = item;
this.extractor = new FeatureNameExtractor( featured.getClass(), subName );
this.enabled = state == ActivityState.Enabled;
this.definition = new ItemDefinition( item, state );
this.definition = new ItemDefinition( item.getClass().getSimpleName(), item, state );
}
@Override
@@ -72,7 +72,7 @@ public final class ItemFeatureHandler implements IFeatureHandler
String itemPhysicalName = name;
//this.item.setTextureName( "appliedenergistics2:" + name );
this.item.setUnlocalizedName( /* "item." */"appliedenergistics2." + name );
this.item.setUnlocalizedName( "appliedenergistics2." + name );
if( this.item instanceof ItemFacade )
{
@@ -24,10 +24,13 @@ import java.util.EnumSet;
import com.google.common.base.Optional;
import net.minecraft.block.BlockStairs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import appeng.api.definitions.IBlockDefinition;
import appeng.core.CommonHelper;
import appeng.core.CreativeTab;
@@ -45,7 +48,7 @@ public class StairBlockFeatureHandler implements IFeatureHandler
this.stairs = stairs;
this.extractor = new FeatureNameExtractor( stairs.getClass(), subName );
this.enabled = state == ActivityState.Enabled;
this.definition = new BlockDefinition( stairs, state );
this.definition = new BlockDefinition( stairs.getClass().getSimpleName(), stairs, state );
}
@Override
@@ -69,8 +72,13 @@ public class StairBlockFeatureHandler implements IFeatureHandler
this.stairs.setCreativeTab( CreativeTab.instance );
this.stairs.setUnlocalizedName( "appliedenergistics2." + name );
// "tile." +
GameRegistry.registerBlock( this.stairs, name );
if( side == Side.CLIENT )
{
final Item item = ItemBlock.getItemFromBlock( this.stairs );
CommonHelper.proxy.configureIcon( item, name );
}
}
}
}
@@ -19,25 +19,26 @@
package appeng.core.features;
import net.minecraft.tileentity.TileEntity;
import appeng.api.definitions.ITileDefinition;
import appeng.block.AEBaseTileBlock;
import javax.annotation.Nonnull;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import net.minecraft.tileentity.TileEntity;
import appeng.api.definitions.ITileDefinition;
import appeng.block.AEBaseTileBlock;
public final class TileDefinition extends BlockDefinition implements ITileDefinition
{
private final AEBaseTileBlock block;
public TileDefinition( AEBaseTileBlock block, ActivityState state )
public TileDefinition( @Nonnull final String identifier, AEBaseTileBlock block, ActivityState state )
{
super( block, state );
super( identifier, block, state );
Preconditions.checkNotNull( block );
Preconditions.checkNotNull( state );
Preconditions.checkNotNull( block.getTileEntityClass() );
this.block = block;
}