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

View File

@ -1,6 +1,6 @@
/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
* Copyright (c) 2013 - 2015, 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
@ -15,8 +15,7 @@
* 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>.
*/
apply plugin: 'forge'
apply plugin: 'net.minecraftforge.gradle.forge'
apply from: 'gradle/scripts/dependencies.gradle'
apply from: 'gradle/scripts/artifacts.gradle'
@ -28,6 +27,7 @@ buildscript {
repositories {
mavenLocal()
mavenCentral()
jcenter()
maven {
name = "forge"
@ -41,7 +41,7 @@ buildscript {
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT'
}
}
@ -84,7 +84,7 @@ minecraft {
// used when launching minecraft in dev env
runDir = "run"
mappings = "snapshot_20141130"
mappings = "snapshot_20150928"
}
sourceSets {
@ -92,25 +92,17 @@ sourceSets {
java {
srcDirs += 'src/api/java'
srcDirs += 'src/main/java/'
// excludes integration due to not being available upon port
exclude 'appeng/integration/modules/**'
exclude 'appeng/fmp/**'
exclude 'appeng/parts/layers/**'
}
resources {
srcDir "src/main/resources/"
include "assets/appliedenergistics2/recipes/*.recipe",
include "assets/appliedenergistics2/recipes/**/*.recipe",
"assets/appliedenergistics2/recipes/README.html",
"assets/appliedenergistics2/lang/*.lang",
"assets/appliedenergistics2/blockstates/*.json",
"assets/appliedenergistics2/models/block/*.json",
"assets/appliedenergistics2/models/item/*.json",
"assets/appliedenergistics2/textures/blocks/*",
"assets/appliedenergistics2/textures/guis/*",
"assets/appliedenergistics2/textures/models/*",
"assets/appliedenergistics2/textures/items/*",
"assets/appliedenergistics2/blockstates/**/*.json",
"assets/appliedenergistics2/models/**/*.json",
"assets/appliedenergistics2/textures/**/*.png",
"assets/appliedenergistics2/textures/**/*.mcmeta",
"assets/appliedenergistics2/meta/*",
"mcmod.info",
"pack.mcmeta"

View File

@ -1,4 +1,4 @@
aeversion=rv4
aeversion=rv3
aechannel=alpha
aebuild=0
aegroup=appeng
@ -8,12 +8,12 @@ aebasename=appliedenergistics2
# Versions #
#########################################################
minecraft_version=1.8
forge_version=11.14.3.1450
forge_version=11.14.3.1516
#########################################################
# Installable #
#########################################################
waila_version=1.5.10
waila_version=1.6.0_B1
jabba_version=1.2.1a
enderstorage_version=1.4.7.33
translocator_version=1.1.1.14
@ -24,7 +24,7 @@ enderio_version=2.3.0.375_beta
#texpansion_version=4.0.0-176
#tfoundation_version=1.0.0-82
betterstorage_version=0.11.3.123.20
invtweaks_version=1.60-dev-14
invtweaks_version=1.59
#########################################################
# Provided APIs #
@ -34,7 +34,7 @@ code_chicken_lib_version=1.1.2.139
code_chicken_core_version=1.0.5.36
nei_version=1.0.5.104
bc_version=7.0.9
opencomputers_version=1.5.9.21
opencomputers_version=1.5.18.39
#########################################################
# Self Compiled APIs #

View File

@ -10,10 +10,12 @@ task javadocJar(type: Jar, dependsOn: myJavadocs) {
from 'build/docs/javadoc/'
}
/*
task sourceJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
*/
task devJar(type: Jar) {

View File

@ -1,12 +1,13 @@
// searches for NEI and Chicken stuff from compile set
// and adds them to the mods in run dir
task copyChicken(type: Copy, dependsOn: "extractUserDev") {
from { configurations.compile }
include "**/*Chicken*.jar", "**/*NotEnoughItems*.jar"
exclude "**/CodeChickenLib*" // because CCC downloads it anyways.. -_-
into file(minecraft.runDir + "/mods")
mustRunAfter "deobfBinJar"
mustRunAfter "repackMinecraft"
}
tasks.setupDevWorkspace.dependsOn copyChicken
tasks.setupDecompWorkspace.dependsOn copyChicken
// task copyChicken(type: Copy, dependsOn: "extractUserDev") {
// from { configurations.compile }
// include "**/*Chicken*.jar", "**/*NotEnoughItems*.jar"
// exclude "**/CodeChickenLib*" // because CCC downloads it anyways.. -_-
// into file(minecraft.runDir + "/mods")
// mustRunAfter "deobfBinJar"
// mustRunAfter "repackMinecraft"
// }
// tasks.setupDevWorkspace.dependsOn copyChicken
// tasks.setupDecompWorkspace.dependsOn copyChicken

View File

@ -89,7 +89,7 @@ configurations {
dependencies {
// installable
// mods "mcp.mobius.waila:Waila:${waila_version}_${minecraft_version}:dev"
// mods "mcp.mobius.waila:Waila:${waila_version}_1.8.1:dev"
// mods "mcp.mobius.jabba:Jabba:${jabba_version}_${minecraft_version}:dev"
// mods "codechicken:EnderStorage:${minecraft_version}-${enderstorage_version}:dev"
// mods "codechicken:Translocator:${minecraft_version}-${translocator_version}:dev"
@ -105,9 +105,9 @@ dependencies {
// mods name: 'ThermalFoundation', version: "[${minecraft_version}]${tfoundation_version}-dev", ext: 'jar'
// compile "codechicken:ForgeMultipart:${minecraft_version}-${fmp_version}:dev"
compile "codechicken:CodeChickenLib:${minecraft_version}-${code_chicken_lib_version}:dev"
compile "codechicken:CodeChickenCore:${minecraft_version}-${code_chicken_core_version}:dev"
compile "codechicken:NotEnoughItems:${minecraft_version}-${nei_version}:dev"
// compile "codechicken:CodeChickenLib:${minecraft_version}-${code_chicken_lib_version}:dev"
// compile "codechicken:CodeChickenCore:${minecraft_version}-${code_chicken_core_version}:dev"
// compile "codechicken:NotEnoughItems:${minecraft_version}-${nei_version}:dev"
// compile "com.mod-buildcraft:buildcraft:${bc_version}:dev"
// provided APIs

View File

@ -3,5 +3,10 @@ apply plugin: 'idea'
idea {
module {
inheritOutputDirs = true
// excludes integration due to not being available upon port
excludeDirs += file('src/main/java/appeng/integration/modules/')
excludeDirs += file('src/main/java/appeng/fmp/')
excludeDirs += file('src/main/java/appeng/parts/layers/')
}
}

View File

@ -1,5 +1,5 @@
task wrapper(type: Wrapper) {
gradleVersion = "2.4"
gradleVersion = "2.7"
}
// WAILA

View File

@ -1,6 +1,6 @@
#Wed Jun 17 12:06:23 CEST 2015
#Mon Sep 28 22:02:24 CEST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-2.7-all.zip

View File

@ -1,14 +1,22 @@
package appeng.api.definitions;
import javax.annotation.Nonnull;
import com.google.common.base.Optional;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import com.google.common.base.Optional;
public interface IItemDefinition extends IComparableDefinition
{
/**
* @return the unique name of the definition which will be used to register the underlying structure. Will never be null
*/
@Nonnull
String identifier();
/**
* @return the {@link Item} Implementation if applicable
*/

View File

@ -123,7 +123,7 @@ public interface IMaterials
IItemDefinition woodenGear();
IItemDefinition wireless();
IItemDefinition wirelessReceiver();
IItemDefinition wirelessBooster();

View File

@ -22,6 +22,7 @@ package appeng.block;
import java.util.EnumSet;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import net.minecraft.block.Block;
import net.minecraft.block.BlockStairs;
@ -36,13 +37,17 @@ public abstract class AEBaseStairBlock extends BlockStairs implements IAEFeature
{
private final IFeatureHandler features;
protected AEBaseStairBlock( Block block, EnumSet<AEFeature> features, String type )
protected AEBaseStairBlock( Block block, EnumSet<AEFeature> features, String type )
{
super( block.getDefaultState() );
super( block.getStateFromMeta( 0 ) );
this.features = new StairBlockFeatureHandler( features, this, Optional.<String>of(type) );
setUnlocalizedName( block.getUnlocalizedName() );
Preconditions.checkNotNull( block );
Preconditions.checkNotNull( block.getUnlocalizedName() );
Preconditions.checkArgument( block.getUnlocalizedName().length() > 0 );
this.features = new StairBlockFeatureHandler( features, this, Optional.of( type ) );
this.setUnlocalizedName( "stair." + type );
this.setLightOpacity( 0 );
}

View File

@ -22,6 +22,8 @@ package appeng.block.crafting;
import java.util.EnumSet;
import java.util.List;
import com.google.common.base.Optional;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
@ -37,6 +39,7 @@ import net.minecraft.util.EnumWorldBlockLayer;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.api.util.AEPartLocation;
import appeng.block.AEBaseTileBlock;
import appeng.client.render.BaseBlockRender;
@ -47,22 +50,49 @@ import appeng.core.sync.GuiBridge;
import appeng.tile.crafting.TileCraftingTile;
import appeng.util.Platform;
import com.google.common.base.Optional;
/**
*
*/
public class BlockCraftingUnit extends AEBaseTileBlock
{
public static final PropertyBool POWERED = PropertyBool.create("powered");
public static final PropertyBool FORMED = PropertyBool.create("formed");
public static final int FLAG_FORMED = 8;
public static final PropertyBool POWERED = PropertyBool.create( "powered" );
public static final PropertyBool FORMED = PropertyBool.create( "formed" );
final public CraftingUnitType type;
public static enum CraftingUnitType
public BlockCraftingUnit( CraftingUnitType type )
{
UNIT, ACCELERATOR, STORAGE_1K,STORAGE_4K, STORAGE_16K, STORAGE_64K, MONITOR
};
super( Material.iron, Optional.of( type.name() ) );
this.type = type;
this.setTileEntity( TileCraftingTile.class );
this.setFeature( EnumSet.of( AEFeature.CraftingCPU ) );
}
@Override
public IBlockState getStateFromMeta( int meta )
{
return getDefaultState().withProperty( POWERED, ( meta & 1 ) == 1 ).withProperty( FORMED, ( meta & 2 ) == 2 );
}
@Override
public int getMetaFromState( IBlockState state )
{
boolean p = (boolean) state.getValue( POWERED );
boolean f = (boolean) state.getValue( FORMED );
return ( p ? 1 : 0 ) | ( f ? 2 : 0 );
}
@Override
public void onNeighborBlockChange( World worldIn, BlockPos pos, IBlockState state, Block neighborBlock )
{
TileCraftingTile cp = this.getTileEntity( worldIn, pos );
if( cp != null )
{
cp.updateMultiBlock();
}
}
@Override
public EnumWorldBlockLayer getBlockLayer()
@ -71,63 +101,20 @@ public class BlockCraftingUnit extends AEBaseTileBlock
}
@Override
public int getMetaFromState(
IBlockState state )
public void breakBlock( World w, BlockPos pos, IBlockState state )
{
boolean p = (boolean)state.getValue( POWERED );
boolean f = (boolean)state.getValue( FORMED );
return (p ? 1 : 0) | (f?2 : 0);
}
@Override
public IBlockState getStateFromMeta( int meta )
{
return getDefaultState().withProperty( POWERED, ( meta & 1 ) == 1 ? true : false ).withProperty( FORMED, ( meta & 2 ) == 2 ? true : false );
}
public BlockCraftingUnit( CraftingUnitType type )
{
super( Material.iron, Optional.of(type.name()) );
this.type = type;
this.setTileEntity( TileCraftingTile.class );
this.setFeature( EnumSet.of( AEFeature.CraftingCPU ) );
}
@Override
protected Class<? extends BaseBlockRender> getRenderer()
{
return RenderBlockCraftingCPU.class;
}
@Override
public appeng.client.texture.IAESprite getIcon(EnumFacing side, IBlockState state)
{
if ( type == CraftingUnitType.ACCELERATOR )
TileCraftingTile cp = this.getTileEntity( w, pos );
if( cp != null )
{
if ( (boolean)state.getValue( FORMED ) )
return ExtraBlockTextures.BlockCraftingAcceleratorFit.getIcon();
return ExtraBlockTextures.BlockCraftingAccelerator.getIcon();
cp.breakCluster();
}
if ( (boolean)state.getValue( FORMED ) )
return ExtraBlockTextures.BlockCraftingUnitFit.getIcon();
return super.getIcon( side,state );
super.breakBlock( w, pos, state );
}
@Override
public boolean onBlockActivated(
World w,
BlockPos pos,
IBlockState state,
EntityPlayer p,
EnumFacing side,
float hitX,
float hitY,
float hitZ )
{
@Override
public boolean onBlockActivated( World w, BlockPos pos, IBlockState state, EntityPlayer p, EnumFacing side, float hitX, float hitY, float hitZ )
{
TileCraftingTile tg = this.getTileEntity( w, pos );
if( tg != null && !p.isSneaking() && tg.isFormed() && tg.isActive() )
{
@ -143,6 +130,47 @@ public boolean onBlockActivated(
return false;
}
protected String getItemUnlocalizedName( ItemStack is )
{
return super.getUnlocalizedName( is );
}
@Override
protected IProperty[] getAEStates()
{
return new IProperty[] {
POWERED,
FORMED
};
}
@Override
protected Class<? extends BaseBlockRender> getRenderer()
{
return RenderBlockCraftingCPU.class;
}
@Override
public appeng.client.texture.IAESprite getIcon( EnumFacing side, IBlockState state )
{
if( type == CraftingUnitType.ACCELERATOR )
{
if( (boolean) state.getValue( FORMED ) )
{
return ExtraBlockTextures.BlockCraftingAcceleratorFit.getIcon();
}
return ExtraBlockTextures.BlockCraftingAccelerator.getIcon();
}
if( (boolean) state.getValue( FORMED ) )
{
return ExtraBlockTextures.BlockCraftingUnitFit.getIcon();
}
return super.getIcon( side, state );
}
@Override
@SideOnly( Side.CLIENT )
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
@ -151,21 +179,6 @@ public boolean onBlockActivated(
itemStacks.add( new ItemStack( this, 1, 1 ) );
}
@Override
public void breakBlock(
World w,
BlockPos pos,
IBlockState state )
{
TileCraftingTile cp = this.getTileEntity( w, pos );
if( cp != null )
{
cp.breakCluster();
}
super.breakBlock( w, pos, state );
}
@Override
public String getUnlocalizedName( ItemStack is )
{
@ -177,29 +190,8 @@ public boolean onBlockActivated(
return this.getItemUnlocalizedName( is );
}
protected String getItemUnlocalizedName( ItemStack is )
public enum CraftingUnitType
{
return super.getUnlocalizedName( is );
UNIT, ACCELERATOR, STORAGE_1K, STORAGE_4K, STORAGE_16K, STORAGE_64K, MONITOR
}
@Override
protected IProperty[] getAEStates()
{
return new IProperty[]{POWERED, FORMED };
}
@Override
public void onNeighborBlockChange(
World worldIn,
BlockPos pos,
IBlockState state,
Block neighborBlock )
{
TileCraftingTile cp = this.getTileEntity( worldIn, pos );
if( cp != null )
{
cp.updateMultiBlock();
}
}
}

View File

@ -23,6 +23,7 @@ import java.util.EnumSet;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
@ -81,4 +82,10 @@ public class BlockInscriber extends AEBaseTileBlock
}
return false;
}
@Override
public String getUnlocalizedName( ItemStack is )
{
return super.getUnlocalizedName( is );
}
}

View File

@ -39,9 +39,9 @@ import net.minecraft.util.EnumFacing;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import appeng.block.AEBaseBlock;
import appeng.client.render.BaseBlockRender;
import appeng.client.render.blocks.RenderTinyTNT;
import appeng.core.AppEng;
import appeng.core.features.AEFeature;
import appeng.entity.EntityIds;
@ -80,14 +80,7 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
}
@Override
public boolean onActivated(
World w,
BlockPos pos,
EntityPlayer player,
EnumFacing side,
float hitX,
float hitY,
float hitZ )
public boolean onActivated( World w, BlockPos pos, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ )
{
if( player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.flint_and_steel )
{
@ -111,12 +104,19 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
w.playSoundAtEntity( primedTinyTNTEntity, "game.tnt.primed", 1.0F, 1.0F );
}
}
@Override
public void onBlockAdded(
World w,
BlockPos pos,
IBlockState state )
public void onNeighborBlockChange( World w, BlockPos pos, IBlockState state, Block neighborBlock )
{
if( w.isBlockIndirectlyGettingPowered( pos ) > 0 )
{
this.startFuse( w, pos, null );
w.setBlockToAir( pos );
}
}
@Override
public void onBlockAdded( World w, BlockPos pos, IBlockState state )
{
super.onBlockAdded( w, pos, state );
@ -128,38 +128,7 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
}
@Override
public void onNeighborBlockChange(
World w,
BlockPos pos,
IBlockState state,
Block neighborBlock )
{
if( w.isBlockIndirectlyGettingPowered( pos ) > 0 )
{
this.startFuse( w, pos, null );
w.setBlockToAir( pos );
}
}
@Override
public void onBlockExploded(
World w,
BlockPos pos,
Explosion exp )
{
if( !w.isRemote )
{
EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, pos.getX() + 0.5F, pos.getY() + 0.5F, pos.getZ() + 0.5F, exp.getExplosivePlacedBy() );
primedTinyTNTEntity.fuse = w.rand.nextInt( primedTinyTNTEntity.fuse / 4 ) + primedTinyTNTEntity.fuse / 8;
w.spawnEntityInWorld( primedTinyTNTEntity );
}
}
@Override
public void onEntityCollidedWithBlock(
World w,
BlockPos pos,
Entity entity )
public void onEntityCollidedWithBlock( World w, BlockPos pos, Entity entity )
{
if( entity instanceof EntityArrow && !w.isRemote )
{
@ -180,22 +149,24 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
}
@Override
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool(
World w,
BlockPos pos,
Entity thePlayer,
boolean b )
public void onBlockExploded( World w, BlockPos pos, Explosion exp )
{
if( !w.isRemote )
{
EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, pos.getX() + 0.5F, pos.getY() + 0.5F, pos.getZ() + 0.5F, exp.getExplosivePlacedBy() );
primedTinyTNTEntity.fuse = w.rand.nextInt( primedTinyTNTEntity.fuse / 4 ) + primedTinyTNTEntity.fuse / 8;
w.spawnEntityInWorld( primedTinyTNTEntity );
}
}
@Override
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( World w, BlockPos pos, Entity thePlayer, boolean b )
{
return Collections.singletonList( AxisAlignedBB.fromBounds( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) );
}
@Override
public void addCollidingBlockToList(
World w,
BlockPos pos,
AxisAlignedBB bb,
List<AxisAlignedBB> out,
Entity e )
public void addCollidingBlockToList( World w, BlockPos pos, AxisAlignedBB bb, List<AxisAlignedBB> out, Entity e )
{
out.add( AxisAlignedBB.fromBounds( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) );
}

View File

@ -43,6 +43,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Vec3;
@ -101,12 +102,11 @@ public class ClientHelper extends ServerHelper
private static final RenderItem ITEM_RENDERER = Minecraft.getMinecraft().getRenderItem();
private static final ModelGenerator BLOCK_RENDERER = new ModelGenerator();
final ModelResourceLocation partRenderer = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, "DynamicPartRenderer" ), "inventory" );
private final ModelResourceLocation partRenderer = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, "DynamicPartRenderer" ), "inventory" );
;
public Map<Object, List<IconReg>> iconRegistrations = new HashMap();
public List<IconReg> iconTmp = new ArrayList<>();
public List<ResourceLocation> extraIcons = new ArrayList<>();
private Map<Object, List<IconReg>> iconRegistrations = new HashMap<>();
private List<IconReg> iconTmp = new ArrayList<>();
private List<ResourceLocation> extraIcons = new ArrayList<>();
@Override
public void configureIcon( Object item, String name )
@ -123,10 +123,23 @@ public class ClientHelper extends ServerHelper
@Override
public void init()
{
Item fluixItem = GameRegistry.findItem( "appliedenergistics2", "fluix" );
ModelResourceLocation itemModelResourceLocation = new ModelResourceLocation( "appliedenergistics2:fluix", "inventory" );
final int DEFAULT_ITEM_SUBTYPE = 0;
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( fluixItem, DEFAULT_ITEM_SUBTYPE, itemModelResourceLocation );
// final Block fluixBlock = GameRegistry.findBlock( "appliedenergistics2", "fluix" );
// Item fluixItem = Item.getItemFromBlock( fluixBlock );
// ModelResourceLocation itemModelResourceLocation = new ModelResourceLocation( "appliedenergistics2:fluix", "inventory" );
// final int DEFAULT_ITEM_SUBTYPE = 0;
// final ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
// // mesher.register( fluixItem, DEFAULT_ITEM_SUBTYPE, itemModelResourceLocation );
//
// final ResourceLocation resource = new ResourceLocation( "appliedenergistics2", "stair.fluix" );
// final ModelResourceLocation fluixStairModel = new ModelResourceLocation( resource, "inventory" );
// AELog.info( "FluixStairModel: " + fluixStairModel );
//
// final Set<Item> items = AEApi.instance().definitions().blocks().fluixStair().maybeItem().asSet();
// for( Item item : items )
// {
// AELog.info( "Registering with %s with unlocalized %s", item, item.getUnlocalizedName() );
// mesher.register( item, DEFAULT_ITEM_SUBTYPE, fluixStairModel );
// }
}
@Override
@ -143,7 +156,7 @@ public class ClientHelper extends ServerHelper
}
@Override
public void bindTileEntitySpecialRenderer( Class tile, AEBaseBlock blk )
public void bindTileEntitySpecialRenderer( Class<? extends TileEntity> tile, AEBaseBlock blk )
{
BaseBlockRender bbr = blk.getRendererInstance().rendererInstance;
if( bbr.hasTESR() && tile != null )
@ -157,7 +170,7 @@ public class ClientHelper extends ServerHelper
{
if( Platform.isClient() )
{
List<EntityPlayer> o = new ArrayList<EntityPlayer>();
List<EntityPlayer> o = new ArrayList<>();
o.add( Minecraft.getMinecraft().thePlayer );
return o;
}
@ -282,15 +295,7 @@ public class ClientHelper extends ServerHelper
addIcon( reg.name );
mesher.register( reg.item instanceof Item ? (Item) reg.item : Item.getItemFromBlock( (Block) reg.item ), new ItemMeshDefinition()
{
@Override
public ModelResourceLocation getModelLocation( ItemStack stack )
{
return renderer.rendererInstance.getResourcePath();
}
} );
mesher.register( reg.item instanceof Item ? (Item) reg.item : Item.getItemFromBlock( (Block) reg.item ), stack -> renderer.rendererInstance.getResourcePath() );
continue;
}
@ -385,7 +390,7 @@ public class ClientHelper extends ServerHelper
List<IconReg> reg = iconRegistrations.get( item );
if( reg == null )
{
iconRegistrations.put( item, reg = new LinkedList<IconReg>() );
iconRegistrations.put( item, reg = new LinkedList<>() );
}
ModelResourceLocation res = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, name ), "inventory" );
@ -398,7 +403,7 @@ public class ClientHelper extends ServerHelper
List<IconReg> reg = iconRegistrations.get( item );
if( reg == null )
{
iconRegistrations.put( item, reg = new LinkedList<IconReg>() );
iconRegistrations.put( item, reg = new LinkedList<>() );
}
ModelResourceLocation res = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, name ), "inventory" );
@ -567,10 +572,7 @@ public class ClientHelper extends ServerHelper
}
}
for( ResourceLocation res : extraIcons )
{
ev.map.registerSprite( res );
}
extraIcons.forEach( ev.map::registerSprite );
//if( ev.map.getTextureType() == ITEM_RENDERER )
{

View File

@ -99,7 +99,7 @@ public class SlotDisconnected extends AppEngSlot
}
@Override
public boolean isSlotInInventory( IInventory par1iInventory, int par2 )
public boolean isHere( IInventory inv, int slotIn )
{
return false;
}

