use of org.terasology.telemetry.metrics.Metric in project Terasology by MovingBlocks.
the class TelemetryScreen method refreshContent.
private void refreshContent() {
ColumnLayout mainLayout = new ColumnLayout();
mainLayout.setHorizontalSpacing(8);
mainLayout.setVerticalSpacing(8);
fetchTelemetryCategoriesFromEnvironment();
for (Map.Entry<TelemetryCategory, Class> telemetryCategory : telemetryCategories.entrySet()) {
Class metricClass = telemetryCategory.getValue();
Optional<Metric> optional = metrics.getMetric(metricClass);
if (optional.isPresent()) {
Metric metric = optional.get();
Map<String, ?> map = metric.createTelemetryFieldToValue();
if (map != null) {
addTelemetrySection(telemetryCategory.getKey(), mainLayout, map);
}
}
}
ScrollableArea area = find("area", ScrollableArea.class);
if (area != null) {
area.setContent(mainLayout);
}
}
use of org.terasology.telemetry.metrics.Metric in project Terasology by MovingBlocks.
the class TelemetryUtils method fetchMetricAndSend.
/**
* fetch metric in {@link org.terasology.telemetry.Metrics} and send to the server.
* @param metrics Metrics class in the game context.
* @param metricClass The class of metric.
* @param emitter Emitter sending telemetry to the server.
* @param nameSpace The name the class tracking this metric.
* @param bindingMap the binding map contains fields who has user's permission.
*/
public static void fetchMetricAndSend(Metrics metrics, Class metricClass, Emitter emitter, String nameSpace, Map<String, Boolean> bindingMap) {
Optional<Metric> optional = metrics.getMetric(metricClass);
if (optional.isPresent()) {
Metric metric = optional.get();
Optional<Unstructured> unstructuredOptional = metric.getUnstructuredMetric();
if (unstructuredOptional.isPresent()) {
Unstructured unstructured = unstructuredOptional.get();
trackMetric(emitter, nameSpace, unstructured, metric, bindingMap);
}
}
}
Aggregations