Example usage for com.badlogic.gdx.utils IntArray removeRange

List of usage examples for com.badlogic.gdx.utils IntArray removeRange

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils IntArray removeRange.

Prototype

public void removeRange(int start, int end) 

Source Link

Document

Removes the items between the specified indices, inclusive.

Usage

From source file:com.github.antag99.retinazer.Mapper.java

License:Open Source License

void flushComponentRemoval() {
    final Bag<T> components = this.components;
    final IntArray remove = this.remove;
    final Mask componentsMask = this.componentsMask;
    final Mask removeMask = this.removeMask;
    final int removeCount = this.removeCount;

    final Pool<T> pool = this.componentPool;
    if (pool == null) {
        //Version for standard components
        for (int i = 0; i < removeCount; i++) {
            final int entity = remove.get(i);
            components.remove(entity);//w w  w . ja v a  2  s. c  o  m
            componentsMask.clear(entity);
            removeMask.clear(entity);
        }
    } else {
        //Version for pooled components
        for (int i = 0; i < removeCount; i++) {
            final int entity = remove.get(i);

            final T component = components.remove(entity);
            if (component != null)
                pool.free(component);

            componentsMask.clear(entity);
            removeMask.clear(entity);
        }
    }

    if (removeCount > 0)
        remove.removeRange(0, removeCount - 1);
}