use of org.terasology.input.BindableButton in project Terasology by MovingBlocks.
the class BindsSubsystem method registerAxisBinds.
private void registerAxisBinds(ModuleEnvironment environment) {
Iterable<Class<?>> classes = environment.getTypesAnnotatedWith(RegisterBindAxis.class);
for (Class<?> registerBindClass : classes) {
RegisterBindAxis info = registerBindClass.getAnnotation(RegisterBindAxis.class);
Name moduleId = environment.getModuleProviding(registerBindClass);
SimpleUri id = new SimpleUri(moduleId, info.id());
if (BindAxisEvent.class.isAssignableFrom(registerBindClass)) {
BindableButton positiveButton = getBindButton(new SimpleUri(info.positiveButton()));
BindableButton negativeButton = getBindButton(new SimpleUri(info.negativeButton()));
if (positiveButton == null) {
logger.warn("Failed to register axis \"{}\", missing positive button \"{}\"", id, info.positiveButton());
continue;
}
if (negativeButton == null) {
logger.warn("Failed to register axis \"{}\", missing negative button \"{}\"", id, info.negativeButton());
continue;
}
try {
BindableAxis bindAxis = registerBindAxis(id.toString(), (BindAxisEvent) registerBindClass.newInstance(), positiveButton, negativeButton);
bindAxis.setSendEventMode(info.eventMode());
logger.debug("Registered axis bind: {}", id);
} catch (InstantiationException | IllegalAccessException e) {
logger.error("Failed to register axis bind \"{}\"", id, e);
}
} else {
logger.error("Failed to register axis bind \"{}\", does not extend BindAxisEvent", id);
}
}
}
use of org.terasology.input.BindableButton in project Terasology by MovingBlocks.
the class BindsSubsystem method linkBindButtonToMouse.
private void linkBindButtonToMouse(MouseInput mouseButton, SimpleUri bindId) {
BindableButton bindInfo = buttonLookup.get(bindId);
mouseButtonBinds.put(mouseButton, bindInfo);
}
use of org.terasology.input.BindableButton in project Terasology by MovingBlocks.
the class BindsSubsystem method linkBindButtonToController.
private void linkBindButtonToController(ControllerInput button, SimpleUri bindId) {
BindableButton bindInfo = buttonLookup.get(bindId);
controllerBinds.put(button, bindInfo);
}
use of org.terasology.input.BindableButton in project Terasology by MovingBlocks.
the class BindsSubsystemTest method testRegisterBinds.
@Test
public void testRegisterBinds() {
registerBindButtonClasses.add(TestEventButton.class);
bindsSubsystem.updateConfigWithDefaultBinds();
bindsSubsystem.registerBinds();
BindableButton button = bindsSubsystem.getKeyBinds().get(KeyId.T);
assertThat(button, is(not(nullValue())));
assertThat(button.getId(), is(new SimpleUri(TEST_MODULE, "testEvent")));
assertThat(button.getDisplayName(), is("${engine-tests:menu#theTestEvent}"));
}
use of org.terasology.input.BindableButton in project Terasology by MovingBlocks.
the class BindsSubsystem method linkBindButtonToKey.
@Override
public void linkBindButtonToKey(int key, SimpleUri bindId) {
BindableButton bindInfo = buttonLookup.get(bindId);
keyBinds.put(key, bindInfo);
}
Aggregations