From b2d3f5a641bf1e1356d3ac0d8e4e9a5f2c8cdbdc Mon Sep 17 00:00:00 2001 From: Sen Date: Mon, 30 Jun 2025 13:10:18 +0200 Subject: [PATCH] change slabs --- .../resources/textures/blocks/concrete.png | Bin 0 -> 4942 bytes .../textures/blocks/double_stone_top.png | Bin 252 -> 0 bytes .../textures/blocks/stone_slab_side.png | Bin 271 -> 0 bytes .../common/block/artificial/BlockSlab.java | 425 +++++------------- .../common/block/artificial/BlockStairs.java | 3 +- .../main/java/common/init/BlockRegistry.java | 27 +- common/src/main/java/common/init/Blocks.java | 3 + common/src/main/java/common/init/Items.java | 3 + .../main/java/common/item/block/ItemSlab.java | 197 ++------ common/src/main/java/common/world/World.java | 2 +- .../src/main/java/server/world/Converter.java | 100 ++--- .../structure/StructureStronghold.java | 43 +- .../worldgen/structure/StructureVillage.java | 13 +- 13 files changed, 245 insertions(+), 571 deletions(-) create mode 100755 client/src/main/resources/textures/blocks/concrete.png delete mode 100755 client/src/main/resources/textures/blocks/double_stone_top.png delete mode 100755 client/src/main/resources/textures/blocks/stone_slab_side.png diff --git a/client/src/main/resources/textures/blocks/concrete.png b/client/src/main/resources/textures/blocks/concrete.png new file mode 100755 index 0000000000000000000000000000000000000000..84ce3ee3e203b92571f139805179315a7d2d8d9c GIT binary patch literal 4942 zcmeHKc~leU79W)*g76fv6*tl-3PO^ZY$OpxFrX<0BSb|7?PO*`0@+9c323#Vq9C|{ zbpBe5s8t~h?NDQoZ=uiV;2Ij)_nvnnq*MQJ-L#Sx`~ z<00d`o6E{KG@p-O&tJ594{Ol8>ItUd7Z-<@9vFUVwfJWC&9NEB{BGEOS)e|B!WJ)> z*zptPAQ1!4e;RMAT((JR^AMR|Gt8whcvR34#qg;C&t4c7Udy=|8F%#SFC`)CS{|`- z9^tvSJj&ngJF1grk8eJ{e#zbH3unt`FMOj;t=RPTUEv(8MjGT?ov`or`rYfq9LGfK z1uyf*Zc`)oW^E&U~$ot2^_(UIGv4O>RXdmf;lQ0=G)s8J7@G&ea9PD3`o>D+&pCeL@ZmJPicahASu zr}EhKjZeqk_>OdRqomep$(^>U*rF-o#hd>aBAl+Q7CApE2>Hf)H`RHV!EeQ=C-8U9 zXv`|6aycZ%4mMX?Z9J1E2!b}IQ`gm>Jtnt2Su%If zgy;>)+O7BMLJBdPGtY;idMtgCwUcB>gX$tOdujV_(v(0|jsGqz#V zf*QvUn+fs1wR5?3;$ZU@m1D8j++B^b)=B#oeQ|Huik$SrEs|yKP4~Y#c`Q}t^IN)S z%cVNJ^N_eAqLtp7`I?pYc6wyU4I{Uy@+@7G$#k0HH)>5m2kKbhDB)JDnyI-gu8lZ< zv^~Ie?;r7goyqqSG9K?M-ql&Q`{leY?!VhfjFT-fuOA(%xmxGCD5YTi`QU6# z^`4sIw`=t?b{U&H>fba_zFm3AW!KEMWd1s?%j-zZsip>pF4XC*EpN;Bc$sLq8<;94 z1(+V;q8WTlqoSd>MoQ33DlM2U5ai=$(xO-lVIWJ1D23XW(o%AoLRR3ul(}pXEYeOT z!hn)ZDy3S_H~CU5xP0(z7SkzYi-{q|ml7@# zlc#EQ1erx+(O_zzNfFPWOtvHY=x`Z7R1nky0am^gxxt|2)9FT|k!EDlG`c7{!sGGi zFoVuuP=N(ipP)9NCaPLL)(p{&At3aaPN6j@G-|RL6P0S>489Z!(39WCr_zccz!0W~5_(OX4kH5N3AJHtZwMUw;IEC- zDJ|*X7@bfODqyMyyCR=#IZY@MfABC<5T#IQEna}^Pb>`z*+;TIiOsCBq|-YP;Qj&k z6YKZ6Ta1B~NW>RtusCygLV+*Eygwh;U<#aXd4zc!8JB^;R5s3HQCVCrmx`iHDOgHz z7~vrtCJXBYB~cKU(U{A^2gv|pQFEUH0E-;t!k?-mP=iJ%(P)&u z6mv*qv*!o32plIIHJ}32Kmbsf!REspJ`WiODAt{V9*rk(OPm0!TZPF{brb=nM^C%H zmn;6F6%a0p5loyzJEIk@v{|3Bh*+_$@37{_XclXHynLsj7JAIxWg6xNyuYS<>tl>atYY>V8ZJTVy z*jo*y?Oa$3LH%5W0)Gkja$IIfbSXS&)y%ajtANbA%eod_$%IJ>^3~+Iv7sWz#urVE z^-tSgzd2O2A?KzYr9YI0TwA<)+kI+5mUUF&O$ZWLQO*q?P%#J!kBM|>$SNr*X`w)a zhvZI-&W9kG&5*Md?@0X-c|+Fv^J%UvwdBFGZf4y+^9Grb5rkZ$@Xm>uRD@}HmojdGmbm$lCrHedt;#0v!!h-^8#ky zf3{=d#Wjt;lAq6xD}hHgy$s|m;O}OlM>)nY}zfV&-}Tu(twP=S)8(zAln?Tht$HZ^P7)d!8_z~s!a)cFrlz|U|{@sU$8=O}F0000Ja8)FFW`BZH=DSg z3+$VAXsM5{q}9X+^6z&-0(bZd^SpivoPuH%DiHZ|%(qxgR+S V^auO{bAA8-002ovPDHLkV1lXEaqj>C diff --git a/common/src/main/java/common/block/artificial/BlockSlab.java b/common/src/main/java/common/block/artificial/BlockSlab.java index be532f8e..1dac9a33 100755 --- a/common/src/main/java/common/block/artificial/BlockSlab.java +++ b/common/src/main/java/common/block/artificial/BlockSlab.java @@ -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 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 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 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 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)); - } - */ } diff --git a/common/src/main/java/common/block/artificial/BlockStairs.java b/common/src/main/java/common/block/artificial/BlockStairs.java index ea4f31ec..56d821ba 100755 --- a/common/src/main/java/common/block/artificial/BlockStairs.java +++ b/common/src/main/java/common/block/artificial/BlockStairs.java @@ -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 || diff --git a/common/src/main/java/common/init/BlockRegistry.java b/common/src/main/java/common/init/BlockRegistry.java index f4ed4473..e26071ea 100755 --- a/common/src/main/java/common/init/BlockRegistry.java +++ b/common/src/main/java/common/init/BlockRegistry.java @@ -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)); diff --git a/common/src/main/java/common/init/Blocks.java b/common/src/main/java/common/init/Blocks.java index 3dee3b61..45035e19 100755 --- a/common/src/main/java/common/init/Blocks.java +++ b/common/src/main/java/common/init/Blocks.java @@ -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 get(String id) { T block = (T)BlockRegistry.byNameExact(id); diff --git a/common/src/main/java/common/init/Items.java b/common/src/main/java/common/init/Items.java index 94b5f9fa..92576722 100755 --- a/common/src/main/java/common/init/Items.java +++ b/common/src/main/java/common/init/Items.java @@ -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 get(String id) { T item = (T)ItemRegistry.byName(id); diff --git a/common/src/main/java/common/item/block/ItemSlab.java b/common/src/main/java/common/item/block/ItemSlab.java index 55431153..b9efc98c 100755 --- a/common/src/main/java/common/item/block/ItemSlab.java +++ b/common/src/main/java/common/item/block/ItemSlab.java @@ -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; + } } diff --git a/common/src/main/java/common/world/World.java b/common/src/main/java/common/world/World.java index 8ef4e7bd..803a6469 100755 --- a/common/src/main/java/common/world/World.java +++ b/common/src/main/java/common/world/World.java @@ -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)))); diff --git a/server/src/main/java/server/world/Converter.java b/server/src/main/java/server/world/Converter.java index 84ae34ca..756cf818 100644 --- a/server/src/main/java/server/world/Converter.java +++ b/server/src/main/java/server/world/Converter.java @@ -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); diff --git a/server/src/main/java/server/worldgen/structure/StructureStronghold.java b/server/src/main/java/server/worldgen/structure/StructureStronghold.java index 1770de4b..7b349ce8 100755 --- a/server/src/main/java/server/worldgen/structure/StructureStronghold.java +++ b/server/src/main/java/server/worldgen/structure/StructureStronghold.java @@ -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; } } diff --git a/server/src/main/java/server/worldgen/structure/StructureVillage.java b/server/src/main/java/server/worldgen/structure/StructureVillage.java index 518aa086..230ec182 100755 --- a/server/src/main/java/server/worldgen/structure/StructureVillage.java +++ b/server/src/main/java/server/worldgen/structure/StructureVillage.java @@ -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);