@Override
    public void updateLong() {
        boolean nearArea;
        Point placeablePoint, areaPoint;
        Placeable placeable = null;
        int[] powerValues = this.getPower();

        //loop through the placeable to figure out power for each one
        try {
            for (String key : placeables.keySet()) {
                placeable = (Placeable) placeables.get(key);
                if (placeable != null) {
                    //only affect placeables which are built and require power
                    if (placeable.canDestroy() && placeable.getPowerRequired() > 0) {
                        //check availablePower
                        if (powerValues[2] < 0) {
                            placeable.setIsPowered(false);
                        } else {
                            placeable.setIsPowered(true);
                        }
                    }
                }
            }
        } catch (ConcurrentModificationException concEx) {
            //another thread was trying to modify placeables while iterating
            //we'll continue and the new item can be grabbed on the next update
        }

        //run long update for placeables
        try {
            for (String key : placeables.keySet()) {
                placeable = (Placeable) placeables.get(key);
                if (placeable != null) {
                    placeable.updateLong();
                }
            }
        } catch (ConcurrentModificationException concEx) {
            //another thread was trying to modify placeables while iterating
            //we'll continue and the new item can be grabbed on the next update
        }
    }