View File

@ -23,6 +23,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import appeng.api.storage.data.IAEItemStack;
@ -96,7 +97,7 @@ public class SlotME extends Slot
}
@Override
public boolean isSlotInInventory( IInventory par1iInventory, int par2 )
public boolean isHere( IInventory inv, int slotIn )
{
return false;
}

View File

@ -27,7 +27,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
import appeng.api.AEApi;
import appeng.api.util.AEPartLocation;
import appeng.block.solids.BlockQuartzGlass;
import appeng.decorative.solid.QuartzGlassBlock;
import appeng.client.render.BaseBlockRender;
import appeng.client.render.ModelGenerator;
import appeng.client.texture.ExtraBlockTextures;
@ -35,7 +35,7 @@ import appeng.client.texture.OffsetIcon;
import appeng.tile.AEBaseTile;
public class RenderQuartzGlass extends BaseBlockRender<BlockQuartzGlass, AEBaseTile>
public class RenderQuartzGlass extends BaseBlockRender<QuartzGlassBlock, AEBaseTile>
{
static byte[][][] offsets;
@ -58,7 +58,7 @@ public class RenderQuartzGlass extends BaseBlockRender<BlockQuartzGlass, AEBaseT
}
@Override
public void renderInventory( BlockQuartzGlass block, ItemStack is, ModelGenerator renderer, ItemRenderType type, Object[] obj )
public void renderInventory( QuartzGlassBlock block, ItemStack is, ModelGenerator renderer, ItemRenderType type, Object[] obj )
{
renderer.overrideBlockTexture = ExtraBlockTextures.GlassFrame.getIcon();
super.renderInventory( block, is, renderer, type, obj );
@ -67,7 +67,7 @@ public class RenderQuartzGlass extends BaseBlockRender<BlockQuartzGlass, AEBaseT
}
@Override
public boolean renderInWorld( BlockQuartzGlass imb, IBlockAccess world, BlockPos pos, ModelGenerator renderer )
public boolean renderInWorld( QuartzGlassBlock imb, IBlockAccess world, BlockPos pos, ModelGenerator renderer )
{
renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 );
@ -130,7 +130,7 @@ public class RenderQuartzGlass extends BaseBlockRender<BlockQuartzGlass, AEBaseT
return result;
}
private void renderEdge( BlockQuartzGlass imb, IBlockAccess world, BlockPos pos, ModelGenerator renderer, AEPartLocation side, AEPartLocation direction )
private void renderEdge( QuartzGlassBlock imb, IBlockAccess world, BlockPos pos, ModelGenerator renderer, AEPartLocation side, AEPartLocation direction )
{
if( !this.isFlush( imb, world, pos.getX() + side.xOffset, pos.getY() + side.yOffset, pos.getZ() + side.zOffset ) )
{
@ -214,12 +214,12 @@ public class RenderQuartzGlass extends BaseBlockRender<BlockQuartzGlass, AEBaseT
}
}
private boolean isFlush( BlockQuartzGlass imb, IBlockAccess world, int x, int y, int z )
private boolean isFlush( QuartzGlassBlock imb, IBlockAccess world, int x, int y, int z )
{
return this.isGlass( imb, world, new BlockPos(x, y, z) );
}
private boolean isGlass( BlockQuartzGlass imb, IBlockAccess world,BlockPos pos)
private boolean isGlass( QuartzGlassBlock imb, IBlockAccess world,BlockPos pos)
{
return this.isQuartzGlass( world, pos ) || this.isVibrantQuartzGlass( world, pos );
}

