public static Property<?> adaptProperty(IProperty<?> property) { if (property instanceof PropertyBool) { return new BooleanProperty(property.getName(), ImmutableList.copyOf(((PropertyBool) property).getAllowedValues())); } if (property instanceof PropertyInteger) { return new IntegerProperty(property.getName(), ImmutableList.copyOf(((PropertyInteger) property).getAllowedValues())); } if (property instanceof PropertyDirection) { return new DirectionalProperty(property.getName(), ((PropertyDirection) property).getAllowedValues().stream() .map(ForgeAdapter::adaptEnumFacing) .collect(Collectors.toList())); } if (property instanceof PropertyEnum) { return new EnumProperty(property.getName(), ((PropertyEnum<?>) property).getAllowedValues().stream() .map(e -> e.getName()) .collect(Collectors.toList())); } return new IPropertyAdapter<>(property); }
public void addLeafMapping(Block logBlock, int logMetadata, Block leafBlock, int leafMetadata) { IBlockState logState = logBlock.getStateFromMeta(logMetadata); for (Boolean check_decay : BlockLeaves.CHECK_DECAY.getAllowedValues()) { IBlockState leafState = leafBlock.getStateFromMeta(leafMetadata).withProperty(BlockLeaves.DECAYABLE, Boolean.TRUE).withProperty(BlockLeaves.CHECK_DECAY, check_decay); TapperManager.addLeafMapping(logState, leafState); } }
@SideOnly(Side.CLIENT) @SubscribeEvent public void onModelBakeEvent(ModelBakeEvent event) { for (EnumFacing facing : DisplayStand.FACING.getAllowedValues()) { for (Boolean axisX : DisplayStand.AXIS_X.getAllowedValues()) { String blockVariant = String.format("%s=%s,%s=%s", DisplayStand.AXIS_X.getName(), DisplayStand.AXIS_X.getName(axisX), DisplayStand.FACING.getName(), DisplayStand.FACING.getName(facing)); bakeVariantModel(event, blockVariant, !axisX); } } bakeVariantModel(event, "inventory", false); }
private static void addVanillaLeafMappings(Block logBlock, PropertyEnum<BlockPlanks.EnumType> logVariantProperty, Block leavesBlock, PropertyEnum<BlockPlanks.EnumType> leafVariantProperty) { for (BlockPlanks.EnumType variant : logVariantProperty.getAllowedValues()) { IBlockState logState = logBlock.getDefaultState().withProperty(BlockLog.LOG_AXIS, BlockLog.EnumAxis.Y).withProperty(logVariantProperty, variant); for (Boolean check_decay : BlockLeaves.CHECK_DECAY.getAllowedValues()) { IBlockState leafState = leavesBlock.getDefaultState().withProperty(leafVariantProperty, variant).withProperty(BlockLeaves.DECAYABLE, Boolean.TRUE).withProperty(BlockLeaves.CHECK_DECAY, check_decay); leafMap.put(new BlockWrapper(logState), new BlockWrapper(leafState)); } } }