Package squidpony.squidgrid.mapping
Class WorldMapGenerator.TilingMap
java.lang.Object
squidpony.squidgrid.mapping.WorldMapGenerator
squidpony.squidgrid.mapping.WorldMapGenerator.TilingMap
- All Implemented Interfaces:
Serializable
- Enclosing class:
- WorldMapGenerator
public static class WorldMapGenerator.TilingMap extends WorldMapGenerator
A concrete implementation of
WorldMapGenerator
that tiles both east-to-west and north-to-south. It tends
to not appear distorted like WorldMapGenerator.SphereMap
does in some areas, even though this is inaccurate for a
rectangular projection of a spherical world (that inaccuracy is likely what players expect in a map, though).
You may want WorldMapGenerator.LocalMap
instead, for non-world maps that don't tile.
Example map.- See Also:
- Serialized Form
-
Nested Class Summary
Nested classes/interfaces inherited from class squidpony.squidgrid.mapping.WorldMapGenerator
WorldMapGenerator.BiomeMapper, WorldMapGenerator.DetailedBiomeMapper, WorldMapGenerator.EllipticalHammerMap, WorldMapGenerator.EllipticalMap, WorldMapGenerator.HyperellipticalMap, WorldMapGenerator.LocalMap, WorldMapGenerator.LocalMimicMap, WorldMapGenerator.MimicMap, WorldMapGenerator.RotatingSpaceMap, WorldMapGenerator.RoundSideMap, WorldMapGenerator.SimpleBiomeMapper, WorldMapGenerator.SpaceViewMap, WorldMapGenerator.SphereMap, WorldMapGenerator.TilingMap
-
Field Summary
Fields Modifier and Type Field Description Noise.Noise4D
heat
protected static double
heatFreq
Noise.Noise4D
moisture
protected static double
moistureFreq
protected static double
otherFreq
Noise.Noise4D
otherRidged
Noise.Noise4D
terrain
protected static double
terrainFreq
Noise.Noise4D
terrainRidged
protected static double
terrainRidgedFreq
Fields inherited from class squidpony.squidgrid.mapping.WorldMapGenerator
cacheA, cacheB, centerLongitude, coastalWaterLower, coastalWaterUpper, deepWaterLower, deepWaterUpper, DEFAULT_NOISE, forestLower, forestUpper, grassLower, grassUpper, heatData, heatModifier, height, heightCodeData, heightData, landData, landModifier, maxHeat, maxHeight, maxHeightActual, maxWet, mediumWaterLower, mediumWaterUpper, minHeat, minHeight, minHeightActual, minWet, moistureData, rng, rockLower, rockUpper, sandLower, sandUpper, seedA, seedB, shallowWaterLower, shallowWaterUpper, snowLower, snowUpper, startCacheX, startCacheY, startX, startY, usedHeight, usedWidth, width, zoom, zoomStartX, zoomStartY
-
Constructor Summary
Constructors Constructor Description TilingMap()
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south.TilingMap(int mapWidth, int mapHeight)
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south.TilingMap(long initialSeed, int mapWidth, int mapHeight)
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south.TilingMap(long initialSeed, int mapWidth, int mapHeight, Noise.Noise4D noiseGenerator)
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south.TilingMap(long initialSeed, int mapWidth, int mapHeight, Noise.Noise4D noiseGenerator, double octaveMultiplier)
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south.TilingMap(WorldMapGenerator.TilingMap other)
Copies the TilingMapother
to construct a new one that is exactly the same. -
Method Summary
Modifier and Type Method Description protected void
regenerate(int startX, int startY, int usedWidth, int usedHeight, double landMod, double heatMod, int stateA, int stateB)
Methods inherited from class squidpony.squidgrid.mapping.WorldMapGenerator
codeHeight, decodeX, decodeY, generate, generate, generate, getCenterLongitude, project, removeExcess, setCenterLongitude, wrapX, wrapY, zoomIn, zoomIn, zoomOut, zoomOut
-
Field Details
-
terrainFreq
- See Also:
- Constant Field Values
-
terrainRidgedFreq
- See Also:
- Constant Field Values
-
heatFreq
- See Also:
- Constant Field Values
-
moistureFreq
- See Also:
- Constant Field Values
-
otherFreq
- See Also:
- Constant Field Values
-
terrain
-
terrainRidged
-
heat
-
moisture
-
otherRidged
-
-
Constructor Details
-
TilingMap
public TilingMap()Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south. Always makes a 256x256 map. Uses FastNoise as its noise generator, with 1.0 as the octave multiplier affecting detail. If you were usingTilingMap(long, int, int, Noise4D, double)
, then this would be the same as passing the parameters0x1337BABE1337D00DL, 256, 256, WorldMapGenerator.DEFAULT_NOISE, 1.0
. -
TilingMap
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south. Takes only the width/height of the map. The initial seed is set to the same large long every time, and it's likely that you would set the seed when you callWorldMapGenerator.generate(long)
. The width and height of the map cannot be changed after the fact, but you can zoom in. Uses FastNoise as its noise generator, with 1.0 as the octave multiplier affecting detail.- Parameters:
mapWidth
- the width of the map(s) to generate; cannot be changed latermapHeight
- the height of the map(s) to generate; cannot be changed later
-
TilingMap
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south. Takes an initial seed and the width/height of the map. TheinitialSeed
parameter may or may not be used, since you can specify the seed to use when you callWorldMapGenerator.generate(long)
. The width and height of the map cannot be changed after the fact, but you can zoom in. Uses FastNoise as its noise generator, with 1.0 as the octave multiplier affecting detail.- Parameters:
initialSeed
- the seed for the GWTRNG this uses; this may also be set per-call to generatemapWidth
- the width of the map(s) to generate; cannot be changed latermapHeight
- the height of the map(s) to generate; cannot be changed later
-
TilingMap
Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south. Takes an initial seed, the width/height of the map, and a noise generator (aNoise.Noise4D
implementation, which is usuallyFastNoise.instance
. TheinitialSeed
parameter may or may not be used, since you can specify the seed to use when you callWorldMapGenerator.generate(long)
. The width and height of the map cannot be changed after the fact, but you can zoom in. Any seed supplied to the Noise4D given to this (if it takes one) will be ignored, andNoise.Noise4D.getNoiseWithSeed(double, double, double, double, long)
will be used to specify the seed many times. The detail level, which is theoctaveMultiplier
parameter that can be passed to another constructor, is always 1.0 with this constructor.- Parameters:
initialSeed
- the seed for the GWTRNG this uses; this may also be set per-call to generatemapWidth
- the width of the map(s) to generate; cannot be changed latermapHeight
- the height of the map(s) to generate; cannot be changed laternoiseGenerator
- an instance of a noise generator capable of 4D noise, recommended to beFastNoise.instance
-
TilingMap
public TilingMap(long initialSeed, int mapWidth, int mapHeight, Noise.Noise4D noiseGenerator, double octaveMultiplier)Constructs a concrete WorldMapGenerator for a map that can be used as a tiling, wrapping east-to-west as well as north-to-south. Takes an initial seed, the width/height of the map, and parameters for noise generation (aNoise.Noise4D
implementation, which is usuallyFastNoise.instance
, and a multiplier on how many octaves of noise to use, with 1.0 being normal (high) detail and higher multipliers producing even more detailed noise when zoomed-in). TheinitialSeed
parameter may or may not be used, since you can specify the seed to use when you callWorldMapGenerator.generate(long)
. The width and height of the map cannot be changed after the fact, but you can zoom in. Any seed supplied to the Noise4D given to this (if it takes one) will be ignored, andNoise.Noise4D.getNoiseWithSeed(double, double, double, double, long)
will be used to specify the seed many times. TheoctaveMultiplier
parameter should probably be no lower than 0.5, but can be arbitrarily high if you're willing to spend much more time on generating detail only noticeable at very high zoom; normally 1.0 is fine and may even be too high for maps that don't require zooming.- Parameters:
initialSeed
- the seed for the GWTRNG this uses; this may also be set per-call to generatemapWidth
- the width of the map(s) to generate; cannot be changed latermapHeight
- the height of the map(s) to generate; cannot be changed laternoiseGenerator
- an instance of a noise generator capable of 4D noise, almost alwaysFastNoise
octaveMultiplier
- used to adjust the level of detail, with 0.5 at the bare-minimum detail and 1.0 normal
-
TilingMap
Copies the TilingMapother
to construct a new one that is exactly the same. References will only be shared to Noise classes.- Parameters:
other
- a TilingMap to copy
-
-
Method Details
-
regenerate
protected void regenerate(int startX, int startY, int usedWidth, int usedHeight, double landMod, double heatMod, int stateA, int stateB)- Specified by:
regenerate
in classWorldMapGenerator
-