View File

@ -23,14 +23,14 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
import appeng.block.solids.OreQuartz;
import appeng.decorative.solid.QuartzOreBlock;
import appeng.client.render.BaseBlockRender;
import appeng.client.render.ModelGenerator;
import appeng.client.texture.ExtraBlockTextures;
import appeng.tile.AEBaseTile;
public class RenderQuartzOre extends BaseBlockRender<OreQuartz, AEBaseTile>
public class RenderQuartzOre extends BaseBlockRender<QuartzOreBlock, AEBaseTile>
{
public RenderQuartzOre()
@ -39,7 +39,7 @@ public class RenderQuartzOre extends BaseBlockRender<OreQuartz, AEBaseTile>
}
@Override
public void renderInventory( OreQuartz blk, ItemStack is, ModelGenerator renderer, ItemRenderType type, Object[] obj )
public void renderInventory( QuartzOreBlock blk, ItemStack is, ModelGenerator renderer, ItemRenderType type, Object[] obj )
{
super.renderInventory( blk, is, renderer, type, obj );
blk.getRendererInstance().setTemporaryRenderIcon( ExtraBlockTextures.OreQuartzStone.getIcon() );
@ -48,9 +48,9 @@ public class RenderQuartzOre extends BaseBlockRender<OreQuartz, AEBaseTile>
}
@Override
public boolean renderInWorld( OreQuartz block, IBlockAccess world, BlockPos pos, ModelGenerator renderer )
public boolean renderInWorld( QuartzOreBlock block, IBlockAccess world, BlockPos pos, ModelGenerator renderer )
{
OreQuartz blk = block;
QuartzOreBlock blk = block;
blk.setEnhanceBrightness( true );
super.renderInWorld( block, world, pos, renderer );
blk.setEnhanceBrightness( false );

View File

@ -75,7 +75,7 @@ public class AssemblerFX extends EntityFX
}
@Override
public void func_180434_a(WorldRenderer par1Tessellator, Entity p_180434_2_, float l, float rX, float rY, float rZ, float rYZ, float rXY )
public void renderParticle(WorldRenderer par1Tessellator, Entity p_180434_2_, float l, float rX, float rY, float rZ, float rYZ, float rXY )
{
this.time += l;
if( this.time > 4.0 )

View File

@ -68,7 +68,7 @@ public class CraftingFx extends EntityBreakingFX
}
@Override
public void func_180434_a(WorldRenderer par1Tessellator, Entity p_180434_2_, float partialTick, float x, float y, float z, float rx, float rz)
public void renderParticle(WorldRenderer par1Tessellator, Entity p_180434_2_, float partialTick, float x, float y, float z, float rx, float rz)
{
if( partialTick < 0 || partialTick > 1 )
{

View File

@ -67,7 +67,7 @@ public class EnergyFx extends EntityBreakingFX
}
@Override
public void func_180434_a(WorldRenderer par1Tessellator, Entity p_180434_2_, float par2, float par3, float par4, float par5, float par6, float par7)
public void renderParticle(WorldRenderer par1Tessellator, Entity p_180434_2_, float par2, float par3, float par4, float par5, float par6, float par7)
{
float f6 = this.particleTextureIndex.getMinU();
float f7 = this.particleTextureIndex.getMaxU();

View File

@ -84,7 +84,7 @@ public class LightningFX extends EntityFX
}
@Override
public void func_180434_a(WorldRenderer tess, Entity p_180434_2_, float l, float rX, float rY, float rZ, float rYZ, float rXY )
public void renderParticle(WorldRenderer tess, Entity p_180434_2_, float l, float rX, float rY, float rZ, float rYZ, float rXY )
{
float j = 1.0f;
tess.setColorRGBA_F( this.particleRed * j * 0.9f, this.particleGreen * j * 0.95f, this.particleBlue * j, this.particleAlpha );

View File

@ -70,7 +70,7 @@ public class MatterCannonFX extends EntityBreakingFX
}
@Override
public void func_180434_a(WorldRenderer par1Tessellator, Entity p_180434_2_, float par2, float par3, float par4, float par5, float par6, float par7 )
public void renderParticle(WorldRenderer par1Tessellator, Entity p_180434_2_, float par2, float par3, float par4, float par5, float par6, float par7 )
{
float f6 = this.particleTextureIndex.getMinU();
float f7 = this.particleTextureIndex.getMaxU();

View File

@ -295,7 +295,7 @@ public class ContainerCellWorkbench extends ContainerUpgradeable
}
@Override
public String getName()
public String getCommandSenderName()
{
return "Upgrades";
}

View File

@ -298,9 +298,10 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
}
@Override
public void addCraftingToCrafters( ICrafting c )
public void onCraftGuiOpened( ICrafting c )
{
super.addCraftingToCrafters( c );
super.onCraftGuiOpened( c );
this.queueInventory( c );
}

View File

@ -194,7 +194,7 @@ public class ContainerQuartzKnife extends AEBaseContainer implements IAEAppEngIn
}
@Override
public String getName()
public String getCommandSenderName()
{
return "Quartz Knife Output";
}

View File

@ -82,7 +82,7 @@ public class NullSlot extends Slot
}
@Override
public boolean isSlotInInventory( IInventory par1IInventory, int par2 )
public boolean isHere( IInventory inv, int slotIn )
{
return false;
}

View File

@ -19,10 +19,11 @@
package appeng.core;
import net.minecraft.util.BlockPos;
import net.minecraftforge.fml.relauncher.FMLRelaunchLog;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import net.minecraft.util.BlockPos;
import appeng.core.features.AEFeature;
import appeng.tile.AEBaseTile;
@ -31,8 +32,8 @@ import appeng.util.Platform;
public final class AELog
{
public static final FMLRelaunchLog INSTANCE = FMLRelaunchLog.log;
private static final Logger SERVER = LogManager.getFormatterLogger( "AE2:S" );
private static final Logger CLIENT = LogManager.getFormatterLogger( "AE2:C" );
private AELog()
{
@ -47,7 +48,14 @@ public final class AELog
{
if( AEConfig.instance == null || AEConfig.instance.isFeatureEnabled( AEFeature.Logging ) )
{
FMLRelaunchLog.log( "AE2:" + ( Platform.isServer() ? "S" : "C" ), level, format, data );
if( Platform.isServer() )
{
SERVER.log( level, format, data );
}
else
{
CLIENT.log( level, format, data );
}
}
}

View File

@ -59,7 +59,6 @@ public final class AppEng
public static final String MOD_ID = "appliedenergistics2";
public static final String MOD_NAME = "Applied Energistics 2";
public static final String MODID = "appliedenergistics2";
public static final String ASSETS = "appliedenergistics2:";
public static final String MOD_DEPENDENCIES =
@ -162,6 +161,7 @@ public final class AppEng
Registration.INSTANCE.initialize( event );
IntegrationRegistry.INSTANCE.init();
CommonHelper.proxy.init();
AELog.info( "Initialization ( ended after " + star.elapsed( TimeUnit.MILLISECONDS ) + "ms )" );
}
@ -183,6 +183,12 @@ public final class AppEng
NetworkHandler.instance = new NetworkHandler( "AE2" );
AELog.info( "Post Initialization ( ended after " + star.elapsed( TimeUnit.MILLISECONDS ) + "ms )" );
// System.out.println( "REGISTRY:" );
// for( Block block : GameData.getBlockRegistry().typeSafeIterable() )
// {
// System.out.println( "block = " + block + ", " + block.getUnlocalizedName() + ", " + block.getLocalizedName() );
// }
}
@EventHandler

View File

@ -24,6 +24,7 @@ import java.util.Random;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
@ -47,7 +48,7 @@ public abstract class CommonHelper
public abstract World getWorld();
public abstract void bindTileEntitySpecialRenderer( Class tile, AEBaseBlock blk );
public abstract void bindTileEntitySpecialRenderer( Class <? extends TileEntity> tile, AEBaseBlock blk );
public abstract List<EntityPlayer> getPlayers();

View File

@ -68,7 +68,7 @@ import appeng.core.localization.GuiText;
import appeng.core.localization.PlayerMessages;
import appeng.core.stats.PlayerStatsRegistration;
import appeng.hooks.TickHandler;
import appeng.items.materials.ItemMultiMaterial;
import appeng.items.materials.MultiItem;
import appeng.me.cache.CraftingGridCache;
import appeng.me.cache.EnergyGridCache;
import appeng.me.cache.GridStorageCache;
@ -222,7 +222,7 @@ public final class Registration
final IRegistryContainer registries = api.registries();
// Perform ore camouflage!
ItemMultiMaterial.instance.makeUnique();
MultiItem.instance.makeUnique();
final Runnable recipeLoader = new RecipeLoader( this.recipeHandler );
recipeLoader.run();

View File

