Search in sources :

Example 1 with DeviceController

use of com.b3dgs.lionengine.io.DeviceController in project lionengine by b3dgs.

the class DeviceControllerConfig method create.

/**
 * Create device controller from configuration.
 *
 * @param services The services reference (must not be <code>null</code>).
 * @param media The media configuration (must not be <code>null</code>).
 * @return The created controller.
 * @throws LionEngineException If unable to read node.
 */
public static DeviceController create(Services services, Media media) {
    final Context context = services.get(Context.class);
    final DeviceController controller = new DeviceControllerModel();
    final Collection<DeviceControllerConfig> configs = DeviceControllerConfig.imports(services, media);
    for (final DeviceControllerConfig config : configs) {
        final InputDevice device = context.getInputDevice(config.getDevice());
        if (device instanceof DevicePush) {
            final DevicePush push = (DevicePush) device;
            config.getHorizontal().forEach(h -> controller.addHorizontal(push, new DeviceActionModel(h, push)));
            config.getVertical().forEach(v -> controller.addVertical(push, new DeviceActionModel(v, push)));
            config.getFire().entrySet().forEach(e -> e.getValue().forEach(c -> controller.addFire(device, e.getKey(), new DeviceActionModel(c, push))));
        }
        if (device instanceof DevicePointer) {
            final DevicePointer pointer = (DevicePointer) device;
            controller.addHorizontal(pointer, () -> pointer.getMoveX());
            controller.addVertical(pointer, () -> -pointer.getMoveY());
        }
        if (config.isDisabled()) {
            controller.setDisabled(device.getName(), true, true);
        }
    }
    return controller;
}
Also used : Context(com.b3dgs.lionengine.Context) DevicePush(com.b3dgs.lionengine.io.DevicePush) LionEngineException(com.b3dgs.lionengine.LionEngineException) DevicePointer(com.b3dgs.lionengine.io.DevicePointer) DevicePush(com.b3dgs.lionengine.io.DevicePush) Collection(java.util.Collection) Check(com.b3dgs.lionengine.Check) Set(java.util.Set) HashMap(java.util.HashMap) DeviceControllerModel(com.b3dgs.lionengine.io.DeviceControllerModel) DeviceController(com.b3dgs.lionengine.io.DeviceController) Configurer(com.b3dgs.lionengine.game.Configurer) DeviceMapper(com.b3dgs.lionengine.io.DeviceMapper) ArrayList(java.util.ArrayList) InputDevice(com.b3dgs.lionengine.InputDevice) HashSet(java.util.HashSet) Constant(com.b3dgs.lionengine.Constant) Context(com.b3dgs.lionengine.Context) DeviceAxis(com.b3dgs.lionengine.io.DeviceAxis) List(java.util.List) XmlReader(com.b3dgs.lionengine.XmlReader) Services(com.b3dgs.lionengine.game.feature.Services) Map(java.util.Map) Media(com.b3dgs.lionengine.Media) DeviceActionModel(com.b3dgs.lionengine.io.DeviceActionModel) DeviceControllerModel(com.b3dgs.lionengine.io.DeviceControllerModel) InputDevice(com.b3dgs.lionengine.InputDevice) DeviceController(com.b3dgs.lionengine.io.DeviceController) DevicePointer(com.b3dgs.lionengine.io.DevicePointer) DeviceActionModel(com.b3dgs.lionengine.io.DeviceActionModel)

Aggregations

Check (com.b3dgs.lionengine.Check)1 Constant (com.b3dgs.lionengine.Constant)1 Context (com.b3dgs.lionengine.Context)1 InputDevice (com.b3dgs.lionengine.InputDevice)1 LionEngineException (com.b3dgs.lionengine.LionEngineException)1 Media (com.b3dgs.lionengine.Media)1 XmlReader (com.b3dgs.lionengine.XmlReader)1 Configurer (com.b3dgs.lionengine.game.Configurer)1 Services (com.b3dgs.lionengine.game.feature.Services)1 DeviceActionModel (com.b3dgs.lionengine.io.DeviceActionModel)1 DeviceAxis (com.b3dgs.lionengine.io.DeviceAxis)1 DeviceController (com.b3dgs.lionengine.io.DeviceController)1 DeviceControllerModel (com.b3dgs.lionengine.io.DeviceControllerModel)1 DeviceMapper (com.b3dgs.lionengine.io.DeviceMapper)1 DevicePointer (com.b3dgs.lionengine.io.DevicePointer)1 DevicePush (com.b3dgs.lionengine.io.DevicePush)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1