change slabs

This commit is contained in:
Sen 2025-06-30 13:10:18 +02:00
parent ea2d11ae3a
commit b2d3f5a641
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
13 changed files with 245 additions and 571 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

View file

@ -8,14 +8,13 @@ import common.block.Material;
import common.collect.Lists;
import common.entity.Entity;
import common.entity.types.EntityLiving;
import common.init.BlockRegistry;
import common.item.CheatTab;
import common.item.Item;
import common.item.ItemStack;
import common.item.block.ItemSlab;
import common.model.Model;
import common.model.ModelProvider;
import common.properties.Property;
import common.properties.PropertyBool;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Facing;
@ -24,331 +23,139 @@ import common.world.IWorldAccess;
import common.world.State;
import common.world.World;
public class BlockSlab extends Block implements Directional
{
public static final PropertyBool DOUBLE = PropertyBool.create("double");
public static final PropertyBool SEAMLESS = PropertyBool.create("seamless");
public static final List<BlockSlab> SLABS = Lists.newArrayList();
private final String textureTop;
private final String textureBottom;
private final String textureSide;
public BlockSlab(Material materialIn, String texture)
{
this(materialIn, texture, texture, texture);
}
public BlockSlab(Material materialIn, String side, String bottom, String top)
{
super(materialIn);
this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.DOWN).withProperty(DOUBLE, false)
.withProperty(SEAMLESS, false));
this.setTab(materialIn == Material.WOOD ? CheatTab.WOOD : CheatTab.BLOCKS);
public class BlockSlab extends Block implements Directional {
public static final List<BlockSlab> SLABS = Lists.newArrayList();
// this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
private final Block base;
private final State baseState;
private final String textureTop;
private final String textureBottom;
this.setLightOpacity(255);
this.textureTop = top;
this.textureBottom = bottom;
this.textureSide = side;
SLABS.add(this);
}
public BlockSlab(Block base) {
this(base, null, null);
}
protected Property[] getProperties()
{
return new Property[] {FACING, DOUBLE, SEAMLESS};
}
public BlockSlab(Block base, String bottom, String top) {
super(base.getMaterial());
this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.DOWN));
this.setTab(base.getMaterial() == Material.WOOD ? CheatTab.WOOD : CheatTab.BLOCKS);
public boolean canSilkHarvest()
{
return false;
}
public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, State state, float chance, int fortune)
{
if (!worldIn.client)
{
int i = state.getBlock() == this && state.getValue(DOUBLE) ? 2 : 1;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
for (int j = 0; j < i; ++j)
{
if (worldIn.rand.floatv() <= chance)
{
Item item = this.getItemDropped(state, worldIn.rand, fortune);
this.setLightOpacity(255);
this.base = base;
this.baseState = base.getState();
this.textureTop = top;
this.textureBottom = bottom;
SLABS.add(this);
}
if (item != null)
{
spawnAsEntity(worldIn, pos, new ItemStack(item));
}
}
}
}
}
public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer)
{
State iblockstate = this.getState().withProperty(FACING, Facing.DOWN);
return facing != Facing.DOWN && (facing == Facing.UP || (double)hitY <= 0.5D) ? iblockstate :
iblockstate.withProperty(FACING, Facing.UP);
}
public void setBlockBoundsBasedOnState(IWorldAccess worldIn, BlockPos pos)
{
// if (this.isDouble())
// {
// this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
// }
// else
// {
State iblockstate = worldIn.getState(pos);
protected Property[] getProperties() {
return new Property[] {FACING};
}
if (iblockstate.getBlock() == this)
{
if(iblockstate.getValue(DOUBLE)) {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
return;
}
switch(iblockstate.getValue(FACING)) {
case EAST:
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case WEST:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 1.0F, 1.0F);
break;
case SOUTH:
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 1.0F);
break;
case NORTH:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
break;
case UP:
this.setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case DOWN:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
break;
}
// if (iblockstate.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP)
// {
//
// }
// else
// {
//
// }
}
// }
}
public boolean canSilkHarvest() {
return false;
}
// public void setBlockBoundsBasedOnState(IWorldAccess worldIn, BlockPos pos)
// {
// IBlockState iblockstate = worldIn.getBlockState(pos);
//
// if (iblockstate.getBlock() == this)
// {
// }
// }
public void setBlockBoundsForItemRender()
{
// this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
}
public void addCollisionBoxesToList(World worldIn, BlockPos pos, State state, BoundingBox mask, List<BoundingBox> list, Entity collidingEntity)
{
this.setBlockBoundsBasedOnState(worldIn, pos);
super.addCollisionBoxesToList(worldIn, pos, state, mask, list, collidingEntity);
}
public boolean isOpaqueCube()
{
return false;
}
// public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
// {
// return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer).withProperty(FACING, placer.getHorizontalFacing() /* .getOpposite() */);
// }
public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) {
State iblockstate = this.getState().withProperty(FACING, Facing.DOWN);
return facing != Facing.DOWN && (facing == Facing.UP || (double)hitY <= 0.5D) ? iblockstate : iblockstate.withProperty(FACING, Facing.UP);
}
public boolean isFullCube()
{
return false;
}
public void setBlockBoundsBasedOnState(IWorldAccess worldIn, BlockPos pos) {
State iblockstate = worldIn.getState(pos);
protected static boolean isSlab(Block blockIn)
{
return blockIn instanceof BlockSlab;
}
if(iblockstate.getBlock() == this) {
switch(iblockstate.getValue(FACING)) {
case EAST:
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case WEST:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 1.0F, 1.0F);
break;
case SOUTH:
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 1.0F);
break;
case NORTH:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
break;
case UP:
this.setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F);
break;
case DOWN:
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
break;
}
}
}
public boolean shouldSideBeRendered(IWorldAccess worldIn, BlockPos pos, Facing side)
{
State iblockstate = worldIn.getState(pos);
if (iblockstate.getBlock() == this && iblockstate.getValue(DOUBLE))
{
return super.shouldSideBeRendered(worldIn, pos, side);
}
if(iblockstate.getBlock() == this && iblockstate.getValue(FACING).getAxis() == Axis.Y) {
if (side != Facing.UP && side != Facing.DOWN && !super.shouldSideBeRendered(worldIn, pos, side))
{
return false;
}
else
{
BlockPos blockpos = pos.offset(side.getOpposite());
// IBlockState iblockstate = worldIn.getBlockState(pos);
State iblockstate1 = worldIn.getState(blockpos);
if(isSlab(iblockstate1.getBlock()) && iblockstate.getValue(FACING).getAxis() == Axis.Y)
return true;
boolean flag = isSlab(iblockstate.getBlock()) && iblockstate.getValue(FACING) == Facing.UP;
boolean flag1 = isSlab(iblockstate1.getBlock()) && iblockstate1.getValue(FACING) == Facing.UP;
return flag1 ? (side == Facing.DOWN ? true : (side == Facing.UP && super.shouldSideBeRendered(worldIn, pos, side) ? true : !isSlab(iblockstate.getBlock()) || !flag)) : (side == Facing.UP ? true : (side == Facing.DOWN && super.shouldSideBeRendered(worldIn, pos, side) ? true : !isSlab(iblockstate.getBlock()) || flag));
}
}
if (side == Facing.UP || side == Facing.DOWN)
{
return super.shouldSideBeRendered(worldIn, pos, side);
}
else
{
return (iblockstate.getBlock() == this && iblockstate.getValue(FACING) == side.getOpposite()) || super.shouldSideBeRendered(worldIn, pos, side);
}
}
public void setBlockBoundsForItemRender() {
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
}
// public boolean shouldSideBeRendered(IWorldAccess worldIn, BlockPos pos, EnumFacing side)
// {
//
//
// }
// public abstract String getUnlocalizedName(int meta);
// public int getDamageValue(World worldIn, BlockPos pos)
// {
// return super.getDamageValue(worldIn, pos) & 7;
// }
public void addCollisionBoxesToList(World worldIn, BlockPos pos, State state, BoundingBox mask, List<BoundingBox> list, Entity collidingEntity) {
this.setBlockBoundsBasedOnState(worldIn, pos);
super.addCollisionBoxesToList(worldIn, pos, state, mask, list, collidingEntity);
}
// public abstract IProperty<?> getVariantProperty();
//
// public abstract Object getVariant(ItemStack stack);
public Model getModel(ModelProvider provider, String name, State state) {
if(state.getValue(DOUBLE)) {
return provider.getModel(state.getValue(SEAMLESS) ? this.textureTop : this.textureSide)
.add().nswe().d(state.getValue(SEAMLESS) ? this.textureTop : this.textureBottom).u(this.textureTop);
}
else {
if(state.getValue(FACING).getAxis() != Axis.Y)
return provider.getModel(this.textureSide).vslab(state.getValue(FACING), this.textureBottom, this.textureTop);
else
return provider.getModel(this.textureSide).slab(state.getValue(FACING) == Facing.UP, this.textureBottom,
this.textureTop);
}
}
public boolean isOpaqueCube() {
return false;
}
public boolean isFullCube() {
return false;
}
private static boolean isSlab(Block blockIn) {
return blockIn instanceof BlockSlab;
}
public boolean shouldSideBeRendered(IWorldAccess worldIn, BlockPos pos, Facing side) {
State iblockstate = worldIn.getState(pos);
if(iblockstate.getBlock() == this && iblockstate.getValue(FACING).getAxis() == Axis.Y) {
if(side != Facing.UP && side != Facing.DOWN && !super.shouldSideBeRendered(worldIn, pos, side)) {
return false;
}
else {
BlockPos blockpos = pos.offset(side.getOpposite());
State iblockstate1 = worldIn.getState(blockpos);
if(isSlab(iblockstate1.getBlock()) && iblockstate.getValue(FACING).getAxis() == Axis.Y)
return true;
boolean flag = isSlab(iblockstate.getBlock()) && iblockstate.getValue(FACING) == Facing.UP;
boolean flag1 = isSlab(iblockstate1.getBlock()) && iblockstate1.getValue(FACING) == Facing.UP;
return flag1
? (side == Facing.DOWN ? true
: (side == Facing.UP && super.shouldSideBeRendered(worldIn, pos, side) ? true
: !isSlab(iblockstate.getBlock()) || !flag))
: (side == Facing.UP ? true
: (side == Facing.DOWN && super.shouldSideBeRendered(worldIn, pos, side) ? true
: !isSlab(iblockstate.getBlock()) || flag));
}
}
if(side == Facing.UP || side == Facing.DOWN) {
return super.shouldSideBeRendered(worldIn, pos, side);
}
else {
return (iblockstate.getBlock() == this && iblockstate.getValue(FACING) == side.getOpposite())
|| super.shouldSideBeRendered(worldIn, pos, side);
}
}
public Model getModel(ModelProvider provider, String name, State state) {
String primary = this.base.getModel(provider, BlockRegistry.getName(this.base), this.baseState).getPrimary();
if(state.getValue(FACING).getAxis() != Axis.Y)
return provider.getModel(primary).vslab(state.getValue(FACING), this.textureBottom != null ? this.textureBottom : primary, this.textureTop != null ? this.textureTop : primary);
else
return provider.getModel(primary).slab(state.getValue(FACING) == Facing.UP, this.textureBottom != null ? this.textureBottom : primary, this.textureTop != null ? this.textureTop : primary);
}
public boolean getSumBrightness() {
return true;
}
protected Item getItemToRegister() {
return new ItemSlab(this);
}
/*
public Model getModel(String name, IBlockState state) {
if(state.getValue(VARIANT) == EnumType.STONE)
return state.getValue(SEAMLESS) ? provider.getModel("double_stone_top").add().all() :
provider.getModel("stone_slab_side").add().nswe().du("double_stone_top");
else if(state.getValue(VARIANT) == EnumType.QUARTZ)
return provider.getModel("quartz_block_side").add().nswe().d("quartz_block_bottom").u("quartz_top");
else if(state.getValue(VARIANT) == EnumType.SAND)
return provider.getModel("sandstone_normal").add().nswe().d("sandstone_bottom").u("sandstone_all");
else
return provider.getModel(getTexture(state.getValue(VARIANT))).add().all();
}
public Model getModel(String name, IBlockState state) {
if(state.getValue(VARIANT) == EnumType.STONE)
return provider.getModel("stone_slab_side").slab(state.getValue(HALF) == EnumBlockHalf.TOP, "double_stone_top");
else if(state.getValue(VARIANT) == EnumType.QUARTZ)
return provider.getModel("quartz_block_side").slab(state.getValue(HALF) == EnumBlockHalf.TOP, "quartz_block_bottom",
"quartz_top");
else if(state.getValue(VARIANT) == EnumType.SAND)
return provider.getModel("sandstone_normal").slab(state.getValue(HALF) == EnumBlockHalf.TOP, "sandstone_bottom",
"sandstone_all");
else
return provider.getModel(getTexture(state.getValue(VARIANT))).slab(state.getValue(HALF) == EnumBlockHalf.TOP);
}
public Model getModel(String name, IBlockState state) {
return provider.getModel(state.getValue(VARIANT).getName() + "_planks").slab(state.getValue(HALF) == EnumBlockHalf.TOP);
}
public Model getModel(String name, IBlockState state) {
return provider.getModel(state.getValue(VARIANT).getName() + "_planks").add().all();
}
protected static String getTexture(BlockStoneSlab.EnumType type) {
switch(type) {
case BRICK:
return "brick_block";
case SMOOTHBRICK:
return "stonebrick_default";
case WOOD:
return "oak_planks";
default:
return type.getName();
}
}
private static String getTexture(BlockVertStoneSlab.EnumType type) {
switch(type) {
case WOOD:
return "oak_planks";
default:
return type.getName();
}
}
public Model getModel(String name, IBlockState state) {
if(state.getValue(VARIANT) == EnumType.STONE)
return provider.getModel("stone_slab_side").vslab(state.getValue(FACING), "double_stone_top");
else if(state.getValue(VARIANT) == EnumType.SAND)
return provider.getModel("sandstone_normal").vslab(state.getValue(FACING), "sandstone_bottom",
"sandstone_all");
else
return provider.getModel(getTexture(state.getValue(VARIANT))).vslab(state.getValue(FACING));
}
private static String getTexture(BlockVertStoneSlab2.EnumType type) {
switch(type) {
case BRICK:
return "brick_block";
case SMOOTHBRICK:
return "stonebrick_default";
default:
return type.getName();
}
}
public Model getModel(String name, IBlockState state) {
if(state.getValue(VARIANT) == EnumType.QUARTZ)
return provider.getModel("quartz_block_side").vslab(state.getValue(FACING), "quartz_block_bottom",
"quartz_top");
else
return provider.getModel(getTexture(state.getValue(VARIANT))).vslab(state.getValue(FACING));
}
public Model getModel(String name, IBlockState state) {
return provider.getModel(state.getValue(VARIANT).getName() + "_planks").vslab(state.getValue(FACING));
}
public Model getModel(String name, IBlockState state) {
return provider.getModel(state.getValue(VARIANT).getName() + "_planks").vslab(state.getValue(FACING));
}
*/
}