@ -53,20 +53,20 @@ import appeng.block.networking.BlockEnergyCell;
import appeng.block.networking.BlockWireless;
import appeng.block.qnb.BlockQuantumLinkChamber;
import appeng.block.qnb.BlockQuantumRing;
import appeng.block.solids.BlockFluix;
import appeng.block.solids.BlockQuartz;
import appeng.block.solids.BlockQuartzChiseled;
import appeng.block.solids.BlockQuartzGlass;
import appeng.block.solids.BlockQuartzLamp;
import appeng.block.solids.BlockQuartzPillar;
import appeng.block.solids.BlockSkyStone;
import appeng.block.solids.BlockSkyStone.SkystoneType;
import appeng.block.solids.OreQuartz;
import appeng.block.solids.OreQuartzCharged;
import appeng.decorative.solid.FluixBlock;
import appeng.decorative.solid.QuartzBlock;
import appeng.decorative.solid.ChiseledQuartzBlock;
import appeng.decorative.solid.QuartzGlassBlock;
import appeng.decorative.solid.QuartzLampBlock;
import appeng.decorative.solid.QuartzPillarBlock;
import appeng.decorative.solid.SkyStoneBlock;
import appeng.decorative.solid.SkyStoneBlock.SkystoneType;
import appeng.decorative.solid.QuartzOreBlock;
import appeng.decorative.solid.ChargedQuartzOreBlock;
import appeng.block.spatial.BlockMatrixFrame;
import appeng.block.spatial.BlockSpatialIOPort;
import appeng.block.spatial.BlockSpatialPylon;
import appeng.block.stair.BlockStairCommon;
import appeng.decorative.stair.BlockStairCommon;
import appeng.block.storage.BlockChest;
import appeng.block.storage.BlockDrive;
import appeng.block.storage.BlockIOPort;
@ -161,20 +161,21 @@ public final class ApiBlocks implements IBlocks
public ApiBlocks( DefinitionConstructor constructor )
{
this.quartzOre = constructor.registerBlockDefinition( new OreQuartz() );
this.quartzOreCharged = constructor.registerBlockDefinition( new OreQuartzCharged() );
// this.quartzOre = new BlockDefinition( "ore.quartz", new OreQuartz() );
this.quartzOre = constructor.registerBlockDefinition( new QuartzOreBlock() );
this.quartzOreCharged = constructor.registerBlockDefinition( new ChargedQuartzOreBlock() );
this.matrixFrame = constructor.registerBlockDefinition( new BlockMatrixFrame() );
this.quartz = constructor.registerBlockDefinition( new BlockQuartz() );
this.quartzPillar = constructor.registerBlockDefinition( new BlockQuartzPillar() );
this.quartzChiseled = constructor.registerBlockDefinition( new BlockQuartzChiseled() );
this.quartzGlass = constructor.registerBlockDefinition( new BlockQuartzGlass() );
this.quartzVibrantGlass = constructor.registerBlockDefinition( new BlockQuartzLamp() );
this.quartz = constructor.registerBlockDefinition( new QuartzBlock() );
this.quartzPillar = constructor.registerBlockDefinition( new QuartzPillarBlock() );
this.quartzChiseled = constructor.registerBlockDefinition( new ChiseledQuartzBlock() );
this.quartzGlass = constructor.registerBlockDefinition( new QuartzGlassBlock() );
this.quartzVibrantGlass = constructor.registerBlockDefinition( new QuartzLampBlock() );
this.quartzTorch = constructor.registerBlockDefinition( new BlockQuartzTorch() );
this.fluix = constructor.registerBlockDefinition( new BlockFluix() );
this.skyStone_stone = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.stone ) );
this.skyStone_block = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.block ) );
this.skyStone_brick = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.brick ) );
this.skyStone_smallbrick = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.smallbrick ) );
this.fluix = constructor.registerBlockDefinition( new FluixBlock() );
this.skyStone_stone = constructor.registerBlockDefinition( new SkyStoneBlock( SkystoneType.STONE ) );
this.skyStone_block = constructor.registerBlockDefinition( new SkyStoneBlock( SkystoneType.BLOCK ) );
this.skyStone_brick = constructor.registerBlockDefinition( new SkyStoneBlock( SkystoneType.BRICK ) );
this.skyStone_smallbrick = constructor.registerBlockDefinition( new SkyStoneBlock( SkystoneType.SMALL_BRICK ) );
this.skyChest = constructor.registerBlockDefinition( new BlockSkyChest( SkyChestType.STONE ) );
this.skyChestBlock = constructor.registerBlockDefinition( new BlockSkyChest( SkyChestType.BLOCK ) );
this.skyCompass = constructor.registerBlockDefinition( new BlockSkyCompass() );
@ -214,7 +215,7 @@ public final class ApiBlocks implements IBlocks
this.lightDetector = constructor.registerTileDefinition( new BlockLightDetector() );
this.paint = constructor.registerTileDefinition( new BlockPaint() );
this.skyStoneStair = makeStairs( constructor, skyStone_stone, "skystone" );
this.skyStoneStair = makeStairs( constructor, skyStone_stone, "skystone.stone" );
this.skyStoneBlockStair = makeStairs( constructor, skyStone_block, "skystone.block" );
this.skyStoneBrickStair = makeStairs( constructor, skyStone_brick, "skystone.brick" );
this.skyStoneSmallBrickStair = makeStairs( constructor, skyStone_smallbrick, "skystone.brick.small" );

View File

@ -22,7 +22,7 @@ package appeng.core.api.definitions;
import appeng.api.definitions.IItemDefinition;
import appeng.api.definitions.IMaterials;
import appeng.core.features.DamagedItemDefinition;
import appeng.items.materials.ItemMultiMaterial;
import appeng.items.materials.MultiItem;
import appeng.items.materials.MaterialType;
@ -93,7 +93,7 @@ public final class ApiMaterials implements IMaterials
private final IItemDefinition woodenGear;
private final IItemDefinition wireless;
private final IItemDefinition wirelessReceiver;
private final IItemDefinition wirelessBooster;
private final IItemDefinition annihilationCore;
@ -105,80 +105,79 @@ public final class ApiMaterials implements IMaterials
public ApiMaterials( DefinitionConstructor constructor )
{
final ItemMultiMaterial itemMultiMaterial = new ItemMultiMaterial();
constructor.registerItemDefinition( itemMultiMaterial );
final MultiItem materials = new MultiItem();
constructor.registerItemDefinition( materials );
this.cell2SpatialPart = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Cell2SpatialPart ) );
this.cell16SpatialPart = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Cell16SpatialPart ) );
this.cell128SpatialPart = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Cell128SpatialPart ) );
this.cell2SpatialPart = new DamagedItemDefinition( "material.cell.spatial.2", materials.createMaterial( MaterialType.Cell2SpatialPart ) );
this.cell16SpatialPart = new DamagedItemDefinition( "material.cell.spatial.16", materials.createMaterial( MaterialType.Cell16SpatialPart ) );
this.cell128SpatialPart = new DamagedItemDefinition( "material.cell.spatial.128", materials.createMaterial( MaterialType.Cell128SpatialPart ) );
this.silicon = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Silicon ) );
this.skyDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.SkyDust ) );
this.silicon = new DamagedItemDefinition( "material.silicon", materials.createMaterial( MaterialType.Silicon ) );
this.skyDust = new DamagedItemDefinition( "material.dust.skystone", materials.createMaterial( MaterialType.SkyDust ) );
this.calcProcessorPress = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CalcProcessorPress ) );
this.engProcessorPress = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.EngProcessorPress ) );
this.logicProcessorPress = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.LogicProcessorPress ) );
this.calcProcessorPress = new DamagedItemDefinition( "material.press.processor.calculation", materials.createMaterial( MaterialType.CalcProcessorPress ) );
this.engProcessorPress = new DamagedItemDefinition( "material.press.processor.engineering", materials.createMaterial( MaterialType.EngProcessorPress ) );
this.logicProcessorPress = new DamagedItemDefinition( "material.press.processor.logic", materials.createMaterial( MaterialType.LogicProcessorPress ) );
this.siliconPress = new DamagedItemDefinition( "material.press.silicon", materials.createMaterial( MaterialType.SiliconPress ) );
this.namePress = new DamagedItemDefinition( "material.press.name", materials.createMaterial( MaterialType.NamePress ) );
this.calcProcessorPrint = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CalcProcessorPrint ) );
this.engProcessorPrint = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.EngProcessorPrint ) );
this.logicProcessorPrint = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.LogicProcessorPrint ) );
this.calcProcessorPrint = new DamagedItemDefinition( "material.print.processor.calculation", materials.createMaterial( MaterialType.CalcProcessorPrint ) );
this.engProcessorPrint = new DamagedItemDefinition( "material.print.processor.engineering", materials.createMaterial( MaterialType.EngProcessorPrint ) );
this.logicProcessorPrint = new DamagedItemDefinition( "material.print.processor.logic", materials.createMaterial( MaterialType.LogicProcessorPrint ) );
this.siliconPrint = new DamagedItemDefinition( "material.print.silicon", materials.createMaterial( MaterialType.SiliconPrint ) );
this.siliconPress = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.SiliconPress ) );
this.siliconPrint = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.SiliconPrint ) );
this.namePress = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.NamePress ) );
this.logicProcessor = new DamagedItemDefinition( "material.processor.logic", materials.createMaterial( MaterialType.LogicProcessor ) );
this.calcProcessor = new DamagedItemDefinition( "material.processor.calculation", materials.createMaterial( MaterialType.CalcProcessor ) );
this.engProcessor = new DamagedItemDefinition( "material.processor.engineering", materials.createMaterial( MaterialType.EngProcessor ) );
this.logicProcessor = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.LogicProcessor ) );
this.calcProcessor = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CalcProcessor ) );
this.engProcessor = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.EngProcessor ) );
this.basicCard = new DamagedItemDefinition( "material.card.basic", materials.createMaterial( MaterialType.BasicCard ) );
this.advCard = new DamagedItemDefinition( "material.card.advanced", materials.createMaterial( MaterialType.AdvCard ) );
this.basicCard = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.BasicCard ) );
this.advCard = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.AdvCard ) );
this.purifiedCertusQuartzCrystal = new DamagedItemDefinition( "material.crystal.quartz.certus.purified", materials.createMaterial( MaterialType.PurifiedCertusQuartzCrystal ) );
this.purifiedNetherQuartzCrystal = new DamagedItemDefinition( "material.crystal.quartz.nether.purified", materials.createMaterial( MaterialType.PurifiedNetherQuartzCrystal ) );
this.purifiedFluixCrystal = new DamagedItemDefinition( "material.crystal.fluix.purified", materials.createMaterial( MaterialType.PurifiedFluixCrystal ) );
this.purifiedCertusQuartzCrystal = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.PurifiedCertusQuartzCrystal ) );
this.purifiedNetherQuartzCrystal = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.PurifiedNetherQuartzCrystal ) );
this.purifiedFluixCrystal = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.PurifiedFluixCrystal ) );
this.cell1kPart = new DamagedItemDefinition( "material.cell.storage.1k", materials.createMaterial( MaterialType.Cell1kPart ) );
this.cell4kPart = new DamagedItemDefinition( "material.cell.storage.4k", materials.createMaterial( MaterialType.Cell4kPart ) );
this.cell16kPart = new DamagedItemDefinition( "material.cell.storage.16k", materials.createMaterial( MaterialType.Cell16kPart ) );
this.cell64kPart = new DamagedItemDefinition( "material.cell.storage.64k", materials.createMaterial( MaterialType.Cell64kPart ) );
this.emptyStorageCell = new DamagedItemDefinition( "material.cell.storage.empty", materials.createMaterial( MaterialType.EmptyStorageCell ) );
this.cell1kPart = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Cell1kPart ) );
this.cell4kPart = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Cell4kPart ) );
this.cell16kPart = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Cell16kPart ) );
this.cell64kPart = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Cell64kPart ) );
this.emptyStorageCell = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.EmptyStorageCell ) );
this.cardRedstone = new DamagedItemDefinition( "material.card.redstone", materials.createMaterial( MaterialType.CardRedstone ) );
this.cardSpeed = new DamagedItemDefinition( "material.card.acceleration", materials.createMaterial( MaterialType.CardSpeed ) );
this.cardCapacity = new DamagedItemDefinition( "material.card.capacity", materials.createMaterial( MaterialType.CardCapacity ) );
this.cardFuzzy = new DamagedItemDefinition( "material.card.fuzzy", materials.createMaterial( MaterialType.CardFuzzy ) );
this.cardInverter = new DamagedItemDefinition( "material.card.inverter", materials.createMaterial( MaterialType.CardInverter ) );
this.cardCrafting = new DamagedItemDefinition( "material.card.crafting", materials.createMaterial( MaterialType.CardCrafting ) );
this.cardRedstone = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardRedstone ) );
this.cardSpeed = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardSpeed ) );
this.cardCapacity = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardCapacity ) );
this.cardFuzzy = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardFuzzy ) );
this.cardInverter = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardInverter ) );
this.cardCrafting = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardCrafting ) );
this.enderDust = new DamagedItemDefinition( "material.dust.ender", materials.createMaterial( MaterialType.EnderDust ) );
this.flour = new DamagedItemDefinition( "material.flour", materials.createMaterial( MaterialType.Flour ) );
this.goldDust = new DamagedItemDefinition( "material.dust.gold", materials.createMaterial( MaterialType.GoldDust ) );
this.ironDust = new DamagedItemDefinition( "material.dust.iron", materials.createMaterial( MaterialType.IronDust ) );
this.fluixDust = new DamagedItemDefinition( "material.dust.fluix", materials.createMaterial( MaterialType.FluixDust ) );
this.certusQuartzDust = new DamagedItemDefinition( "material.dust.quartz.certus", materials.createMaterial( MaterialType.CertusQuartzDust ) );
this.netherQuartzDust = new DamagedItemDefinition( "material.dust.quartz.nether", materials.createMaterial( MaterialType.NetherQuartzDust ) );
this.enderDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.EnderDust ) );
this.flour = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Flour ) );
this.goldDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.GoldDust ) );
this.ironDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.IronDust ) );
this.fluixDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.FluixDust ) );
this.certusQuartzDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CertusQuartzDust ) );
this.netherQuartzDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.NetherQuartzDust ) );
this.matterBall = new DamagedItemDefinition( "material.ammo.matter_ball", materials.createMaterial( MaterialType.MatterBall ) );
this.ironNugget = new DamagedItemDefinition( "material.ammo.nugget.iron", materials.createMaterial( MaterialType.IronNugget ) );
this.matterBall = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.MatterBall ) );
this.ironNugget = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.IronNugget ) );
this.certusQuartzCrystal = new DamagedItemDefinition( "material.crystal.quartz.certus", materials.createMaterial( MaterialType.CertusQuartzCrystal ) );
this.certusQuartzCrystalCharged = new DamagedItemDefinition( "material.crystal.quartz.certus.charged", materials.createMaterial( MaterialType.CertusQuartzCrystalCharged ) );
this.fluixCrystal = new DamagedItemDefinition( "material.crystal.fluix", materials.createMaterial( MaterialType.FluixCrystal ) );
this.fluixPearl = new DamagedItemDefinition( "material.pearl.fluix", materials.createMaterial( MaterialType.FluixPearl ) );
this.certusQuartzCrystal = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CertusQuartzCrystal ) );
this.certusQuartzCrystalCharged = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CertusQuartzCrystalCharged ) );
this.fluixCrystal = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.FluixCrystal ) );
this.fluixPearl = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.FluixPearl ) );
this.woodenGear = new DamagedItemDefinition( "material.gear.wooden", materials.createMaterial( MaterialType.WoodenGear ) );
this.woodenGear = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.WoodenGear ) );
this.wirelessReceiver = new DamagedItemDefinition( "material.wireless.receiver", materials.createMaterial( MaterialType.Wireless ) );
this.wirelessBooster = new DamagedItemDefinition( "material.wireless.booster", materials.createMaterial( MaterialType.WirelessBooster ) );
this.wireless = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Wireless ) );
this.wirelessBooster = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.WirelessBooster ) );
this.annihilationCore = new DamagedItemDefinition( "material.core.annihilation", materials.createMaterial( MaterialType.AnnihilationCore ) );
this.formationCore = new DamagedItemDefinition( "material.core.formation", materials.createMaterial( MaterialType.FormationCore ) );
this.annihilationCore = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.AnnihilationCore ) );
this.formationCore = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.FormationCore ) );
this.singularity = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Singularity ) );
this.qESingularity = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.QESingularity ) );
this.blankPattern = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.BlankPattern ) );
this.singularity = new DamagedItemDefinition( "material.singularity", materials.createMaterial( MaterialType.Singularity ) );
this.qESingularity = new DamagedItemDefinition( "material.singularity.entangled.quantum", materials.createMaterial( MaterialType.QESingularity ) );
this.blankPattern = new DamagedItemDefinition( "material.pattern.blank", materials.createMaterial( MaterialType.BlankPattern ) );
}
@Override
@ -464,9 +463,9 @@ public final class ApiMaterials implements IMaterials
}
@Override
public IItemDefinition wireless()
public IItemDefinition wirelessReceiver()
{
return this.wireless;
return this.wirelessReceiver;
}
@Override

