Files
SpaceBots/Maps/MapGenerator/ParameterList.gd

39 lines
1.1 KiB
GDScript3
Raw Permalink Normal View History

2026-01-21 23:40:20 +01:00
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