17 lines
425 B
GDScript
17 lines
425 B
GDScript
extends RefCounted
|
|
## Material-Cache: eine ShaderMaterial pro Farbe, flat shaded.
|
|
|
|
const FLAT_SHADER := preload("res://shaders/flat.gdshader")
|
|
|
|
static var _cache: Dictionary = {}
|
|
|
|
static func flat(color: Color) -> ShaderMaterial:
|
|
var key := color.to_rgba32()
|
|
if _cache.has(key):
|
|
return _cache[key]
|
|
var m := ShaderMaterial.new()
|
|
m.shader = FLAT_SHADER
|
|
m.set_shader_parameter("albedo", color)
|
|
_cache[key] = m
|
|
return m
|