View File

@ -85,35 +85,35 @@ public final class ApiParts implements IParts
// this.lumenCableCovered = Optional.absent(); // has yet to be implemented, no PartType defined for it yet
// this.lumenCableGlass = Optional.absent(); // has yet to be implemented, no PartType defined for it yet
// this.lumenCableDense = Optional.absent(); // has yet to be implemented, no PartType defined for it yet
this.quartzFiber = new DamagedItemDefinition( itemMultiPart.createPart( PartType.QuartzFiber ) );
this.toggleBus = new DamagedItemDefinition( itemMultiPart.createPart( PartType.ToggleBus ) );
this.invertedToggleBus = new DamagedItemDefinition( itemMultiPart.createPart( PartType.InvertedToggleBus ) );
this.storageBus = new DamagedItemDefinition( itemMultiPart.createPart( PartType.StorageBus ) );
this.importBus = new DamagedItemDefinition( itemMultiPart.createPart( PartType.ImportBus ) );
this.exportBus = new DamagedItemDefinition( itemMultiPart.createPart( PartType.ExportBus ) );
this.iface = new DamagedItemDefinition( itemMultiPart.createPart( PartType.Interface ) );
this.levelEmitter = new DamagedItemDefinition( itemMultiPart.createPart( PartType.LevelEmitter ) );
this.annihilationPlane = new DamagedItemDefinition( itemMultiPart.createPart( PartType.AnnihilationPlane ) );
this.identityAnnihilationPlane = new DamagedItemDefinition( itemMultiPart.createPart( PartType.IdentityAnnihilationPlane ) );
this.formationPlane = new DamagedItemDefinition( itemMultiPart.createPart( PartType.FormationPlane ) );
this.p2PTunnelME = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelME ) );
this.p2PTunnelRedstone = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelRedstone ) );
this.p2PTunnelItems = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelItems ) );
this.p2PTunnelLiquids = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelLiquids ) );
this.quartzFiber = new DamagedItemDefinition( "part.quartz_fiber", itemMultiPart.createPart( PartType.QuartzFiber ) );
this.toggleBus = new DamagedItemDefinition( "part.toggle_bus", itemMultiPart.createPart( PartType.ToggleBus ) );
this.invertedToggleBus = new DamagedItemDefinition( "part.toggle_bus.inverted", itemMultiPart.createPart( PartType.InvertedToggleBus ) );
this.storageBus = new DamagedItemDefinition( "part.bus.storage", itemMultiPart.createPart( PartType.StorageBus ) );
this.importBus = new DamagedItemDefinition( "part.bus.import", itemMultiPart.createPart( PartType.ImportBus ) );
this.exportBus = new DamagedItemDefinition( "part.bus.export", itemMultiPart.createPart( PartType.ExportBus ) );
this.iface = new DamagedItemDefinition( "part.interface", itemMultiPart.createPart( PartType.Interface ) );
this.levelEmitter = new DamagedItemDefinition( "part.level_emitter", itemMultiPart.createPart( PartType.LevelEmitter ) );
this.annihilationPlane = new DamagedItemDefinition( "part.plane.annihilation", itemMultiPart.createPart( PartType.AnnihilationPlane ) );
this.identityAnnihilationPlane = new DamagedItemDefinition( "part.plane.annihiliation.identity", itemMultiPart.createPart( PartType.IdentityAnnihilationPlane ) );
this.formationPlane = new DamagedItemDefinition( "part.plane.formation", itemMultiPart.createPart( PartType.FormationPlane ) );
this.p2PTunnelME = new DamagedItemDefinition( "part.tunnel.me", itemMultiPart.createPart( PartType.P2PTunnelME ) );
this.p2PTunnelRedstone = new DamagedItemDefinition( "part.tunnel.redstone", itemMultiPart.createPart( PartType.P2PTunnelRedstone ) );
this.p2PTunnelItems = new DamagedItemDefinition( "part.tunnel.item", itemMultiPart.createPart( PartType.P2PTunnelItems ) );
this.p2PTunnelLiquids = new DamagedItemDefinition( "part.tunnel.fluid", itemMultiPart.createPart( PartType.P2PTunnelLiquids ) );
//this.p2PTunnelEU = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelEU ) );
//this.p2PTunnelRF = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelRF ) );
this.p2PTunnelLight = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelLight ) );
this.p2PTunnelLight = new DamagedItemDefinition( "part.tunnel.light", itemMultiPart.createPart( PartType.P2PTunnelLight ) );
//this.p2PTunnelOpenComputers = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelOpenComputers ) );
this.cableAnchor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.CableAnchor ) );
this.monitor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.Monitor ) );
this.semiDarkMonitor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.SemiDarkMonitor ) );
this.darkMonitor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.DarkMonitor ) );
this.interfaceTerminal = new DamagedItemDefinition( itemMultiPart.createPart( PartType.InterfaceTerminal ) );
this.patternTerminal = new DamagedItemDefinition( itemMultiPart.createPart( PartType.PatternTerminal ) );
this.craftingTerminal = new DamagedItemDefinition( itemMultiPart.createPart( PartType.CraftingTerminal ) );
this.terminal = new DamagedItemDefinition( itemMultiPart.createPart( PartType.Terminal ) );
this.storageMonitor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.StorageMonitor ) );
this.conversionMonitor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.ConversionMonitor ) );
this.cableAnchor = new DamagedItemDefinition( "part.cable_anchor", itemMultiPart.createPart( PartType.CableAnchor ) );
this.monitor = new DamagedItemDefinition( "part.monitor", itemMultiPart.createPart( PartType.Monitor ) );
this.semiDarkMonitor = new DamagedItemDefinition( "part.monitor.semi_dark", itemMultiPart.createPart( PartType.SemiDarkMonitor ) );
this.darkMonitor = new DamagedItemDefinition( "part.monitor.dark", itemMultiPart.createPart( PartType.DarkMonitor ) );
this.interfaceTerminal = new DamagedItemDefinition( "part.terminal.interface", itemMultiPart.createPart( PartType.InterfaceTerminal ) );
this.patternTerminal = new DamagedItemDefinition( "part.terminal.pattern", itemMultiPart.createPart( PartType.PatternTerminal ) );
this.craftingTerminal = new DamagedItemDefinition( "part.terminal.crafting", itemMultiPart.createPart( PartType.CraftingTerminal ) );
this.terminal = new DamagedItemDefinition( "part.terminal", itemMultiPart.createPart( PartType.Terminal ) );
this.storageMonitor = new DamagedItemDefinition( "part.monitor.storage", itemMultiPart.createPart( PartType.StorageMonitor ) );
this.conversionMonitor = new DamagedItemDefinition( "part.monitor.conversion", itemMultiPart.createPart( PartType.ConversionMonitor ) );
}
@Override

View File

@ -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 );
}
}
}
}

View File

@ -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

View File

@ -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 )

View File

@ -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 );
}
}
}
}

View File

@ -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 );

View File

@ -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();
}
}

View File

@ -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()
{

View File

@ -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 )
{

View File

@ -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 );
}
}
}
}

View File

@ -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;
}

View File

