Search in sources :

Example 6 with IRadioWaveReceiver

use of icbm.classic.api.tile.IRadioWaveReceiver in project ICBM-Classic by BuiltBrokenModding.

the class RadioMap method getReceiversInRange.

/**
 * Gets a list of all receivers in the range
 *
 * @param range       - range to check inside
 * @param excludeList - tiles to ignore
 * @return list of receivers, or empty list
 */
public List<IRadioWaveReceiver> getReceiversInRange(Cube range, List excludeList) {
    List<IRadioWaveReceiver> receivers = new ArrayList();
    receivers.addAll(fullMapRangeReceives);
    if (range != null) {
        for (IRadioWaveReceiver receiver : receive_to_chunks.keySet()) {
            if (receiver != null && (excludeList == null || !excludeList.contains(receiver))) {
                Cube receiverRange = receiver.getRadioReceiverRange();
                if (receiverRange != null && range.doesOverlap(receiverRange)) {
                    receivers.add(receiver);
                }
            }
        }
    }
    return receivers;
}
Also used : IRadioWaveReceiver(icbm.classic.api.tile.IRadioWaveReceiver) Cube(icbm.classic.lib.transform.region.Cube) ArrayList(java.util.ArrayList)

Aggregations

IRadioWaveReceiver (icbm.classic.api.tile.IRadioWaveReceiver)6 ArrayList (java.util.ArrayList)5 Cube (icbm.classic.lib.transform.region.Cube)4 ChunkPos (net.minecraft.util.math.ChunkPos)3 IRadioWaveSender (icbm.classic.api.tile.IRadioWaveSender)2