2D multiplayer platformer using Godot Engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

21 lines
512 B

class_name Registry
var DEFAULT : Variant
var BY_ID : Array
var BY_NAME : Dictionary[String, Variant]
func add(name: String, obj: Variant) -> Variant:
obj.id = BY_ID.size()
obj.name = name
if BY_ID.is_empty(): DEFAULT = obj
BY_ID.append(obj)
BY_NAME[obj.name] = obj
return obj
func lookup_by_id(id: int) -> Variant:
return BY_ID[id] if (id >= 0) and (id < BY_ID.size()) else DEFAULT
func lookup_by_name(name: String) -> Variant:
var found = BY_NAME.get(name)
return found if found else DEFAULT