public Promise(BiCallback<UniCallback<T>, UniCallback<Throwable>> function) { this((self, resolve, reject) -> function.invoke(resolve, reject)); }
/** * Updates the scene. This calls all the registered systems that are registered for update event. The order of * invoking is the same as the order of registration. The components will however be updated before the systems * start work. * * @param elapsedTime The time elapsed in the previous frame. */ public void update(float elapsedTime) { for (BiCallback<Scene, Float> system : updateSystems) system.invoke(this, elapsedTime); }
/** * Renders the scene. This calls all the registered systems that are registered for render event. The order of * invoking is the same as the order of registration. The components will however be rendered before the systems * start work. * * @param elapsedTime The time elapsed in the previous frame. */ public void render(float elapsedTime) { for (BiCallback<Scene, Float> system : renderSystems) system.invoke(this, elapsedTime); }
@Override public Promise<Void> mkdirs() { return new Promise<>((resolve, reject) -> { BiCallback<Boolean, Boolean> function = (isFile, exists) -> { try { if (isFile && !exists) getParent().mkdirs(); else Files.createDirectories(Paths.get(path)); resolve.invoke(null); } catch (IOException e) { e.printStackTrace(); reject.invoke(e); } }; isFile().then(isFile -> exists().then(exists -> function.invoke(isFile, exists), reject), reject); }); }
@Override public Promise<Void> mkdirs() { BiCallback<Boolean, Boolean> function = (isFile, exists) -> { if (isFile && !exists) getParent().mkdirs(); else file.mkdirs(); }; return new Promise<>((resolve, reject) -> isFile().then(isFile -> exists().then(exists -> { function.invoke(isFile, exists); resolve.invoke(null); }, reject), reject)); }