public byte getConnections(BlockUri blockUri) { if (getURI().equals(blockUri.getFamilyUri())) { try { return Byte.parseByte(blockUri.getIdentifier().toString().toLowerCase(Locale.ENGLISH)); } catch (NumberFormatException e) { logger.error("can't find block with URI: {}", blockUri, e); } } return 0; }
@Override public Block getBlockFor(BlockUri blockUri) { if (archetypeBlock == null && getURI().equals(blockUri.getFamilyUri())) { try { Side side = Side.valueOf(blockUri.getIdentifier().toString().toUpperCase(Locale.ENGLISH)); return blocks.get(side); } catch (IllegalArgumentException e) { logger.error("can't find block with URI: {}", blockUri, e); return null; } } return archetypeBlock; }
@Override public Block getBlockFor(BlockUri blockUri) { if (getURI().equals(blockUri.getFamilyUri())) { try { Side side = Side.valueOf(blockUri.getIdentifier().toString().toUpperCase(Locale.ENGLISH)); return blocks.get(side); } catch (IllegalArgumentException e) { return null; } } return null; }
/** * @return A block from the family for a given URI */ @Override public Block getBlockFor(BlockUri blockUri) { if (getURI().equals(blockUri.getFamilyUri())) { try { byte connections = Byte.parseByte(blockUri.getIdentifier().toString().toLowerCase(Locale.ENGLISH)); return blocks.get(connections); } catch (IllegalArgumentException e) { logger.error("can't find block with URI: {}", blockUri, e); return null; } } return null; }
@Override public Block getBlockFor(BlockUri blockUri) { if (getURI().equals(blockUri.getFamilyUri())) { try { Side side = Side.valueOf(blockUri.getIdentifier().toString().toUpperCase(Locale.ENGLISH)); return blocks.get(side); } catch (IllegalArgumentException e) { return null; } } return null; }
@Override public Block getBlockFor(BlockUri blockUri) { if (getURI().equals(blockUri.getFamilyUri()) && blockUri.getIdentifier().isEmpty()) { return block; } return null; }
@Override public Block getBlock(BlockUri uri) { if (uri.getShapeUrn().isPresent() && uri.getShapeUrn().get().equals(CUBE_SHAPE_URN)) { return getBlock(uri.getShapelessUri()); } Block block = registeredBlockInfo.get().blocksByUri.get(uri); if (block == null) { // Check if partially registered by getting the block family BlockFamily family = getBlockFamily(uri.getFamilyUri()); if (family != null) { block = family.getBlockFor(uri); } if (block == null) { return getAirBlock(); } } return block; }
private void processBlockRegistrations(NetData.NetMessage message) { for (NetData.BlockFamilyRegisteredMessage blockFamily : message.getBlockFamilyRegisteredList()) { if (blockFamily.getBlockIdCount() != blockFamily.getBlockUriCount()) { logger.error("Received block registration with mismatched id<->uri mapping"); } else if (blockFamily.getBlockUriCount() == 0) { logger.error("Received empty block registration"); } else { try { BlockUri family = new BlockUri(blockFamily.getBlockUri(0)).getFamilyUri(); Map<String, Integer> registrationMap = Maps.newHashMap(); for (int i = 0; i < blockFamily.getBlockIdCount(); ++i) { registrationMap.put(blockFamily.getBlockUri(i), blockFamily.getBlockId(i)); } blockManager.receiveFamilyRegistration(family, registrationMap); } catch (BlockUriParseException e) { logger.error("Received invalid block uri {}", blockFamily.getBlockUri(0)); } } } }