@ -33,7 +33,6 @@ import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
import appeng.core.AELog;
import appeng.core.CommonHelper;
@ -66,7 +65,7 @@ final class PlayerData implements IWorldPlayerData, IOnWorldStartable, IOnWorldS
this.config = new Configuration( configFile, configVersion );
final ConfigCategory playerList = this.config.getCategory( "players" );
this.playerMapping = new PlayerMapping( playerList, AELog.INSTANCE );
this.playerMapping = new PlayerMapping( playerList );
}
@Nullable

View File

@ -27,9 +27,6 @@ import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.fml.relauncher.FMLRelaunchLog;
import com.google.common.base.Optional;
/**
@ -46,9 +43,9 @@ final class PlayerMapping implements IWorldPlayerMapping
*/
private final Map<Integer, UUID> mappings;
public PlayerMapping( ConfigCategory category, FMLRelaunchLog log )
public PlayerMapping( ConfigCategory category )
{
final PlayerMappingsInitializer init = new PlayerMappingsInitializer( category, log );
final PlayerMappingsInitializer init = new PlayerMappingsInitializer( category );
this.mappings = init.getPlayerMappings();
}

View File

@ -25,7 +25,6 @@ import java.util.UUID;
import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.Property;
import net.minecraftforge.fml.relauncher.FMLRelaunchLog;
import appeng.core.AELog;
import appeng.util.UUIDMatcher;
@ -50,9 +49,8 @@ class PlayerMappingsInitializer
* where the UUIDs were introduced.
*
* @param playerList the category for the player list, generally extracted using the "players" tag
* @param log the logger used to warn the server or user of faulty entries
*/
PlayerMappingsInitializer( ConfigCategory playerList, FMLRelaunchLog log )
PlayerMappingsInitializer( ConfigCategory playerList )
{
// Matcher for UUIDs
final UUIDMatcher matcher = new UUIDMatcher();
@ -61,7 +59,7 @@ class PlayerMappingsInitializer
final int capacity = playerList.size();
// Mappings for the IDs is a regular HashMap
this.playerMappings = new HashMap<Integer, UUID>( capacity );
this.playerMappings = new HashMap<>( capacity );
// Iterates through every pair of UUID to ID
for( Map.Entry<String, Property> entry : playerList.getValues().entrySet() )

View File

@ -104,7 +104,7 @@ public class TileItemGen extends AEBaseTile implements IInventory
}
@Override
public String getName()
public String getCommandSenderName()
{
return null;
}

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.Random;
@ -34,10 +34,10 @@ import appeng.core.AEConfig;
import appeng.core.CommonHelper;
public class OreQuartzCharged extends OreQuartz
public final class ChargedQuartzOreBlock extends QuartzOreBlock
{
public OreQuartzCharged()
public ChargedQuartzOreBlock()
{
this.setBoostBrightnessLow( 2 );
this.setBoostBrightnessHigh( 5 );

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -27,9 +27,9 @@ import appeng.block.AEDecorativeBlock;
import appeng.core.features.AEFeature;
public final class BlockQuartzChiseled extends AEDecorativeBlock
public final class ChiseledQuartzBlock extends AEDecorativeBlock
{
public BlockQuartzChiseled()
public ChiseledQuartzBlock()
{
super( Material.rock );

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -27,9 +27,9 @@ import appeng.block.AEDecorativeBlock;
import appeng.core.features.AEFeature;
public final class BlockFluix extends AEDecorativeBlock
public final class FluixBlock extends AEDecorativeBlock
{
public BlockFluix()
public FluixBlock()
{
super( Material.rock );

View File

@ -0,0 +1,20 @@
package appeng.decorative.solid;
import javax.annotation.Nonnull;
/**
* @author thatsIch
* @version rv3 - 29.06.2015
* @since rv3 29.06.2015
*/
public class FluixIdentifier implements Identifier
{
@Nonnull
@Override
public String identifier()
{
return "fluix";
}
}

View File

@ -0,0 +1,18 @@
package appeng.decorative.solid;
import javax.annotation.Nonnull;
/**
*
*
* @author thatsIch
* @version rv3 - 29.06.2015
* @since rv3 29.06.2015
*/
public interface Identifier
{
@Nonnull
String identifier();
}

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -27,9 +27,9 @@ import appeng.block.AEDecorativeBlock;
import appeng.core.features.AEFeature;
public final class BlockQuartz extends AEDecorativeBlock
public final class QuartzBlock extends AEDecorativeBlock
{
public BlockQuartz()
public QuartzBlock()
{
super( Material.rock );

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -35,9 +35,9 @@ import appeng.core.features.AEFeature;
import appeng.helpers.AEGlassMaterial;
public class BlockQuartzGlass extends AEBaseBlock
public class QuartzGlassBlock extends AEBaseBlock
{
public BlockQuartzGlass()
public QuartzGlassBlock()
{
super( Material.glass );
this.setLightOpacity( 0 );

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -32,10 +32,10 @@ import appeng.core.CommonHelper;
import appeng.core.features.AEFeature;
public class BlockQuartzLamp extends BlockQuartzGlass
public class QuartzLampBlock extends QuartzGlassBlock
{
public BlockQuartzLamp()
public QuartzLampBlock()
{
this.setLightLevel( 1.0f );
this.setBlockTextureName( "BlockQuartzGlass" );

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -40,13 +40,13 @@ import appeng.client.render.blocks.RenderQuartzOre;
import appeng.core.features.AEFeature;
public class OreQuartz extends AEBaseBlock
public class QuartzOreBlock extends AEBaseBlock
{
private int boostBrightnessLow;
private int boostBrightnessHigh;
private boolean enhanceBrightness;
public OreQuartz()
public QuartzOreBlock()
{
super( Material.rock );
this.setHardness( 3.0F );

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -34,10 +34,10 @@ import appeng.helpers.MetaRotation;
// TODO Quartz Rotation.
public class BlockQuartzPillar extends AEBaseBlock implements IOrientableBlock
public class QuartzPillarBlock extends AEBaseBlock implements IOrientableBlock
{
public BlockQuartzPillar()
public QuartzPillarBlock()
{
super( Material.rock );
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) );

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.solids;
package appeng.decorative.solid;
import java.util.EnumSet;
@ -38,30 +38,27 @@ import appeng.core.worlddata.WorldData;
import appeng.util.Platform;
public class BlockSkyStone extends AEBaseBlock
public class SkyStoneBlock extends AEBaseBlock
{
private static final float BLOCK_RESISTANCE = 150.0f;
private static final double BREAK_SPEAK_SCALAR = 0.1;
private static final double BREAK_SPEAK_THRESHOLD = 7.0;
private final SkystoneType type;
public static enum SkystoneType {
stone,block,brick,smallbrick
};
SkystoneType type;
public BlockSkyStone( SkystoneType type )
public SkyStoneBlock( SkystoneType type )
{
super( Material.rock, Optional.of( type.name()) );
super( Material.rock, Optional.of( type.name() ) );
this.setHardness( 50 );
this.hasSubtypes = true;
this.blockResistance = BLOCK_RESISTANCE;
if ( type == SkystoneType.stone )
if( type == SkystoneType.STONE )
{
this.setHarvestLevel( "pickaxe", 3 );
}
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.type = type;
MinecraftForge.EVENT_BUS.register( this );
}
@ -78,7 +75,7 @@ public class BlockSkyStone extends AEBaseBlock
level = is.getItem().getHarvestLevel( is, "pickaxe" );
}
if( type != SkystoneType.stone || level >= 3 || event.originalSpeed > BREAK_SPEAK_THRESHOLD )
if( type != SkystoneType.STONE || level >= 3 || event.originalSpeed > BREAK_SPEAK_THRESHOLD )
{
event.newSpeed /= BREAK_SPEAK_SCALAR;
}
@ -86,10 +83,7 @@ public class BlockSkyStone extends AEBaseBlock
}
@Override
public void onBlockAdded(
World w,
BlockPos pos,
IBlockState state )
public void onBlockAdded( World w, BlockPos pos, IBlockState state )
{
super.onBlockAdded( w, pos, state );
if( Platform.isServer() )
@ -99,27 +93,34 @@ public class BlockSkyStone extends AEBaseBlock
}
@Override
public String getUnlocalizedName( ItemStack is )
{
switch(type)
{
case block: return this.getUnlocalizedName() + ".Block";
case brick: return this.getUnlocalizedName() + ".Brick";
case smallbrick: return this.getUnlocalizedName() + ".SmallBrick";
default: return this.getUnlocalizedName();
}
}
@Override
public void breakBlock(
World w,
BlockPos pos,
IBlockState state )
public void breakBlock( World w, BlockPos pos, IBlockState state )
{
super.breakBlock( w, pos, state );
if( Platform.isServer() )
{
WorldData.instance().compassData().service().updateArea( w, pos.getX(), pos.getY(), pos.getZ() );
}
}
@Override
public String getUnlocalizedName( ItemStack is )
{
switch( type )
{
case BLOCK:
return this.getUnlocalizedName() + ".Block";
case BRICK:
return this.getUnlocalizedName() + ".Brick";
case SMALL_BRICK:
return this.getUnlocalizedName() + ".SmallBrick";
default:
return this.getUnlocalizedName();
}
}
public enum SkystoneType
{
STONE, BLOCK, BRICK, SMALL_BRICK
}
}

View File

@ -16,7 +16,7 @@
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.block.stair;
package appeng.decorative.stair;
import java.util.EnumSet;
@ -27,10 +27,10 @@ import appeng.block.AEBaseStairBlock;
import appeng.core.features.AEFeature;
public final class BlockStairCommon extends AEBaseStairBlock
public class BlockStairCommon extends AEBaseStairBlock
{
public BlockStairCommon( Block material, String type )
public BlockStairCommon( Block block, String type )
{
super( material,EnumSet.of( AEFeature.DecorativeQuartzBlocks ), type );
super( block, EnumSet.of( AEFeature.DecorativeQuartzBlocks ), type );
}
}

View File

@ -0,0 +1,58 @@
package appeng.decorative.stair;
import javax.annotation.Nonnull;
import com.google.common.base.Preconditions;
import net.minecraft.block.Block;
import appeng.decorative.solid.Identifier;
/**
* An refactor safe implementation for stair identifiers.
* The internal Strings are not supposed to be changed,
* they are used to persist the blocks into the save file.
*
* If you change these, you will break worlds if not countered
*
* @author thatsIch
* @version rv3 - 29.06.2015
* @since rv3 29.06.2015
*/
public enum DecorativeStairIdentifier implements Identifier
{
FLUIX("stair.fluix"),
CHISELED_CERTUS_QUARTZ("stair.quartz.certus.chiseled"),
CERTUS_QUARTZ("stair.quartz.certus"),
CERTUS_QUARTZ_PILLAR("stair.quartz.certus.pillar"),
SKYSTONE("stair.skystone"),
SKYSTONE_BLOCK("stair.skystone.block"),
SKYSTONE_BRICK("stair.skystone.brick"),
SKYSTONE_SMALL_BRICK("stair.skystone.brick.small");
private final String name;
/**
* Used to register the specific blocks
*
* @param name id of the block or a unique name
*
* @see net.minecraftforge.fml.common.registry.GameRegistry#registerBlock(Block, String)
*/
DecorativeStairIdentifier( @Nonnull String name )
{
Preconditions.checkNotNull( name );
Preconditions.checkArgument( !name.isEmpty() );
this.name = name;
}
@Nonnull
@Override
public String identifier()
{
return this.name;
}
}

View File

@ -0,0 +1,18 @@
package appeng.decorative.stair;
import net.minecraft.block.Block;
/**
* @author thatsIch
* @version rv3 - 30.06.2015
* @since rv3 30.06.2015
*/
public class FluixStairBlock extends BlockStairCommon
{
public FluixStairBlock( Block block, String type )
{
super( block, type );
}
}

View File

@ -0,0 +1,11 @@
package appeng.decorative.stair;
/**
* @author thatsIch
* @version rv3 - 30.06.2015
* @since rv3 30.06.2015
*/
public class FluixStairComponent
{
}

View File

@ -0,0 +1,22 @@
package appeng.decorative.stair;
import javax.annotation.Nonnull;
import appeng.decorative.solid.Identifier;
/**
* @author thatsIch
* @version rv3 - 29.06.2015
* @since rv3 29.06.2015
*/
public final class FluixStairIdentifier implements Identifier
{
@Nonnull
@Override
public String identifier()
{
return "stair.fluix";
}
}

View File

@ -0,0 +1,33 @@
package appeng.decorative.stair;
import java.util.function.Supplier;
import com.google.common.base.Preconditions;
import net.minecraft.block.Block;
import net.minecraft.block.BlockStairs;
/**
* @author thatsIch
* @version rv3 - 30.06.2015
* @since rv3 30.06.2015
*/
public class FluixStairSupplier implements Supplier<BlockStairs>
{
private final Supplier<Block> fluixBlockSupplier;
public FluixStairSupplier( Supplier<Block> fluixBlockSupplier )
{
Preconditions.checkNotNull( fluixBlockSupplier );
this.fluixBlockSupplier = fluixBlockSupplier;
}
@Override
public FluixStairBlock get()
{
return new FluixStairBlock( this.fluixBlockSupplier.get(), "fluix" );
}
}

View File

@ -0,0 +1,71 @@
package appeng.decorative.stair;
import javax.annotation.Nonnull;
import com.google.common.base.Optional;
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;
/**
* @author thatsIch
* @version rv3 - 29.06.2015
* @since rv3 29.06.2015
*/
public class StairBlockDefinition implements IBlockDefinition
{
public StairBlockDefinition()
{
}
@Override
public Optional<Block> maybeBlock()
{
return null;
}
@Override
public Optional<ItemBlock> maybeItemBlock()
{
return null;
}
@Override
public boolean isSameAs( IBlockAccess world, BlockPos pos )
{
return false;
}
@Nonnull
@Override
public String identifier()
{
return null;
}
@Override
public Optional<Item> maybeItem()
{
return null;
}
@Override
public Optional<ItemStack> maybeStack( int stackSize )
{
return null;
}
@Override
public boolean isSameAs( ItemStack comparableStack )
{
return false;
}
}

View File

@ -78,9 +78,9 @@ public class NetworkToolViewer implements INetworkTool
}
@Override
public String getName()
public String getCommandSenderName()
{
return this.inv.getName();
return this.inv.getCommandSenderName();
}
@Override

View File

@ -69,14 +69,14 @@ import appeng.util.InventoryAdaptor;
import appeng.util.Platform;
public final class ItemMultiMaterial extends AEBaseItem implements IStorageComponent, IUpgradeModule
public final class MultiItem extends AEBaseItem implements IStorageComponent, IUpgradeModule
{
public static final int KILO_SCALAR = 1024;
public static ItemMultiMaterial instance;
public static MultiItem instance;
private final Map<Integer, MaterialType> dmgToMaterial = new HashMap<Integer, MaterialType>();
public ItemMultiMaterial()
public MultiItem()
{
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setHasSubtypes( true );

View File

@ -45,7 +45,7 @@ import appeng.api.AEApi;
import appeng.api.exceptions.MissingDefinition;
import appeng.api.parts.IAlphaPassItem;
import appeng.api.util.AEPartLocation;
import appeng.block.solids.OreQuartz;
import appeng.decorative.solid.QuartzOreBlock;
import appeng.client.texture.BaseIcon;
import appeng.core.AppEng;
import appeng.core.FacadeConfig;
@ -159,7 +159,7 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte
boolean hasTile = b.hasTileEntity( b.getStateFromMeta( metadata ) );
boolean enableGlass = b instanceof BlockGlass || b instanceof BlockStainedGlass;
boolean disableOre = b instanceof OreQuartz;
boolean disableOre = b instanceof QuartzOreBlock;
boolean defaultValue = ( b.isOpaqueCube() && !b.getTickRandomly() && !hasTile && !disableOre ) || enableGlass;
if( FacadeConfig.instance.checkEnabled( b, metadata, defaultValue ) )

View File

@ -21,9 +21,13 @@ package appeng.items.tools.powered;
import java.util.EnumSet;
import com.google.common.base.Optional;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import appeng.core.AEConfig;
import appeng.core.features.AEFeature;
import appeng.core.sync.packets.PacketLightning;
@ -31,8 +35,6 @@ import appeng.items.tools.powered.powersink.AEBasePoweredItem;
import appeng.server.ServerHelper;
import appeng.util.Platform;
import com.google.common.base.Optional;
public class ToolChargedStaff extends AEBasePoweredItem
{
@ -53,9 +55,10 @@ public class ToolChargedStaff extends AEBasePoweredItem
{
for( int x = 0; x < 2; x++ )
{
float dx = (float) ( Platform.getRandomFloat() * target.width + target.getBoundingBox().minX );
float dy = (float) ( Platform.getRandomFloat() * target.height + target.getBoundingBox().minY );
float dz = (float) ( Platform.getRandomFloat() * target.width + target.getBoundingBox().minZ );
final AxisAlignedBB entityBoundingBox = target.getEntityBoundingBox();
float dx = (float) ( Platform.getRandomFloat() * target.width + entityBoundingBox.minX );
float dy = (float) ( Platform.getRandomFloat() * target.height + entityBoundingBox.minY );
float dz = (float) ( Platform.getRandomFloat() * target.width + entityBoundingBox.minZ );
ServerHelper.proxy.sendToAllNearExcept( null, dx, dy, dz, 32.0, target.worldObj, new PacketLightning( dx, dy, dz ) );
}
}

View File

@ -222,7 +222,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell
float f1 = 0.3F;
AxisAlignedBB boundingBox = entity1.getBoundingBox().expand( f1, f1, f1 );
AxisAlignedBB boundingBox = entity1.getEntityBoundingBox().expand( f1, f1, f1 );
MovingObjectPosition movingObjectPosition = boundingBox.calculateIntercept( vec3, vec31 );
if( movingObjectPosition != null )
@ -341,7 +341,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell
float f1 = 0.3F;
AxisAlignedBB boundingBox = entity1.getBoundingBox().expand( f1, f1, f1 );
AxisAlignedBB boundingBox = entity1.getEntityBoundingBox().expand( f1, f1, f1 );
MovingObjectPosition movingObjectPosition = boundingBox.calculateIntercept( vec3, vec31 );
if( movingObjectPosition != null )

View File

@ -22,6 +22,8 @@ package appeng.parts.misc;
import java.util.EnumSet;
import java.util.List;
import com.google.common.collect.ImmutableSet;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
@ -36,6 +38,7 @@ import net.minecraft.util.IChatComponent;
import net.minecraft.util.Vec3;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.api.config.Actionable;
import appeng.api.config.Upgrades;
import appeng.api.implementations.tiles.ITileStorageMonitorable;
@ -70,8 +73,6 @@ import appeng.tile.inventory.InvOperation;
import appeng.util.Platform;
import appeng.util.inv.IInventoryDestination;
import com.google.common.collect.ImmutableSet;
public class PartInterface extends PartBasicState implements IGridTickable, IStorageMonitorable, IInventoryDestination, IInterfaceHost, ISidedInventory, IAEAppEngInventory, ITileStorageMonitorable, IPriorityHost
{
@ -281,9 +282,9 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto
}
@Override
public String getName()
public String getCommandSenderName()
{
return this.duality.getStorage().getName();
return this.duality.getStorage().getCommandSenderName();
}
@Override

View File

@ -307,7 +307,7 @@ public class PartP2PItems extends PartP2PTunnel<PartP2PItems> implements ISidedI
}
@Override
public String getName()
public String getCommandSenderName()
{
return null;
}

View File

@ -30,7 +30,7 @@ import appeng.api.recipes.ResolverResultSet;
import appeng.api.util.AEColor;
import appeng.api.util.AEColoredItemDefinition;
import appeng.core.AppEng;
import appeng.items.materials.ItemMultiMaterial;
import appeng.items.materials.MultiItem;
import appeng.items.materials.MaterialType;
import appeng.items.misc.ItemCrystalSeed;
import appeng.items.parts.ItemMultiPart;
@ -123,7 +123,7 @@ public class AEItemResolver implements ISubItemResolver
String materialName = itemName.substring( itemName.indexOf( '.' ) + 1 );
MaterialType mt = MaterialType.valueOf( materialName );
// itemName = itemName.substring( 0, itemName.indexOf( "." ) );
if( mt.itemInstance == ItemMultiMaterial.instance && mt.damageValue >= 0 && mt.isRegistered() )
if( mt.itemInstance == MultiItem.instance && mt.damageValue >= 0 && mt.isRegistered() )
{
return new ResolverResult( "ItemMultiMaterial", mt.damageValue );
}

View File

@ -54,7 +54,7 @@ import appeng.core.AEConfig;
import appeng.core.AELog;
import appeng.core.AppEng;
import appeng.core.features.AEFeature;
import appeng.items.materials.ItemMultiMaterial;
import appeng.items.materials.MultiItem;
import appeng.items.misc.ItemCrystalSeed;
import appeng.items.parts.ItemMultiPart;
import appeng.recipes.handlers.IWebsiteSerializer;
@ -200,10 +200,10 @@ public class RecipeHandler implements IRecipeHandler
default:
}
}
else if( is.getItem() instanceof ItemMultiMaterial )
else if( is.getItem() instanceof MultiItem )
{
realName = realName.replace( "ItemMultiMaterial", "ItemMaterial" );
realName += '.' + ( (ItemMultiMaterial) is.getItem() ).getTypeByStack( is ).name();
realName += '.' + ( (MultiItem) is.getItem() ).getTypeByStack( is ).name();
}
else if( is.getItem() instanceof ItemMultiPart )
{

View File

@ -19,14 +19,14 @@
package appeng.server;
import com.google.common.base.Joiner;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.server.MinecraftServer;
import com.google.common.base.Joiner;
public final class AECommand extends CommandBase
{
@ -53,7 +53,7 @@ public final class AECommand extends CommandBase
}
@Override
public String getName()
public String getCommandName()
{
return "ae2";
}
@ -65,7 +65,7 @@ public final class AECommand extends CommandBase
}
@Override
public void execute(
public void processCommand(
ICommandSender sender,
String[] args ) throws CommandException
{
@ -101,7 +101,7 @@ public final class AECommand extends CommandBase
try
{
Commands c = Commands.valueOf( args[0] );
if( sender.canUseCommand( c.level, this.getName() ) )
if( sender.canCommandSenderUseCommand( c.level, this.getCommandName() ) )
{
c.command.call( this.srv, args, sender );
}

View File

@ -29,6 +29,7 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
@ -68,7 +69,7 @@ public class ServerHelper extends CommonHelper
}
@Override
public void bindTileEntitySpecialRenderer( Class tile, AEBaseBlock blk )
public void bindTileEntitySpecialRenderer( Class <? extends TileEntity> tile, AEBaseBlock blk )
{
throw new UnsupportedOperationException( "This is a server..." );
}

View File

@ -29,6 +29,7 @@ import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.ChunkProviderGenerate;
import appeng.api.AEApi;
import appeng.core.AEConfig;
@ -94,9 +95,7 @@ public class StorageChunkProvider extends ChunkProviderGenerate
}
@Override
public List func_177458_a(
EnumCreatureType p_177458_1_,
BlockPos p_177458_2_ )
public List getPossibleCreatures( EnumCreatureType creatureType, BlockPos pos )
{
return new ArrayList();
}

View File

@ -31,6 +31,7 @@ import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.IChatComponent;
import appeng.block.AEBaseBlock;
import appeng.tile.events.TileEventType;
import appeng.tile.inventory.IAEAppEngInventory;
@ -39,6 +40,11 @@ import appeng.tile.inventory.InvOperation;
public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventory, IAEAppEngInventory
{
@Override
public String getCommandSenderName()
{
return this.getCustomName();
}
@TileEvent( TileEventType.WORLD_NBT_READ )
public void readFromNBT_AEBaseInvTile( net.minecraft.nbt.NBTTagCompound data )
@ -102,15 +108,6 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor
this.getInternalInventory().setInventorySlotContents( i, itemstack );
}
/**
* Returns the name of the inventory
*/
@Override
public String getName()
{
return this.getCustomName();
}
/**
* Returns if the inventory is named
*/
@ -135,15 +132,17 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor
}
@Override
public void openInventory(EntityPlayer player) {
};
@Override
public void closeInventory(
EntityPlayer player )
public void openInventory( EntityPlayer player )
{
}
;
@Override
public void closeInventory( EntityPlayer player )
{
}
@Override
@ -156,8 +155,7 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor
public abstract void onChangeInventory( IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added );
@Override
public int[] getSlotsForFace(
EnumFacing side )
public int[] getSlotsForFace( EnumFacing side )
{
Block blk = this.worldObj.getBlockState( pos ).getBlock();
if( blk instanceof AEBaseBlock )
@ -178,41 +176,40 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor
{
return true;
}
@Override
public void clear()
{
this.getInternalInventory().clear();
}
@Override
public int getField(
int id )
public int getField( int id )
{
return 0;
}
@Override
public void setField(
int id,
int value )
public void setField( int id, int value )
{
}
@Override
public int getFieldCount()
{
return 0;
}
@Override
public IChatComponent getDisplayName()
{
if ( hasCustomName() )
return new ChatComponentText(getName());
if( hasCustomName() )
{
return new ChatComponentText( this.getCustomName() );
}
return new ChatComponentTranslation( getBlockType().getUnlocalizedName() );
}
public abstract int[] getAccessibleSlotsBySide( EnumFacing whichSide );
}

View File

@ -218,7 +218,7 @@ public class AppEngInternalAEInventory implements IInventory, Iterable<ItemStack
}
@Override
public String getName()
public String getCommandSenderName()
{
return "appeng-internal";
}

View File

@ -158,7 +158,7 @@ public class AppEngInternalInventory implements IInventory, Iterable<ItemStack>
}
@Override
public String getName()
public String getCommandSenderName()
{
return "appeng-internal";
}

View File

@ -68,7 +68,7 @@ public class AppEngNullInventory implements IInventory
}
@Override
public String getName()
public String getCommandSenderName()
{
return "appeng-internal";
}

View File

@ -20,9 +20,10 @@ package appeng.transformer;
import java.util.Map;
import javax.annotation.Nullable;
import com.google.common.eventbus.EventBus;
import net.minecraftforge.fml.common.DummyModContainer;
import net.minecraftforge.fml.common.LoadController;
import net.minecraftforge.fml.common.Mod.EventHandler;
@ -31,9 +32,8 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.relauncher.FMLRelaunchLog;
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin;
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.MCVersion;
import appeng.core.AEConfig;
import com.google.common.eventbus.EventBus;
import appeng.core.AEConfig;
@MCVersion( "1.8" )
@ -126,4 +126,6 @@ public final class AppEngCore extends DummyModContainer implements IFMLLoadingPl
{
return this.getVersion();
}
}

View File

@ -1541,7 +1541,7 @@ public class Platform
}
f1 = 0.3F;
AxisAlignedBB boundingBox = entity1.getBoundingBox().expand( f1, f1, f1 );
AxisAlignedBB boundingBox = entity1.getEntityBoundingBox().expand( f1, f1, f1 );
MovingObjectPosition movingObjectPosition = boundingBox.calculateIntercept( vec3, vec31 );
if( movingObjectPosition != null )

View File

@ -126,9 +126,9 @@ public class AdaptorPlayerInventory implements IInventory
}
@Override
public String getName()
public String getCommandSenderName()
{
return src.getName();
return src.getCommandSenderName();
}
@Override

View File

@ -138,7 +138,7 @@ public class WrapperBCPipe implements IInventory
}
@Override
public String getName()
public String getCommandSenderName()
{
return null;
}

View File

@ -24,13 +24,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.common.collect.ImmutableList;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IChatComponent;
import com.google.common.collect.ImmutableList;
public class WrapperChainedInventory implements IInventory
{
@ -168,7 +168,7 @@ public class WrapperChainedInventory implements IInventory
}
@Override
public String getName()
public String getCommandSenderName()
{
return "ChainedInv";
}

View File

@ -106,9 +106,9 @@ public class WrapperInvSlot
}
@Override
public String getName()
public String getCommandSenderName()
{
return this.inv.getName();
return this.inv.getCommandSenderName();
}
@Override

View File

@ -123,9 +123,9 @@ public class WrapperInventoryRange implements IInventory
}
@Override
public String getName()
public String getCommandSenderName()
{
return this.src.getName();
return this.src.getCommandSenderName();
}
@Override

View File

@ -62,7 +62,7 @@ public final class QuartzWorldGen implements IWorldGenerator
{
int x = ( chunkX << 4 ) + 8;
int z = ( chunkZ << 4 ) + 8;
seaLevel = w.getHorizon( new BlockPos( x, 0, z) ).getY();
seaLevel = (int) w.getHorizon();
}
if( this.oreNormal == null || this.oreCharged == null )

View File

@ -1,5 +1,5 @@
{
"variants": {
"normal": { "model": "appliedenergistics2:fluix" }
"normal": { "model": "appliedenergistics2:fluix/block" }
}
}

View File

@ -1,44 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair.fluix" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair.fluix", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair.fluix", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair.fluix", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair.fluix", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair.fluix", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair.fluix", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair.fluix", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair.fluix.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair.fluix.inner", "x": 180, "uvlock": true }
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/fluix/block" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/fluix/block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/fluix/block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/fluix/block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair/fluix/block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair/fluix/block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair/fluix/block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair/fluix/block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/fluix/outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/fluix/inner", "x": 180, "uvlock": true }
}
}

