private boolean addAcceptableFlower(IMCMessage message) { try { NBTTagCompound tagCompound = message.getNBTValue(); IBlockState flowerState = NBTUtil.readBlockState(tagCompound); List<String> flowerTypes = new ArrayList<>(); for (String key : tagCompound.getKeySet()) { if (key.contains("flowertype")) { flowerTypes.add(tagCompound.getString("flowertype")); } } FlowerManager.flowerRegistry.registerAcceptableFlower(flowerState, flowerTypes.toArray(new String[flowerTypes.size()])); return true; } catch (Exception e) { IMCUtil.logInvalidIMCMessage(message); return false; } }
public void register() { //AlleleManager.alleleRegistry.registerAllele(this); IFlowerRegistry flowerRegistry = FlowerManager.flowerRegistry; for (Block block : getAcceptableBlocks()) { flowerRegistry.registerAcceptableFlower(block, getUID()); } switch (this) { case ROCK: flowerRegistry.registerAcceptableFlowerRule((blockState, world, pos, flowerType) -> blockState.getMaterial() == Material.ROCK, getUID()); break; case LEAVES: flowerRegistry.registerAcceptableFlowerRule((blockState, world, pos, flowerType) -> blockState.getBlock().isLeaves(blockState, world, pos), getUID()); break; case WOOD: flowerRegistry.registerAcceptableFlowerRule((blockState, world, pos, flowerType) -> blockState.getBlock().isWood(world, pos), getUID()); break; } AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.FLOWER_PROVIDER); }
FlowerManager.flowerRegistry.registerAcceptableFlower(flower, "flowersVanilla");