first
This commit is contained in:
38
Maps/MapGenerator/ParameterList.gd
Normal file
38
Maps/MapGenerator/ParameterList.gd
Normal file
@@ -0,0 +1,38 @@
|
||||
extends Object
|
||||
class_name ParamterList
|
||||
|
||||
var parameters: Dictionary[String,float] = {}
|
||||
|
||||
func numberOfParameters() -> int:
|
||||
return parameters.size()
|
||||
|
||||
func get_Parameters() -> Dictionary[String,float]:
|
||||
return parameters
|
||||
|
||||
func addParameter(name: String, value: float) -> void:
|
||||
if parameters.has(name):
|
||||
parameters[name] += value
|
||||
else:
|
||||
parameters[name] = value
|
||||
|
||||
func calculateParameterDistance(a:Dictionary[String,float],b:Dictionary[String,float]) -> float:
|
||||
var total: Dictionary[String,float] = a.duplicate()
|
||||
total.merge(b) ##total contains all keys
|
||||
|
||||
var c: Dictionary[String,float] ##c will be used to calculate the distance
|
||||
var lengthC: float = 0 ##Return value
|
||||
|
||||
##For each param in total either subtract or add if only one has param
|
||||
for param in total:
|
||||
if b.has(param) and a.has(param):
|
||||
c[param] = a[param] - b[param]
|
||||
else:
|
||||
c[param] = total[param]
|
||||
|
||||
##Add together all values
|
||||
for param in c:
|
||||
lengthC += pow(c[param],2)
|
||||
## Squareroot to get length of n-Dimensional Vector made up of all entries of c (a - b = c)
|
||||
lengthC = sqrt(lengthC)
|
||||
|
||||
return lengthC
|
||||
Reference in New Issue
Block a user