v1.3.0
WARNING: This breaks backwards compatibility! See below.
- Rewrote RNG to use the outstanding Troschuetz.Random library.
- Any code using the
Next(...)
function of a random number generator needs to have 1 added to the maximum bound. The maxValue bound is now exclusive, eg, the value specified is no longer included in the range of the return values. - Random number generator classes taken in or used by GoRogue functions are now
Troscheutz.Random.IGenerator
instances. - Any code creating a custom RNG or setting one to
SingletonRandom.DefaultRNG
will need to be modified to create the equivalent instance from theTroschuetz.Random.Generators
namespace. - Any custom class implementing the old
GoRogue.Random.IRandom
interface should be modified to implementTroscheutz.Random.IGenerator
instead. KnownSeriesRandom
has changed functionality in order to support all value types returned byTroscheutz.Random.IGenerator
instancesMaxRandom
andMinRandom
still exist, but now implementTroscheutz.Random.IGenerator
, and as such theirNext(...)
functions now have exclusive max bounds.GaussianRandom
has been replaced byTroschuetz.Random.Distributions.Continuous.NormalDistribution
.- A static function of
GoRogue.DistributionHelpers
has been created that allows creating aNormalDistribution
using the parameters previously taken byGaussianRandom
. - Since
NormalDistribution
returns doubles,GoRogue.Random.DiscreteConverter
has been created, to take a continuous random number distribution, and implement theNext()
function, to return an int by rounding the returned double. NormalDistribution
does not bound its returned values to a particular upper or lower bound (to more closely respect mathematical definitions). Thus, bounding should be accomplished by re-generating any value outside of the specified range.
- A static function of
- Any code using the
- Renamed
Distance
class functions toCalculate(...)
, to avoid over-complicating the naming convention. - Refactored and added to map view system. The changes look extensive but amount mostly to name(space) changes and additions.
- Moved
IMapView
,ISettableMapView
, and all implementations (includingArrayMap
,TranslationMap
andLambdaTranslationMap
) to theGoRogue.MapViews
namespace. TranslationMap
now implementsIMapView
and does not provide "set" functionality.SettableTranslationMap
has been added, and supports this set functionality previously inTranslationMap
.- Similarly,
LambdaTranslationMap
no longer accepts a setter, whileLambdaSettableTranslationMap
has been added to take over this piece. - Added
LambdaMapView
andLambdaSettableMapView
classes.
- Moved
- Removed the GoRogue
List<T>
extension methodToList()
. This was an exact duplicate of the identically named extension method inSystem.Linq
, and the Linq version should be used to replace it. - Modified map generation algorithms to only set each location on their
ISettableMapView
instance once.