コード例 #1
0
def generateTerrainTypes():
    # MIRRORIZE PLOTS
    gc = CyGlobalContext()
    map = CyMap()
    userInputPlots = map.getCustomMapOption(0)
    iW = map.getGridWidth()
    iH = map.getGridHeight()

    if userInputPlots == 0:  # Reflection
        reflect_x = lambda x: iW - iX - 1
        reflect_y = lambda y: iY
    elif userInputPlots == 1:  # Inversion
        reflect_x = lambda x: iW - iX - 1
        reflect_y = lambda y: iH - iY - 1
    elif userInputPlots == 2:  # Copy
        reflect_x = lambda x: iX + (iW / 2)
        reflect_y = lambda y: iY
    else:  # userInputPlots == 3: Opposite
        reflect_x = lambda x: iX + (iW / 2)
        reflect_y = lambda y: iH - iY - 1

    for iX in range(iW / 2):
        for iY in range(iH):
            pPlot = map.plot(iX, iY)
            rPlot = map.plot(reflect_x(iX), reflect_y(iY))
            pPlot.setPlotType(rPlot.getPlotType(), false, false)

    # Smooth any graphical glitches these changes may have produced.
    map.recalculateAreas()

    # Now generate the terrain.
    NiTextOut("Generating Terrain (Python Mirror) ...")
    terraingen = CvMapGeneratorUtil.TerrainGenerator()
    terrainTypes = terraingen.generateTerrain()
    return terrainTypes
コード例 #2
0
def generateTerrainTypes():
    NiTextOut("Generating Terrain (Python Terra) ...")
    terraingen = CvMapGeneratorUtil.TerrainGenerator()
    terrainTypes = terraingen.generateTerrain()
    return terrainTypes