diff --git a/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java b/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java index 2b315e83..bb3a4729 100644 --- a/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java +++ b/src/main/java/appeng/decorative/solid/BlockQuartzGlass.java @@ -22,6 +22,8 @@ package appeng.decorative.solid; import java.util.EnumSet; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.IBlockState; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; @@ -30,11 +32,18 @@ import net.minecraft.world.IBlockAccess; import appeng.block.AEBaseBlock; import appeng.core.features.AEFeature; -import appeng.helpers.AEGlassMaterial; public class BlockQuartzGlass extends AEBaseBlock { + + public static final PropertyBool[] props = { PropertyBool.create( "down" ), PropertyBool.create( "up" ), PropertyBool.create( "north" ), PropertyBool.create( "south" ), PropertyBool.create( "west" ), PropertyBool.create( "east" ) }; + + private static boolean isGlassBlock( IBlockAccess world, BlockPos pos, EnumFacing facing ) + { + return world.getBlockState( pos.offset( facing ) ).getBlock() instanceof BlockQuartzGlass; + } + public BlockQuartzGlass() { super( Material.GLASS ); @@ -43,9 +52,26 @@ public class BlockQuartzGlass extends AEBaseBlock this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); } - private static boolean isGlassBlock( IBlockAccess world, BlockPos pos, EnumFacing facing ) + @Override + protected IProperty[] getAEStates() { - return world.getBlockState( pos.offset( facing ) ).getBlock() instanceof BlockQuartzGlass; + return props; + } + + @Override + public int getMetaFromState( IBlockState state ) + { + return 0; + } + + @Override + public IBlockState getExtendedState( IBlockState state, IBlockAccess world, BlockPos pos ) + { + for( EnumFacing facing : EnumFacing.values() ) + { + state = state.withProperty( props[facing.ordinal()], isGlassBlock( world, pos, facing ) ); + } + return state; } @Override @@ -57,15 +83,7 @@ public class BlockQuartzGlass extends AEBaseBlock @Override public boolean shouldSideBeRendered( final IBlockState state, final IBlockAccess w, final BlockPos pos, final EnumFacing side ) { - final Material mat = w.getBlockState( pos ).getBlock().getMaterial( state ); - if( mat == Material.GLASS || mat == AEGlassMaterial.INSTANCE ) - { - if( w.getBlockState( pos ).getBlock().getRenderType( state ) == this.getRenderType( state ) ) - { - return false; - } - } - return super.shouldSideBeRendered( state, w, pos, side ); + return !isGlassBlock( w, pos, side ) && super.shouldSideBeRendered( state, w, pos, side ); } @Override diff --git a/src/main/resources/assets/appliedenergistics2/blockstates/quartz_glass.json b/src/main/resources/assets/appliedenergistics2/blockstates/quartz_glass.json index 57e34fa7..a34ef0e1 100644 --- a/src/main/resources/assets/appliedenergistics2/blockstates/quartz_glass.json +++ b/src/main/resources/assets/appliedenergistics2/blockstates/quartz_glass.json @@ -1,7 +1,31 @@ { - "variants": { - "normal": { - "model": "appliedenergistics2:quartz" + "multipart": [ + { + "apply": [{ "model": "appliedenergistics2:quartz_glass_1" }, { "model": "appliedenergistics2:quartz_glass_2" }, { "model": "appliedenergistics2:quartz_glass_3" }, { "model": "appliedenergistics2:quartz_glass_4" }] + }, + { + "when": { "down": "false" }, + "apply": { "model": "appliedenergistics2:quartz_glass_frame", "x": 90 } + }, + { + "when": { "up": "false" }, + "apply": { "model": "appliedenergistics2:quartz_glass_frame", "x": -90 } + }, + { + "when": { "north": "false" }, + "apply": { "model": "appliedenergistics2:quartz_glass_frame"} + }, + { + "when": { "south": "false" }, + "apply": { "model": "appliedenergistics2:quartz_glass_frame", "y": 180 } + }, + { + "when": { "west": "false" }, + "apply": { "model": "appliedenergistics2:quartz_glass_frame", "y": -90 } + }, + { + "when": { "east": "false" }, + "apply": { "model": "appliedenergistics2:quartz_glass_frame", "y": 90 } } - } -} \ No newline at end of file + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass.json b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass.json deleted file mode 100644 index 594e770f..00000000 --- a/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "appliedenergistics2:blocks/quartz_ore" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_1.json b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_1.json new file mode 100644 index 00000000..88c195a8 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "appliedenergistics2:blocks/quartz_glass_1" + } +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_2.json b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_2.json new file mode 100644 index 00000000..fde5e994 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_2.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "appliedenergistics2:blocks/quartz_glass_2" + } +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_3.json b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_3.json new file mode 100644 index 00000000..e29a0c87 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_3.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "appliedenergistics2:blocks/quartz_glass_3" + } +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_4.json b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_4.json new file mode 100644 index 00000000..7d6895f6 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_4.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "appliedenergistics2:blocks/quartz_glass_4" + } +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_frame.json b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_frame.json new file mode 100644 index 00000000..594c4f37 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/quartz_glass_frame.json @@ -0,0 +1,18 @@ +{ + "textures": { + "0": "appliedenergistics2:blocks/quartz_glass_frame" + }, + "elements": [ + { + "name": "Frame", + "from": [ 0.0, 0.0, 0.0 ], + "to": [ 16.0, 16.0, 1.0 ], + "faces": { + "east": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 16.0 ], "cullface": "east" }, + "west": { "texture": "#0", "uv": [ 0.0, 0.0, 1.0, 16.0 ], "cullface": "west" }, + "up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ], "cullface": "up" }, + "down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ], "cullface": "down" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/quartz_glass.json b/src/main/resources/assets/appliedenergistics2/models/item/quartz_glass.json index cfe7da7d..ae7ee206 100644 --- a/src/main/resources/assets/appliedenergistics2/models/item/quartz_glass.json +++ b/src/main/resources/assets/appliedenergistics2/models/item/quartz_glass.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "appliedenergistics2:items/quartz_glass" + "all": "appliedenergistics2:blocks/quartz_glass" } } \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass.png new file mode 100644 index 00000000..334373ab Binary files /dev/null and b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass.png differ diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass.png.mcmeta b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass.png.mcmeta new file mode 100644 index 00000000..2e22c041 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 100 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_1.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_1.png new file mode 100644 index 00000000..08ced73f Binary files /dev/null and b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_1.png differ diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_2.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_2.png new file mode 100644 index 00000000..51ce1f7d Binary files /dev/null and b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_2.png differ diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_3.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_3.png new file mode 100644 index 00000000..640b0bea Binary files /dev/null and b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_3.png differ diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_4.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_4.png new file mode 100644 index 00000000..78445807 Binary files /dev/null and b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_4.png differ diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_frame.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_frame.png new file mode 100644 index 00000000..e6943dd2 Binary files /dev/null and b/src/main/resources/assets/appliedenergistics2/textures/blocks/quartz_glass_frame.png differ