@SubscribeEvent public void onVillageBlocks(BiomeEvent.GetVillageBlockID event) { IBlockState original = event.getOriginal(); if (event.getBiome() == ATGBiomes.TUNDRA) { if (original.getBlock() == Blocks.LOG || original.getBlock() == Blocks.LOG2) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.LOG.getDefaultState().withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.SPRUCE).withProperty(BlockLog.LOG_AXIS, original.getValue(BlockLog.LOG_AXIS))); } else if (original.getBlock() == Blocks.PLANKS) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.PLANKS.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.SPRUCE)); } else if (original.getBlock() == Blocks.OAK_STAIRS) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.SPRUCE_STAIRS.getDefaultState().withProperty(BlockStairs.FACING, original.getValue(BlockStairs.FACING))); } else if (original.getBlock() == Blocks.OAK_FENCE) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.SPRUCE_FENCE.getDefaultState()); } } else if (event.getBiome() == ATGBiomes.SCRUBLAND) { if (original.getBlock() == Blocks.LOG || original.getBlock() == Blocks.LOG2) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.LOG2.getDefaultState().withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.ACACIA).withProperty(BlockLog.LOG_AXIS, original.getValue(BlockLog.LOG_AXIS))); } else if (original.getBlock() == Blocks.PLANKS) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.PLANKS.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.ACACIA)); } else if (original.getBlock() == Blocks.OAK_STAIRS) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.ACACIA_STAIRS.getDefaultState().withProperty(BlockStairs.FACING, original.getValue(BlockStairs.FACING))); } else if (original.getBlock() == Blocks.OAK_FENCE) { event.setResult(Event.Result.DENY); event.setReplacement(Blocks.ACACIA_FENCE.getDefaultState()); } } }
private static void registerVanillaVariantProps() { // TODO: omit similar blocks registerVariantProperty(BlockStone.VARIANT); registerVariantProperty(BlockPlanks.VARIANT); registerVariantProperty(BlockSapling.TYPE); registerVariantProperty(BlockDirt.VARIANT); registerVariantProperty(BlockSand.VARIANT); registerVariantProperty(BlockOldLog.VARIANT); registerVariantProperty(BlockNewLog.VARIANT); registerVariantProperty(BlockOldLeaf.VARIANT); registerVariantProperty(BlockNewLeaf.VARIANT); registerVariantProperty(BlockSandStone.TYPE); registerVariantProperty(BlockTallGrass.TYPE); registerVariantProperty(BlockPistonExtension.TYPE); registerVariantProperty(BlockColored.COLOR); registerVariantProperty(BlockPistonMoving.TYPE); registerVariantProperty(Blocks.YELLOW_FLOWER.getTypeProperty()); registerVariantProperty(Blocks.RED_FLOWER.getTypeProperty()); registerVariantProperty(BlockStoneSlab.VARIANT); registerVariantProperty(BlockWoodSlab.VARIANT); registerVariantProperty(BlockAnvil.DAMAGE); registerVariantProperty(BlockQuartz.VARIANT); registerVariantProperty(BlockCarpet.COLOR); registerVariantProperty(BlockDoublePlant.VARIANT); registerVariantProperty(BlockStainedGlass.COLOR); registerVariantProperty(BlockStainedGlassPane.COLOR); registerVariantProperty(BlockPrismarine.VARIANT); registerVariantProperty(BlockRedSandstone.TYPE); registerVariantProperty(BlockStoneSlabNew.VARIANT); }
@Override public String getUnlocalizedName(ItemStack stack) { int dmg = stack.getMetadata(); if(block instanceof BlockReinforcedOldLog) return getUnlocalizedName() + "_" + BlockOldLog.field_150168_M[dmg & 3]; else if(block instanceof BlockReinforcedNewLog) return getUnlocalizedName() + "_" + BlockNewLog.field_150169_M[dmg & 3]; return getUnlocalizedName(); }
public static void setType(MetaBlock log, Wood type){ switch(type){ case OAK: log.withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.OAK); return; case SPRUCE: log.withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.SPRUCE); return; case BIRCH: log.withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.BIRCH); return; case JUNGLE: log.withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.JUNGLE); return; case ACACIA: log.withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.ACACIA); return; case DARKOAK: log.withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.DARK_OAK); return; default: log.withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.OAK); return; } }
private static EnumType getVariant(IBlockState bs) { if (bs.getProperties().containsKey(BlockNewLog.VARIANT)) { return bs.getValue(BlockNewLog.VARIANT); } if (bs.getProperties().containsKey(BlockOldLog.VARIANT)) { return bs.getValue(BlockOldLog.VARIANT); } return null; }