lab-electrolyte/src/resources/substance.gd
2026-01-19 04:14:30 +05:00

46 lines
1.1 KiB
GDScript

extends Resource
class_name Substance
@export var formula: StringName
@export var scientific_name: StringName
@export var melting_point: float
@export var boiling_point: float
@export var liquid_transparency: float = 0.5
@export var pH: float = 7.0
@export var pHIonicOverrides: Dictionary[Substance,float]
@export var color: Color
@export var pHColor: Gradient
@export var prefer_scientific_name: bool
@export var is_solution: bool
func get_formula() -> StringName:
return scientific_name if prefer_scientific_name else formula
func get_ph(context: Array[Substance]):
var overriden_value: float = 0
var overrides: int = 0
for sub in context:
if pHIonicOverrides.has(sub):
overriden_value += pHIonicOverrides[sub]
overrides += 1
if overrides > 0:
return overriden_value / overrides
else:
return pH
func get_ph_runtime(context: Array[RuntimeSubstanceData]):
var overriden_value: float = 0
var overrides: int = 0
for sub in context:
if pHIonicOverrides.has(sub.substance):
overriden_value += pHIonicOverrides[sub.substance]
overrides += 1
if overrides > 0:
return overriden_value / overrides
else:
return pH