use of org.terasology.engine.context.Context in project Terasology by MovingBlocks.
the class SystemContextJsonProvider method writeTo.
public void writeTo(JsonGenerator generator, ILoggingEvent event) throws IOException {
TelemetryLogstashAppender appender = TelemetryUtils.fetchTelemetryLogstashAppender();
Context context = appender.getGameContext();
if (context != null) {
Metrics metrics = context.get(Metrics.class);
Optional<Metric> optional = metrics.getMetric(SystemContextMetric.class);
if (optional.isPresent()) {
Metric systemContextMetric = optional.get();
Map<String, ?> map = systemContextMetric.createTelemetryFieldToValue();
Map<String, String> stringMap = TelemetryUtils.toStringMap(map);
JsonWritingUtils.writeMapStringFields(generator, getFieldName(), stringMap);
}
}
}
use of org.terasology.engine.context.Context in project Terasology by MovingBlocks.
the class ModulesJsonProvider method writeTo.
@Override
public void writeTo(JsonGenerator generator, ILoggingEvent iLoggingEvent) throws IOException {
TelemetryLogstashAppender appender = TelemetryUtils.fetchTelemetryLogstashAppender();
Context context = appender.getGameContext();
if (context != null) {
Metrics metrics = context.get(Metrics.class);
Optional<Metric> optional = metrics.getMetric(ModulesMetric.class);
if (optional.isPresent()) {
Metric modulesMetric = optional.get();
Map<String, ?> map = modulesMetric.createTelemetryFieldToValue();
Map<String, String> stringMap = TelemetryUtils.toStringMap(map);
JsonWritingUtils.writeMapStringFields(generator, getFieldName(), stringMap);
}
}
}
use of org.terasology.engine.context.Context in project Terasology by MovingBlocks.
the class Metric method filterMetricMap.
/**
* Filter the metric map by the binding map.
* If the user doesn't want the field to be sent, its value will be covered by "Disabled Field".
* @param bindingMap the binding map.
* @return a new metric map that covers the field that the user doesn't want to send by "Disabled Field".
*/
protected Map<String, Object> filterMetricMap(Map<String, Boolean> bindingMap) {
TelemetryCategory telemetryCategory = this.getClass().getAnnotation(TelemetryCategory.class);
Context context = CoreRegistry.get(Context.class);
DisplayDevice display = context.get(DisplayDevice.class);
if (display.isHeadless() || telemetryCategory.isOneMapMetric()) {
return telemetryFieldToValue;
}
Map<String, Object> metricMapAfterPermission = new HashMap<>();
for (String fieldName : telemetryFieldToValue.keySet()) {
String fieldNameWithID = telemetryCategory.id() + ":" + fieldName;
if (bindingMap.containsKey(fieldNameWithID)) {
if (bindingMap.get(fieldNameWithID)) {
metricMapAfterPermission.put(fieldName, telemetryFieldToValue.get(fieldName));
} else {
metricMapAfterPermission.put(fieldName, "Disabled Field");
}
}
}
return metricMapAfterPermission;
}
use of org.terasology.engine.context.Context in project Terasology by MovingBlocks.
the class SceneProperties method getProperties.
@Override
public List<Property<?>> getProperties() {
List<Property<?>> result = Lists.newArrayList();
GameState gameState = engine.getState();
if (!(gameState instanceof StateIngame)) {
return result;
}
StateIngame ingameState = (StateIngame) gameState;
Context ingameContext = ingameState.getContext();
BackdropProvider backdropProvider = ingameContext.get(BackdropProvider.class);
if (backdropProvider != null) {
result.addAll(new ReflectionProvider(backdropProvider, ingameContext).getProperties());
}
/*FrameBuffersManager renderingProcess = ingameContext.get(FrameBuffersManager.class);
if (renderingProcess != null) {
result.addAll(new ReflectionProvider(renderingProcess, ingameContext).getProperties());
}*/
return result;
}
use of org.terasology.engine.context.Context in project Terasology by MovingBlocks.
the class Metric method filterMetricMap.
/**
* Filter the metric map by the binding map.
* If the user doesn't want the field to be sent, its value will be covered by "Disabled Field".
* This method could be used in module since {@link org.terasology.engine.config.facade.TelemetryConfiguration} is exposed to modules
* @param telemetryConfiguration the telemetry configuration exposed modules
* @return a new metric map that covers the field that the user doesn't want to send by "Disabled Field".
*/
protected Map<String, Object> filterMetricMap(TelemetryConfiguration telemetryConfiguration) {
TelemetryCategory telemetryCategory = this.getClass().getAnnotation(TelemetryCategory.class);
Context context = CoreRegistry.get(Context.class);
DisplayDevice display = context.get(DisplayDevice.class);
if (display.isHeadless() || telemetryCategory.isOneMapMetric()) {
return telemetryFieldToValue;
}
Map<String, Object> metricMapAfterPermission = new HashMap<>();
for (String fieldName : telemetryFieldToValue.keySet()) {
String fieldNameWithID = telemetryCategory.id() + ":" + fieldName;
if (telemetryConfiguration.containsField(fieldNameWithID)) {
if (telemetryConfiguration.get(fieldNameWithID)) {
metricMapAfterPermission.put(fieldName, telemetryFieldToValue.get(fieldName));
} else {
metricMapAfterPermission.put(fieldName, "Disabled Field");
}
}
}
return metricMapAfterPermission;
}
Aggregations