View file

@ -788,8 +788,7 @@ public class BlockStairs extends Block implements Rotatable
}
public Model getModel(ModelProvider provider, String name, State state) {
String primary = this.modelBlock.getModel(provider, BlockRegistry.getName(this.modelBlock).toString(), this.modelState)
.getPrimary();
String primary = this.modelBlock.getModel(provider, BlockRegistry.getName(this.modelBlock), this.modelState).getPrimary();
return provider.getModel(primary)
.stairs(state.getValue(HALF) == EnumHalf.TOP, state.getValue(SHAPE) == EnumShape.INNER_RIGHT ||
state.getValue(SHAPE) == EnumShape.INNER_LEFT, state.getValue(SHAPE) == EnumShape.OUTER_RIGHT ||

View file

@ -495,18 +495,17 @@ public abstract class BlockRegistry {
register("stone_slab", (new BlockSlab(Material.SOLID, "stone_slab_side", "double_stone_top", "double_stone_top"))
register("stone_slab", (new BlockSlab(stone))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Steinstufe"));
register("stone_stairs", (new BlockStairs(stone.getState())).setDisplay("Steintreppe"));
register("cobblestone_slab", (new BlockSlab(Material.SOLID, "cobblestone"))
register("cobblestone_slab", (new BlockSlab(cobblestone))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Bruchsteinstufe"));
register("cobblestone_stairs", (new BlockStairs(cobblestone.getState())).setDisplay("Bruchsteintreppe"));
register("cobblestone_wall", (new BlockWall(cobblestone, "cobblestone")).setDisplay("Bruchsteinmauer"));
register("mossy_cobblestone_wall", (new BlockWall(mossyCobblestone, "mossy_cobblestone")).setDisplay("Bemooste Bruchsteinmauer"));
register("sandstone_slab", (new BlockSlab(Material.SOLID, "sandstone_normal", "sandstone_bottom", "sandstone_all"))
register("sandstone_slab", (new BlockSlab(sandstone, "sandstone_bottom", "sandstone_all"))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Sandsteinstufe"));
register("sandstone_stairs", (new BlockStairs(sandstone.getState(),
"sandstone_bottom", "sandstone_all")) // fix type
@ -516,7 +515,7 @@ public abstract class BlockRegistry {
register("quartz_block", quartz);
register("quartz_ornaments", (new BlockQuartz(false, true)).setStepSound(SoundType.STONE).setHardness(0.8F).setDisplay("Gemeißelter Quarzblock"));
register("quartz_pillar", (new BlockQuartzPillar(false)).setStepSound(SoundType.STONE).setHardness(0.8F).setDisplay("Quarzsäule"));
register("quartz_slab", (new BlockSlab(Material.SOLID, "quartz_block_side", "quartz_block_bottom", "quartz_top"))
register("quartz_slab", (new BlockSlab(quartz, "quartz_block_bottom", "quartz_top"))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Quarzstufe"));
register("quartz_stairs", (new BlockStairs(quartz.getState(),
"quartz_block_bottom", "quartz_top"))
@ -529,7 +528,7 @@ public abstract class BlockRegistry {
Block brick = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE)
.setDisplay("Ziegelsteine").setTab(CheatTab.BLOCKS);
register("brick_block", brick);
register("brick_slab", (new BlockSlab(Material.SOLID, "brick_block"))
register("brick_slab", (new BlockSlab(brick))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Ziegelstufe"));
register("brick_stairs", (new BlockStairs(brick.getState())).setDisplay("Ziegeltreppe"));
@ -542,7 +541,7 @@ public abstract class BlockRegistry {
.setDisplay("Rissige Steinziegel").setTab(CheatTab.BLOCKS));
register("carved_stonebrick", (new Block(Material.SOLID)).setHardness(1.5F).setResistance(10.0F).setStepSound(SoundType.STONE)
.setDisplay("Gemeißelte Steinziegel").setTab(CheatTab.BLOCKS));
register("stonebrick_slab", (new BlockSlab(Material.SOLID, "stonebrick"))
register("stonebrick_slab", (new BlockSlab(stonebrick))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Steinziegelstufe"));
register("stonebrick_stairs", (new BlockStairs(stonebrick.getState()))
.setDisplay("Steinziegeltreppe"));
@ -551,7 +550,7 @@ public abstract class BlockRegistry {
Block bloodBrick = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE)
.setDisplay("Blutrote Ziegel").setTab(CheatTab.BLOCKS);
register("blood_brick", bloodBrick);
register("blood_brick_slab", (new BlockSlab(Material.SOLID, "blood_brick"))
register("blood_brick_slab", (new BlockSlab(bloodBrick))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Blutrote Ziegelstufe"));
register("blood_brick_fence", (new BlockFence(Material.SOLID, "blood_brick")).setHardness(2.0F).setResistance(10.0F)
.setStepSound(SoundType.STONE).setDisplay("Blutroter Ziegelzaun"));
@ -561,7 +560,7 @@ public abstract class BlockRegistry {
Block blackBrick = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE)
.setDisplay("Schwarze Ziegel").setTab(CheatTab.BLOCKS);
register("black_brick", blackBrick);
register("black_brick_slab", (new BlockSlab(Material.SOLID, "black_brick"))
register("black_brick_slab", (new BlockSlab(blackBrick))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Schwarze Ziegelstufe"));
register("black_brick_stairs", (new BlockStairs(blackBrick.getState())).setDisplay("Schwarze Ziegeltreppe"));
register("black_brick_fence", (new BlockFence(Material.SOLID, "black_brick")).setHardness(2.0F).setResistance(10.0F)
@ -571,12 +570,18 @@ public abstract class BlockRegistry {
register("black_quartz_block", bquartz);
register("black_quartz_ornaments", (new BlockQuartz(true, true)).setStepSound(SoundType.STONE).setHardness(0.8F).setDisplay("Schwarzer gemeißelter Quarzblock"));
register("black_quartz_pillar", (new BlockQuartzPillar(true)).setStepSound(SoundType.STONE).setHardness(0.8F).setDisplay("Schwarze Quarzsäule"));
register("black_quartz_slab", (new BlockSlab(Material.SOLID, "black_quartz_block_side", "black_quartz_block_bottom", "black_quartz_top"))
register("black_quartz_slab", (new BlockSlab(bquartz, "black_quartz_block_bottom", "black_quartz_top"))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Schwarze Quarzstufe"));
register("black_quartz_stairs", (new BlockStairs(bquartz.getState(),
"black_quartz_block_bottom", "black_quartz_top"))
.setDisplay("Schwarze Quarztreppe"));
Block concrete = (new Block(Material.SOLID)).setHardness(1.5F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Beton").setTab(CheatTab.BLOCKS);
register("concrete", concrete);
register("concrete_slab", (new BlockSlab(concrete))
.setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Betonstufe"));
register("concrete_stairs", (new BlockStairs(concrete.getState())).setDisplay("Betontreppe"));
for(DecoType deco : DecoType.values()) {
register(deco.name, (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F)
.setStepSound(SoundType.STONE).setDisplay(deco.display).setTab(CheatTab.BLOCKS));
@ -592,7 +597,7 @@ public abstract class BlockRegistry {
register(wood.getName() + "_planks", planks);
register(wood.getName() + "_stairs", (new BlockStairs(planks.getState()))
.setDisplay(wood.getDisplay() + "holztreppe").setFlammable(5, 20));
register(wood.getName() + "_slab", (new BlockSlab(Material.WOOD, wood.getName() + "_planks"))
register(wood.getName() + "_slab", (new BlockSlab(planks))
.setHardness(2.0F).setResistance(5.0F).setStepSound(SoundType.WOOD).setDisplay(wood.getDisplay() + "holzstufe").setFlammable(5, 20));
register(wood.getName() + "_fence", (new BlockFence(Material.WOOD, wood.getName() + "_planks"))
.setHardness(2.0F).setResistance(5.0F).setStepSound(SoundType.WOOD).setDisplay(wood.getDisplay() + "holzzaun").setFlammable(5, 20));

View file

@ -578,6 +578,9 @@ public abstract class Blocks {
public static final BlockWool yellow_wool = get("yellow_wool");
public static final Block zinc_block = get("zinc_block");
public static final BlockOre zinc_ore = get("zinc_ore");
public static final Block concrete = get("concrete");
public static final BlockSlab concrete_slab = get("concrete_slab");
public static final BlockStairs concrete_stairs = get("concrete_stairs");
private static <T extends Block> T get(String id) {
T block = (T)BlockRegistry.byNameExact(id);

View file

@ -957,6 +957,9 @@ public abstract class Items {
public static final ItemFishFood cooked_salmon = get("cooked_salmon");
public static final ItemFishFood clownfish = get("clownfish");
public static final ItemFishFood pufferfish = get("pufferfish");
public static final ItemBlock concrete = get("concrete");
public static final ItemSlab concrete_slab = get("concrete_slab");
public static final ItemBlock concrete_stairs = get("concrete_stairs");
private static <T extends Item> T get(String id) {
T item = (T)ItemRegistry.byName(id);

View file

@ -9,176 +9,35 @@ import common.util.Facing;
import common.world.State;
import common.world.World;
public class ItemSlab extends ItemBlock
{
private final BlockSlab slab;
public class ItemSlab extends ItemBlock {
private final BlockSlab slab;
public ItemSlab(BlockSlab slab)
{
super(slab);
this.slab = slab;
}
public ItemSlab(BlockSlab slab) {
super(slab);
this.slab = slab;
}
// /**
// * Converts the given ItemStack damage value into a metadata value to be placed in the world when this Item is
// * placed as a Block (mostly used with ItemBlocks).
// */
// public int getMetadata(int damage)
// {
// return damage;
// }
public boolean onItemUse(ItemStack stack, EntityNPC playerIn, World worldIn, BlockPos pos, Facing side, float hitX, float hitY, float hitZ) {
return stack.size != 0 && playerIn.canPlayerEdit(pos.offset(side), side, stack) &&
(this.tryVerticalPlace(stack, playerIn, worldIn, pos, side, hitX, hitY, hitZ) || super.onItemUse(stack, playerIn, worldIn, pos, side, hitX, hitY, hitZ));
}
// /**
// * Returns the unlocalized name of this item. This version accepts an ItemStack so different stacks can have
// * different names based on their damage or NBT.
// */
// public String getUnlocalizedName(ItemStack stack)
// {
// return this.slab.getUnlocalizedName(stack.getMetadata());
// }
/**
* Called when a Block is right-clicked with this Item
*/
public boolean onItemUse(ItemStack stack, EntityNPC playerIn, World worldIn, BlockPos pos, Facing side, float hitX, float hitY, float hitZ)
{
if (stack.size == 0)
{
return false;
}
else if (!playerIn.canPlayerEdit(pos.offset(side), side, stack))
{
return false;
}
else
{
// Object object = this.slab.getVariant(stack);
State iblockstate = worldIn.getState(pos);
if (iblockstate.getBlock() == this.slab)
{
// IProperty iproperty = this.slab.getVariantProperty();
// Comparable comparable = iblockstate.getValue(iproperty);
Facing blockslab$enumblockhalf = iblockstate.getValue(BlockSlab.FACING);
if ((side == Facing.UP && blockslab$enumblockhalf == Facing.DOWN || side == Facing.DOWN && blockslab$enumblockhalf == Facing.UP) && !iblockstate.getValue(BlockSlab.DOUBLE))
{
State iblockstate1 = this.slab.getState().withProperty(BlockSlab.DOUBLE, true);
if (worldIn.checkNoEntityCollision(this.slab.getCollisionBoundingBox(worldIn, pos, iblockstate1)) && worldIn.setState(pos, iblockstate1, 3))
{
worldIn.playSound(this.slab.sound.getPlaceSound(), (double)((float)pos.getX() + 0.5F), (double)((float)pos.getY() + 0.5F), (double)((float)pos.getZ() + 0.5F), 1.0F);
--stack.size;
}
return true;
}
}
return this.tryPlace(stack, worldIn, pos.offset(side)) ? true : (this.tryVerticalPlace(stack, playerIn, worldIn, pos, side, hitX, hitY, hitZ) ? true : super.onItemUse(stack, playerIn, worldIn, pos, side, hitX, hitY, hitZ));
}
}
public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, Facing side, EntityNPC player, ItemStack stack)
{
BlockPos blockpos = pos;
// IProperty iproperty = this.slab.getVariantProperty();
// Object object = this.slab.getVariant(stack);
State iblockstate = worldIn.getState(pos);
if (iblockstate.getBlock() == this.slab && !iblockstate.getValue(BlockSlab.DOUBLE))
{
boolean up = iblockstate.getValue(BlockSlab.FACING) == Facing.UP;
if ((side == Facing.UP && !up || side == Facing.DOWN && up)) // && object == iblockstate.getValue(iproperty))
{
return true;
}
}
pos = pos.offset(side);
State iblockstate1 = worldIn.getState(pos);
return iblockstate1.getBlock() == this.slab && !iblockstate1.getValue(BlockSlab.DOUBLE) ? true : super.canPlaceBlockOnSide(worldIn, blockpos, side, player, stack);
}
// private boolean tryPlaceNormal(ItemStack stack, EntityNPC playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) {
// if (worldIn.canBlockBePlaced(this.block, pos, false, side, (Entity)null, stack))
// {
// int i = this.getMetadata(stack.getMetadata());
// IBlockState iblockstate1 = this.block.onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, i, playerIn);
//
// if (worldIn.setBlockState(pos, iblockstate1, 3))
// {
// iblockstate1 = worldIn.getBlockState(pos);
//
// if (iblockstate1.getBlock() == this.block)
// {
// setTileEntityNBT(worldIn, playerIn, pos, stack);
// this.block.onBlockPlacedBy(worldIn, pos, iblockstate1, playerIn, stack);
// }
//
// worldIn.playSound(this.block.stepSound.getPlaceSound(), (double)((float)pos.getX() + 0.5F), (double)((float)pos.getY() + 0.5F), (double)((float)pos.getZ() + 0.5F), (this.block.stepSound.getVolume() + 1.0F) / 2.0F, this.block.stepSound.getFrequency() * 0.8F);
// --stack.stackSize;
// }
//
// return true;
// }
//
// return false;
// }
private boolean tryPlace(ItemStack stack, World worldIn, BlockPos pos)
{
State iblockstate = worldIn.getState(pos);
if (iblockstate.getBlock() == this.slab)
{
// Comparable comparable = iblockstate.getValue(this.slab.getVariantProperty());
if (!iblockstate.getValue(BlockSlab.DOUBLE))
{
State iblockstate1 = this.slab.getState().withProperty(BlockSlab.DOUBLE, true);
if (worldIn.checkNoEntityCollision(this.slab.getCollisionBoundingBox(worldIn, pos, iblockstate1)) && worldIn.setState(pos, iblockstate1, 3))
{
worldIn.playSound(this.slab.sound.getPlaceSound(), (double)((float)pos.getX() + 0.5F), (double)((float)pos.getY() + 0.5F), (double)((float)pos.getZ() + 0.5F), 1.0F);
--stack.size;
}
return true;
}
}
return false;
}
private boolean tryVerticalPlace(ItemStack stack, EntityNPC playerIn, World worldIn, BlockPos pos, Facing side, float hitX, float hitY, float hitZ) {
if(hitY >= 0.34f && hitY <= 0.66f) {
State iblockstate = worldIn.getState(pos);
Block block = iblockstate.getBlock();
if (!block.isReplaceable(worldIn, pos))
{
pos = pos.offset(side);
}
// BlockVerticalSlab vslab = (stack.getMetadata() & 7) < 4 ? this.verticalSlab1 : this.verticalSlab2;
if (worldIn.canBlockBePlaced(this.slab, pos, false, side, null, stack))
{
// int i = this.getMetadata(stack.getMetadata());
State iblockstate1 = this.slab.getState().withProperty(BlockSlab.FACING, playerIn.getHorizontalFacing()); // .onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, i, playerIn);
if (worldIn.setState(pos, iblockstate1, 3))
{
worldIn.playSound(this.slab.sound.getPlaceSound(), (double)((float)pos.getX() + 0.5F), (double)((float)pos.getY() + 0.5F), (double)((float)pos.getZ() + 0.5F), 1.0F);
--stack.size;
}
return true;
}
}
return false;
}
private boolean tryVerticalPlace(ItemStack stack, EntityNPC playerIn, World worldIn, BlockPos pos, Facing side, float hitX, float hitY, float hitZ) {
if(hitY >= 0.34f && hitY <= 0.66f) {
State state = worldIn.getState(pos);
Block block = state.getBlock();
if(!block.isReplaceable(worldIn, pos))
pos = pos.offset(side);
if(worldIn.canBlockBePlaced(this.slab, pos, false, side, null, stack)) {
State place = this.slab.getState().withProperty(BlockSlab.FACING, playerIn.getHorizontalFacing());
if(worldIn.setState(pos, place, 3)) {
worldIn.playSound(this.slab.sound.getPlaceSound(), (double)((float)pos.getX() + 0.5F), (double)((float)pos.getY() + 0.5F),
(double)((float)pos.getZ() + 0.5F), 1.0F);
--stack.size;
}
return true;
}
}
return false;
}
}

View file

@ -100,7 +100,7 @@ public abstract class World implements IWorldAccess {
Block block = state.getBlock();
return block.getMaterial().isOpaque() && block.isFullCube() ? true
: (block instanceof BlockStairs ? state.getValue(BlockStairs.HALF) == BlockStairs.EnumHalf.TOP
: (block instanceof BlockSlab ? (state.getValue(BlockSlab.DOUBLE) || state.getValue(BlockSlab.FACING) == Facing.UP)
: (block instanceof BlockSlab ? state.getValue(BlockSlab.FACING) == Facing.UP
: (block instanceof BlockHopper ? true
: (block instanceof BlockSnow ? ((Integer)state.getValue(BlockSnow.LAYERS)).intValue() == 7
: false))));

View file

@ -602,57 +602,57 @@ public abstract class Converter {
mapBlock(Blocks.red_mushroom, 40);
mapBlock(Blocks.gold_block, 41);
mapBlock(Blocks.iron_block, 42);
mapBlock(Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.concrete,
43);
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.sandstone,
43, 1);
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.oak_planks,
43, 2);
mapBlock(Blocks.cobblestone_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.cobblestone,
43, 3);
mapBlock(Blocks.brick_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.brick_block,
43, 4);
mapBlock(Blocks.stonebrick_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.stonebrick,
43, 5);
mapBlock(Blocks.blood_brick_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.blood_brick,
43, 6);
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.quartz_block,
43, 7);
mapBlock(Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, true),
mapBlock(Blocks.concrete,
43, 8);
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, true),
mapBlock(Blocks.sandstone,
43, 9);
mapBlock(Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.concrete_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44);
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44, 1);
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44, 2);
mapBlock(Blocks.cobblestone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.cobblestone_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44, 3);
mapBlock(Blocks.brick_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.brick_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44, 4);
mapBlock(Blocks.stonebrick_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.stonebrick_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44, 5);
mapBlock(Blocks.blood_brick_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.blood_brick_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44, 6);
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
44, 7);
mapBlock(Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.concrete_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 8);
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 9);
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 10);
mapBlock(Blocks.cobblestone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.cobblestone_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 11);
mapBlock(Blocks.brick_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.brick_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 12);
mapBlock(Blocks.stonebrick_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.stonebrick_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 13);
mapBlock(Blocks.blood_brick_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.blood_brick_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 14);
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
44, 15);
mapBlock(Blocks.brick_block, 45);
mapBlock(Blocks.tnt.getState().withProperty(BlockTNT.EXPLODE, false), 46);
@ -1058,41 +1058,41 @@ public abstract class Converter {
mapBlock(Blocks.dragon_egg, 122);
mapBlock(Blocks.redstone_lamp, 123);
mapBlock(Blocks.lit_redstone_lamp, 124);
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.oak_planks,
125);
mapBlock(Blocks.spruce_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.spruce_planks,
125, 1);
mapBlock(Blocks.birch_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.birch_planks,
125, 2);
mapBlock(Blocks.jungle_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.jungle_planks,
125, 3);
mapBlock(Blocks.acacia_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.acacia_planks,
125, 4);
mapBlock(Blocks.dark_oak_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.dark_oak_planks,
125, 5);
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
126);
mapBlock(Blocks.spruce_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.spruce_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
126, 1);
mapBlock(Blocks.birch_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.birch_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
126, 2);
mapBlock(Blocks.jungle_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.jungle_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
126, 3);
mapBlock(Blocks.acacia_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.acacia_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
126, 4);
mapBlock(Blocks.dark_oak_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.dark_oak_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
126, 5);
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.oak_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
126, 8);
mapBlock(Blocks.spruce_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.spruce_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
126, 9);
mapBlock(Blocks.birch_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.birch_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
126, 10);
mapBlock(Blocks.jungle_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.jungle_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
126, 11);
mapBlock(Blocks.acacia_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.acacia_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
126, 12);
mapBlock(Blocks.dark_oak_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.dark_oak_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
126, 13);
mapBlock(Blocks.cocoa.getState().withProperty(BlockCocoa.AGE, 0).withProperty(BlockCocoa.FACING, Facing.SOUTH), 127, 0, 12);
mapBlock(Blocks.cocoa.getState().withProperty(BlockCocoa.AGE, 0).withProperty(BlockCocoa.FACING, Facing.WEST), 127, 1, 13);
@ -1484,11 +1484,11 @@ public abstract class Converter {
mapBlock(Blocks.sandstone_stairs.getState().withProperty(BlockStairs.FACING, Facing.WEST).withProperty(BlockStairs.HALF, EnumHalf.TOP), 180, 5, 13);
mapBlock(Blocks.sandstone_stairs.getState().withProperty(BlockStairs.FACING, Facing.SOUTH).withProperty(BlockStairs.HALF, EnumHalf.TOP), 180, 6, 14);
mapBlock(Blocks.sandstone_stairs.getState().withProperty(BlockStairs.FACING, Facing.NORTH).withProperty(BlockStairs.HALF, EnumHalf.TOP), 180, 7, 15);
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false),
mapBlock(Blocks.sandstone,
181);
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING,
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.FACING,
Facing.DOWN), 182);
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING,
mapBlock(Blocks.sandstone_slab.getState().withProperty(BlockSlab.FACING,
Facing.UP), 182, 8);
mapBlock(Blocks.spruce_fence_gate.getState().withProperty(BlockFenceGate.FACING, Facing.SOUTH).withProperty(BlockFenceGate.OPEN, false).withProperty(BlockFenceGate.POWERED, false), 183, 0);
mapBlock(Blocks.spruce_fence_gate.getState().withProperty(BlockFenceGate.FACING, Facing.WEST).withProperty(BlockFenceGate.OPEN, false).withProperty(BlockFenceGate.POWERED, false), 183, 1);
@ -1594,10 +1594,10 @@ public abstract class Converter {
mapBlock(Blocks.quartz_stairs.getState().withProperty(BlockStairs.FACING, Facing.WEST).withProperty(BlockStairs.HALF, EnumHalf.TOP), 203, 5, 13);
mapBlock(Blocks.quartz_stairs.getState().withProperty(BlockStairs.FACING, Facing.SOUTH).withProperty(BlockStairs.HALF, EnumHalf.TOP), 203, 6, 14);
mapBlock(Blocks.quartz_stairs.getState().withProperty(BlockStairs.FACING, Facing.NORTH).withProperty(BlockStairs.HALF, EnumHalf.TOP), 203, 7, 15);
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.DOUBLE, true).withProperty(BlockSlab.SEAMLESS, false), 204);
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.DOWN),
mapBlock(Blocks.quartz_block, 204);
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.FACING, Facing.DOWN),
205);
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.DOUBLE, false).withProperty(BlockSlab.FACING, Facing.UP),
mapBlock(Blocks.quartz_slab.getState().withProperty(BlockSlab.FACING, Facing.UP),
205, 8);
mapBlock(Blocks.stonebrick, 206);
mapBlock(Blocks.potato.getState().withProperty(BlockPotato.AGE, 0), 207);

View file

@ -5,7 +5,6 @@ import java.util.Map;
import common.block.artificial.BlockDoor;
import common.block.artificial.BlockLadder;
import common.block.artificial.BlockSlab;
import common.block.artificial.BlockStairs;
import common.block.tech.BlockButton;
import common.collect.Lists;
@ -524,14 +523,14 @@ public class StructureStronghold
this.fillWithRandomizedBlocks(worldIn, structureBoundingBoxIn, 8, 1, 5, 8, 4, 9, false, randomIn, StructureStronghold.strongholdStones);
this.fillWithRandomizedBlocks(worldIn, structureBoundingBoxIn, 1, 4, 7, 3, 4, 9, false, randomIn, StructureStronghold.strongholdStones);
this.fillWithRandomizedBlocks(worldIn, structureBoundingBoxIn, 1, 3, 5, 3, 3, 6, false, randomIn, StructureStronghold.strongholdStones);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 1, 3, 4, 3, 3, 4, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 1, 4, 6, 3, 4, 6, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 1, 3, 4, 3, 3, 4, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 1, 4, 6, 3, 4, 6, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithRandomizedBlocks(worldIn, structureBoundingBoxIn, 5, 1, 7, 7, 1, 8, false, randomIn, StructureStronghold.strongholdStones);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 1, 9, 7, 1, 9, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 2, 7, 7, 2, 7, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 4, 5, 7, 4, 5, 9, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 8, 5, 7, 8, 5, 9, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 5, 7, 7, 5, 9, Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true), Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 1, 9, 7, 1, 9, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 2, 7, 7, 2, 7, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 4, 5, 7, 4, 5, 9, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 8, 5, 7, 8, 5, 9, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 5, 7, 7, 5, 9, Blocks.concrete.getState(), Blocks.concrete.getState(), false);
this.setBlockState(worldIn, Blocks.torch.getState(), 6, 5, 6, structureBoundingBoxIn);
return true;
}
@ -1080,14 +1079,14 @@ public class StructureStronghold
this.setBlockState(worldIn, Blocks.torch.getState(), 6, 3, 5, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.torch.getState(), 5, 3, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.torch.getState(), 5, 3, 6, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 4, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 4, 1, 5, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 4, 1, 6, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 6, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 6, 1, 5, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 6, 1, 6, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 5, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 5, 1, 6, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 4, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 4, 1, 5, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 4, 1, 6, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 6, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 6, 1, 5, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 6, 1, 6, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 5, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 5, 1, 6, structureBoundingBoxIn);
break;
case 1:
@ -1241,21 +1240,21 @@ public class StructureStronghold
this.placeDoor(worldIn, randomIn, structureBoundingBoxIn, StructureStronghold.Stronghold.Door.OPENING, 1, 1, 4);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 2, 6, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 1, 5, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 1, 6, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 1, 6, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 1, 5, 2, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 1, 4, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 1, 5, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 1, 5, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 2, 4, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 3, 3, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 3, 4, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 3, 4, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 3, 3, 2, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 3, 2, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 3, 3, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 3, 3, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 2, 2, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 1, 1, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 1, 2, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 1, 2, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stonebrick.getState(), 1, 1, 2, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState(), 1, 1, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete_slab.getState(), 1, 1, 3, structureBoundingBoxIn);
return true;
}
}

View file

@ -6,7 +6,6 @@ import java.util.List;
import common.biome.Biome;
import common.block.artificial.BlockDoor;
import common.block.artificial.BlockLadder;
import common.block.artificial.BlockSlab;
import common.block.artificial.BlockStairs;
import common.block.foliage.BlockCrops;
import common.block.foliage.BlockLog;
@ -674,9 +673,9 @@ public class StructureVillage
this.setBlockState(worldIn, Blocks.oak_planks.getState(), 1, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, this.getMetadataWithOffset(Blocks.oak_stairs.getState().withProperty(BlockStairs.FACING, Facing.NORTH)), 2, 1, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, this.getMetadataWithOffset(Blocks.oak_stairs.getState().withProperty(BlockStairs.FACING, Facing.WEST)), 1, 1, 3, structureBoundingBoxIn);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 0, 1, 7, 0, 3, Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true), Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true), false);
this.setBlockState(worldIn, Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true), 6, 1, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true), 6, 1, 2, structureBoundingBoxIn);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 5, 0, 1, 7, 0, 3, Blocks.concrete.getState(), Blocks.concrete.getState(), false);
this.setBlockState(worldIn, Blocks.concrete.getState(), 6, 1, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete.getState(), 6, 1, 2, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.air.getState(), 2, 1, 0, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.air.getState(), 2, 2, 0, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.torch.getState().withProperty(BlockTorch.FACING, this.coordBaseMode), 2, 3, 1, structureBoundingBoxIn);
@ -884,7 +883,7 @@ public class StructureVillage
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 1, 0, 9, 4, 6, Blocks.air.getState(), Blocks.air.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 0, 0, 9, 0, 6, Blocks.cobblestone.getState(), Blocks.cobblestone.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 4, 0, 9, 4, 6, Blocks.cobblestone.getState(), Blocks.cobblestone.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 5, 0, 9, 5, 6, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 5, 0, 9, 5, 6, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 1, 5, 1, 8, 5, 5, Blocks.air.getState(), Blocks.air.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 1, 1, 0, 2, 3, 0, Blocks.oak_planks.getState(), Blocks.oak_planks.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 1, 0, 0, 4, 0, Blocks.oak_log.getState(), Blocks.oak_log.getState(), false);
@ -906,7 +905,7 @@ public class StructureVillage
this.setBlockState(worldIn, Blocks.cobblestone.getState(), 6, 1, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.furnace.getState(), 6, 2, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.furnace.getState(), 6, 3, 3, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.stone_slab.getState().withProperty(BlockSlab.DOUBLE, true), 8, 1, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.concrete.getState(), 8, 1, 1, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.glass_pane.getState(), 0, 2, 2, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.glass_pane.getState(), 0, 2, 4, structureBoundingBoxIn);
this.setBlockState(worldIn, Blocks.glass_pane.getState(), 2, 2, 6, structureBoundingBoxIn);
@ -1956,7 +1955,7 @@ public class StructureVillage
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 1, 1, 1, 3, 4, 3, Blocks.air.getState(), Blocks.air.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 0, 0, 4, 0, 4, Blocks.cobblestone.getState(), Blocks.cobblestone.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 5, 0, 4, 5, 4, Blocks.stone_slab.getState(), Blocks.stone_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 5, 0, 4, 5, 4, Blocks.concrete_slab.getState(), Blocks.concrete_slab.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 1, 0, 0, 4, 0, Blocks.oak_log.getState(), Blocks.oak_log.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 1, 4, 0, 4, 4, Blocks.oak_log.getState(), Blocks.oak_log.getState(), false);
this.fillWithBlocks(worldIn, structureBoundingBoxIn, 4, 1, 0, 4, 4, 0, Blocks.oak_log.getState(), Blocks.oak_log.getState(), false);