Package squidpony.squidgrid.mapping
Class WorldMapGenerator.MimicMap
java.lang.Object
squidpony.squidgrid.mapping.WorldMapGenerator
squidpony.squidgrid.mapping.WorldMapGenerator.EllipticalMap
squidpony.squidgrid.mapping.WorldMapGenerator.MimicMap
- All Implemented Interfaces:
Serializable
- Enclosing class:
- WorldMapGenerator
public static class WorldMapGenerator.MimicMap extends WorldMapGenerator.EllipticalMap
An unusual map generator that imitates an existing map (such as a map of Earth, which it can do by default). It
uses the Mollweide projection (an elliptical map projection, the same as what EllipticalMap uses) for both its
input and output; an example can be seen here,
imitating Earth using a 512x256 world map as a GreasedRegion for input.
- 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 GreasedRegion
coast
GreasedRegion
earth
GreasedRegion
earthOriginal
GreasedRegion
shallow
Fields inherited from class squidpony.squidgrid.mapping.WorldMapGenerator.EllipticalMap
edges, heat, heatFreq, maxHeat0, maxHeat1, maxWet0, minHeat0, minHeat1, minWet0, moisture, moistureFreq, otherFreq, otherRidged, terrain, terrainFreq, terrainLayered, terrainRidgedFreq, xPositions, yPositions, zPositions
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 MimicMap()
Constructs a concrete WorldMapGenerator for a map that should look like Earth using an elliptical projection (specifically, a Mollweide projection).MimicMap(long initialSeed, GreasedRegion toMimic)
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection).MimicMap(long initialSeed, GreasedRegion toMimic, double octaveMultiplier)
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection).MimicMap(long initialSeed, GreasedRegion toMimic, Noise.Noise3D noiseGenerator)
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection).MimicMap(long initialSeed, GreasedRegion toMimic, Noise.Noise3D noiseGenerator, double octaveMultiplier)
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection).MimicMap(long initialSeed, Noise.Noise3D noiseGenerator, double octaveMultiplier)
Constructs a 512x256 elliptical world map that will use land forms with a similar shape to Earth.MimicMap(WorldMapGenerator.MimicMap other)
Copies the MimicMapother
to construct a new one that is exactly the same.MimicMap(GreasedRegion toMimic)
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection). -
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)
static GreasedRegion
reprojectToElliptical(GreasedRegion rectangular)
Meant for making maps conform to the Mollweide (elliptical) projection that MimicMap uses.int
wrapX(int x, int y)
int
wrapY(int x, int y)
Methods inherited from class squidpony.squidgrid.mapping.WorldMapGenerator
codeHeight, decodeX, decodeY, generate, generate, generate, getCenterLongitude, project, removeExcess, setCenterLongitude, zoomIn, zoomIn, zoomOut, zoomOut
-
Field Details
-
Constructor Details
-
MimicMap
public MimicMap()Constructs a concrete WorldMapGenerator for a map that should look like Earth using an elliptical projection (specifically, a Mollweide projection). Always makes a 512x256 map. Uses FastNoise as its noise generator, with 1.0 as the octave multiplier affecting detail. If you were usingMimicMap(long, Noise3D, double)
, then this would be the same as passing the parameters0x1337BABE1337D00DL, DEFAULT_NOISE, 1.0
. -
MimicMap
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection). 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. Uses FastNoise as its noise generator, with 1.0 as the octave multiplier affecting detail.- Parameters:
toMimic
- the world map to imitate, as a GreasedRegion with land as "on"; the height and width will be copied
-
MimicMap
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection). Takes an initial seed and the GreasedRegion containing land positions. 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. 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 generatetoMimic
- the world map to imitate, as a GreasedRegion with land as "on"; the height and width will be copied
-
MimicMap
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection). Takes an initial seed, the GreasedRegion containing land positions, and a multiplier that affects the level of detail by increasing or decreasing the number of octaves of noise used. 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. Uses FastNoise as its noise generator, with the given octave multiplier affecting detail.- Parameters:
initialSeed
- the seed for the GWTRNG this uses; this may also be set per-call to generatetoMimic
- the world map to imitate, as a GreasedRegion with land as "on"; the height and width will be copiedoctaveMultiplier
- used to adjust the level of detail, with 0.5 at the bare-minimum detail and 1.0 normal
-
MimicMap
Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection). Takes an initial seed, the GreasedRegion containing land positions, and parameters for noise generation (aNoise.Noise3D
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. Both FastNoise and FastNoise make sense to use fornoiseGenerator
, and the seed it's constructed with doesn't matter because this will change the seed several times at different scales of noise (it's fine to use the staticFastNoise.instance
orFastNoise.instance
because they have no changing state between runs of the program). Uses the given 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 generatetoMimic
- the world map to imitate, as a GreasedRegion with land as "on"; the height and width will be copiednoiseGenerator
- an instance of a noise generator capable of 3D noise, usuallyFastNoise
orFastNoise
-
MimicMap
public MimicMap(long initialSeed, GreasedRegion toMimic, Noise.Noise3D noiseGenerator, double octaveMultiplier)Constructs a concrete WorldMapGenerator for a map that should have land in roughly the same places as the given GreasedRegion's "on" cells, using an elliptical projection (specifically, a Mollweide projection). Takes an initial seed, the GreasedRegion containing land positions, parameters for noise generation (aNoise.Noise3D
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. FastNoise will be the fastest 3D generator to use fornoiseGenerator
, and the seed it's constructed with doesn't matter because this will change the seed several times at different scales of noise (it's fine to use the staticFastNoise.instance
because it has no changing state between runs of the program). 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 generatetoMimic
- the world map to imitate, as a GreasedRegion with land as "on"; the height and width will be copiednoiseGenerator
- an instance of a noise generator capable of 3D noise, usuallyFastNoise
orFastNoise
octaveMultiplier
- used to adjust the level of detail, with 0.5 at the bare-minimum detail and 1.0 normal
-
MimicMap
Constructs a 512x256 elliptical world map that will use land forms with a similar shape to Earth.- Parameters:
initialSeed
-noiseGenerator
-octaveMultiplier
-
-
MimicMap
Copies the MimicMapother
to construct a new one that is exactly the same. References will only be shared to Noise classes.- Parameters:
other
- a MimicMap to copy
-
-
Method Details
-
reprojectToElliptical
Meant for making maps conform to the Mollweide (elliptical) projection that MimicMap uses.- Parameters:
rectangular
- A GreasedRegion where "on" represents land and "off" water, using any rectangular projection- Returns:
- a reprojected version of
rectangular
that uses an elliptical projection
-
wrapX
- Overrides:
wrapX
in classWorldMapGenerator.EllipticalMap
-
wrapY
- Overrides:
wrapY
in classWorldMapGenerator.EllipticalMap
-
regenerate
protected void regenerate(int startX, int startY, int usedWidth, int usedHeight, double landMod, double heatMod, int stateA, int stateB)- Overrides:
regenerate
in classWorldMapGenerator.EllipticalMap
-