diff options
author | Gone2Daly <71726742+Gone2Daly@users.noreply.github.com> | 2023-07-22 21:05:42 +0200 |
---|---|---|
committer | Gone2Daly <71726742+Gone2Daly@users.noreply.github.com> | 2023-07-22 21:05:42 +0200 |
commit | 71b3cd829f80de4c2cd3972d8bfd5ee470a5d180 (patch) | |
tree | b4280fde6eef2ae6987648bc7bf8e00e9011bb7f /game/addons/zylann.hterrain/util/direct_multimesh_instance.gd | |
parent | ce9022d0df74d6c33db3686622be2050d873ab0b (diff) |
init_testtest3d
Diffstat (limited to 'game/addons/zylann.hterrain/util/direct_multimesh_instance.gd')
-rw-r--r-- | game/addons/zylann.hterrain/util/direct_multimesh_instance.gd | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/game/addons/zylann.hterrain/util/direct_multimesh_instance.gd b/game/addons/zylann.hterrain/util/direct_multimesh_instance.gd new file mode 100644 index 0000000..dbb899b --- /dev/null +++ b/game/addons/zylann.hterrain/util/direct_multimesh_instance.gd @@ -0,0 +1,48 @@ +@tool + +# Implementation of MultiMeshInstance which doesn't use the scene tree + +var _multimesh_instance := RID() + + +func _init(): + _multimesh_instance = RenderingServer.instance_create() + + +func _notification(what: int): + if what == NOTIFICATION_PREDELETE: + RenderingServer.free_rid(_multimesh_instance) + + +func set_world(world: World3D): + RenderingServer.instance_set_scenario( + _multimesh_instance, world.get_scenario() if world != null else RID()) + + +func set_visible(visible: bool): + RenderingServer.instance_set_visible(_multimesh_instance, visible) + + +func set_transform(trans: Transform3D): + RenderingServer.instance_set_transform(_multimesh_instance, trans) + + +func set_multimesh(mm: MultiMesh): + RenderingServer.instance_set_base(_multimesh_instance, mm.get_rid() if mm != null else RID()) + + +func set_material_override(material: Material): + RenderingServer.instance_geometry_set_material_override( \ + _multimesh_instance, material.get_rid() if material != null else RID()) + + +func set_aabb(aabb: AABB): + RenderingServer.instance_set_custom_aabb(_multimesh_instance, aabb) + + +func set_layer_mask(mask: int): + RenderingServer.instance_set_layer_mask(_multimesh_instance, mask) + + +func set_cast_shadow(cast_shadow: int): + RenderingServer.instance_geometry_set_cast_shadows_setting(_multimesh_instance, cast_shadow) |