View File

@ -1,44 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "stair.quartz.certus.chiseled" },
"facing=west,half=bottom,shape=straight": { "model": "stair.quartz.certus.chiseled", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "stair.quartz.certus.chiseled", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "stair.quartz.certus.chiseled", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "stair.quartz.certus.chiseled", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "stair.quartz.certus.chiseled", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "stair.quartz.certus.chiseled", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "stair.quartz.certus.chiseled", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "stair.quartz.certus.chiseled.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "stair.quartz.certus.chiseled.inner", "x": 180, "uvlock": true }
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/chiseled/inner", "x": 180, "uvlock": true }
}
}

View File

@ -1,44 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "stair.quartz.certus" },
"facing=west,half=bottom,shape=straight": { "model": "stair.quartz.certus", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "stair.quartz.certus", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "stair.quartz.certus", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "stair.quartz.certus", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "stair.quartz.certus", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "stair.quartz.certus", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "stair.quartz.certus", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "stair.quartz.certus.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "stair.quartz.certus.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "stair.quartz.certus.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "stair.quartz.certus.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "stair.quartz.certus.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "stair.quartz.certus.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "stair.quartz.certus.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "stair.quartz.certus.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "stair.quartz.certus.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "stair.quartz.certus.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "stair.quartz.certus.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "stair.quartz.certus.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "stair.quartz.certus.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "stair.quartz.certus.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "stair.quartz.certus.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "stair.quartz.certus.inner", "x": 180, "uvlock": true }
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/inner", "x": 180, "uvlock": true }
}
}

