28enum class GoodEntity : uint32_t {
null =
static_cast<uint32_t
>(-1) };
200 using LedgerMap::operator[];
201 using LedgerMap::operator=;
202 using LedgerMap::begin;
203 using LedgerMap::cbegin;
204 using LedgerMap::cend;
205 using LedgerMap::clear;
206 using LedgerMap::contains;
207 using LedgerMap::crbegin;
208 using LedgerMap::crend;
209 using LedgerMap::emplace;
210 using LedgerMap::empty;
211 using LedgerMap::end;
212 using LedgerMap::erase;
213 using LedgerMap::mapped_type;
214 using LedgerMap::rbegin;
215 using LedgerMap::rend;
216 using LedgerMap::size;
217 using LedgerMap::value_comp;
287 using LedgerVector::operator=;
288 using LedgerVector::begin;
289 using LedgerVector::cbegin;
290 using LedgerVector::cend;
291 using LedgerVector::clear;
292 using LedgerVector::crbegin;
293 using LedgerVector::crend;
294 using LedgerVector::emplace;
295 using LedgerVector::empty;
296 using LedgerVector::end;
297 using LedgerVector::erase;
298 using LedgerVector::rbegin;
299 using LedgerVector::rend;
300 using LedgerVector::size;
450ResourceMap
CopyVals(
const ResourceMap& keys,
const ResourceMap& values);
Definition: resourceledger.h:303
ResourceLedger operator*(const ResourceMap &) const
bool operator<(const ResourceLedger &)
All resources in this ledger are smaller than than the other ledger
Definition: resourceledger.cpp:595
void operator/=(const ResourceLedger &)
Definition: resourceledger.cpp:476
void AssignFrom(const ResourceLedger &)
Definition: resourceledger.cpp:689
double GetSum()
Definition: resourceledger.cpp:810
ResourceLedger operator+(const ResourceMap &) const
double operator[](const GoodEntity value) const
Definition: resourceledger.cpp:506
bool operator>(const ResourceLedger &)
All resources in this ledger are greater than the other ledger
Definition: resourceledger.cpp:602
void AddPositive(const ResourceLedger &)
ResourceLedger operator*(const ResourceLedger &) const
Definition: resourceledger.cpp:526
auto end()
Definition: resourceledger.h:443
double Min() const
Definition: resourceledger.cpp:789
ResourceLedger Clamp(const double, const double)
Returns a copy of the vector with the values clamped between the min and max indicated
Definition: resourceledger.cpp:731
auto begin()
Definition: resourceledger.h:441
void operator*=(const ResourceLedger &)
Definition: resourceledger.cpp:470
bool operator>=(const ResourceLedger &)
All resources in this ledger are greater than or equal to the other ledger
Definition: resourceledger.cpp:616
void AddNegative(const ResourceLedger &)
Definition: resourceledger.cpp:720
double Max() const
Definition: resourceledger.cpp:799
double MultiplyAndGetSum(const ResourceMap &other) const
Definition: resourceledger.cpp:818
bool EnoughToTransfer(const ResourceLedger &amount)
This resource ledger has enough resources inside to transfer "amount" amount of resources away
ResourceLedger operator/(const ResourceLedger &) const
Definition: resourceledger.cpp:534
void TransferTo(ResourceLedger &ledger_to, const ResourceLedger &amount)
Definition: resourceledger.cpp:695
bool operator!=(const double &)
Definition: resourceledger.cpp:668
ResourceLedger operator/(const ResourceMap &) const
double Average() const
Returns a copy of the vector divided by the indicated vector, with division by zero resulting in infi...
Definition: resourceledger.cpp:781
std::vector< double > ledger
Definition: resourceledger.h:305
ResourceLedger operator+(const ResourceLedger &) const
Definition: resourceledger.cpp:518
void MultiplyAdd(const ResourceLedger &, double)
Definition: resourceledger.cpp:702
bool operator==(const double &)
Definition: resourceledger.cpp:661
void clear()
Definition: resourceledger.cpp:739
ResourceLedger operator-(const ResourceLedger &) const
Definition: resourceledger.cpp:510
void operator-=(const ResourceLedger &)
Definition: resourceledger.cpp:464
ResourceLedger operator-(const ResourceMap &) const
void operator+=(const ResourceLedger &)
Definition: resourceledger.cpp:458
ResourceLedger(size_t count)
Definition: resourceledger.cpp:445
bool operator<=(const ResourceLedger &)
All resources in this ledger are smaller than or equal to than the other ledger
Definition: resourceledger.cpp:609
size_t size()
Definition: resourceledger.h:445
ResourceLedger SafeDivision(const ResourceLedger &)
Returns a copy of the vector divided by the indicated vector, with division by zero resulting in infi...
Definition: resourceledger.cpp:748
Try to avoid using this unless you really need it since this is extremely slow.
Definition: resourceledger.h:38
bool LedgerEquals(const ResourceMap &)
Definition: resourceledger.cpp:249
void operator-=(const ResourceLedger &)
ResourceMap operator*(const ResourceMap &) const
Definition: resourceledger.cpp:187
ResourceMap operator/(const ResourceMap &) const
Definition: resourceledger.cpp:193
double GetSum()
Definition: resourceledger.cpp:348
void AddPositive(const ResourceMap &)
Definition: resourceledger.cpp:113
bool HasGood(GoodEntity good)
Definition: resourceledger.h:182
std::string to_string()
Definition: resourceledger.cpp:422
ResourceMap SafeDivision(const ResourceMap &)
Returns a copy of the vector divided by the indicated vector, with division by zero resulting in infi...
Definition: resourceledger.cpp:364
void operator/=(const ResourceLedger &)
ResourceMap LimitedRemoveResources(const ResourceMap &)
Same as RemoveResourcesLimited, except that it returns how much resources it took out.
Definition: resourceledger.cpp:304
double MultiplyAndGetSum(ResourceMap &other)
Multiplies the numbers stated in the resource ledger. Used for calculating the price,...
Definition: resourceledger.cpp:356
bool EnoughToTransfer(const ResourceMap &amount)
This resource ledger has enough resources inside to transfer "amount" amount of resources away
Definition: resourceledger.cpp:105
ResourceMap operator-(const ResourceMap &) const
Definition: resourceledger.cpp:181
ResourceMap operator+(const ResourceMap &) const
Definition: resourceledger.cpp:175
bool operator==(const double &)
Definition: resourceledger.cpp:239
ResourceMap UnitLedger(const double)
Returns a copy of the vector with the values set to indicated value
Definition: resourceledger.cpp:319
ResourceMap Clamp(const double, const double)
Returns a copy of the vector with the values clamped between the min and max indicated
Definition: resourceledger.cpp:327
double operator[](const GoodEntity) const
Definition: resourceledger.cpp:96
double Min()
Finds the smallest value in the Ledger.
Definition: resourceledger.cpp:397
void operator*=(const ResourceLedger &)
void AddNegative(const ResourceMap &)
Definition: resourceledger.cpp:120
void operator-=(const ResourceMap &)
Definition: resourceledger.cpp:127
void TransferTo(ResourceMap &, const ResourceMap &)
Definition: resourceledger.cpp:274
double Average()
Returns a copy of the vector divided by the indicated vector, with division by zero resulting in infi...
Definition: resourceledger.cpp:420
void RemoveResourcesLimited(const ResourceMap &)
Removes the resources, and if the amount of resources removed are more than the resources inside the ...
Definition: resourceledger.cpp:294
bool operator<=(const ResourceMap &)
All resources in this ledger are smaller than or equal to than the other ledger
Definition: resourceledger.cpp:261
bool operator<(const ResourceMap &)
All resources in this ledger are smaller than than the other ledger
Definition: resourceledger.cpp:253
void operator+=(const ResourceLedger &)
bool operator>(const ResourceMap &)
All resources in this ledger are greater than the other ledger
Definition: resourceledger.cpp:257
double Max()
Finds the largest value in the Ledger.
Definition: resourceledger.cpp:412
bool HasAllResources(const ResourceMap &)
Checks if this current resource ledger has any resources in this list
Definition: resourceledger.cpp:341
void operator/=(const ResourceMap &)
Definition: resourceledger.cpp:145
void MultiplyAdd(const ResourceMap &, double)
Definition: resourceledger.cpp:281
bool operator>=(const ResourceMap &)
All resources in this ledger are greater than or equal to the other ledger
Definition: resourceledger.cpp:245
void operator+=(const ResourceMap &)
Definition: resourceledger.cpp:133
void AssignFrom(const ResourceMap &)
Definition: resourceledger.cpp:268
void operator*=(const ResourceMap &)
Definition: resourceledger.cpp:139
This is a vector meant for fast iteration
Definition: resourceledger.h:223
double Max()
Definition: resourceledger.cpp:855
double MultiplyAndGetSum(const ResourceLedger &other) const
Multiplies the numbers stated in the resource ledger. Used for calculating the price,...
Definition: resourceledger.cpp:909
void operator+=(const ResourceMap &)
Definition: resourceledger.cpp:1038
ResourceVector operator-(const double value) const
Definition: resourceledger.cpp:953
void Finalize()
Definition: resourceledger.cpp:877
ResourceVector operator/(const double value) const
Definition: resourceledger.cpp:977
void operator*=(const ResourceMap &)
Definition: resourceledger.cpp:1044
double Min()
Definition: resourceledger.cpp:845
double operator[](const GoodEntity &good) const
Definition: resourceledger.cpp:888
bool HasGood(const GoodEntity &good) const
Definition: resourceledger.cpp:884
ResourceVector operator*(const double value) const
Definition: resourceledger.cpp:969
std::pair< GoodEntity, double > LedgerPair
Definition: resourceledger.h:224
GoodEntity MinGood()
Definition: resourceledger.cpp:917
~ResourceVector()=default
void operator-=(const ResourceMap &)
Definition: resourceledger.cpp:1032
double Average()
Returns the average of all values in the ledger, with division by zero resulting in infiniy
Definition: resourceledger.cpp:834
double GetSum()
Definition: resourceledger.cpp:901
bool contains(const GoodEntity &entity) const
Definition: resourceledger.cpp:897
GoodEntity MaxGood()
Definition: resourceledger.cpp:865
void operator/=(const ResourceMap &)
Definition: resourceledger.cpp:1050
std::vector< LedgerPair > LedgerVector
Definition: resourceledger.h:225
ResourceVector operator+(const double value) const
Definition: resourceledger.cpp:961
ResourceMap CopyVals(const ResourceMap &keys, const ResourceMap &values)
Creates a new resource ledger using the keys from one resource ledger, and the values from annother
Definition: resourceledger.cpp:437
std::map< GoodEntity, double > LedgerMap
Definition: resourceledger.h:33
GoodEntity
Definition: resourceledger.h:28
constexpr GoodEntity ToGoodEntity(uint32_t val)
Definition: resourceledger.h:31