当前位置: 首页>>代码示例>>Java>>正文


Java Tile.getType方法代码示例

本文整理汇总了Java中net.sf.freecol.common.model.Tile.getType方法的典型用法代码示例。如果您正苦于以下问题:Java Tile.getType方法的具体用法?Java Tile.getType怎么用?Java Tile.getType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.sf.freecol.common.model.Tile的用法示例。


在下文中一共展示了Tile.getType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createTileImageWithBeachBorderAndItems

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Create a {@code BufferedImage} and draw a {@code Tile} on it.
 * Draws the terrain and improvements.
 *
 * @param tile The Tile to draw.
 * @return The image.
 */
BufferedImage createTileImageWithBeachBorderAndItems(Tile tile) {
    if (!tile.isExplored())
        return lib.getTerrainImage(null, tile.getX(), tile.getY());
    final TileType tileType = tile.getType();
    Dimension terrainTileSize = lib.tileSize;
    BufferedImage overlayImage = lib.getOverlayImage(tile);
    final int compoundHeight = (overlayImage != null)
        ? overlayImage.getHeight()
        : tileType.isForested()
            ? lib.tileForestSize.height
            : terrainTileSize.height;
    BufferedImage image = new BufferedImage(
        terrainTileSize.width, compoundHeight, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = image.createGraphics();
    g.translate(0, compoundHeight - terrainTileSize.height);
    displayTileWithBeachAndBorder(g, tile);
    displayTileItems(g, tile, null, overlayImage);
    g.dispose();
    return image;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:28,代码来源:TileViewer.java

示例2: createTileImage

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Create a {@code BufferedImage} and draw a {@code Tile} on it.
 *
 * @param tile The {@code Tile} to draw.
 * @return The image.
 */
BufferedImage createTileImage(Tile tile) {
    final TileType tileType = tile.getType();
    Dimension terrainTileSize = lib.tileSize;
    BufferedImage overlayImage = lib.getOverlayImage(tile);
    final int compoundHeight = (overlayImage != null)
        ? overlayImage.getHeight()
        : tileType.isForested()
            ? lib.tileForestSize.height
            : terrainTileSize.height;
    BufferedImage image = new BufferedImage(
        terrainTileSize.width, compoundHeight, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = image.createGraphics();
    g.translate(0, compoundHeight - terrainTileSize.height);
    displayTile(g, tile, overlayImage);
    g.dispose();
    return image;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:24,代码来源:TileViewer.java

示例3: createColonyTileImage

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Create a {@code BufferedImage} and draw a {@code Tile} on it.
 * The visualization of the {@code Tile} also includes information
 * from the corresponding {@code ColonyTile} of the given
 * {@code Colony}.
 *
 * @param tile The {@code Tile} to draw.
 * @param colony The {@code Colony} to create the visualization
 *      of the {@code Tile} for. This object is also used to
 *      get the {@code ColonyTile} for the given {@code Tile}.
 * @return The image.
 */
BufferedImage createColonyTileImage(Tile tile, Colony colony) {
    final TileType tileType = tile.getType();
    Dimension terrainTileSize = lib.tileSize;
    BufferedImage overlayImage = lib.getOverlayImage(tile);
    final int compoundHeight = (overlayImage != null)
        ? overlayImage.getHeight()
        : tileType.isForested()
            ? lib.tileForestSize.height
            : terrainTileSize.height;
    BufferedImage image = new BufferedImage(
        terrainTileSize.width, compoundHeight, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = image.createGraphics();
    g.translate(0, compoundHeight - terrainTileSize.height);
    displayColonyTile(g, tile, colony, overlayImage);
    g.dispose();
    return image;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:30,代码来源:TileViewer.java

示例4: getGoodMountainTile

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Pick a good tile to put elevated terrain on.
 *
 * @param map A {@code Map} to choose from.
 * @return A suitable {@code Tile}, or null if none found.
 */
private Tile getGoodMountainTile(Map map) {
    final Specification spec = map.getGame().getSpecification();
    final TileType hills = spec.getTileType("model.tile.hills");
    final TileType mountains = spec.getTileType("model.tile.mountains");
    Tile tile = null;
    while ((tile = map.getRandomLandTile(random)) != null) {
        // Can not be high ground already
        if (tile.getType() != hills && tile.getType() != mountains
            
            // Not too close to a mountain range as this would
            // defeat the purpose of adding random hills
            && none(tile.getSurroundingTiles(1, 3), t -> t.getType() == mountains)

            // Do not add hills too close to the ocean/lake, as
            // this helps with good locations for building
            // colonies on shore.
            && none(tile.getSurroundingTiles(1, 1), t -> !t.isLand())) {
            return tile;
        }
    }
    return null;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:29,代码来源:TerrainGenerator.java

示例5: displayTileWithBeachAndBorder

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Displays the given Tile onto the given Graphics2D object at the
 * location specified by the coordinates. Only base terrain will be drawn.
 *
 * @param g The Graphics2D object on which to draw the Tile.
 * @param tile The Tile to draw.
 */
void displayTileWithBeachAndBorder(Graphics2D g, Tile tile) {
    if (tile != null) {
        TileType tileType = tile.getType();
        int x = tile.getX();
        int y = tile.getY();
        // ATTENTION: we assume that all base tiles have the same size
        g.drawImage(lib.getTerrainImage(tileType, x, y),
                    0, 0, null);
        if (tile.isExplored()) {
            if (!tile.isLand() && tile.getStyle() > 0) {
                int edgeStyle = tile.getStyle() >> 4;
                if (edgeStyle > 0) {
                    g.drawImage(lib.getBeachEdgeImage(edgeStyle, x, y),
                                0, 0, null);
                }
                int cornerStyle = tile.getStyle() & 15;
                if (cornerStyle > 0) {
                    g.drawImage(lib.getBeachCornerImage(cornerStyle, x, y),
                                0, 0, null);
                }
            }

            List<SortableImage> imageBorders = new ArrayList<>(8);
            SortableImage si;
            for (Direction direction : Direction.values()) {
                Tile borderingTile = tile.getNeighbourOrNull(direction);
                if (borderingTile != null && borderingTile.isExplored()) {
                    TileType borderingTileType = borderingTile.getType();
                    if (borderingTileType != tileType) {
                        if (!tile.isLand() && borderingTile.isLand()) {
                            // If there is a Coast image (eg. beach) defined, use it, otherwise skip
                            // Draw the grass from the neighboring tile, spilling over on the side of this tile
                            si = new SortableImage(
                                lib.getBorderImage(borderingTileType, direction, x, y),
                                borderingTileType.getIndex());
                            imageBorders.add(si);
                            TileImprovement river = borderingTile.getRiver();
                            if (river != null) {
                                int magnitude = river.getRiverConnection(
                                    direction.getReverseDirection());
                                if (magnitude > 0) {
                                    si = new SortableImage(
                                        lib.getRiverMouthImage(direction,
                                            magnitude, x, y),
                                        -1);
                                    imageBorders.add(si);
                                }
                            }
                        } else if (!tile.isLand() || borderingTile.isLand()) {
                            if (borderingTileType.getIndex() < tileType.getIndex() &&
                                    !lib.getTerrainImage(tileType, 0, 0).equals(lib.getTerrainImage(borderingTileType, 0, 0))) {
                                // Draw land terrain with bordering land type, or ocean/high seas limit,
                                // if the tiles do not share same graphics (ocean & great river)
                                si = new SortableImage(
                                        lib.getBorderImage(borderingTileType, direction, x, y),
                                        borderingTileType.getIndex());
                                imageBorders.add(si);
                            }
                        }
                    }
                }
            }
            for (SortableImage sorted : sort(imageBorders)) {
                g.drawImage(sorted.image, 0, 0, null);
            }
        }
    }
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:76,代码来源:TileViewer.java


注:本文中的net.sf.freecol.common.model.Tile.getType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。