Vector3f spawnPos = camera.getPosition();
Vector3f offset = camera.getViewingDirection();
offset.scale(3);
spawnPos.add(offset);
BlockFamily blockFamily;
List<BlockUri> matchingUris = blockManager.resolveAllBlockFamilyUri(blockName);
if (matchingUris.size() == 1) {
blockFamily = blockManager.getBlockFamily(matchingUris.get(0));
} else if (matchingUris.isEmpty()) {
throw new IllegalArgumentException("No block found for '" + blockName + "'");
} else {
StringBuilder builder = new StringBuilder();
builder.append("Non-unique block name, possible matches: ");
Joiner.on(", ").appendTo(builder, matchingUris);
return builder.toString();
}
if (world != null) {
world.setBlock(new Vector3i((int) spawnPos.x, (int) spawnPos.y, (int) spawnPos.z), blockFamily.getArchetypeBlock());
StringBuilder builder = new StringBuilder();
builder.append(blockFamily.getArchetypeBlock());
builder.append(" block placed at position (");
builder.append((int) spawnPos.x).append((int) spawnPos.y).append((int) spawnPos.z).append(")");
return builder.toString();
}
throw new IllegalArgumentException("Sorry, something went wrong!");