View File

@ -1,44 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "stair.quartz.certus.pillar" },
"facing=west,half=bottom,shape=straight": { "model": "stair.quartz.certus.pillar", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "stair.quartz.certus.pillar", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "stair.quartz.certus.pillar", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "stair.quartz.certus.pillar", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "stair.quartz.certus.pillar", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "stair.quartz.certus.pillar", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "stair.quartz.certus.pillar", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "stair.quartz.certus.pillar.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "stair.quartz.certus.pillar.inner", "x": 180, "uvlock": true }
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair/quartz/certus/pillar/block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/quartz/certus/pillar/inner", "x": 180, "uvlock": true }
}
}

View File

@ -1,44 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "stair.skystone.block" },
"facing=west,half=bottom,shape=straight": { "model": "stair.skystone.block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "stair.skystone.block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "stair.skystone.block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "stair.skystone.block.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "stair.skystone.block.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "stair.skystone.block.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "stair.skystone.block.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "stair.skystone.block.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "stair.skystone.block.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "stair.skystone.block.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "stair.skystone.block.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "stair.skystone.block.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "stair.skystone.block.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "stair.skystone.block.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "stair.skystone.block.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "stair.skystone.block.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "stair.skystone.block.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "stair.skystone.block.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "stair.skystone.block.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "stair.skystone.block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "stair.skystone.block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "stair.skystone.block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "stair.skystone.block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "stair.skystone.block.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "stair.skystone.block.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "stair.skystone.block.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "stair.skystone.block.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "stair.skystone.block.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "stair.skystone.block.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "stair.skystone.block.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "stair.skystone.block.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "stair.skystone.block.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "stair.skystone.block.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "stair.skystone.block.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "stair.skystone.block.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "stair.skystone.block.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "stair.skystone.block.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "stair.skystone.block.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "stair.skystone.block.inner", "x": 180, "uvlock": true }
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/block/block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/block/outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/block/inner", "x": 180, "uvlock": true }
}
}

View File

@ -1,44 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "stair.skystone.brick" },
"facing=west,half=bottom,shape=straight": { "model": "stair.skystone.brick", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "stair.skystone.brick", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "stair.skystone.brick", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "stair.skystone.brick", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "stair.skystone.brick", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "stair.skystone.brick", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "stair.skystone.brick", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "stair.skystone.brick.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "stair.skystone.brick.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "stair.skystone.brick.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "stair.skystone.brick.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "stair.skystone.brick.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "stair.skystone.brick.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "stair.skystone.brick.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "stair.skystone.brick.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "stair.skystone.brick.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "stair.skystone.brick.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "stair.skystone.brick.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "stair.skystone.brick.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "stair.skystone.brick.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "stair.skystone.brick.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "stair.skystone.brick.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "stair.skystone.brick.inner", "x": 180, "uvlock": true }
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/inner", "x": 180, "uvlock": true }
}
}

View File

@ -1,44 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "stair.skystone.brick.small" },
"facing=west,half=bottom,shape=straight": { "model": "stair.skystone.brick.small", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "stair.skystone.brick.small", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "stair.skystone.brick.small", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.small.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.small.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.small.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "stair.skystone.brick.small.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.small.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.small.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.small.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "stair.skystone.brick.small.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.small.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.small.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.small.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "stair.skystone.brick.small.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.small.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.small.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.small.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "stair.skystone.brick.small.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "stair.skystone.brick.small", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "stair.skystone.brick.small", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "stair.skystone.brick.small", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "stair.skystone.brick.small", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "stair.skystone.brick.small.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "stair.skystone.brick.small.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "stair.skystone.brick.small.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "stair.skystone.brick.small.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "stair.skystone.brick.small.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "stair.skystone.brick.small.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "stair.skystone.brick.small.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "stair.skystone.brick.small.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "stair.skystone.brick.small.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "stair.skystone.brick.small.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "stair.skystone.brick.small.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "stair.skystone.brick.small.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "stair.skystone.brick.small.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "stair.skystone.brick.small.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "stair.skystone.brick.small.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "stair.skystone.brick.small.inner", "x": 180, "uvlock": true }
"facing=east,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block" },
"facing=west,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "appliedenergistics2:stair/skystone/brick/small/block", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "appliedenergistics2:stair/skystone/brick/small/outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "appliedenergistics2:stair/skystone/brick/small/inner", "x": 180, "uvlock": true }
}
}

View File

@ -1,44 +0,0 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "stair.skystone" },
"facing=west,half=bottom,shape=straight": { "model": "stair.skystone", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "stair.skystone", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "stair.skystone", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "stair.skystone.outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "stair.skystone.outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "stair.skystone.outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "stair.skystone.outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "stair.skystone.outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "stair.skystone.outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "stair.skystone.outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "stair.skystone.outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "stair.skystone.inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "stair.skystone.inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "stair.skystone.inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "stair.skystone.inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "stair.skystone.inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "stair.skystone.inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "stair.skystone.inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "stair.skystone.inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "stair.skystone", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "stair.skystone", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "stair.skystone", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "stair.skystone", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "stair.skystone.outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "stair.skystone.outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "stair.skystone.outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "stair.skystone.outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "stair.skystone.outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "stair.skystone.outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "stair.skystone.outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "stair.skystone.outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "stair.skystone.inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "stair.skystone.inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "stair.skystone.inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "stair.skystone.inner", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "stair.skystone.inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "stair.skystone.inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "stair.skystone.inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "stair.skystone.inner", "x": 180, "uvlock": true }
}
}

Some files were not shown because too many files have changed in this diff Show More