| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- from pydrk import SceneNodeType, PropertyType, vertex, face
- from .api import *
- def clear_layer(layer_name):
- layer_id = api.lookup_node_id(f"/window/{layer_name}")
- if layer_id is None:
- return
- unlink_node(layer_id, "/window")
- for (_, child_id, child_type) in api.get_children(layer_id):
- api.unlink_node(child_id, layer_id)
- if child_type == SceneNodeType.RENDER_OBJECT:
- remove_node_recursive(child_id)
- api.remove_node(layer_id)
- def add_layer(layer_name):
- layer_id = api.add_node(layer_name, SceneNodeType.RENDER_LAYER)
- add_property_u32(layer_id, "rect_x")
- add_property_u32(layer_id, "rect_y")
- add_property_u32(layer_id, "rect_w")
- add_property_u32(layer_id, "rect_h")
- add_property_bool(layer_id, "is_visible", True)
- link_node(layer_id, "/window")
- return layer_id
- def add_object(layer_id, obj_name):
- layer_id = lookup_node(layer_id)
- obj_id = api.add_node(obj_name, SceneNodeType.RENDER_OBJECT)
- add_property_f32(obj_id, "x")
- add_property_f32(obj_id, "y")
- add_property_f32(obj_id, "scale_x", 1.0)
- add_property_f32(obj_id, "scale_y", 1.0)
- add_property_bool(obj_id, "is_visible", True)
- link_node(obj_id, layer_id)
- return obj_id
- class Layer:
- def __init__(self, name):
- self.name = name
- clear_layer(name)
- self.id = add_layer(name)
- def resize(self, w, h):
- set_property_u32(self.id, "rect_w", w)
- set_property_u32(self.id, "rect_h", h)
- def add_obj(self, name):
- return add_object(self.id, name)
|