20 lines
608 B
GDScript
20 lines
608 B
GDScript
@tool
|
|
@abstract
|
|
class_name CSGPattern
|
|
extends Resource
|
|
|
|
## Base pattern interface. Subclasses implement _generate(RepeaterContext) returning Array[Vector3].
|
|
|
|
# Common interface call
|
|
func generate(ctx: Dictionary) -> Array:
|
|
# ctx expected keys: repeat: Vector3i, spacing: Vector3, rng: RandomNumberGenerator, step_spacing: Vector3, user: Node (repeater)
|
|
return _generate(ctx)
|
|
|
|
func _generate(_ctx: Dictionary) -> Array:
|
|
return []
|
|
|
|
func get_estimated_count(ctx: Dictionary) -> int:
|
|
# Default: fallback to generating (may be overridden for performance/accuracy)
|
|
var arr = _generate(ctx)
|
|
return arr.size()
|