@Override public List<Input> getBinds(SimpleUri uri) { return bindsConfig.getBinds(uri); }
@Override public List<Input> getBinds(SimpleUri uri) { return config.getBinds().getBinds(uri); }
@Override public Input get() { return Iterators.get(config.getBinds(bindUri).iterator(), position, null); }
@Override public void set(Input value) { List<Input> binds = Lists.newArrayList(config.getBinds(bindUri)); if (value == null) { if (position < binds.size()) { binds.set(position, null); } } else { while (binds.size() <= position) { binds.add(null); } binds.set(position, value); } config.setBinds(bindUri, binds); }
/** * Auto move is disabled when the associated key is pressed again. * This cancels the simulated repeated key stroke for the forward input button. */ private void stopAutoMove() { List<Input> inputs = bindsManager.getBindsConfig().getBinds(new SimpleUri("engine:forwards")); Input forwardKey = getValidKey(inputs); if (forwardKey != null) { inputSystem.cancelSimulatedKeyStroke(forwardKey); isAutoMove = false; } }
public void setBindingData(SimpleUri uri, RegisterBindButton bind, int index) { find("title", UILabel.class).setText(translationSystem.translate(bind.description())); BindsConfig bindConfig = bindsManager.getBindsConfig(); bindButton.bindInput(new InputConfigBinding(bindConfig, uri, index)); List<Input> defaults = defaultBinds.getBinds(uri); find("default-binding", UILabel.class).setText( defaults.size() > index ? defaults.get(index).getDisplayName() : "<" + translationSystem.translate("${engine:menu#none}" + ">")); find("default", UIButton.class).subscribe(e -> bindButton.setNewInput( defaults.size() > index ? defaults.get(index) : null)); }
/** * Append the input for moving forward to the keyboard command queue to simulate pressing of the forward key. * For an input that repeats, the key must be in Down state before Repeat state can be applied to it. */ private void startAutoMove() { isAutoMove = false; List<Input> inputs = bindsManager.getBindsConfig().getBinds(new SimpleUri("engine:forwards")); Input forwardKey = getValidKey(inputs); if (forwardKey != null) { isAutoMove = true; inputSystem.simulateSingleKeyStroke(forwardKey); inputSystem.simulateRepeatedKeyStroke(forwardKey); } }
@Test public void testUpdateBinds() { registerBindButtonClasses.add(TestEventButton.class); bindsSubsystem.updateConfigWithDefaultBinds(); List<Input> defaultBinds = bindsSubsystem.getDefaultBindsConfig().getBinds(new SimpleUri(TEST_MODULE, "testEvent")); assertThat(defaultBinds.size(), is(1)); assertThat(defaultBinds.get(0).getType(), is(InputType.KEY)); assertThat(defaultBinds.get(0).getId(), is(KeyId.T)); assertThat(defaultBinds.get(0).getName(), is(Key.T.getName())); assertThat(defaultBinds.get(0).getDisplayName(), is(Key.T.getDisplayName())); List<Input> binds = bindsSubsystem.getBindsConfig().getBinds(new SimpleUri(TEST_MODULE, "testEvent")); assertThat(binds.size(), is(1)); assertThat(binds.get(0).getType(), is(InputType.KEY)); assertThat(binds.get(0).getId(), is(KeyId.T)); assertThat(binds.get(0).getName(), is(Key.T.getName())); assertThat(binds.get(0).getDisplayName(), is(Key.T.getDisplayName())); }
private void addInputBindRow(SimpleUri uri, RegisterBindButton bind, ColumnLayout layout) { BindsConfig bindConfig = bindsManager.getBindsConfig(); List<Input> binds = bindConfig.getBinds(uri); UIButton primaryInputBind = makeInputBindButton(uri, bind, binds, PRIMARY_BIND_INDEX); UIButton secondaryInputBind = makeInputBindButton(uri, bind, binds, SECONDARY_BIND_INDEX); layout.addWidget(new RowLayout(new UILabel(translationSystem.translate(bind.description())), primaryInputBind, secondaryInputBind) .setColumnRatios(0.4f) .setHorizontalSpacing(horizontalSpacing)); }