broken_seals/game/addons/mat_maker_gd/nodes/mm_node.gd

57 lines
1.2 KiB
GDScript3
Raw Normal View History

tool
class_name MMNode
extends Resource
2021-10-04 13:27:29 +02:00
enum SlotTypes {
SLOT_TYPE_NONE = -1,
SLOT_TYPE_IMAGE = 0,
SLOT_TYPE_INT = 1,
SLOT_TYPE_FLOAT = 2,
SLOT_TYPE_VECTOR2 = 3,
SLOT_TYPE_VECTOR3 = 4,
2021-10-04 15:10:38 +02:00
SLOT_TYPE_UNIVERSAL = 5,
2021-10-04 13:27:29 +02:00
}
export(Vector2) var graph_position : Vector2 = Vector2()
func recalculate_image(material, slot_idx : int) -> ImageTexture:
var image : Image = Image.new()
image.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8)
var tex : ImageTexture = ImageTexture.new()
image.lock()
var w : float = image.get_width()
var h : float = image.get_width()
var pseed : float = randf() + randi()
for x in range(image.get_width()):
for y in range(image.get_height()):
var v : Vector2 = Vector2(x / w, y / h)
var col : Color = get_value_for(v, slot_idx, pseed)
image.set_pixel(x, y, col)
image.unlock()
tex.create_from_image(image)
return tex
func get_value_for(uv : Vector2, slot_idx : int, pseed : int) -> Color:
return Color()
func register_methods(mm_graph_node) -> void:
pass
func get_graph_position() -> Vector2:
return graph_position
func set_graph_position(pos : Vector2) -> void:
graph_position = pos
emit_changed()