@Override
    public void setTransient(Registry rg) {
        super.setTransient(rg);

        try {
            for (String key : placeables.keySet()) {
                Placeable placeable = (Placeable) placeables.get(key);

                //convert town halls to cabins
                if (placeable.getType().equals("TownHall")) {
                    if (gameController.multiplayerMode != gameController.multiplayerMode.CLIENT) {
                        placeable.setIsDirty(true);
                        Placeable cabin = new Cabin(this, registry, "Placeables/Cursor/Cabin", "Placeables/Placed/Cabin", placeable.getMapX(), placeable.getMapY(), Placeable.State.Placed);
                        registerPlaceable(cabin);
                    }
                } else {
                    placeable.setTransient(rg);
                }
            }
        } 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
        }
    }