├── gdextension ├── .gdignore ├── build_mac.sh ├── build_android.sh ├── src │ ├── register_types.h │ ├── color_brushes │ │ ├── mpaint_16.h │ │ ├── mpaint_256.h │ │ ├── mpaint_color.h │ │ ├── mbitwise_brush.h │ │ ├── mchannel_painter.h │ │ └── mpaint_256.cpp │ ├── mcollision.cpp │ ├── height_brushes │ │ ├── mhole.h │ │ ├── msmooth.h │ │ ├── mremove_layer.h │ │ ├── mraise.h │ │ └── mtoheight.h │ ├── mcollision.h │ ├── mchunk_generator.h │ ├── hlod │ │ └── mdecal_instance.h │ ├── navmesh │ │ ├── mobstacle.h │ │ └── mnavigation_mesh_data.h │ ├── mcolor_brush.h │ └── octmesh │ │ └── mmesh_lod.h ├── build_linux.sh ├── build_windows.sh └── .vscode │ └── c_cpp_properties.json ├── gui ├── mtools.gd.uid ├── Save config.gd.uid ├── brush_decal.gd.uid ├── brush_layers.gd.uid ├── human_male.gd.uid ├── import_window.gd.uid ├── mask_decal.gd.uid ├── mtools_layers.gd.uid ├── mtools_masks.gd.uid ├── paint_panel.gd ├── paint_panel.gd.uid ├── terrain_info.gd.uid ├── import Godot res.gd.uid ├── mtools_brush_item.gd.uid ├── mtools_brush_size.gd.uid ├── mtools_brushes.gd.uid ├── mtools_layer_item.gd.uid ├── mtools_mask_list.gd.uid ├── mtools_options.gd.uid ├── mtools_status_bar.gd.uid ├── parse_mmeshlod.gd.uid ├── shortcuts_panel.gd.uid ├── channel_brush_control.gd.uid ├── image_creator_window.gd.uid ├── mtools_color_brush_item.gd.uid ├── mtools_slider_value.gd.uid ├── color_layer_creator_window.gd.uid ├── control_prop_element │ ├── bool.gd.uid │ ├── float.gd.uid │ ├── int.gd.uid │ ├── float_range.gd.uid │ ├── int_enum.gd.uid │ ├── bool.gd │ ├── int.gd │ ├── int.tscn │ ├── int_enum.tscn │ ├── float.gd │ ├── int_enum.gd │ └── float.tscn ├── mtools_create_color_brush.gd.uid ├── mtools_edit_mode_selector.gd.uid ├── mtools_layer_warning_popup.gd.uid ├── mtools_keyboard_shortcut_item.gd.uid ├── mtools_popup_remove_color_layer.gd.uid ├── human_male.gd ├── styles │ ├── sider_highlight_stylebox.tres │ ├── popup_panel_stylebox.tres │ ├── sider_back_stylebox.tres │ ├── button_stylebox_icon_only.tres │ ├── stylebox_selected.tres │ ├── sider_front_stylebox.tres │ ├── button_stylebox.tres │ ├── button_stylebox_icon_only_hover.tres │ └── terrain_info_label_stylebox.tres ├── mtools_color_brush_item.tscn ├── mtools_options.gd ├── mtools_layer_warning_popup.gd ├── brush_decal.gd ├── gui_part │ ├── data_compress_option.tscn │ └── file_compress.tscn ├── mtools_color_brush_item.gd ├── brush_layers.tscn ├── tsnap.tscn ├── shortcuts_panel.gd ├── brush_layers.gd ├── mtools_mask_list.tscn ├── brush_decal.tscn ├── mask_decal.tscn ├── mtools_brush_size.gd ├── mtools_slider_value.gd ├── mtools_keyboard_shortcut_item.tscn ├── mtools_popup_remove_color_layer.gd ├── shortcuts_panel.tscn ├── human_male.obj.import ├── mtools_status_bar.gd ├── color_layer_creator_window.tscn ├── layers_title.tscn └── mtools_keyboard_shortcut_item.gd ├── m_terrain.gd.uid ├── start.gdshader.uid ├── gizmos ├── aabb_gizmo.gd.uid ├── mcurve_mesh_gui.gd.uid ├── moct_mesh_gizmo.gd.uid ├── mpath_gizmo.gd.uid ├── mpath_gizmo_gui.gd.uid ├── masset_mesh_gizmo.gd.uid └── mcurve_mesh_gui.tscn ├── inspector ├── mpath.gd.uid ├── gui │ ├── curve_terrain.gd.uid │ └── mpath_inspector_gui.gd.uid └── mpath.gd ├── mterrain_settings.gd.uid ├── show_region.gdshader.uid ├── asset_manager ├── asset_io.gd.uid ├── asset_io_data.gd.uid ├── asset_placer.gd.uid ├── debug_info.gd.uid ├── hlod_baker.gd.uid ├── popup_button.gd.uid ├── ui │ ├── manage_tags.gd.uid │ ├── sort_popup.gd.uid │ ├── filter_settings.gd.uid │ ├── grouping_popup.gd.uid │ ├── import_window.gd.uid │ ├── manage_glbs.gd.uid │ ├── manage_groups.gd.uid │ ├── manage_paths.gd.uid │ ├── search_component.gd.uid │ ├── tags_editor.gd.uid │ ├── filter_popup_menu.gd.uid │ ├── mesh_join_window.gd.uid │ ├── settings_glb_tree.gd.uid │ ├── asset_library_settings.gd.uid │ ├── import_window_hlod_scene.gd.uid │ ├── select_resources_by_type.gd.uid │ ├── inspector │ │ ├── collection_inspector.gd.uid │ │ ├── hlod_baker_inspector.gd.uid │ │ ├── mhlod_node_inspector.gd.uid │ │ ├── mhlod_scene_inspector.gd.uid │ │ ├── asset_table_inspector.gd.uid │ │ ├── variation_layers │ │ │ ├── layers.gd.uid │ │ │ ├── layer_btn.gd.uid │ │ │ └── variation_layers.tscn │ │ ├── variation_layers_dialog.gd.uid │ │ ├── save_and_replace_with_hlod_button.gd.uid │ │ ├── hlod_baker_inspector_joined_mesh_preview.gd.uid │ │ ├── save_and_replace_with_hlod_button.gd │ │ ├── collection_inspector.tscn │ │ ├── mhlod_node_inspector.tscn │ │ ├── collection_item.tscn │ │ ├── asset_table_inspector.tscn │ │ ├── mhlod_scene_inspector.tscn │ │ └── hlod_baker_guest_inspector.tscn │ ├── sort_button_group.tres │ ├── grouping_button_group.tres │ ├── current_filter_settings.res │ ├── settings_glb_tree.gd │ ├── sort_popup.gd │ └── grouping_popup.tscn ├── Hlod_Baker_Guest.gd.uid ├── asset_io_baker.gd.uid ├── asset_io_materials.gd.uid ├── asset_placer_add.gd.uid ├── asset_placer_filter.gd.uid ├── asset_placer_place.gd.uid ├── assets_placer_grid.gd.uid ├── collection_editor.gd.uid ├── inspector_plugin.gd.uid ├── m_hlod_previewer.gd.uid ├── materials_list.gd.uid ├── physics_setting.gd.uid ├── settings_button.gd.uid ├── thumbnail_manager.gd.uid ├── collection_type_filter.gd.uid ├── lod_distance_settings.gd.uid ├── mesh_settings_resource.gd.uid ├── asset_placer_action_menu.gd.uid ├── gltf_extras │ ├── gltf_extras_extension.gd.uid │ ├── post_import_extras.gd.uid │ └── post_import_original.gd.uid ├── post_import_update_bakers_and_hlod.gd.uid ├── lod_distance_settings.gd ├── mesh_settings_resource.gd ├── collection_editor.tscn ├── assets_tree.tscn ├── mhlod_previewer.tscn ├── m_hlod_previewer.gd ├── popup_button.gd ├── materials_list.gd ├── collection_editor.gd ├── asset_placer_add.gd ├── settings_button.gd ├── debug_info.gd ├── asset_placer_add.tscn └── post_import_update_bakers_and_hlod.gd ├── shaders └── boundary.gdshader.uid ├── start_opengl.gdshader.uid ├── brush_masks ├── 01.exr.import ├── 02.exr.import ├── 03.exr.import ├── 04.exr.import ├── 05.exr.import ├── 06.png.import ├── 01.exr ├── 02.exr ├── 03.exr ├── 04.exr ├── 05.exr └── 06.png ├── shader_include ├── paint16.gdshaderinc.uid ├── paint256.gdshaderinc.uid ├── paint16.gdshaderinc └── paint256.gdshaderinc ├── icons ├── brush.png ├── show.png ├── hidden.png ├── brush_icon.png ├── handle00.png ├── handle01.png ├── info_icon.png ├── no_images.png ├── tsnap_icon.png ├── foilage_icon.png ├── paint-normal.png ├── save_active.png ├── terrain_icon.png ├── M-terrain_icon.png ├── obstacle_icon.png ├── paint-pressed.png ├── save_deactive.png ├── info_icon_pressed.png ├── MNavigationRegion3D.png ├── human_button_normal.png ├── human_button_pressed.png ├── tsnap_icon_pressed.png ├── open.svg ├── packed_scene.svg ├── show.png.import ├── brush.png.import ├── hidden.png.import ├── info_icon.png.import ├── no_images.png.import ├── brush_icon.png.import ├── tsnap_icon.png.import ├── foilage_icon.png.import ├── paint-normal.png.import ├── save_active.png.import ├── terrain_icon.png.import ├── obstacle_icon.png.import ├── paint-pressed.png.import ├── save_deactive.png.import ├── M-terrain_icon.png.import ├── info_icon_pressed.png.import ├── tsnap_icon_pressed.png.import ├── MNavigationRegion3D.png.import ├── human_button_normal.png.import ├── human_button_pressed.png.import ├── handle00.png.import ├── handle01.png.import ├── hlod.svg.import ├── open.svg.import ├── MPath.svg.import ├── human.svg.import ├── trash.svg.import ├── MCurve.svg.import ├── hbaker.svg.import ├── mdecal.svg.import ├── MOctree.svg.import ├── blender.svg.import ├── MMeshLod.svg.import ├── MOctMesh.svg.import ├── eye_icon.svg.import ├── save_icon.svg.import ├── sort_icon.svg.import ├── tag_icon.svg.import ├── tick_icon.svg.import ├── walk_icon.svg.import ├── MCurveMesh.svg.import ├── depth_test.svg.import ├── hlod_scene.svg.import ├── scale_icon.svg.import ├── eye.svg.import ├── filter_icon.svg.import ├── hlod_node3d.svg.import ├── lock.svg.import ├── object_icon.svg.import ├── rotate_icon.svg.import ├── search_icon.svg.import ├── MIntersection.svg.import ├── hbaker_guest.svg.import ├── hmasset_mesh.svg.import ├── packed_scene.svg.import ├── paint.svg.import ├── physics_icon.svg.import ├── MCurveInstance.svg.import ├── grouping_icon.svg.import ├── slider_grabber.svg.import ├── snap_grid_icon.svg.import ├── collapse_normal.svg.import ├── eye_hidden_icon.svg.import ├── eye_off.svg.import ├── mdecal_instance.svg.import ├── collapse_pressed.svg.import ├── edit_icon.svg.import ├── raise_brush_icon.svg.import ├── rotation.svg.import ├── eye-close.svg.import ├── icon_close.svg.import ├── save_icon_disable.svg.import ├── eraser_icon.svg.import ├── invert_icon.svg.import ├── magnet_icon.svg.import ├── mirror_icon.svg.import ├── reverse_brush_icon.svg.import ├── scale_disabled_icon.svg.import ├── connect_icon.svg.import ├── no_mask_icon.svg.import ├── rotate_disabled_icon.svg.import ├── sculpt_terrain.svg.import ├── settings_icon.svg.import ├── automatic_refresh_icon.svg.import ├── brush_icon_hole.svg.import ├── disconnect_icon.svg.import ├── human_disabled.svg.import ├── merge_down_icon.svg.import ├── brush_icon_raise.svg.import ├── snap_grid_disabled_icon.svg.import ├── brush_icon_smooth.svg.import ├── merge_layers_icon.svg.import ├── more_options_icon.svg.import ├── toggle_connection.svg.import ├── invert_icon_normal.svg.import ├── brush_icon_to_height.svg.import ├── invert_icon_inverted.svg.import ├── slider_grabber_highlight_icon.svg.import └── switch_direction_icon.svg.import ├── start_material.res ├── start_material_opengl.res ├── .gitmodules ├── plugin.cfg ├── .gitignore ├── mterrain_settings.gd ├── .github └── FUNDING.yml ├── start_opengl.gdshader ├── start.gdshader ├── show_region.gdshader └── LICENSE /gdextension/.gdignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gui/mtools.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b4iewrh0vvwof 2 | -------------------------------------------------------------------------------- /m_terrain.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cm3p2xgatawdv 2 | -------------------------------------------------------------------------------- /start.gdshader.uid: -------------------------------------------------------------------------------- 1 | uid://ci1be5t3nv4vs 2 | -------------------------------------------------------------------------------- /gizmos/aabb_gizmo.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c4tskukwwlvc0 2 | -------------------------------------------------------------------------------- /gui/Save config.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dkgbmou7xmtbd 2 | -------------------------------------------------------------------------------- /gui/brush_decal.gd.uid: -------------------------------------------------------------------------------- 1 | uid://da8f3ni8io72l 2 | -------------------------------------------------------------------------------- /gui/brush_layers.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dr04rwb0tovg8 2 | -------------------------------------------------------------------------------- /gui/human_male.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dmyqtylpm7uno 2 | -------------------------------------------------------------------------------- /gui/import_window.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bw6j1vtvkxmnr 2 | -------------------------------------------------------------------------------- /gui/mask_decal.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cnn3ptofof2so 2 | -------------------------------------------------------------------------------- /gui/mtools_layers.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bnyseobe7yjc0 2 | -------------------------------------------------------------------------------- /gui/mtools_masks.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dstl3ub6mrekw 2 | -------------------------------------------------------------------------------- /gui/paint_panel.gd: -------------------------------------------------------------------------------- 1 | extends HBoxContainer 2 | -------------------------------------------------------------------------------- /gui/paint_panel.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cipqkqua7n4ps 2 | -------------------------------------------------------------------------------- /gui/terrain_info.gd.uid: -------------------------------------------------------------------------------- 1 | uid://crkiw41vcgn0n 2 | -------------------------------------------------------------------------------- /inspector/mpath.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bk6i6nfjyb0uc 2 | -------------------------------------------------------------------------------- /mterrain_settings.gd.uid: -------------------------------------------------------------------------------- 1 | uid://rnebcn7x6qkq 2 | -------------------------------------------------------------------------------- /show_region.gdshader.uid: -------------------------------------------------------------------------------- 1 | uid://ptlo0rrpupoj 2 | -------------------------------------------------------------------------------- /asset_manager/asset_io.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bo30edvb0agfg 2 | -------------------------------------------------------------------------------- /gizmos/mcurve_mesh_gui.gd.uid: -------------------------------------------------------------------------------- 1 | uid://creqec55xp0sw 2 | -------------------------------------------------------------------------------- /gizmos/moct_mesh_gizmo.gd.uid: -------------------------------------------------------------------------------- 1 | uid://crf23mqdw0isp 2 | -------------------------------------------------------------------------------- /gizmos/mpath_gizmo.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b0rfcx16e4fo6 2 | -------------------------------------------------------------------------------- /gizmos/mpath_gizmo_gui.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bbaq5maxitm64 2 | -------------------------------------------------------------------------------- /gui/import Godot res.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cju48uql17f23 2 | -------------------------------------------------------------------------------- /gui/mtools_brush_item.gd.uid: -------------------------------------------------------------------------------- 1 | uid://w45vri8rw4xr 2 | -------------------------------------------------------------------------------- /gui/mtools_brush_size.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cw8qay6ruv1n1 2 | -------------------------------------------------------------------------------- /gui/mtools_brushes.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cc1dp2kwxqsyt 2 | -------------------------------------------------------------------------------- /gui/mtools_layer_item.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ceytm2gd114yj 2 | -------------------------------------------------------------------------------- /gui/mtools_mask_list.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cockrb2et34ps 2 | -------------------------------------------------------------------------------- /gui/mtools_options.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bv605j738r7xc 2 | -------------------------------------------------------------------------------- /gui/mtools_status_bar.gd.uid: -------------------------------------------------------------------------------- 1 | uid://di71mip2nvecg 2 | -------------------------------------------------------------------------------- /gui/parse_mmeshlod.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cjv72uqf54fav 2 | -------------------------------------------------------------------------------- /gui/shortcuts_panel.gd.uid: -------------------------------------------------------------------------------- 1 | uid://biqou0rvhylom 2 | -------------------------------------------------------------------------------- /shaders/boundary.gdshader.uid: -------------------------------------------------------------------------------- 1 | uid://bft2k2odj0f7g 2 | -------------------------------------------------------------------------------- /start_opengl.gdshader.uid: -------------------------------------------------------------------------------- 1 | uid://bqhj5mwynksjj 2 | -------------------------------------------------------------------------------- /asset_manager/asset_io_data.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cjdiyr238x6so 2 | -------------------------------------------------------------------------------- /asset_manager/asset_placer.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bggv7u4sgk8kq 2 | -------------------------------------------------------------------------------- /asset_manager/debug_info.gd.uid: -------------------------------------------------------------------------------- 1 | uid://kwosnhrayoxm 2 | -------------------------------------------------------------------------------- /asset_manager/hlod_baker.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c7psgcj7gw01w 2 | -------------------------------------------------------------------------------- /asset_manager/popup_button.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ijmcdn1dc7kf 2 | -------------------------------------------------------------------------------- /asset_manager/ui/manage_tags.gd.uid: -------------------------------------------------------------------------------- 1 | uid://y5h12c1uapm4 2 | -------------------------------------------------------------------------------- /asset_manager/ui/sort_popup.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b7ugscyioll5h 2 | -------------------------------------------------------------------------------- /gizmos/masset_mesh_gizmo.gd.uid: -------------------------------------------------------------------------------- 1 | uid://2erqhy3t0rql 2 | -------------------------------------------------------------------------------- /gui/channel_brush_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c8evnnsf40p45 2 | -------------------------------------------------------------------------------- /gui/image_creator_window.gd.uid: -------------------------------------------------------------------------------- 1 | uid://clt7nkmhx1da4 2 | -------------------------------------------------------------------------------- /gui/mtools_color_brush_item.gd.uid: -------------------------------------------------------------------------------- 1 | uid://r6vskcsgcv6x 2 | -------------------------------------------------------------------------------- /gui/mtools_slider_value.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dq0ru2u30qba7 2 | -------------------------------------------------------------------------------- /inspector/gui/curve_terrain.gd.uid: -------------------------------------------------------------------------------- 1 | uid://kobtpcesvvg0 2 | -------------------------------------------------------------------------------- /asset_manager/Hlod_Baker_Guest.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dwpfuoghn01on 2 | -------------------------------------------------------------------------------- /asset_manager/asset_io_baker.gd.uid: -------------------------------------------------------------------------------- 1 | uid://df5wsfg3iakxm 2 | -------------------------------------------------------------------------------- /asset_manager/asset_io_materials.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ce5q8f4br7do1 2 | -------------------------------------------------------------------------------- /asset_manager/asset_placer_add.gd.uid: -------------------------------------------------------------------------------- 1 | uid://btow8vgtqkq5f 2 | -------------------------------------------------------------------------------- /asset_manager/asset_placer_filter.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ma2dx0qeblo 2 | -------------------------------------------------------------------------------- /asset_manager/asset_placer_place.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dbhoptkfcvvuh 2 | -------------------------------------------------------------------------------- /asset_manager/assets_placer_grid.gd.uid: -------------------------------------------------------------------------------- 1 | uid://xheye4c45cw5 2 | -------------------------------------------------------------------------------- /asset_manager/collection_editor.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cvfyumpnvcjyx 2 | -------------------------------------------------------------------------------- /asset_manager/inspector_plugin.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bb0gb35qqwerm 2 | -------------------------------------------------------------------------------- /asset_manager/m_hlod_previewer.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dokyhrxmdc7a1 2 | -------------------------------------------------------------------------------- /asset_manager/materials_list.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bb52bbtg5x7gi 2 | -------------------------------------------------------------------------------- /asset_manager/physics_setting.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b8v7amn4qa04m 2 | -------------------------------------------------------------------------------- /asset_manager/settings_button.gd.uid: -------------------------------------------------------------------------------- 1 | uid://1sx5e6wxrehk 2 | -------------------------------------------------------------------------------- /asset_manager/thumbnail_manager.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cdexqj8do0ptt 2 | -------------------------------------------------------------------------------- /asset_manager/ui/filter_settings.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bcx4pcyow0mus 2 | -------------------------------------------------------------------------------- /asset_manager/ui/grouping_popup.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ddihj5eo8c31f 2 | -------------------------------------------------------------------------------- /asset_manager/ui/import_window.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ckwhvejt8epcd 2 | -------------------------------------------------------------------------------- /asset_manager/ui/manage_glbs.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dnro4amnxhg0n 2 | -------------------------------------------------------------------------------- /asset_manager/ui/manage_groups.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b1hrna04ilvss 2 | -------------------------------------------------------------------------------- /asset_manager/ui/manage_paths.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c0mu27qbusgd3 2 | -------------------------------------------------------------------------------- /asset_manager/ui/search_component.gd.uid: -------------------------------------------------------------------------------- 1 | uid://7f80hufdgyen 2 | -------------------------------------------------------------------------------- /asset_manager/ui/tags_editor.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dh3hdnbfhb6oy 2 | -------------------------------------------------------------------------------- /brush_masks/01.exr.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="keep" 4 | -------------------------------------------------------------------------------- /brush_masks/02.exr.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="keep" 4 | -------------------------------------------------------------------------------- /brush_masks/03.exr.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="keep" 4 | -------------------------------------------------------------------------------- /brush_masks/04.exr.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="keep" 4 | -------------------------------------------------------------------------------- /brush_masks/05.exr.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="keep" 4 | -------------------------------------------------------------------------------- /brush_masks/06.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="keep" 4 | -------------------------------------------------------------------------------- /gui/color_layer_creator_window.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ddhqtgl8r18bn 2 | -------------------------------------------------------------------------------- /gui/control_prop_element/bool.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dcx1m4f33qb0h 2 | -------------------------------------------------------------------------------- /gui/control_prop_element/float.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dpmgueho33boa 2 | -------------------------------------------------------------------------------- /gui/control_prop_element/int.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bqaba4uhxn2on 2 | -------------------------------------------------------------------------------- /gui/mtools_create_color_brush.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cfuk1e6g0w1ei 2 | -------------------------------------------------------------------------------- /gui/mtools_edit_mode_selector.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dsm3hvb5jjr1g 2 | -------------------------------------------------------------------------------- /gui/mtools_layer_warning_popup.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bmn8ifr8wn6c6 2 | -------------------------------------------------------------------------------- /shader_include/paint16.gdshaderinc.uid: -------------------------------------------------------------------------------- 1 | uid://bo7n2rs4skalr 2 | -------------------------------------------------------------------------------- /shader_include/paint256.gdshaderinc.uid: -------------------------------------------------------------------------------- 1 | uid://cnntu0ipxwa25 2 | -------------------------------------------------------------------------------- /asset_manager/collection_type_filter.gd.uid: -------------------------------------------------------------------------------- 1 | uid://kck7njj1v1ho 2 | -------------------------------------------------------------------------------- /asset_manager/lod_distance_settings.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b4k6aq4n5udy0 2 | -------------------------------------------------------------------------------- /asset_manager/mesh_settings_resource.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bpfd2iupjj20r 2 | -------------------------------------------------------------------------------- /asset_manager/ui/filter_popup_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cfbfyfhbegur3 2 | -------------------------------------------------------------------------------- /asset_manager/ui/mesh_join_window.gd.uid: -------------------------------------------------------------------------------- 1 | uid://db0ikpqkgut5p 2 | -------------------------------------------------------------------------------- /asset_manager/ui/settings_glb_tree.gd.uid: -------------------------------------------------------------------------------- 1 | uid://x0seisljfdew 2 | -------------------------------------------------------------------------------- /gui/control_prop_element/float_range.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bydbws2pntq3l 2 | -------------------------------------------------------------------------------- /gui/control_prop_element/int_enum.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dgqv4r30v6k6i 2 | -------------------------------------------------------------------------------- /gui/mtools_keyboard_shortcut_item.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cqkuc8gumbxpa 2 | -------------------------------------------------------------------------------- /gui/mtools_popup_remove_color_layer.gd.uid: -------------------------------------------------------------------------------- 1 | uid://iv7un1lfbv4s 2 | -------------------------------------------------------------------------------- /inspector/gui/mpath_inspector_gui.gd.uid: -------------------------------------------------------------------------------- 1 | uid://d1aye7volh22v 2 | -------------------------------------------------------------------------------- /asset_manager/asset_placer_action_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://d0f5p6pw243kx 2 | -------------------------------------------------------------------------------- /asset_manager/ui/asset_library_settings.gd.uid: -------------------------------------------------------------------------------- 1 | uid://xlnhtmnxknfm 2 | -------------------------------------------------------------------------------- /asset_manager/ui/import_window_hlod_scene.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dgkng6rjwwm3x 2 | -------------------------------------------------------------------------------- /asset_manager/ui/select_resources_by_type.gd.uid: -------------------------------------------------------------------------------- 1 | uid://6flhate7jscx 2 | -------------------------------------------------------------------------------- /asset_manager/gltf_extras/gltf_extras_extension.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b17w58jnqrhar 2 | -------------------------------------------------------------------------------- /asset_manager/gltf_extras/post_import_extras.gd.uid: -------------------------------------------------------------------------------- 1 | uid://crh7mguc8p8rk 2 | -------------------------------------------------------------------------------- /asset_manager/gltf_extras/post_import_original.gd.uid: -------------------------------------------------------------------------------- 1 | uid://7k7xy6kgw61k 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/collection_inspector.gd.uid: -------------------------------------------------------------------------------- 1 | uid://8i0a7ajmifyj 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/hlod_baker_inspector.gd.uid: -------------------------------------------------------------------------------- 1 | uid://6vka5suy1afj 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/mhlod_node_inspector.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ddyxq6oxgdr7u 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/mhlod_scene_inspector.gd.uid: -------------------------------------------------------------------------------- 1 | uid://w7t06tg3cm1a 2 | -------------------------------------------------------------------------------- /asset_manager/post_import_update_bakers_and_hlod.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bg3wxo388ad6p 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/asset_table_inspector.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bgpe1kot22fas 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/variation_layers/layers.gd.uid: -------------------------------------------------------------------------------- 1 | uid://colk7jshoghh0 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/variation_layers_dialog.gd.uid: -------------------------------------------------------------------------------- 1 | uid://desm26t6ldaq2 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/variation_layers/layer_btn.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b5almom0qmo23 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/save_and_replace_with_hlod_button.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dfh6gdwpgs6wc 2 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/hlod_baker_inspector_joined_mesh_preview.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bvkdads07bsr5 2 | -------------------------------------------------------------------------------- /icons/brush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/brush.png -------------------------------------------------------------------------------- /icons/show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/show.png -------------------------------------------------------------------------------- /icons/hidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/hidden.png -------------------------------------------------------------------------------- /brush_masks/01.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/brush_masks/01.exr -------------------------------------------------------------------------------- /brush_masks/02.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/brush_masks/02.exr -------------------------------------------------------------------------------- /brush_masks/03.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/brush_masks/03.exr -------------------------------------------------------------------------------- /brush_masks/04.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/brush_masks/04.exr -------------------------------------------------------------------------------- /brush_masks/05.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/brush_masks/05.exr -------------------------------------------------------------------------------- /brush_masks/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/brush_masks/06.png -------------------------------------------------------------------------------- /icons/brush_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/brush_icon.png -------------------------------------------------------------------------------- /icons/handle00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/handle00.png -------------------------------------------------------------------------------- /icons/handle01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/handle01.png -------------------------------------------------------------------------------- /icons/info_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/info_icon.png -------------------------------------------------------------------------------- /icons/no_images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/no_images.png -------------------------------------------------------------------------------- /icons/tsnap_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/tsnap_icon.png -------------------------------------------------------------------------------- /start_material.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/start_material.res -------------------------------------------------------------------------------- /icons/foilage_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/foilage_icon.png -------------------------------------------------------------------------------- /icons/paint-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/paint-normal.png -------------------------------------------------------------------------------- /icons/save_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/save_active.png -------------------------------------------------------------------------------- /icons/terrain_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/terrain_icon.png -------------------------------------------------------------------------------- /icons/M-terrain_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/M-terrain_icon.png -------------------------------------------------------------------------------- /icons/obstacle_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/obstacle_icon.png -------------------------------------------------------------------------------- /icons/paint-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/paint-pressed.png -------------------------------------------------------------------------------- /icons/save_deactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/save_deactive.png -------------------------------------------------------------------------------- /start_material_opengl.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/start_material_opengl.res -------------------------------------------------------------------------------- /icons/info_icon_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/info_icon_pressed.png -------------------------------------------------------------------------------- /icons/MNavigationRegion3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/MNavigationRegion3D.png -------------------------------------------------------------------------------- /icons/human_button_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/human_button_normal.png -------------------------------------------------------------------------------- /icons/human_button_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/human_button_pressed.png -------------------------------------------------------------------------------- /icons/tsnap_icon_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/icons/tsnap_icon_pressed.png -------------------------------------------------------------------------------- /asset_manager/ui/sort_button_group.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ButtonGroup" format=3 uid="uid://dgsyafll57jff"] 2 | 3 | [resource] 4 | -------------------------------------------------------------------------------- /asset_manager/lod_distance_settings.gd: -------------------------------------------------------------------------------- 1 | class_name Lod_Distance_Settings extends Resource 2 | @export var distances: PackedFloat32Array 3 | -------------------------------------------------------------------------------- /asset_manager/ui/grouping_button_group.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="ButtonGroup" format=3 uid="uid://b8t5kwxlmhy22"] 2 | 3 | [resource] 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "gdextension/godot-cpp"] 2 | path = gdextension/godot-cpp 3 | url = https://github.com/godotengine/godot-cpp.git 4 | -------------------------------------------------------------------------------- /asset_manager/ui/current_filter_settings.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohsenph69/Godot-MTerrain-plugin/HEAD/asset_manager/ui/current_filter_settings.res -------------------------------------------------------------------------------- /gui/human_male.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends MeshInstance3D 3 | 4 | 5 | func _on_visibility_changed(): 6 | if visible: 7 | $anim.play("rotate") 8 | else: 9 | $anim.stop() 10 | -------------------------------------------------------------------------------- /plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="MTerrain" 4 | description="A simple terrain tool for Godot 4.1" 5 | author="Mohsen Zare" 6 | version="0.18.0-alpha" 7 | script="m_terrain.gd" 8 | -------------------------------------------------------------------------------- /gui/styles/sider_highlight_stylebox.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://ppgo6r7jw03e"] 2 | 3 | [resource] 4 | bg_color = Color(0.704788, 0.737992, 0.79912, 1) 5 | -------------------------------------------------------------------------------- /icons/open.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gui/styles/popup_panel_stylebox.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://b1hcaoigsih7c"] 2 | 3 | [resource] 4 | bg_color = Color(0.21, 0.24, 0.29, 1) 5 | corner_radius_top_left = 15 6 | corner_radius_top_right = 15 7 | -------------------------------------------------------------------------------- /gui/styles/sider_back_stylebox.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://cij0yplibynjc"] 2 | 3 | [resource] 4 | bg_color = Color(0.356942, 0.396185, 0.46897, 1) 5 | expand_margin_left = 12.0 6 | expand_margin_right = 12.0 7 | -------------------------------------------------------------------------------- /gdextension/build_mac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | scons platform=macos target=template_release $1 4 | scons platform=macos target=template_debug $1 5 | scons platform=ios target=template_release $1 6 | scons platform=ios target=template_debug $1 7 | -------------------------------------------------------------------------------- /gui/mtools_color_brush_item.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://bviuhw13qam3a"] 2 | 3 | [node name="Control" type="Control"] 4 | layout_mode = 3 5 | anchors_preset = 15 6 | anchor_right = 1.0 7 | anchor_bottom = 1.0 8 | grow_horizontal = 2 9 | grow_vertical = 2 10 | -------------------------------------------------------------------------------- /gui/mtools_options.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Button 3 | 4 | func _ready(): 5 | var panel = get_child(0) 6 | panel.visible = false 7 | panel.position.y = -panel.size.y - 4 8 | 9 | 10 | func _on_panel_container_resized(): 11 | $PanelContainer.position.y = -$PanelContainer.size.y - 2 12 | -------------------------------------------------------------------------------- /icons/packed_scene.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /asset_manager/mesh_settings_resource.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name MeshSettingsResource extends Resource 3 | @export_enum("On", "Off", "Double-Sided", "Shadows only") var shadow_settings: int 4 | @export_enum("Static", "Dynamic", "Off") var global_illumination_mode: int 5 | @export_flags_3d_render var layers 6 | -------------------------------------------------------------------------------- /gui/styles/button_stylebox_icon_only.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://c3g6qjhhpkliw"] 2 | 3 | [resource] 4 | bg_color = Color(0, 0, 0, 0.203922) 5 | corner_radius_top_left = 8 6 | corner_radius_top_right = 8 7 | corner_radius_bottom_right = 8 8 | corner_radius_bottom_left = 8 9 | -------------------------------------------------------------------------------- /gdextension/build_android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | $SHELL -c "env -i scons platform=android target=template_release generate_bindings=yes ANDROID_HOME=/home/bardia/Android/Sdk $1" 4 | $SHELL -c "env -i scons platform=android target=template_debug generate_bindings=yes ANDROID_HOME=/home/bardia/Android/Sdk $1" 5 | -------------------------------------------------------------------------------- /gui/styles/stylebox_selected.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://xtya3snybrwa"] 2 | 3 | [resource] 4 | draw_center = false 5 | border_width_left = 2 6 | border_width_top = 2 7 | border_width_right = 2 8 | border_width_bottom = 2 9 | border_color = Color(0.312375, 0.675219, 0.689798, 1) 10 | -------------------------------------------------------------------------------- /asset_manager/collection_editor.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://dhwm55hy1pmuu"] 2 | 3 | [ext_resource type="Script" uid="uid://cvfyumpnvcjyx" path="res://addons/m_terrain/asset_manager/collection_editor.gd" id="1_aksm0"] 4 | 5 | [node name="Collection_Editor" type="Node3D"] 6 | script = ExtResource("1_aksm0") 7 | -------------------------------------------------------------------------------- /asset_manager/ui/settings_glb_tree.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Tree 3 | 4 | func _can_drop_data(at_position: Vector2, data: Variant): 5 | if "files" in data and data.files[0].containsn(".glb" ): 6 | return true 7 | 8 | func _drop_data(at_position, data): 9 | for file in data.files: 10 | AssetIO.glb_load(file) 11 | -------------------------------------------------------------------------------- /gui/mtools_layer_warning_popup.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Window 3 | signal confirmed 4 | func _ready(): 5 | find_child("confirm_button").pressed.connect(func(): confirmed.emit()) 6 | find_child("confirm_button").pressed.connect(queue_free) 7 | find_child("cancel_button").pressed.connect(queue_free) 8 | close_requested.connect(queue_free) 9 | -------------------------------------------------------------------------------- /gui/brush_decal.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Decal 3 | class_name MBrushDecal 4 | 5 | var radius:float=5.0 6 | 7 | func set_brush_size(input:float): 8 | size.x = input 9 | size.z = input 10 | radius = input/2 11 | 12 | func get_brush_size()->float: 13 | return size.x 14 | 15 | func change_brush_color(input:Color): 16 | modulate = input 17 | -------------------------------------------------------------------------------- /gdextension/src/register_types.h: -------------------------------------------------------------------------------- 1 | #ifndef EXAMPLE_REGISTER_TYPES_H 2 | #define EXAMPLE_REGISTER_TYPES_H 3 | 4 | #include 5 | 6 | using namespace godot; 7 | 8 | void initialize_test_module(ModuleInitializationLevel p_level); 9 | void uninitialize_test_module(ModuleInitializationLevel p_level); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /gdextension/build_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | $SHELL -c "env -i scons platform=linux target=template_release arch=x86_64 $1" 4 | $SHELL -c "env -i scons platform=linux target=template_debug arch=x86_64 $1" 5 | $SHELL -c "env -i scons platform=linux target=template_release arch=x86_32 $1" 6 | $SHELL -c "env -i scons platform=linux target=template_debug arch=x86_32 $1" 7 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/save_and_replace_with_hlod_button.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Button 3 | 4 | func _ready(): 5 | if not owner.baker is HLod_Baker_Guest: 6 | queue_free() 7 | return 8 | visible = not owner.baker == EditorInterface.get_edited_scene_root() and owner.baker.scene_file_path 9 | pressed.connect(owner.baker.replace_baker_with_mhlod_scene) 10 | 11 | -------------------------------------------------------------------------------- /gui/styles/sider_front_stylebox.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://boeh2uxqt0aso"] 2 | 3 | [resource] 4 | bg_color = Color(0.405714, 0.447509, 0.52497, 1) 5 | corner_radius_top_left = 4 6 | corner_radius_top_right = 4 7 | corner_radius_bottom_right = 4 8 | corner_radius_bottom_left = 4 9 | expand_margin_left = 12.0 10 | expand_margin_right = 12.0 11 | -------------------------------------------------------------------------------- /gui/gui_part/data_compress_option.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://c2pjojed3ox4q"] 2 | 3 | [node name="data_compress_option" type="OptionButton"] 4 | item_count = 3 5 | selected = 0 6 | popup/item_0/text = "COMPRESS_NONE" 7 | popup/item_0/id = 0 8 | popup/item_1/text = "COMPRESS_QOI" 9 | popup/item_1/id = 1 10 | popup/item_2/text = "COMPRESS_PNG" 11 | popup/item_2/id = 2 12 | -------------------------------------------------------------------------------- /gui/mtools_color_brush_item.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | var no_image = preload("res://addons/m_terrain/icons/no_images.png") 4 | 5 | var index:int 6 | var uniform:String 7 | var brush_name:String 8 | 9 | #func create(brush_name="", icon=no_image): 10 | #if brush_name.is_empty(): 11 | # brush_name = "layer "+str(index) 12 | #var id = add_item(iname,icon) 13 | #set_item_custom_bg_color(index,i["icon-color"]) 14 | -------------------------------------------------------------------------------- /gui/styles/button_stylebox.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://b6h5l26dxm8gu"] 2 | 3 | [resource] 4 | content_margin_left = 12.0 5 | content_margin_top = 5.0 6 | content_margin_right = 12.0 7 | content_margin_bottom = 5.0 8 | bg_color = Color(0, 0, 0, 0.203922) 9 | corner_radius_top_left = 8 10 | corner_radius_top_right = 8 11 | corner_radius_bottom_right = 8 12 | corner_radius_bottom_left = 8 13 | -------------------------------------------------------------------------------- /gui/brush_layers.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://bacapwqdybi81"] 2 | 3 | [ext_resource type="Script" uid="uid://dr04rwb0tovg8" path="res://addons/m_terrain/gui/brush_layers.gd" id="1_3au4w"] 4 | 5 | [node name="brush_layers" type="ItemList"] 6 | custom_minimum_size = Vector2(300, 250) 7 | anchors_preset = 10 8 | anchor_right = 1.0 9 | grow_horizontal = 2 10 | max_columns = 4 11 | script = ExtResource("1_3au4w") 12 | -------------------------------------------------------------------------------- /gui/styles/button_stylebox_icon_only_hover.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://bwtrldgojexog"] 2 | 3 | [resource] 4 | content_margin_left = 3.0 5 | content_margin_top = 3.0 6 | content_margin_right = 3.0 7 | content_margin_bottom = 3.0 8 | bg_color = Color(0, 0, 0, 0.203922) 9 | corner_radius_top_left = 8 10 | corner_radius_top_right = 8 11 | corner_radius_bottom_right = 8 12 | corner_radius_bottom_left = 8 13 | -------------------------------------------------------------------------------- /gdextension/build_windows.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | $SHELL -c "env -i scons platform=windows target=template_release arch=x86_32 generate_bindings=yes $1" 4 | $SHELL -c "env -i scons platform=windows target=template_debug arch=x86_32 generate_bindings=yes $1" 5 | $SHELL -c "env -i scons platform=windows target=template_release arch=x86_64 generate_bindings=yes $1" 6 | $SHELL -c "env -i scons platform=windows target=template_debug arch=x86_64 generate_bindings=yes $1" 7 | -------------------------------------------------------------------------------- /gdextension/src/color_brushes/mpaint_16.h: -------------------------------------------------------------------------------- 1 | #ifndef MPAINT16 2 | #define MPAINT16 3 | 4 | #include "../mcolor_brush.h" 5 | 6 | 7 | class MPaint16 : public MColorBrush{ 8 | uint8_t paint_layer; 9 | String _get_name(); 10 | void _set_property(String prop_name, Variant value); 11 | bool is_two_point_brush(); 12 | void before_draw(); 13 | void set_color(uint32_t local_x,uint32_t local_y,uint32_t x,uint32_t y,MImage* img); 14 | }; 15 | #endif -------------------------------------------------------------------------------- /gdextension/src/color_brushes/mpaint_256.h: -------------------------------------------------------------------------------- 1 | #ifndef MPAINT256 2 | #define MPAINT256 3 | 4 | #include "../mcolor_brush.h" 5 | 6 | 7 | class MPaint256 : public MColorBrush{ 8 | uint8_t paint_layer; 9 | String _get_name(); 10 | void _set_property(String prop_name, Variant value); 11 | bool is_two_point_brush(); 12 | void before_draw(); 13 | void set_color(uint32_t local_x,uint32_t local_y,uint32_t x,uint32_t y,MImage* img); 14 | }; 15 | #endif -------------------------------------------------------------------------------- /gdextension/src/mcollision.cpp: -------------------------------------------------------------------------------- 1 | #include "mcollision.h" 2 | 3 | 4 | 5 | 6 | 7 | void MCollision::_bind_methods(){ 8 | ClassDB::bind_method(D_METHOD("is_collided"), &MCollision::is_collided); 9 | ClassDB::bind_method(D_METHOD("get_collision_position"), &MCollision::get_collision_position); 10 | } 11 | 12 | bool MCollision::is_collided(){ 13 | return collided; 14 | } 15 | Vector3 MCollision::get_collision_position(){ 16 | return collision_position; 17 | } -------------------------------------------------------------------------------- /asset_manager/ui/inspector/collection_inspector.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cx62jqylamm04"] 2 | 3 | [ext_resource type="Script" uid="uid://8i0a7ajmifyj" path="res://addons/m_terrain/asset_manager/ui/inspector/collection_inspector.gd" id="1_vx466"] 4 | 5 | [node name="Control" type="VBoxContainer"] 6 | anchors_preset = 15 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | grow_horizontal = 2 10 | grow_vertical = 2 11 | script = ExtResource("1_vx466") 12 | -------------------------------------------------------------------------------- /asset_manager/assets_tree.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://b5o4frfy8r423"] 2 | 3 | [ext_resource type="Script" uid="uid://xheye4c45cw5" path="res://addons/m_terrain/asset_manager/assets_placer_grid.gd" id="1_lybir"] 4 | 5 | [node name="assets_tree" type="Tree"] 6 | size_flags_vertical = 3 7 | columns = 4 8 | allow_reselect = true 9 | allow_rmb_select = true 10 | allow_search = false 11 | hide_root = true 12 | select_mode = 2 13 | script = ExtResource("1_lybir") 14 | -------------------------------------------------------------------------------- /gdextension/src/color_brushes/mpaint_color.h: -------------------------------------------------------------------------------- 1 | #ifndef MPAINTCOLOR 2 | #define MPAINTCOLOR 3 | 4 | #include "../mcolor_brush.h" 5 | 6 | 7 | class MPaintColor : public MColorBrush{ 8 | Color color; 9 | float hardness; 10 | String _get_name(); 11 | void _set_property(String prop_name, Variant value); 12 | bool is_two_point_brush(); 13 | void before_draw(); 14 | void set_color(uint32_t local_x,uint32_t local_y,uint32_t x,uint32_t y,MImage* img); 15 | }; 16 | #endif -------------------------------------------------------------------------------- /gdextension/src/height_brushes/mhole.h: -------------------------------------------------------------------------------- 1 | #ifndef MHOLE 2 | #define MHOLE 3 | 4 | #include "../mheight_brush.h" 5 | 6 | class MHole : public MHeightBrush { 7 | public: 8 | bool add=true; 9 | MHole(); 10 | ~MHole(); 11 | String _get_name(); 12 | Array _get_property_list(); 13 | void _set_property(String prop_name, Variant value); 14 | bool is_two_point_brush(); 15 | void before_draw(); 16 | float get_height(uint32_t x,uint32_t y); 17 | }; 18 | #endif -------------------------------------------------------------------------------- /gui/control_prop_element/bool.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends BoxContainer 3 | 4 | signal prop_changed 5 | 6 | var prop_name:String 7 | var value:bool 8 | 9 | 10 | func update_name(input:String): 11 | prop_name = input 12 | $label.text = input 13 | 14 | func set_value(input:bool): 15 | value = input 16 | $Control/CheckButton.button_pressed = input 17 | 18 | 19 | func _on_check_button_toggled(button_pressed): 20 | value = button_pressed 21 | emit_signal("prop_changed",prop_name,value) 22 | -------------------------------------------------------------------------------- /gdextension/src/color_brushes/mbitwise_brush.h: -------------------------------------------------------------------------------- 1 | #ifndef MBITWISEBRUSH 2 | #define MBITWISEBRUSH 3 | 4 | #include "../mcolor_brush.h" 5 | 6 | 7 | class MBitwiseBrush : public MColorBrush{ 8 | bool value=false; 9 | uint32_t bit=0; 10 | String _get_name(); 11 | void _set_property(String prop_name, Variant value); 12 | bool is_two_point_brush(); 13 | void before_draw(); 14 | void set_color(uint32_t local_x,uint32_t local_y,uint32_t x,uint32_t y,MImage* img); 15 | }; 16 | #endif -------------------------------------------------------------------------------- /gui/tsnap.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://bnlxve4lvi4wb"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://dl46tixprq2ro" path="res://addons/m_terrain/icons/tsnap_icon.png" id="1_jxji4"] 4 | [ext_resource type="Texture2D" uid="uid://dow4horhd3x6v" path="res://addons/m_terrain/icons/tsnap_icon_pressed.png" id="2_yyg7b"] 5 | 6 | [node name="tsnap" type="TextureButton"] 7 | offset_right = 40.0 8 | offset_bottom = 40.0 9 | texture_normal = ExtResource("1_jxji4") 10 | texture_pressed = ExtResource("2_yyg7b") 11 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/mhlod_node_inspector.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cl7pw54mmpvlb"] 2 | 3 | [ext_resource type="Script" uid="uid://ddyxq6oxgdr7u" path="res://addons/m_terrain/asset_manager/ui/inspector/mhlod_node_inspector.gd" id="1_nlfb7"] 4 | 5 | [node name="_VBoxContainer_26448" type="VBoxContainer"] 6 | anchors_preset = 15 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | offset_left = 8.0 10 | offset_top = 8.0 11 | offset_right = -8.0 12 | offset_bottom = -8.0 13 | script = ExtResource("1_nlfb7") 14 | -------------------------------------------------------------------------------- /gui/gui_part/file_compress.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://bt4wolcb7b55e"] 2 | 3 | [node name="file_compress" type="OptionButton"] 4 | item_count = 5 5 | selected = 0 6 | popup/item_0/text = "FILE_COMPRESSION_NONE" 7 | popup/item_0/id = 0 8 | popup/item_1/text = "FILE_COMPRESSION_FASTLZ" 9 | popup/item_1/id = 1 10 | popup/item_2/text = "FILE_COMPRESSION_DEFLATE" 11 | popup/item_2/id = 2 12 | popup/item_3/text = "FILE_COMPRESSION_ZSTD" 13 | popup/item_3/id = 3 14 | popup/item_4/text = "FILE_COMPRESSION_GZIP" 15 | popup/item_4/id = 4 16 | -------------------------------------------------------------------------------- /gdextension/src/height_brushes/msmooth.h: -------------------------------------------------------------------------------- 1 | #ifndef MSMOOTH 2 | #define MSMOOTH 3 | 4 | 5 | 6 | #include "../mheight_brush.h" 7 | 8 | class MSmooth : public MHeightBrush { 9 | public: 10 | int mode = 1; 11 | float amount = 0.5; 12 | MSmooth(); 13 | ~MSmooth(); 14 | String _get_name(); 15 | Array _get_property_list(); 16 | void _set_property(String prop_name, Variant value); 17 | bool is_two_point_brush(); 18 | void before_draw(); 19 | float get_height(uint32_t x,uint32_t y); 20 | }; 21 | 22 | 23 | #endif -------------------------------------------------------------------------------- /asset_manager/mhlod_previewer.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://byq2krnjsg1oc"] 2 | 3 | [ext_resource type="Script" uid="uid://dokyhrxmdc7a1" path="res://addons/m_terrain/asset_manager/m_hlod_previewer.gd" id="1_p66ot"] 4 | 5 | [sub_resource type="Resource" id="Resource_ucqhn"] 6 | metadata/__load_path__ = "res://massets/hlod/Test_Baker.res" 7 | 8 | [node name="MHlodScene" type="MHlodScene"] 9 | hlod = SubResource("Resource_ucqhn") 10 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3) 11 | script = ExtResource("1_p66ot") 12 | -------------------------------------------------------------------------------- /gui/styles/terrain_info_label_stylebox.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StyleBoxFlat" format=3 uid="uid://cjys1hccuc4wx"] 2 | 3 | [resource] 4 | content_margin_left = 7.0 5 | content_margin_top = 2.0 6 | content_margin_right = 10.0 7 | bg_color = Color(0.180392, 0.180392, 0.180392, 1) 8 | border_width_left = 1 9 | border_width_top = 1 10 | border_width_right = 1 11 | border_width_bottom = 1 12 | border_color = Color(1, 1, 1, 1) 13 | corner_radius_top_left = 4 14 | corner_radius_top_right = 4 15 | corner_radius_bottom_right = 4 16 | corner_radius_bottom_left = 4 17 | -------------------------------------------------------------------------------- /gdextension/src/height_brushes/mremove_layer.h: -------------------------------------------------------------------------------- 1 | #ifndef MREMOVELAYER 2 | #define MREMOVELAYER 3 | 4 | #include "../mheight_brush.h" 5 | 6 | class MRemoveLayer : public MHeightBrush { 7 | public: 8 | float hardness=0.5; 9 | float amount=0.5; 10 | MRemoveLayer(); 11 | ~MRemoveLayer(); 12 | String _get_name(); 13 | Array _get_property_list(); 14 | void _set_property(String prop_name, Variant value); 15 | bool is_two_point_brush(); 16 | void before_draw(); 17 | float get_height(uint32_t x,uint32_t y); 18 | }; 19 | #endif -------------------------------------------------------------------------------- /asset_manager/m_hlod_previewer.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends MHlodScene 3 | var timer: Timer 4 | var asset_mesh_updater: MAssetMeshUpdater 5 | 6 | func _enter_tree(): 7 | asset_mesh_updater = MAssetMeshUpdater.new() 8 | asset_mesh_updater.set_root_node(self) 9 | timer = Timer.new() 10 | add_child(timer) 11 | timer.timeout.connect(update_lod) 12 | timer.start(1) 13 | for child in get_children(): 14 | if child is Node3D: 15 | child.owner = self 16 | 17 | func update_lod(): 18 | asset_mesh_updater.update_auto_lod() 19 | 20 | func _exit_tree(): 21 | timer.queue_free() 22 | -------------------------------------------------------------------------------- /gdextension/src/mcollision.h: -------------------------------------------------------------------------------- 1 | #ifndef MCOLLISION 2 | #define MCOLLISION 3 | 4 | 5 | #include 6 | #include 7 | 8 | using namespace godot; 9 | 10 | 11 | class MCollision : public RefCounted { 12 | GDCLASS(MCollision,RefCounted); 13 | 14 | protected: 15 | static void _bind_methods(); 16 | public: 17 | bool collided=false; 18 | Vector3 collision_position; 19 | 20 | bool is_collided(); 21 | Vector3 get_collision_position(); 22 | 23 | }; 24 | 25 | 26 | 27 | 28 | 29 | #endif -------------------------------------------------------------------------------- /gui/shortcuts_panel.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Control 3 | 4 | @onready var list:ItemList = find_child("ItemList") 5 | var callbacks := [] 6 | 7 | func setup(button_icons: Array, button_callbacks: Array): 8 | callbacks = button_callbacks 9 | list.clear() 10 | list.item_selected.connect(process_selection) 11 | for icon in button_icons: 12 | list.add_icon_item(icon) 13 | 14 | func process_selection(id): 15 | if len(callbacks) 6 | #include 7 | #include 8 | 9 | using namespace godot; 10 | 11 | class MChunkGenerator : public Object{ 12 | GDCLASS(MChunkGenerator, Object); 13 | 14 | protected: 15 | static void _bind_methods(); 16 | 17 | public: 18 | static Ref generate(real_t size, real_t h_scale, bool el, bool er, bool et, bool eb); 19 | 20 | }; 21 | 22 | 23 | 24 | 25 | #endif -------------------------------------------------------------------------------- /asset_manager/popup_button.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Button 3 | @export var centered := false 4 | 5 | func _ready(): 6 | focus_exited.connect(func(): 7 | check_focus.call_deferred() 8 | ) 9 | 10 | func check_focus(): 11 | var focus = get_viewport().gui_get_focus_owner() 12 | if not focus or not is_ancestor_of(focus): 13 | button_pressed = false 14 | elif is_ancestor_of(focus): 15 | get_tree().create_timer(0.15).timeout.connect(grab_focus) 16 | 17 | func _toggled(toggle_on): 18 | var popup = get_child(0) 19 | popup.visible=toggle_on 20 | popup.position.y = -popup.size.y -10 21 | 22 | -------------------------------------------------------------------------------- /gui/brush_layers.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends ItemList 3 | 4 | 5 | var no_image = preload("res://addons/m_terrain/icons/no_images.png") 6 | 7 | var index:int 8 | var uniform:String 9 | var brush_name:String 10 | 11 | func create_layers(input:Array): 12 | print("sss input ",input) 13 | var index = -1 14 | for i in input: 15 | index +=1 16 | var iname:String= i["name"] 17 | if iname.is_empty(): 18 | iname = "layer "+str(index) 19 | var icon:Texture = i["icon"] 20 | if not icon: 21 | icon = no_image 22 | var id = add_item(iname,icon) 23 | set_item_custom_bg_color(index,i["icon-color"]) 24 | -------------------------------------------------------------------------------- /gui/mtools_mask_list.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://b6wfdaqojnwju"] 2 | 3 | [ext_resource type="Script" uid="uid://cockrb2et34ps" path="res://addons/m_terrain/gui/mtools_mask_list.gd" id="1_sg3sf"] 4 | 5 | [node name="brush_masks" type="ItemList"] 6 | custom_minimum_size = Vector2(0, 160) 7 | anchors_preset = 10 8 | anchor_right = 1.0 9 | offset_bottom = 160.0 10 | grow_horizontal = 2 11 | allow_reselect = true 12 | max_columns = 8 13 | fixed_icon_size = Vector2i(64, 64) 14 | script = ExtResource("1_sg3sf") 15 | 16 | [connection signal="item_selected" from="." to="." method="_on_item_selected"] 17 | -------------------------------------------------------------------------------- /gui/brush_decal.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cgvj582ftey6e"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://b5cmhvvnwshvc" path="res://addons/m_terrain/icons/brush.png" id="1_tnwak"] 4 | [ext_resource type="Script" uid="uid://da8f3ni8io72l" path="res://addons/m_terrain/gui/brush_decal.gd" id="2_ws2n5"] 5 | 6 | [node name="brush_decal" type="Decal"] 7 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 41.7598, 0, 20.5917) 8 | sorting_offset = 1.0 9 | size = Vector3(10, 1000, 10) 10 | texture_albedo = ExtResource("1_tnwak") 11 | modulate = Color(0, 0.435294, 0.027451, 1) 12 | script = ExtResource("2_ws2n5") 13 | -------------------------------------------------------------------------------- /gdextension/src/hlod/mdecal_instance.h: -------------------------------------------------------------------------------- 1 | #ifndef ___MDECALINSTANCE__ 2 | #define ___MDECALINSTANCE__ 3 | 4 | #include "mdecal.h" 5 | #include 6 | 7 | class MDecalInstance : public VisualInstance3D { 8 | GDCLASS(MDecalInstance,VisualInstance3D); 9 | protected: 10 | static void _bind_methods(); 11 | private: 12 | Ref mdecal; 13 | 14 | 15 | public: 16 | bool has_decal() const; 17 | void set_decal(Ref input); 18 | Ref get_decal() const; 19 | 20 | AABB _get_aabb() const; 21 | 22 | void _notification(int32_t what); 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /gdextension/src/height_brushes/mtoheight.h: -------------------------------------------------------------------------------- 1 | #ifndef MTOHEIGHT 2 | #define MTOHEIGHT 3 | 4 | #include "../mheight_brush.h" 5 | 6 | using namespace godot; 7 | 8 | class MToHeight : public MHeightBrush { 9 | public: 10 | float weight=0.4; 11 | float hardness=0.5; 12 | float offset=0.0; 13 | int mode=1; 14 | float start_height; 15 | MToHeight(); 16 | ~MToHeight(); 17 | String _get_name(); 18 | Array _get_property_list(); 19 | void _set_property(String prop_name, Variant value); 20 | bool is_two_point_brush(); 21 | void before_draw(); 22 | float get_height(uint32_t x,uint32_t y); 23 | }; 24 | #endif -------------------------------------------------------------------------------- /gdextension/src/navmesh/mobstacle.h: -------------------------------------------------------------------------------- 1 | #ifndef MOBSTACLE 2 | #define MOBSTACLE 3 | 4 | #include 5 | 6 | 7 | using namespace godot; 8 | 9 | 10 | class MObstacle : public Node3D{ 11 | GDCLASS(MObstacle,Node3D); 12 | 13 | protected: 14 | static void _bind_methods(); 15 | 16 | public: 17 | float width=1.0; 18 | float depth=1.0; 19 | MObstacle(); 20 | ~MObstacle(); 21 | 22 | float get_width(); 23 | void set_width(float input); 24 | float get_depth(); 25 | void set_depth(float input); 26 | bool has_gizmo() const; 27 | AABB get_aabb() const; 28 | }; 29 | #endif -------------------------------------------------------------------------------- /gui/control_prop_element/int.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends BoxContainer 3 | 4 | signal prop_changed 5 | 6 | var prop_name:String 7 | var value:int 8 | var max:float = 1000000000000000000 9 | var min:float = -100000000000000000 10 | 11 | func set_max(input): 12 | $value.max_value = input 13 | 14 | func set_min(input): 15 | $value.min_value = input 16 | 17 | 18 | func update_name(input:String): 19 | prop_name = input 20 | $label.text = input 21 | 22 | func set_value(input:float): 23 | value = input 24 | $value.value = input 25 | 26 | 27 | func _on_value_value_changed(v): 28 | value = int(v) 29 | emit_signal("prop_changed",prop_name,value) 30 | 31 | -------------------------------------------------------------------------------- /gui/mask_decal.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://cu3koya88juu"] 2 | 3 | [ext_resource type="Script" uid="uid://cnn3ptofof2so" path="res://addons/m_terrain/gui/mask_decal.gd" id="1_8ow5o"] 4 | 5 | [sub_resource type="FastNoiseLite" id="FastNoiseLite_ejyee"] 6 | 7 | [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_cuo2h"] 8 | noise = SubResource("FastNoiseLite_ejyee") 9 | 10 | [node name="stencil_decal" type="Decal"] 11 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.87774e-05, 0, 6.1725e-05) 12 | size = Vector3(8, 20000, 8) 13 | texture_albedo = SubResource("NoiseTexture2D_cuo2h") 14 | albedo_mix = 0.8 15 | script = ExtResource("1_8ow5o") 16 | -------------------------------------------------------------------------------- /gui/control_prop_element/int.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://boufyfa4ti3eb"] 2 | 3 | [ext_resource type="Script" uid="uid://bqaba4uhxn2on" path="res://addons/m_terrain/gui/control_prop_element/int.gd" id="1_wuss4"] 4 | 5 | [node name="int" type="VBoxContainer"] 6 | offset_right = 161.0 7 | offset_bottom = 58.0 8 | script = ExtResource("1_wuss4") 9 | 10 | [node name="value" type="SpinBox" parent="."] 11 | layout_mode = 2 12 | mouse_filter = 1 13 | min_value = -100.0 14 | 15 | [node name="label" type="Label" parent="."] 16 | layout_mode = 2 17 | text = "int name " 18 | 19 | [connection signal="value_changed" from="value" to="." method="_on_value_value_changed"] 20 | -------------------------------------------------------------------------------- /mterrain_settings.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Object 3 | class_name MTerrainSettings 4 | 5 | 6 | 7 | static func add_projects_settings()->void: 8 | if not ProjectSettings.has_setting(MHlodNode3D.state_data_get_prop_name()): 9 | ProjectSettings.set(MHlodNode3D.state_data_get_prop_name(),MHlodNode3D.state_data_get_cache_size()) 10 | ProjectSettings.add_property_info({ 11 | "name":MHlodNode3D.state_data_get_prop_name(), 12 | "class_name":&"", 13 | "type":TYPE_INT, 14 | "hint":PROPERTY_HINT_NONE, 15 | "hint_string":"", 16 | "usage":PROPERTY_USAGE_DEFAULT 17 | }) 18 | ProjectSettings.set_initial_value(MHlodNode3D.state_data_get_prop_name(),MHlodNode3D.state_data_get_cache_size()) 19 | -------------------------------------------------------------------------------- /gdextension/src/navmesh/mnavigation_mesh_data.h: -------------------------------------------------------------------------------- 1 | #ifndef MNAVIGATIONDATA 2 | #define MNAVIGATIONDATA 3 | 4 | #include 5 | #include 6 | 7 | using namespace godot; 8 | 9 | class MNavigationMeshData : public Resource { 10 | GDCLASS(MNavigationMeshData, Resource); 11 | 12 | protected: 13 | static void _bind_methods(); 14 | 15 | public: 16 | PackedByteArray data; 17 | bool on_all_at_creation = true; 18 | 19 | void set_data(const PackedByteArray& d); 20 | PackedByteArray get_data(); 21 | 22 | void set_on_all_at_creation(bool input); 23 | bool get_on_all_at_creation(); 24 | }; 25 | 26 | 27 | #endif -------------------------------------------------------------------------------- /asset_manager/ui/inspector/collection_item.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://c7sarfan15ac3"] 2 | 3 | [node name="collection" type="HBoxContainer"] 4 | anchors_preset = 15 5 | anchor_right = 1.0 6 | anchor_bottom = 1.0 7 | grow_horizontal = 2 8 | grow_vertical = 2 9 | 10 | [node name="id" type="Label" parent="."] 11 | layout_mode = 2 12 | text = "-1" 13 | 14 | [node name="name" type="LineEdit" parent="."] 15 | layout_mode = 2 16 | text = "collection name" 17 | expand_to_text_length = true 18 | 19 | [node name="remove" type="Button" parent="."] 20 | layout_mode = 2 21 | text = "x" 22 | 23 | [node name="meshes" type="Label" parent="."] 24 | layout_mode = 2 25 | size_flags_horizontal = 3 26 | autowrap_mode = 2 27 | -------------------------------------------------------------------------------- /gdextension/.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Linux", 5 | "includePath": [ 6 | "${workspaceFolder}/godot-cpp/include/", 7 | "${workspaceFolder}/godot-cpp/gen/include/", 8 | "${workspaceFolder}/godot-cpp/gdextension/", 9 | "${workspaceFolder}/src/" 10 | ], 11 | "defines": [ 12 | "DEBUG_ENABLED" 13 | ], 14 | "compilerPath": "/usr/bin/clang", 15 | "cStandard": "c17", 16 | "cppStandard": "c++14", 17 | "intelliSenseMode": "linux-clang-x64" 18 | } 19 | ], 20 | "version": 4 21 | } -------------------------------------------------------------------------------- /gui/mtools_brush_size.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Button 3 | 4 | signal brush_size_changed 5 | 6 | @export var slider: VSlider 7 | @export var textbox: LineEdit 8 | 9 | func _ready(): 10 | slider.value_changed.connect(update_value) 11 | textbox.text_submitted.connect(update_value) 12 | 13 | var panel = get_child(0) 14 | panel.visible = false 15 | panel.position.y = -panel.size.y 16 | 17 | func update_value(new_value): 18 | var changed = false 19 | if slider.value != float(new_value): 20 | slider.value = float(new_value) 21 | changed = true 22 | if textbox.text != str(new_value): 23 | textbox.text = str(new_value) 24 | changed = true 25 | if changed: 26 | brush_size_changed.emit(float(new_value)) 27 | -------------------------------------------------------------------------------- /asset_manager/materials_list.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Tree 3 | signal material_table_changed 4 | 5 | func _can_drop_data(at_position: Vector2, data: Variant): 6 | return "files" in data 7 | 8 | func _drop_data(at_position: Vector2, data: Variant): 9 | var filesystem = EditorInterface.get_resource_filesystem() 10 | var materials = AssetIOMaterials.get_material_table() 11 | for file in data.files: 12 | if filesystem.get_file_type(file) in ["StandardMaterial3D", "ShaderMaterial", "ORMMaterial3D"]: 13 | var mat = load(file) 14 | if not mat is Material: continue 15 | if materials.find_key(file) == null: 16 | AssetIOMaterials.update_material(-1, load(file)) 17 | material_table_changed.emit() 18 | 19 | -------------------------------------------------------------------------------- /gdextension/src/color_brushes/mchannel_painter.h: -------------------------------------------------------------------------------- 1 | #ifndef MCHANNELPAINTER 2 | #define MCHANNELPAINTER 3 | 4 | #include "../mcolor_brush.h" 5 | 6 | 7 | class MChannelPainter : public MColorBrush{ 8 | bool red = false; 9 | bool green = false; 10 | bool blue = false; 11 | bool alpha = false; 12 | float red_value=0; 13 | float green_value=0; 14 | float blue_value=0; 15 | float alpha_value=0; 16 | float hardness = 0.9; 17 | String _get_name(); 18 | void _set_property(String prop_name, Variant value); 19 | bool is_two_point_brush(); 20 | void before_draw(); 21 | void set_color(uint32_t local_x,uint32_t local_y,uint32_t x,uint32_t y,MImage* img); 22 | }; 23 | 24 | 25 | 26 | #endif -------------------------------------------------------------------------------- /gui/control_prop_element/int_enum.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://csovwghad2mro"] 2 | 3 | [ext_resource type="Script" uid="uid://dgqv4r30v6k6i" path="res://addons/m_terrain/gui/control_prop_element/int_enum.gd" id="1_heunk"] 4 | 5 | [node name="int_enum" type="MarginContainer"] 6 | offset_right = 112.0 7 | offset_bottom = 47.0 8 | size_flags_horizontal = 3 9 | size_flags_vertical = 3 10 | theme_override_constants/margin_left = 12 11 | theme_override_constants/margin_top = 12 12 | theme_override_constants/margin_right = 12 13 | theme_override_constants/margin_bottom = 12 14 | script = ExtResource("1_heunk") 15 | 16 | [node name="ItemList" type="ItemList" parent="."] 17 | layout_mode = 2 18 | mouse_filter = 1 19 | -------------------------------------------------------------------------------- /gui/mtools_slider_value.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends BoxContainer 3 | signal value_changed 4 | @onready var slider = $VSlider 5 | @onready var textbox = $LineEdit 6 | 7 | 8 | func _ready(): 9 | slider.value_changed.connect(update_value) 10 | textbox.text_submitted.connect(update_value) 11 | 12 | func update_value(new_value): 13 | var changed = false 14 | new_value = clamp(float(new_value), slider.min_value, slider.max_value) 15 | if slider.value != float(new_value): 16 | textbox.text = str(new_value) #to ensure that it is clamped 17 | slider.value = new_value 18 | changed = true 19 | if textbox.text != str(new_value): 20 | textbox.text = str(new_value) 21 | changed = true 22 | if changed: 23 | value_changed.emit(new_value) 24 | -------------------------------------------------------------------------------- /asset_manager/collection_editor.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Node3D 3 | var asset_mesh_updater: MAssetMeshUpdater 4 | var timer: Timer 5 | func _notification(what: int): 6 | if what == NOTIFICATION_EDITOR_PRE_SAVE: 7 | for child in get_children(): 8 | child.owner = null 9 | if what == NOTIFICATION_EDITOR_POST_SAVE: 10 | for child in get_children(): 11 | child.owner = self 12 | 13 | func _enter_tree(): 14 | asset_mesh_updater = MAssetMeshUpdater.new() 15 | asset_mesh_updater.set_root_node(self) 16 | timer = Timer.new() 17 | add_child(timer) 18 | timer.timeout.connect(update_lod) 19 | timer.start(2) 20 | 21 | func update_lod(): 22 | asset_mesh_updater.update_auto_lod() 23 | 24 | func _exit_tree(): 25 | timer.queue_free() 26 | -------------------------------------------------------------------------------- /gui/mtools_keyboard_shortcut_item.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://co53fkr4oogwn"] 2 | 3 | [ext_resource type="Script" uid="uid://cqkuc8gumbxpa" path="res://addons/m_terrain/gui/mtools_keyboard_shortcut_item.gd" id="1_e0rfo"] 4 | 5 | [node name="HBoxContainer" type="HBoxContainer"] 6 | alignment = 1 7 | script = ExtResource("1_e0rfo") 8 | 9 | [node name="Label" type="Label" parent="."] 10 | layout_mode = 2 11 | size_flags_horizontal = 3 12 | text = "key" 13 | horizontal_alignment = 2 14 | 15 | [node name="VSeparator" type="VSeparator" parent="."] 16 | layout_mode = 2 17 | theme_override_constants/separation = 32 18 | 19 | [node name="Button" type="Button" parent="."] 20 | layout_mode = 2 21 | size_flags_horizontal = 3 22 | text = "value" 23 | alignment = 0 24 | -------------------------------------------------------------------------------- /asset_manager/ui/sort_popup.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Control 3 | 4 | signal sort_mode_changed 5 | 6 | @onready var sort_type_list = find_child("sort_type_list") 7 | 8 | var button_group = preload("res://addons/m_terrain/asset_manager/ui/sort_button_group.tres") 9 | var sort_mode 10 | 11 | func _ready(): 12 | #if not EditorInterface.get_edited_scene_root() or EditorInterface.get_edited_scene_root() == self or EditorInterface.get_edited_scene_root().is_ancestor_of(self): return 13 | if not is_instance_valid(sort_type_list): return 14 | for button in sort_type_list.get_children(): 15 | button.button_group = button_group 16 | button_group.pressed.connect(func(button): 17 | if sort_mode != button.name: 18 | sort_mode = button.name 19 | sort_mode_changed.emit(button.name) 20 | ) 21 | -------------------------------------------------------------------------------- /gui/mtools_popup_remove_color_layer.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Window 3 | signal confirmed 4 | func _ready(): 5 | find_child("delete_layer").pressed.connect(func(): confirmed.emit(false)) 6 | find_child("delete_layer_and_image").pressed.connect(func(): confirmed.emit(true)) 7 | find_child("delete_layer").pressed.connect(queue_free) 8 | find_child("delete_layer_and_image").pressed.connect(queue_free) 9 | find_child("cancel_button").pressed.connect(queue_free) 10 | close_requested.connect(queue_free) 11 | 12 | func set_shared_uniform_label(list:Array): 13 | if list == []: 14 | find_child("shared_uniform_label").visible = false 15 | else: 16 | var names = "" 17 | for i in list: 18 | names += str(i, ", ") 19 | find_child("shared_uniform_label").text = "this image is shared with: " + names 20 | -------------------------------------------------------------------------------- /gui/shortcuts_panel.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://bf1wqp6kxwjdb"] 2 | 3 | [ext_resource type="Script" uid="uid://biqou0rvhylom" path="res://addons/m_terrain/gui/shortcuts_panel.gd" id="1_1tyvh"] 4 | [ext_resource type="Theme" uid="uid://b3bd1lceed8ec" path="res://addons/m_terrain/gui/styles/mterrain_gui_theme.tres" id="2_y3puc"] 5 | 6 | [node name="shortcut_panel" type="PanelContainer"] 7 | anchors_preset = 15 8 | anchor_right = 1.0 9 | anchor_bottom = 1.0 10 | grow_horizontal = 2 11 | grow_vertical = 2 12 | size_flags_horizontal = 3 13 | theme = ExtResource("2_y3puc") 14 | script = ExtResource("1_1tyvh") 15 | 16 | [node name="ScrollContainer" type="ScrollContainer" parent="."] 17 | layout_mode = 2 18 | 19 | [node name="ItemList" type="ItemList" parent="ScrollContainer"] 20 | layout_mode = 2 21 | item_count = 1 22 | -------------------------------------------------------------------------------- /asset_manager/asset_placer_add.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends PanelContainer 3 | 4 | @onready var add_baker_button:Button = find_child("add_baker_button") 5 | @onready var add_decal_button:Button = find_child("add_decal_button") 6 | @onready var add_packed_scene_button:Button = find_child("add_packed_scene_button") 7 | 8 | func _ready(): 9 | 10 | add_baker_button.pressed.connect(func(): 11 | AssetIOBaker.create_baker_scene() 12 | AssetIO.asset_placer.add_asset_finished(false) 13 | ) 14 | add_packed_scene_button.pressed.connect(func(): 15 | AssetIO.create_packed_scene() 16 | AssetIO.asset_placer.add_asset_finished() 17 | ) 18 | add_decal_button.pressed.connect(func(): 19 | var decal = AssetIO.create_decal() 20 | AssetIO.asset_placer.assets_changed.emit( decal ) 21 | AssetIO.asset_placer.add_asset_finished() 22 | ) 23 | -------------------------------------------------------------------------------- /gui/human_male.obj.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="wavefront_obj" 4 | importer_version=1 5 | type="Mesh" 6 | uid="uid://c5eueesxs7em3" 7 | path="res://.godot/imported/human_male.obj-5319b4815f3ac84bede93167a58372a3.mesh" 8 | 9 | [deps] 10 | 11 | files=["res://.godot/imported/human_male.obj-5319b4815f3ac84bede93167a58372a3.mesh"] 12 | 13 | source_file="res://addons/m_terrain/gui/human_male.obj" 14 | dest_files=["res://.godot/imported/human_male.obj-5319b4815f3ac84bede93167a58372a3.mesh", "res://.godot/imported/human_male.obj-5319b4815f3ac84bede93167a58372a3.mesh"] 15 | 16 | [params] 17 | 18 | generate_tangents=true 19 | generate_lods=true 20 | generate_shadow_mesh=true 21 | generate_lightmap_uv2=false 22 | generate_lightmap_uv2_texel_size=0.2 23 | scale_mesh=Vector3(1, 1, 1) 24 | offset_mesh=Vector3(0, 0, 0) 25 | force_disable_mesh_compression=false 26 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/asset_table_inspector.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cypjfwjlguowi"] 2 | 3 | [ext_resource type="Script" uid="uid://bgpe1kot22fas" path="res://addons/m_terrain/asset_manager/ui/inspector/asset_table_inspector.gd" id="1_oevxw"] 4 | 5 | [node name="Control" type="VBoxContainer"] 6 | anchors_preset = 15 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | grow_horizontal = 2 10 | grow_vertical = 2 11 | script = ExtResource("1_oevxw") 12 | 13 | [node name="clear_btn" type="Button" parent="."] 14 | layout_mode = 2 15 | text = "Clear" 16 | 17 | [node name="reload_btn" type="Button" parent="."] 18 | layout_mode = 2 19 | text = "Reload" 20 | 21 | [node name="collections_label" type="RichTextLabel" parent="."] 22 | custom_minimum_size = Vector2(100, 120) 23 | layout_mode = 2 24 | bbcode_enabled = true 25 | autowrap_mode = 1 26 | -------------------------------------------------------------------------------- /asset_manager/ui/grouping_popup.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cysovcswko088"] 2 | 3 | [ext_resource type="Script" uid="uid://ddihj5eo8c31f" path="res://addons/m_terrain/asset_manager/ui/grouping_popup.gd" id="1_oqoy2"] 4 | [ext_resource type="Theme" uid="uid://b3bd1lceed8ec" path="res://addons/m_terrain/gui/styles/mterrain_gui_theme.tres" id="2_vflmy"] 5 | 6 | [node name="PanelContainer" type="PanelContainer"] 7 | anchors_preset = 15 8 | anchor_right = 1.0 9 | anchor_bottom = 1.0 10 | grow_horizontal = 2 11 | grow_vertical = 2 12 | size_flags_horizontal = 3 13 | size_flags_vertical = 3 14 | theme = ExtResource("2_vflmy") 15 | script = ExtResource("1_oqoy2") 16 | 17 | [node name="group_list" type="VBoxContainer" parent="."] 18 | layout_mode = 2 19 | 20 | [node name="None" type="Button" parent="group_list"] 21 | layout_mode = 2 22 | toggle_mode = true 23 | text = "None" 24 | -------------------------------------------------------------------------------- /gui/control_prop_element/float.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends BoxContainer 3 | 4 | signal prop_changed 5 | 6 | var prop_name:String 7 | var value:float 8 | var max:float = 1000000000000000000 9 | var min:float = -100000000000000000 10 | 11 | func set_max(input): 12 | max=input 13 | 14 | func set_min(input): 15 | max=input 16 | 17 | 18 | func update_name(input:String): 19 | prop_name = input 20 | $label.text = input 21 | 22 | func set_value(input:float): 23 | value = input 24 | $value.text = str(input) 25 | 26 | func _on_value_text_submitted(new_text:String): 27 | if new_text.is_valid_float(): 28 | value = new_text.to_float() 29 | if value>max: 30 | value = max 31 | if value 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include "mconfig.h" 11 | 12 | #include "mgrid.h" 13 | 14 | using namespace godot; 15 | 16 | 17 | 18 | 19 | class MColorBrush { 20 | protected: 21 | MGrid* grid; 22 | public: 23 | void set_grid(MGrid* _grid){grid = _grid;}; 24 | virtual ~MColorBrush(){}; 25 | virtual String _get_name()=0; 26 | virtual void _set_property(String prop_name, Variant value)=0; 27 | virtual bool is_two_point_brush()=0; 28 | virtual void before_draw()=0; 29 | virtual void set_color(uint32_t local_x,uint32_t local_y,uint32_t x,uint32_t y,MImage* img)=0; 30 | }; 31 | #endif -------------------------------------------------------------------------------- /gui/mtools_status_bar.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends HBoxContainer 3 | 4 | func toggle_visible(toggled_on): 5 | visible = not toggled_on 6 | 7 | func set_height_label(input:float): 8 | $h_label.text = ("H: "+str(input)+"m").pad_decimals(2) 9 | 10 | func disable_height_label(): 11 | $h_label.text = "H: UNKOWN" 12 | 13 | func set_distance_label(input:float): 14 | $d_label.text = ("D: "+str(input)+"m").pad_decimals(2) 15 | 16 | func disable_distance_label(): 17 | $d_label.text = "D: UNKOWN" 18 | 19 | func set_grass_label(input:int): 20 | $g_label.text = " G: " + str(input) 21 | 22 | func disable_grass_label(): 23 | $g_label.text = "" 24 | 25 | func set_region_label(input:int): 26 | $r_label.text = "R:"+str(input) 27 | 28 | func disable_region_label(): 29 | $r_label.text = "" 30 | 31 | 32 | func _on_hide_status_toggled(toggled_on: bool) -> void: 33 | pass # Replace with function body. 34 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: mohsenzare 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 | polar: # Replace with a single Polar username 13 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username 14 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 15 | -------------------------------------------------------------------------------- /start_opengl.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | 3 | 4 | 5 | uniform sampler2D mterrain_heightmap:filter_nearest; 6 | uniform sampler2D mterrain_normals:filter_nearest; 7 | 8 | uniform vec3 region_world_position; 9 | uniform float region_size; 10 | uniform float region_a; 11 | uniform float region_b; 12 | uniform int min_lod; 13 | varying vec3 world_pos; 14 | varying vec2 region_uv; 15 | 16 | void vertex(){ 17 | world_pos = (NODE_POSITION_WORLD + VERTEX); 18 | region_uv = (world_pos.xz - region_world_position.xz)/region_size; 19 | region_uv = region_uv*region_a + region_b; 20 | VERTEX.y = texture(mterrain_heightmap, region_uv).r; 21 | world_pos.y = VERTEX.y; 22 | vec3 n = texture(mterrain_normals, region_uv).rgb; 23 | n.rb=n.rb*2.0 - 1.0; 24 | NORMAL = n; 25 | //Scale world uv for terrain texture 26 | world_pos /= 10.0; 27 | 28 | } 29 | 30 | void fragment(){ 31 | ALBEDO = vec3(0.4); 32 | } 33 | -------------------------------------------------------------------------------- /gui/color_layer_creator_window.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://gsibulkr5nt"] 2 | 3 | [ext_resource type="Theme" uid="uid://b3bd1lceed8ec" path="res://addons/m_terrain/gui/styles/mterrain_gui_theme.tres" id="1_f6oq8"] 4 | [ext_resource type="Script" uid="uid://ddhqtgl8r18bn" path="res://addons/m_terrain/gui/color_layer_creator_window.gd" id="1_ietn6"] 5 | [ext_resource type="PackedScene" uid="uid://dptq8ffglb0du" path="res://addons/m_terrain/gui/color_layer_creator_panel.tscn" id="3_ep3fc"] 6 | 7 | [node name="image_creator_window" type="Window"] 8 | initial_position = 1 9 | size = Vector2i(550, 600) 10 | wrap_controls = true 11 | popup_window = true 12 | theme = ExtResource("1_f6oq8") 13 | script = ExtResource("1_ietn6") 14 | 15 | [node name="PanelContainer" parent="." instance=ExtResource("3_ep3fc")] 16 | 17 | [connection signal="close_requested" from="." to="." method="_on_close_requested"] 18 | -------------------------------------------------------------------------------- /gui/control_prop_element/int_enum.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Control 3 | 4 | signal prop_changed 5 | 6 | var prop_name:String 7 | var value:int 8 | 9 | @onready var item_list:ItemList= find_child("ItemList") 10 | 11 | func _ready() -> void: 12 | item_list.item_selected.connect(_on_values_item_selected) 13 | 14 | func set_options(input:String): 15 | if not item_list: 16 | await ready 17 | var options = input.split(",") 18 | for o in options: 19 | item_list.add_item(o) 20 | 21 | func update_name(input:String): 22 | prop_name = input 23 | for i in item_list.item_count: 24 | if item_list.get_item_text(i) == input: 25 | item_list.select(i) 26 | #$Button.text = input 27 | 28 | func set_value(input:int): 29 | #print("set select ", input) 30 | value = input 31 | item_list.select(input) 32 | 33 | func _on_values_item_selected(index): 34 | value = index 35 | emit_signal("prop_changed",prop_name,value) 36 | -------------------------------------------------------------------------------- /start.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | 3 | 4 | 5 | uniform sampler2D mterrain_heightmap:filter_nearest; 6 | uniform sampler2D mterrain_normals:filter_nearest; 7 | 8 | uniform vec3 region_world_position; 9 | uniform float region_size; 10 | uniform float region_a; 11 | uniform float region_b; 12 | uniform int min_lod; 13 | varying vec3 world_pos; 14 | varying vec2 region_uv; 15 | 16 | void vertex(){ 17 | world_pos = (NODE_POSITION_WORLD + VERTEX); 18 | region_uv = (world_pos.xz - region_world_position.xz)/region_size; 19 | region_uv = region_uv*region_a + region_b; 20 | VERTEX.y = texture(mterrain_heightmap, region_uv).r; 21 | world_pos.y = VERTEX.y; 22 | vec3 n = texture(mterrain_normals, region_uv).rgb; 23 | n.rb=fma(n.rb,vec2(2.0),vec2(-1.0)); 24 | NORMAL = n; 25 | //Scale world uv for terrain texture 26 | world_pos /= 10.0; 27 | 28 | } 29 | 30 | void fragment(){ 31 | ALBEDO = vec3(0.4); 32 | } 33 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/mhlod_scene_inspector.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://buvo4x4g1q0tr"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://emr0fpf2qo8g" path="res://addons/m_terrain/asset_manager/ui/inspector/variation_layers/variation_layers.tscn" id="2_3rehg"] 4 | [ext_resource type="Script" uid="uid://w7t06tg3cm1a" path="res://addons/m_terrain/asset_manager/ui/inspector/mhlod_scene_inspector.gd" id="2_dc4at"] 5 | 6 | [node name="MhlodSceneInspector" type="VBoxContainer"] 7 | offset_right = 1152.0 8 | offset_bottom = 648.0 9 | script = ExtResource("2_dc4at") 10 | 11 | [node name="edit_baker_scene_button" type="Button" parent="."] 12 | layout_mode = 2 13 | text = "Edit Baker Scene" 14 | 15 | [node name="Label" type="Label" parent="."] 16 | layout_mode = 2 17 | text = "HLOD Active Variation Layers" 18 | 19 | [node name="Layers" parent="." instance=ExtResource("2_3rehg")] 20 | layout_mode = 2 21 | -------------------------------------------------------------------------------- /icons/show.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://h6h1w7oah3kx" 6 | path="res://.godot/imported/show.png-b6f0fd77cdcfcdeb31b2481976608ec2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/show.png" 14 | dest_files=["res://.godot/imported/show.png-b6f0fd77cdcfcdeb31b2481976608ec2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/brush.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b5cmhvvnwshvc" 6 | path="res://.godot/imported/brush.png-6aba610ae344611474bfa9a9d874be2c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/brush.png" 14 | dest_files=["res://.godot/imported/brush.png-6aba610ae344611474bfa9a9d874be2c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/hidden.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://vfuxvuomsr10" 6 | path="res://.godot/imported/hidden.png-06a999a48cefacfaee536072e67b7840.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/hidden.png" 14 | dest_files=["res://.godot/imported/hidden.png-06a999a48cefacfaee536072e67b7840.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /shader_include/paint16.gdshaderinc: -------------------------------------------------------------------------------- 1 | //Include this before Vertex function 2 | vec4 get_indices16(in sampler2D _tex,out vec2 _weight){ 3 | _weight = vec2(textureSize(_tex,0))*(region_uv - region_b); 4 | ivec2 ipx_pos = ivec2(_weight); 5 | _weight = fract(_weight); 6 | vec4 o; 7 | o.x = texelFetch(_tex,ipx_pos,0).r*15.0; 8 | o.y = texelFetch(_tex,ipx_pos+ivec2(1,0),0).r*15.0; 9 | o.z = texelFetch(_tex,ipx_pos+ivec2(0,1),0).r*15.0; 10 | o.w = texelFetch(_tex,ipx_pos+ivec2(1,1),0).r*15.0; 11 | return o; 12 | } 13 | vec4 get_texture16(in sampler2DArray _tex_arr,in lowp vec4 _indices,in vec2 _weight,in vec2 _uv){ 14 | vec4 a00 = texture(_tex_arr,vec3(_uv,_indices.x)); 15 | vec4 a01 = texture(_tex_arr,vec3(_uv,_indices.y)); 16 | vec4 a10 = texture(_tex_arr,vec3(_uv,_indices.z)); 17 | vec4 a11 = texture(_tex_arr,vec3(_uv,_indices.w)); 18 | vec4 t = mix(a00,a01,_weight.x); 19 | vec4 b = mix(a10,a11,_weight.x); 20 | return mix(t,b,_weight.y); 21 | } -------------------------------------------------------------------------------- /icons/info_icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cjho7a8u0ixdi" 6 | path="res://.godot/imported/info_icon.png-dc36a7d205a77e9f2dc29af8151354c2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/info_icon.png" 14 | dest_files=["res://.godot/imported/info_icon.png-dc36a7d205a77e9f2dc29af8151354c2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=3 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=1 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/no_images.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://f1ola7kh408" 6 | path="res://.godot/imported/no_images.png-56785ae7fc948df6ca282de9a9bdd9db.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/no_images.png" 14 | dest_files=["res://.godot/imported/no_images.png-56785ae7fc948df6ca282de9a9bdd9db.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /shader_include/paint256.gdshaderinc: -------------------------------------------------------------------------------- 1 | //Include this before Vertex function 2 | vec4 get_indices256(in sampler2D _tex,out vec2 _weight){ 3 | _weight = vec2(textureSize(_tex,0))*(region_uv - region_b); 4 | ivec2 ipx_pos = ivec2(_weight); 5 | _weight = fract(_weight); 6 | vec4 o; 7 | o.x = texelFetch(_tex,ipx_pos,0).r*255.0; 8 | o.y = texelFetch(_tex,ipx_pos+ivec2(1,0),0).r*255.0; 9 | o.z = texelFetch(_tex,ipx_pos+ivec2(0,1),0).r*255.0; 10 | o.w = texelFetch(_tex,ipx_pos+ivec2(1,1),0).r*255.0; 11 | return o; 12 | } 13 | vec4 get_texture256(in sampler2DArray _tex_arr,in lowp vec4 _indices,in vec2 _weight,in vec2 _uv){ 14 | vec4 a00 = texture(_tex_arr,vec3(_uv,_indices.x)); 15 | vec4 a01 = texture(_tex_arr,vec3(_uv,_indices.y)); 16 | vec4 a10 = texture(_tex_arr,vec3(_uv,_indices.z)); 17 | vec4 a11 = texture(_tex_arr,vec3(_uv,_indices.w)); 18 | vec4 t = mix(a00,a01,_weight.x); 19 | vec4 b = mix(a10,a11,_weight.x); 20 | return mix(t,b,_weight.y); 21 | } -------------------------------------------------------------------------------- /icons/brush_icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c08s0xlu8tted" 6 | path="res://.godot/imported/brush_icon.png-c4cc34619fca37f96dc82cf66b3b7435.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/brush_icon.png" 14 | dest_files=["res://.godot/imported/brush_icon.png-c4cc34619fca37f96dc82cf66b3b7435.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/tsnap_icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dl46tixprq2ro" 6 | path="res://.godot/imported/tsnap_icon.png-3d3cafa79db00a2e849830ba4628ce16.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/tsnap_icon.png" 14 | dest_files=["res://.godot/imported/tsnap_icon.png-3d3cafa79db00a2e849830ba4628ce16.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /asset_manager/settings_button.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Button 3 | 4 | var settings 5 | 6 | func _ready(): 7 | settings = preload("res://addons/m_terrain/asset_manager/ui/asset_library_settings.tscn").instantiate() 8 | add_child(settings) 9 | settings.visible = false 10 | settings.find_child("close_settings_button").pressed.connect(func():button_pressed = not button_pressed) 11 | 12 | 13 | func _toggled(toggled_on): 14 | if toggled_on: 15 | if settings.get_parent(): 16 | remove_child(settings) 17 | EditorInterface.get_editor_main_screen().get_parent().add_child(settings) 18 | settings.size_flags_horizontal = Control.SIZE_EXPAND_FILL 19 | settings.size_flags_vertical = Control.SIZE_EXPAND_FILL 20 | settings.size_flags_stretch_ratio = 100000000000 21 | settings.visible = true 22 | else: 23 | EditorInterface.get_editor_main_screen().get_parent().remove_child(settings) 24 | settings.visible = false 25 | add_child(settings) 26 | 27 | -------------------------------------------------------------------------------- /icons/foilage_icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d03ukmldfnxs3" 6 | path="res://.godot/imported/foilage_icon.png-a98aa00adcd9b86d81ed6e14311d072b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/foilage_icon.png" 14 | dest_files=["res://.godot/imported/foilage_icon.png-a98aa00adcd9b86d81ed6e14311d072b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/paint-normal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dok8ugsvea2hg" 6 | path="res://.godot/imported/paint-normal.png-c6b2562f6c84603ad7f896e44c5ddb3e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/paint-normal.png" 14 | dest_files=["res://.godot/imported/paint-normal.png-c6b2562f6c84603ad7f896e44c5ddb3e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/save_active.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://balqs3xpw1e3p" 6 | path="res://.godot/imported/save_active.png-758ea1124ee860b4879c519910c5b9bb.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/save_active.png" 14 | dest_files=["res://.godot/imported/save_active.png-758ea1124ee860b4879c519910c5b9bb.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/terrain_icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bsdfn2yec6vtv" 6 | path="res://.godot/imported/terrain_icon.png-7662a98f11adcb134a1396ae4615bee6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/terrain_icon.png" 14 | dest_files=["res://.godot/imported/terrain_icon.png-7662a98f11adcb134a1396ae4615bee6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/obstacle_icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ckixcw11hx25p" 6 | path="res://.godot/imported/obstacle_icon.png-499922fa40b53000fee9abcac2a1bb00.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/obstacle_icon.png" 14 | dest_files=["res://.godot/imported/obstacle_icon.png-499922fa40b53000fee9abcac2a1bb00.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/paint-pressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dc8xvtd03qq1j" 6 | path="res://.godot/imported/paint-pressed.png-2aba7a39a29cb1d2747aa99fdd447a3c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/paint-pressed.png" 14 | dest_files=["res://.godot/imported/paint-pressed.png-2aba7a39a29cb1d2747aa99fdd447a3c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/save_deactive.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://vj2s60luchw7" 6 | path="res://.godot/imported/save_deactive.png-4d38f2b11928d31fe1a01fbc9ead326a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/save_deactive.png" 14 | dest_files=["res://.godot/imported/save_deactive.png-4d38f2b11928d31fe1a01fbc9ead326a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/hlod_baker_guest_inspector.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://8p3wi7b8y3qh"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://boyvdfyc4qv16" path="res://addons/m_terrain/asset_manager/ui/inspector/hlod_baker_inspector.tscn" id="1_l1xqd"] 4 | [ext_resource type="Texture2D" uid="uid://cbdu2j1j6r76t" path="res://addons/m_terrain/icons/hlod_scene.svg" id="2_65svk"] 5 | [ext_resource type="Script" uid="uid://dfh6gdwpgs6wc" path="res://addons/m_terrain/asset_manager/ui/inspector/save_and_replace_with_hlod_button.gd" id="3_7odm2"] 6 | 7 | [node name="HlodBakerInspector" instance=ExtResource("1_l1xqd")] 8 | 9 | [node name="save_and_replace_with_hlod_button" type="Button" parent="HBoxContainer3" index="3"] 10 | custom_minimum_size = Vector2(32, 0) 11 | layout_mode = 2 12 | tooltip_text = "Save and replace with mhlod_scene" 13 | icon = ExtResource("2_65svk") 14 | alignment = 0 15 | icon_alignment = 1 16 | script = ExtResource("3_7odm2") 17 | -------------------------------------------------------------------------------- /icons/M-terrain_icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cqh311apccvi3" 6 | path="res://.godot/imported/M-terrain_icon.png-f2e09725d1b891d3a94829e81fc6b2c1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/M-terrain_icon.png" 14 | dest_files=["res://.godot/imported/M-terrain_icon.png-f2e09725d1b891d3a94829e81fc6b2c1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /inspector/mpath.gd: -------------------------------------------------------------------------------- 1 | extends EditorInspectorPlugin 2 | 3 | var gizmo:EditorNode3DGizmoPlugin 4 | 5 | var gui_res = preload("res://addons/m_terrain/inspector/gui/mpath_inspector_gui.tscn") 6 | var gui 7 | var curve_terrain_res = preload("res://addons/m_terrain/inspector/gui/curve_terrain.tscn") 8 | var curve_terrain:Control 9 | 10 | func _can_handle(object): 11 | return object is MPath 12 | 13 | func _parse_begin(object): 14 | if not(object is MPath) or not object or not object.curve: 15 | return 16 | if not gui: 17 | gui = gui_res.instantiate() 18 | add_custom_control(gui) 19 | gui.gizmo = gizmo 20 | gui.ur = gizmo.ur 21 | gui.set_path(object) 22 | ## Curve terrain 23 | if gizmo.tools.get_active_mterrain(): 24 | if not curve_terrain: 25 | curve_terrain = curve_terrain_res.instantiate() 26 | add_custom_control(curve_terrain) 27 | gizmo.curve_terrain.terrain = gizmo.tools.get_active_mterrain() 28 | curve_terrain.start_curve_terrain(gizmo,object) 29 | 30 | -------------------------------------------------------------------------------- /icons/info_icon_pressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cyftv3kygv5b7" 6 | path="res://.godot/imported/info_icon_pressed.png-633638cd657b82eedb2a1ca18b093508.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/info_icon_pressed.png" 14 | dest_files=["res://.godot/imported/info_icon_pressed.png-633638cd657b82eedb2a1ca18b093508.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/tsnap_icon_pressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dow4horhd3x6v" 6 | path="res://.godot/imported/tsnap_icon_pressed.png-033b63880538ce81eeec190409033cf7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/tsnap_icon_pressed.png" 14 | dest_files=["res://.godot/imported/tsnap_icon_pressed.png-033b63880538ce81eeec190409033cf7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /asset_manager/ui/inspector/variation_layers/variation_layers.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://emr0fpf2qo8g"] 2 | 3 | [ext_resource type="Script" uid="uid://colk7jshoghh0" path="res://addons/m_terrain/asset_manager/ui/inspector/variation_layers/layers.gd" id="1_wefvq"] 4 | [ext_resource type="Theme" uid="uid://b3bd1lceed8ec" path="res://addons/m_terrain/gui/styles/mterrain_gui_theme.tres" id="1_wjh67"] 5 | 6 | [node name="Layers" type="GridContainer"] 7 | offset_right = 40.0 8 | offset_bottom = 40.0 9 | theme = ExtResource("1_wjh67") 10 | columns = 8 11 | script = ExtResource("1_wefvq") 12 | layer_names = PackedStringArray("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "") 13 | 14 | [node name="rename_dialog" type="ConfirmationDialog" parent="."] 15 | title = "Rename" 16 | initial_position = 4 17 | 18 | [node name="rename_line" type="LineEdit" parent="rename_dialog"] 19 | offset_left = 8.0 20 | offset_top = 8.0 21 | offset_right = 192.0 22 | offset_bottom = 49.0 23 | -------------------------------------------------------------------------------- /icons/MNavigationRegion3D.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://piy6jiwu28vi" 6 | path="res://.godot/imported/MNavigationRegion3D.png-1b7ea227137c1b5422cbad606885d6e1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MNavigationRegion3D.png" 14 | dest_files=["res://.godot/imported/MNavigationRegion3D.png-1b7ea227137c1b5422cbad606885d6e1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/human_button_normal.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b72iot2bj8ls" 6 | path="res://.godot/imported/human_button_normal.png-45bce41eaf0940826355249b10f5646e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/human_button_normal.png" 14 | dest_files=["res://.godot/imported/human_button_normal.png-45bce41eaf0940826355249b10f5646e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /gui/control_prop_element/float.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://bctt0naq7rbmu"] 2 | 3 | [ext_resource type="Script" uid="uid://dpmgueho33boa" path="res://addons/m_terrain/gui/control_prop_element/float.gd" id="1_ch71q"] 4 | 5 | [node name="hardness" type="VBoxContainer"] 6 | anchors_preset = 9 7 | anchor_bottom = 1.0 8 | offset_right = 67.0 9 | grow_vertical = 2 10 | script = ExtResource("1_ch71q") 11 | 12 | [node name="MarginContainer" type="MarginContainer" parent="."] 13 | layout_mode = 2 14 | size_flags_vertical = 3 15 | 16 | [node name="value" type="LineEdit" parent="."] 17 | layout_mode = 2 18 | size_flags_horizontal = 3 19 | mouse_filter = 1 20 | text = "2.3" 21 | virtual_keyboard_type = 3 22 | 23 | [node name="label" type="Label" parent="."] 24 | layout_mode = 2 25 | text = "name " 26 | 27 | [connection signal="focus_exited" from="value" to="." method="_on_value_focus_exited"] 28 | [connection signal="text_submitted" from="value" to="." method="_on_value_text_submitted"] 29 | -------------------------------------------------------------------------------- /icons/human_button_pressed.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c0lxruofvkcr" 6 | path="res://.godot/imported/human_button_pressed.png-3ee2023e4b22982581fd3c4a260f5bb2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/human_button_pressed.png" 14 | dest_files=["res://.godot/imported/human_button_pressed.png-3ee2023e4b22982581fd3c4a260f5bb2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icons/handle00.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bhmlyci7la1mr" 6 | path.s3tc="res://.godot/imported/handle00.png-d60407c75e080273a89ee2b65f18efa9.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/handle00.png" 15 | dest_files=["res://.godot/imported/handle00.png-d60407c75e080273a89ee2b65f18efa9.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /icons/handle01.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://byodukiddauai" 6 | path.s3tc="res://.godot/imported/handle01.png-d48928787d4c4175d463121762259d7e.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/handle01.png" 15 | dest_files=["res://.godot/imported/handle01.png-d48928787d4c4175d463121762259d7e.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /asset_manager/debug_info.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Button 3 | 4 | @onready var tree:Tree = get_child(0) 5 | var last_update:int= 0 6 | var tree_items = {} 7 | 8 | func _toggled(toggled_on): 9 | set_process(toggled_on) 10 | tree.visible = toggled_on 11 | 12 | func _ready(): 13 | tree.visible = false 14 | tree.set_column_custom_minimum_width(1, 75) 15 | tree.set_column_expand(1, false) 16 | var data = MHlodScene.get_debug_info() 17 | var root: TreeItem = tree.create_item() 18 | for key in data: 19 | var item := root.create_child() 20 | tree_items[key] = item 21 | item.set_text(0, key) 22 | item.set_text_alignment(1, HORIZONTAL_ALIGNMENT_RIGHT) 23 | 24 | func _process(delta): 25 | if not is_node_ready() or not is_visible_in_tree(): return 26 | if abs(Time.get_ticks_msec() - last_update) > 1000: 27 | last_update = Time.get_ticks_msec() 28 | var data = MHlodScene.get_debug_info() 29 | for key in data: 30 | var item = tree_items[key] 31 | item.set_text(1, str(data[key])) 32 | -------------------------------------------------------------------------------- /show_region.gdshader: -------------------------------------------------------------------------------- 1 | shader_type spatial; 2 | render_mode unshaded; 3 | 4 | 5 | 6 | uniform sampler2D mterrain_heightmap:filter_nearest; 7 | uniform sampler2D mterrain_normals:filter_nearest; 8 | 9 | 10 | uniform vec3 region_world_position; 11 | uniform float region_size; 12 | uniform float region_a; 13 | uniform float region_b; 14 | uniform int min_lod; 15 | varying vec3 world_pos; 16 | varying vec2 region_uv; 17 | 18 | void vertex(){ 19 | world_pos = (NODE_POSITION_WORLD + VERTEX); 20 | region_uv = (world_pos.xz - region_world_position.xz)/region_size; 21 | region_uv = region_uv*region_a + region_b; 22 | VERTEX.y = texture(mterrain_heightmap, region_uv).r; 23 | world_pos.y = VERTEX.y; 24 | vec3 n = texture(mterrain_normals, region_uv).rgb; 25 | n = fma(n,vec3(2.0),vec3(-1.0)); 26 | NORMAL = n; 27 | //Scale world uv for terrain texture 28 | world_pos /= 100.0; 29 | 30 | } 31 | 32 | void fragment(){ 33 | vec2 r = clamp(vec2(0.),vec2(1.),region_uv); 34 | ALBEDO = vec3(r,0.0)*0.2; 35 | } 36 | -------------------------------------------------------------------------------- /asset_manager/asset_placer_add.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://brnnnn7sygntf"] 2 | 3 | [ext_resource type="Script" uid="uid://btow8vgtqkq5f" path="res://addons/m_terrain/asset_manager/asset_placer_add.gd" id="1_m0sve"] 4 | 5 | [node name="asset_placer_add" type="PanelContainer"] 6 | visible = false 7 | anchors_preset = 1 8 | anchor_left = 1.0 9 | anchor_right = 1.0 10 | offset_left = -129.0 11 | offset_top = -117.0 12 | offset_bottom = -10.0 13 | grow_horizontal = 0 14 | size_flags_horizontal = 3 15 | size_flags_vertical = 3 16 | script = ExtResource("1_m0sve") 17 | 18 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 19 | layout_mode = 2 20 | 21 | [node name="add_baker_button" type="Button" parent="VBoxContainer"] 22 | layout_mode = 2 23 | text = "Baker" 24 | 25 | [node name="add_decal_button" type="Button" parent="VBoxContainer"] 26 | layout_mode = 2 27 | text = "Decal" 28 | 29 | [node name="add_packed_scene_button" type="Button" parent="VBoxContainer"] 30 | layout_mode = 2 31 | text = "Packed Scene" 32 | -------------------------------------------------------------------------------- /icons/hlod.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d2gy83j7trlnt" 6 | path="res://.godot/imported/hlod.svg-0ff2a5a74a6210b03e042ba56d9bde89.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/hlod.svg" 14 | dest_files=["res://.godot/imported/hlod.svg-0ff2a5a74a6210b03e042ba56d9bde89.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/open.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ryifoq2od5r2" 6 | path="res://.godot/imported/open.svg-9b876d3f8d52293806764774fd1da2f1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/open.svg" 14 | dest_files=["res://.godot/imported/open.svg-9b876d3f8d52293806764774fd1da2f1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MPath.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cbl5d43yc6te0" 6 | path="res://.godot/imported/MPath.svg-18f9e405115f5722d1c5830200273c21.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MPath.svg" 14 | dest_files=["res://.godot/imported/MPath.svg-18f9e405115f5722d1c5830200273c21.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/human.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://lhctvyd5qpxt" 6 | path="res://.godot/imported/human.svg-eb84eb5d95a5ca329cfed90e7298fefc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/human.svg" 14 | dest_files=["res://.godot/imported/human.svg-eb84eb5d95a5ca329cfed90e7298fefc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/trash.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bpe0ct6a6rc0b" 6 | path="res://.godot/imported/trash.svg-a7b754c72ae2fb87e4d457889259ebaa.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/trash.svg" 14 | dest_files=["res://.godot/imported/trash.svg-a7b754c72ae2fb87e4d457889259ebaa.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MCurve.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bxvgtqkrlo0rb" 6 | path="res://.godot/imported/MCurve.svg-6f26c51826846fc7bc39dd58fa5c40dc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MCurve.svg" 14 | dest_files=["res://.godot/imported/MCurve.svg-6f26c51826846fc7bc39dd58fa5c40dc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/hbaker.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://btxcowh4unbay" 6 | path="res://.godot/imported/hbaker.svg-15d537676dc74736d1ae96cacc80c4ff.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/hbaker.svg" 14 | dest_files=["res://.godot/imported/hbaker.svg-15d537676dc74736d1ae96cacc80c4ff.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/mdecal.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dx1ubdvh1mukw" 6 | path="res://.godot/imported/mdecal.svg-273563bec99055f452349231b5b7b7f0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/mdecal.svg" 14 | dest_files=["res://.godot/imported/mdecal.svg-273563bec99055f452349231b5b7b7f0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MOctree.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cwc46klnknbkx" 6 | path="res://.godot/imported/MOctree.svg-35b9165c170786a3b9b40f8572d27ba9.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MOctree.svg" 14 | dest_files=["res://.godot/imported/MOctree.svg-35b9165c170786a3b9b40f8572d27ba9.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/blender.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://jidske1yh0tn" 6 | path="res://.godot/imported/blender.svg-4fb31e92dbd1066b043ee90a995ae891.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/blender.svg" 14 | dest_files=["res://.godot/imported/blender.svg-4fb31e92dbd1066b043ee90a995ae891.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MMeshLod.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d11jov5wo0e14" 6 | path="res://.godot/imported/MMeshLod.svg-b1a715d884f0d4baa20521fe4d9a7067.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MMeshLod.svg" 14 | dest_files=["res://.godot/imported/MMeshLod.svg-b1a715d884f0d4baa20521fe4d9a7067.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MOctMesh.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c41xjqe630jml" 6 | path="res://.godot/imported/MOctMesh.svg-6c645e2ef44f1dd7d9f37a7dc12056b8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MOctMesh.svg" 14 | dest_files=["res://.godot/imported/MOctMesh.svg-6c645e2ef44f1dd7d9f37a7dc12056b8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/eye_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dm8sen8o0igtx" 6 | path="res://.godot/imported/eye_icon.svg-a44c1349e79cf152d15fdf9373de534c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/eye_icon.svg" 14 | dest_files=["res://.godot/imported/eye_icon.svg-a44c1349e79cf152d15fdf9373de534c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/save_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dj86rx42xt6wc" 6 | path="res://.godot/imported/save_icon.svg-1bd5835ef7201c14e61b40f3cb921cf8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/save_icon.svg" 14 | dest_files=["res://.godot/imported/save_icon.svg-1bd5835ef7201c14e61b40f3cb921cf8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/sort_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://8qcyrpxdy2po" 6 | path="res://.godot/imported/sort_icon.svg-a008df8aff081936f6df9bcbb1f75084.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/sort_icon.svg" 14 | dest_files=["res://.godot/imported/sort_icon.svg-a008df8aff081936f6df9bcbb1f75084.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/tag_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bo00mqw6wv8av" 6 | path="res://.godot/imported/tag_icon.svg-159d1080cf593482efade2f23bf8293c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/tag_icon.svg" 14 | dest_files=["res://.godot/imported/tag_icon.svg-159d1080cf593482efade2f23bf8293c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/tick_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://o6bjob1w4w0w" 6 | path="res://.godot/imported/tick_icon.svg-754ddccc6a1d73647cf677771d30998e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/tick_icon.svg" 14 | dest_files=["res://.godot/imported/tick_icon.svg-754ddccc6a1d73647cf677771d30998e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/walk_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://2dpvr41alpt8" 6 | path="res://.godot/imported/walk_icon.svg-18243c4282b1183d699db0b62b64ff9f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/walk_icon.svg" 14 | dest_files=["res://.godot/imported/walk_icon.svg-18243c4282b1183d699db0b62b64ff9f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MCurveMesh.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://daq4pwgpj56qq" 6 | path="res://.godot/imported/MCurveMesh.svg-280f382b644e3514080bf343dda9b4e3.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MCurveMesh.svg" 14 | dest_files=["res://.godot/imported/MCurveMesh.svg-280f382b644e3514080bf343dda9b4e3.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/depth_test.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b2edfbh3q6uh2" 6 | path="res://.godot/imported/depth_test.svg-97161f5b845c2fb919fec980e5e322f7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/depth_test.svg" 14 | dest_files=["res://.godot/imported/depth_test.svg-97161f5b845c2fb919fec980e5e322f7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/hlod_scene.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cbdu2j1j6r76t" 6 | path="res://.godot/imported/hlod_scene.svg-b366b5c58d220e429754c3df7a83bcb5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/hlod_scene.svg" 14 | dest_files=["res://.godot/imported/hlod_scene.svg-b366b5c58d220e429754c3df7a83bcb5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/scale_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c5yiqj08mgihl" 6 | path="res://.godot/imported/scale_icon.svg-eb28979468b0fee5c83ef39a2a53b120.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/scale_icon.svg" 14 | dest_files=["res://.godot/imported/scale_icon.svg-eb28979468b0fee5c83ef39a2a53b120.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /gdextension/src/octmesh/mmesh_lod.h: -------------------------------------------------------------------------------- 1 | #ifndef _MMESH_LOD 2 | #define _MMESH_LOD 3 | 4 | 5 | #include 6 | #include 7 | 8 | using namespace godot; 9 | 10 | 11 | class MMeshLod : public Resource { 12 | GDCLASS(MMeshLod,Resource); 13 | 14 | protected: 15 | static void _bind_methods(); 16 | 17 | private: 18 | TypedArray meshes; 19 | 20 | 21 | public: 22 | MMeshLod(); 23 | ~MMeshLod(); 24 | RID get_mesh_rid(int8_t lod); 25 | RID get_mesh_rid_last(int8_t lod); 26 | Ref get_mesh(int8_t lod); 27 | Ref get_mesh_last(int8_t lod); 28 | Ref get_last_valid_mesh(); 29 | void set_meshes(TypedArray input); 30 | TypedArray get_meshes() const; 31 | 32 | 33 | bool _set(const StringName &p_name, const Variant &p_value); 34 | bool _get(const StringName &p_name, Variant &r_ret) const; 35 | void _get_property_list(List *p_list) const; 36 | bool _property_can_revert(const StringName &p_name) const; 37 | }; 38 | #endif -------------------------------------------------------------------------------- /icons/eye.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://fj1va27m7i5e" 6 | path="res://.godot/imported/eye.svg-5e00ddd1c83a88b12fc1c98b9d413b7e.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/eye.svg" 15 | dest_files=["res://.godot/imported/eye.svg-5e00ddd1c83a88b12fc1c98b9d413b7e.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/filter_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://chlti18m8qfsx" 6 | path="res://.godot/imported/filter_icon.svg-5925f443f2dc3e37033249266dff1b8b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/filter_icon.svg" 14 | dest_files=["res://.godot/imported/filter_icon.svg-5925f443f2dc3e37033249266dff1b8b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/hlod_node3d.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cmmbxqsmr2tbx" 6 | path="res://.godot/imported/hlod_node3d.svg-241b4fceffb86b95f16b22b5ba5f10bf.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/hlod_node3d.svg" 14 | dest_files=["res://.godot/imported/hlod_node3d.svg-241b4fceffb86b95f16b22b5ba5f10bf.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/lock.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://jw6maiih4qf8" 6 | path="res://.godot/imported/lock.svg-11d5771bf3a1e0eba9bcc0935adf2b7e.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/lock.svg" 15 | dest_files=["res://.godot/imported/lock.svg-11d5771bf3a1e0eba9bcc0935adf2b7e.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/object_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://7x5eqhsdnk4w" 6 | path="res://.godot/imported/object_icon.svg-08f3286e6c597a02d8888ef1683b0fd9.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/object_icon.svg" 14 | dest_files=["res://.godot/imported/object_icon.svg-08f3286e6c597a02d8888ef1683b0fd9.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/rotate_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://8bsyqbwgdlor" 6 | path="res://.godot/imported/rotate_icon.svg-e241df3614f638f91b3ebc8fed65a07a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/rotate_icon.svg" 14 | dest_files=["res://.godot/imported/rotate_icon.svg-e241df3614f638f91b3ebc8fed65a07a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/search_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bq8ier4u23etm" 6 | path="res://.godot/imported/search_icon.svg-3266e0a0e9325cdab1351905a6290a45.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/search_icon.svg" 14 | dest_files=["res://.godot/imported/search_icon.svg-3266e0a0e9325cdab1351905a6290a45.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MIntersection.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://0xbn4pydp1uw" 6 | path="res://.godot/imported/MIntersection.svg-e6fd1a4b5802f101afb5aa3697dac3a6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MIntersection.svg" 14 | dest_files=["res://.godot/imported/MIntersection.svg-e6fd1a4b5802f101afb5aa3697dac3a6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/hbaker_guest.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dmvrvgtsm4b80" 6 | path="res://.godot/imported/hbaker_guest.svg-058806a964ecca66e3cc4beb335dd266.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/hbaker_guest.svg" 14 | dest_files=["res://.godot/imported/hbaker_guest.svg-058806a964ecca66e3cc4beb335dd266.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/hmasset_mesh.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bxqvc8yk6aa7i" 6 | path="res://.godot/imported/hmasset_mesh.svg-af0af7c9a2238678f203836273444b37.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/hmasset_mesh.svg" 14 | dest_files=["res://.godot/imported/hmasset_mesh.svg-af0af7c9a2238678f203836273444b37.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/packed_scene.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b3c7sde5pvg7x" 6 | path="res://.godot/imported/packed_scene.svg-c556f5f2d9923700beac0c70e76e94c1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/packed_scene.svg" 14 | dest_files=["res://.godot/imported/packed_scene.svg-c556f5f2d9923700beac0c70e76e94c1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/paint.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bv66xmw5mis4k" 6 | path="res://.godot/imported/paint.svg-cc3eae7fd8485a70abf8ca51b9d99e5e.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/paint.svg" 15 | dest_files=["res://.godot/imported/paint.svg-cc3eae7fd8485a70abf8ca51b9d99e5e.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/physics_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://da03coo0w347n" 6 | path="res://.godot/imported/physics_icon.svg-49f9fe77f5412ef95e99ba4e0fc155a7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/physics_icon.svg" 14 | dest_files=["res://.godot/imported/physics_icon.svg-49f9fe77f5412ef95e99ba4e0fc155a7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/MCurveInstance.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cb33xb8nlshsx" 6 | path="res://.godot/imported/MCurveInstance.svg-72c7a0589eb4991110ba9948ca2b4db6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/MCurveInstance.svg" 14 | dest_files=["res://.godot/imported/MCurveInstance.svg-72c7a0589eb4991110ba9948ca2b4db6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/grouping_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ccomudiismbqn" 6 | path="res://.godot/imported/grouping_icon.svg-7c39d95e88f4fcc392e6a7b2947ca15c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/grouping_icon.svg" 14 | dest_files=["res://.godot/imported/grouping_icon.svg-7c39d95e88f4fcc392e6a7b2947ca15c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/slider_grabber.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bxeg3w2i6m1dd" 6 | path="res://.godot/imported/slider_grabber.svg-29e6a9dfa935cd5e9316051ef5634bfc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/slider_grabber.svg" 14 | dest_files=["res://.godot/imported/slider_grabber.svg-29e6a9dfa935cd5e9316051ef5634bfc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/snap_grid_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cjpbohf3ons87" 6 | path="res://.godot/imported/snap_grid_icon.svg-76c2a3535bb515e8012337e18901f73e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/snap_grid_icon.svg" 14 | dest_files=["res://.godot/imported/snap_grid_icon.svg-76c2a3535bb515e8012337e18901f73e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/collapse_normal.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ch4p2bk5wx574" 6 | path="res://.godot/imported/collapse_normal.svg-d8d1dce8af952d8e5bce0cd73bca1c22.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/collapse_normal.svg" 14 | dest_files=["res://.godot/imported/collapse_normal.svg-d8d1dce8af952d8e5bce0cd73bca1c22.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=0.15 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/eye_hidden_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c8msryj1s2vke" 6 | path="res://.godot/imported/eye_hidden_icon.svg-833112f8112054d69d35484e3d112f55.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/eye_hidden_icon.svg" 14 | dest_files=["res://.godot/imported/eye_hidden_icon.svg-833112f8112054d69d35484e3d112f55.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/eye_off.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://27ttt2n4h3nb" 6 | path="res://.godot/imported/eye_off.svg-b0753f76ac04a2ad05a50fd41ae7f21f.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/eye_off.svg" 15 | dest_files=["res://.godot/imported/eye_off.svg-b0753f76ac04a2ad05a50fd41ae7f21f.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/mdecal_instance.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b2v0cytebd28h" 6 | path="res://.godot/imported/mdecal_instance.svg-c5407b1b5b99d56612b6efb2f7c55bd0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/mdecal_instance.svg" 14 | dest_files=["res://.godot/imported/mdecal_instance.svg-c5407b1b5b99d56612b6efb2f7c55bd0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/collapse_pressed.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c5ca7hy0hp07k" 6 | path="res://.godot/imported/collapse_pressed.svg-7b3fd37530cf2e62535b5cc40005e9f8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/collapse_pressed.svg" 14 | dest_files=["res://.godot/imported/collapse_pressed.svg-7b3fd37530cf2e62535b5cc40005e9f8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=0.12 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/edit_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://s6jqtql0r2bw" 6 | path="res://.godot/imported/edit_icon.svg-0d72b21fa8822a5c6e1045524384b0c7.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/edit_icon.svg" 15 | dest_files=["res://.godot/imported/edit_icon.svg-0d72b21fa8822a5c6e1045524384b0c7.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/raise_brush_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://5i1jry2pnvsj" 6 | path="res://.godot/imported/raise_brush_icon.svg-ee8613b8f51cc9c183fe3c0e54296441.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/raise_brush_icon.svg" 14 | dest_files=["res://.godot/imported/raise_brush_icon.svg-ee8613b8f51cc9c183fe3c0e54296441.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/rotation.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cjs22nfbjl71l" 6 | path="res://.godot/imported/rotation.svg-5da06ade55b907392c07caeb6c805099.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/rotation.svg" 15 | dest_files=["res://.godot/imported/rotation.svg-5da06ade55b907392c07caeb6c805099.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /asset_manager/post_import_update_bakers_and_hlod.gd: -------------------------------------------------------------------------------- 1 | extends Object 2 | 3 | static func get_baker_scene_list(root = MAssetTable.get_editor_baker_scenes_dir()): 4 | var result = [] 5 | for dir in DirAccess.get_directories_at(root): 6 | var current_dir = root.path_join(dir) 7 | result.append_array( DirAccess.get_files_at( current_dir )) 8 | result.append_array(get_baker_scene_list(current_dir)) 9 | return result 10 | 11 | static func is_collection_in_baker(baker_path, collection_id): 12 | var baker:PackedScene = load(baker_path) 13 | var state: SceneState = baker.get_state() 14 | for node_id in state.get_node_count(): 15 | for prop_id in state.get_node_property_count(node_id): 16 | if state.get_node_property_name(node_id, prop_id) == "collection_id": 17 | if state.get_node_property_value(node_id, prop_id) == collection_id: 18 | return true 19 | 20 | static func update_bakers(collection_ids := []): 21 | for path in get_baker_scene_list(): 22 | for collection_id in collection_ids: 23 | if is_collection_in_baker(path, collection_id): 24 | pass # rebake 25 | -------------------------------------------------------------------------------- /gui/layers_title.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://dm30obl3srq6t"] 2 | 3 | [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_46wdk"] 4 | bg_color = Color(0.329412, 0.329412, 0.329412, 1) 5 | border_width_left = 2 6 | border_width_top = 2 7 | border_width_right = 2 8 | border_width_bottom = 2 9 | border_color = Color(0, 0, 0, 1) 10 | 11 | [node name="layers_title" type="Label"] 12 | anchors_preset = 10 13 | anchor_right = 1.0 14 | offset_bottom = 30.0 15 | grow_horizontal = 2 16 | theme_override_colors/font_color = Color(0.882353, 0.905882, 0.529412, 1) 17 | theme_override_colors/font_shadow_color = Color(0.160784, 0.305882, 0, 1) 18 | theme_override_colors/font_outline_color = Color(0.0705882, 0.0627451, 0.0196078, 1) 19 | theme_override_constants/shadow_offset_x = 1 20 | theme_override_constants/shadow_offset_y = 3 21 | theme_override_constants/outline_size = 5 22 | theme_override_constants/shadow_outline_size = 5 23 | theme_override_font_sizes/font_size = 16 24 | theme_override_styles/normal = SubResource("StyleBoxFlat_46wdk") 25 | text = "Splatmap" 26 | horizontal_alignment = 1 27 | -------------------------------------------------------------------------------- /icons/eye-close.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://boqh1mh7el3o4" 6 | path="res://.godot/imported/eye-close.svg-604b8b623900231b051ae353abe040f1.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/eye-close.svg" 15 | dest_files=["res://.godot/imported/eye-close.svg-604b8b623900231b051ae353abe040f1.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/icon_close.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://t8tdan3853oy" 6 | path="res://.godot/imported/icon_close.svg-b99ee13d9ea79d2266b745bfab188365.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/icon_close.svg" 15 | dest_files=["res://.godot/imported/icon_close.svg-b99ee13d9ea79d2266b745bfab188365.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/save_icon_disable.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://btn8tgu2yhlxj" 6 | path="res://.godot/imported/save_icon_disable.svg-617bf87679baadf262a3b5977269a03e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/save_icon_disable.svg" 14 | dest_files=["res://.godot/imported/save_icon_disable.svg-617bf87679baadf262a3b5977269a03e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/eraser_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b05yfhvcm8ehe" 6 | path="res://.godot/imported/eraser_icon.svg-3ebb193a8538721051362a5a54652331.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/eraser_icon.svg" 15 | dest_files=["res://.godot/imported/eraser_icon.svg-3ebb193a8538721051362a5a54652331.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/invert_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c7p5vijgoev7o" 6 | path="res://.godot/imported/invert_icon.svg-eb6168f9f5a3d00bab7a574e227c8c42.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/invert_icon.svg" 15 | dest_files=["res://.godot/imported/invert_icon.svg-eb6168f9f5a3d00bab7a574e227c8c42.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/magnet_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ckbvdmvbcxfb6" 6 | path="res://.godot/imported/magnet_icon.svg-d2c33a6be3fd993789e8360de5238e95.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/magnet_icon.svg" 15 | dest_files=["res://.godot/imported/magnet_icon.svg-d2c33a6be3fd993789e8360de5238e95.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/mirror_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c64direekaeap" 6 | path="res://.godot/imported/mirror_icon.svg-2c71e160a9f39f6427b0dcee4f5de248.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/mirror_icon.svg" 15 | dest_files=["res://.godot/imported/mirror_icon.svg-2c71e160a9f39f6427b0dcee4f5de248.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/reverse_brush_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://byb7ewq1mckcf" 6 | path="res://.godot/imported/reverse_brush_icon.svg-0b1bf8352bb6eeb0118ce8bcc82d1095.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/reverse_brush_icon.svg" 14 | dest_files=["res://.godot/imported/reverse_brush_icon.svg-0b1bf8352bb6eeb0118ce8bcc82d1095.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/scale_disabled_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://es81s75t7i2n" 6 | path="res://.godot/imported/scale_disabled_icon.svg-1b928acecda5638618292749a18cbf34.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/scale_disabled_icon.svg" 14 | dest_files=["res://.godot/imported/scale_disabled_icon.svg-1b928acecda5638618292749a18cbf34.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /gui/mtools_keyboard_shortcut_item.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends HBoxContainer 3 | 4 | signal keymap_changed 5 | 6 | @onready var label = $Label 7 | @onready var value = $Button 8 | 9 | var waiting_for_input = false 10 | 11 | func _ready(): 12 | value.pressed.connect(begin_remap) 13 | 14 | func begin_remap(): 15 | value.text = "...waiting for input..." 16 | waiting_for_input = true 17 | 18 | func _input(event): 19 | if waiting_for_input and event is InputEventKey and event.pressed: 20 | if event.keycode in [KEY_SHIFT, KEY_CTRL, KEY_ALT]: 21 | return 22 | var new_text = "" 23 | if Input.is_key_pressed(KEY_CTRL): 24 | new_text += "ctrl " 25 | if Input.is_key_pressed(KEY_ALT): 26 | if new_text != "": 27 | new_text += "+ " 28 | new_text += "alt " 29 | if Input.is_key_pressed(KEY_SHIFT): 30 | if new_text != "": 31 | new_text += "+ " 32 | new_text += "shift " 33 | value.text = OS.get_keycode_string(event.keycode) 34 | keymap_changed.emit(name, event.keycode, Input.is_key_pressed(KEY_CTRL), Input.is_key_pressed(KEY_ALT), Input.is_key_pressed(KEY_SHIFT) ) 35 | -------------------------------------------------------------------------------- /icons/connect_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cylua0xddvmx7" 6 | path="res://.godot/imported/connect_icon.svg-d1088624f93fcfbeb3c8af14d05278f4.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/connect_icon.svg" 15 | dest_files=["res://.godot/imported/connect_icon.svg-d1088624f93fcfbeb3c8af14d05278f4.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/no_mask_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://rtqaiuii2jml" 6 | path="res://.godot/imported/no_mask_icon.svg-e96d0ec2694647e6436fd3bb35cec387.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/no_mask_icon.svg" 15 | dest_files=["res://.godot/imported/no_mask_icon.svg-e96d0ec2694647e6436fd3bb35cec387.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/rotate_disabled_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bpu07pul55tyv" 6 | path="res://.godot/imported/rotate_disabled_icon.svg-f310956a0cf19723fe90dd73e32be5a8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/rotate_disabled_icon.svg" 14 | dest_files=["res://.godot/imported/rotate_disabled_icon.svg-f310956a0cf19723fe90dd73e32be5a8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/sculpt_terrain.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://kmamiw46mftf" 6 | path="res://.godot/imported/sculpt_terrain.svg-6bb3c406d1a6169745d9a508fbf101e8.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/sculpt_terrain.svg" 15 | dest_files=["res://.godot/imported/sculpt_terrain.svg-6bb3c406d1a6169745d9a508fbf101e8.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/settings_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bw2njdr7ynhtk" 6 | path="res://.godot/imported/settings_icon.svg-3542b39b807f7b578dc7af22d8ab8fd7.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/settings_icon.svg" 15 | dest_files=["res://.godot/imported/settings_icon.svg-3542b39b807f7b578dc7af22d8ab8fd7.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/automatic_refresh_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://iahhl7yao2v3" 6 | path="res://.godot/imported/automatic_refresh_icon.svg-932df638d74113b734d7e1ed26585abd.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/automatic_refresh_icon.svg" 14 | dest_files=["res://.godot/imported/automatic_refresh_icon.svg-932df638d74113b734d7e1ed26585abd.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/brush_icon_hole.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://buiuytfb4jvss" 6 | path="res://.godot/imported/brush_icon_hole.svg-da0c0c66eb715324c938425f9a907c30.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/brush_icon_hole.svg" 15 | dest_files=["res://.godot/imported/brush_icon_hole.svg-da0c0c66eb715324c938425f9a907c30.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/disconnect_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bnafvu7s1g7dn" 6 | path="res://.godot/imported/disconnect_icon.svg-6d904c9ba1a378a0fc99a8e77f80643f.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/disconnect_icon.svg" 15 | dest_files=["res://.godot/imported/disconnect_icon.svg-6d904c9ba1a378a0fc99a8e77f80643f.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/human_disabled.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dgjegrn8jhlf6" 6 | path="res://.godot/imported/human_disabled.svg-98942ec12f6b8681850779552b3951f1.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/human_disabled.svg" 15 | dest_files=["res://.godot/imported/human_disabled.svg-98942ec12f6b8681850779552b3951f1.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/merge_down_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://tow1rj13cxaw" 6 | path="res://.godot/imported/merge_down_icon.svg-5bb88917ab333f03f5916d99f04806eb.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/merge_down_icon.svg" 15 | dest_files=["res://.godot/imported/merge_down_icon.svg-5bb88917ab333f03f5916d99f04806eb.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/brush_icon_raise.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://hr610g6qg0ch" 6 | path="res://.godot/imported/brush_icon_raise.svg-70bccca072e213e6a11ff9b1170556dd.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/brush_icon_raise.svg" 15 | dest_files=["res://.godot/imported/brush_icon_raise.svg-70bccca072e213e6a11ff9b1170556dd.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/snap_grid_disabled_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c1x4hadtg1807" 6 | path="res://.godot/imported/snap_grid_disabled_icon.svg-5787e6dd8a8afa5377cc8ac193db48c0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/snap_grid_disabled_icon.svg" 14 | dest_files=["res://.godot/imported/snap_grid_disabled_icon.svg-5787e6dd8a8afa5377cc8ac193db48c0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/brush_icon_smooth.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b8el0qgadshql" 6 | path="res://.godot/imported/brush_icon_smooth.svg-f4f00802d78089d1ae75693d4e9ee168.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/brush_icon_smooth.svg" 15 | dest_files=["res://.godot/imported/brush_icon_smooth.svg-f4f00802d78089d1ae75693d4e9ee168.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/merge_layers_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://6ibn1gduso81" 6 | path="res://.godot/imported/merge_layers_icon.svg-a7f760c4101101940d873cf31df839a3.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/merge_layers_icon.svg" 15 | dest_files=["res://.godot/imported/merge_layers_icon.svg-a7f760c4101101940d873cf31df839a3.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/more_options_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b4ylxie43lan2" 6 | path="res://.godot/imported/more_options_icon.svg-1578d91250f3678ea66fd07a3541675c.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/more_options_icon.svg" 15 | dest_files=["res://.godot/imported/more_options_icon.svg-1578d91250f3678ea66fd07a3541675c.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/toggle_connection.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c32td7i377ewu" 6 | path="res://.godot/imported/toggle_connection.svg-98488a96328727a238b1a03a7b759541.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/toggle_connection.svg" 15 | dest_files=["res://.godot/imported/toggle_connection.svg-98488a96328727a238b1a03a7b759541.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/invert_icon_normal.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b8xvuorm57o1s" 6 | path="res://.godot/imported/invert_icon_normal.svg-f1e1461b6de05d53eb1e8e9d8c63958a.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/invert_icon_normal.svg" 15 | dest_files=["res://.godot/imported/invert_icon_normal.svg-f1e1461b6de05d53eb1e8e9d8c63958a.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/brush_icon_to_height.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://lwsbiudya0cf" 6 | path="res://.godot/imported/brush_icon_to_height.svg-3cb709c7ba0d22b01ac9c4cbd7f29bd0.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/brush_icon_to_height.svg" 15 | dest_files=["res://.godot/imported/brush_icon_to_height.svg-3cb709c7ba0d22b01ac9c4cbd7f29bd0.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/invert_icon_inverted.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://tmhtthjk2rb4" 6 | path="res://.godot/imported/invert_icon_inverted.svg-e5266d0a91ee17e04b50c0af5609da53.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/invert_icon_inverted.svg" 15 | dest_files=["res://.godot/imported/invert_icon_inverted.svg-e5266d0a91ee17e04b50c0af5609da53.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /icons/slider_grabber_highlight_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b0m46wjnrfder" 6 | path="res://.godot/imported/slider_grabber_highlight_icon.svg-b8a8342e31fd5797cca85da080966fc9.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/m_terrain/icons/slider_grabber_highlight_icon.svg" 14 | dest_files=["res://.godot/imported/slider_grabber_highlight_icon.svg-b8a8342e31fd5797cca85da080966fc9.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /icons/switch_direction_icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ckrq26s3bkih3" 6 | path="res://.godot/imported/switch_direction_icon.svg-685456fe990114ea89d3df8486e9ed04.ctex" 7 | metadata={ 8 | "has_editor_variant": true, 9 | "vram_texture": false 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/m_terrain/icons/switch_direction_icon.svg" 15 | dest_files=["res://.godot/imported/switch_direction_icon.svg-685456fe990114ea89d3df8486e9ed04.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=0 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=false 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=1 36 | svg/scale=1.0 37 | editor/scale_with_editor_scale=true 38 | editor/convert_colors_with_editor_theme=true 39 | -------------------------------------------------------------------------------- /gizmos/mcurve_mesh_gui.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://b76ioum2i7yjy"] 2 | 3 | [ext_resource type="Script" uid="uid://creqec55xp0sw" path="res://addons/m_terrain/gizmos/mcurve_mesh_gui.gd" id="1_16uhh"] 4 | 5 | [node name="mcurve_mesh" type="HBoxContainer"] 6 | anchors_preset = 15 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | grow_horizontal = 2 10 | grow_vertical = 2 11 | script = ExtResource("1_16uhh") 12 | 13 | [node name="active" type="CheckBox" parent="."] 14 | layout_mode = 2 15 | text = "Modify" 16 | 17 | [node name="segment_select" type="OptionButton" parent="."] 18 | visible = false 19 | layout_mode = 2 20 | 21 | [node name="socket_select" type="OptionButton" parent="."] 22 | visible = false 23 | layout_mode = 2 24 | 25 | [connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"] 26 | [connection signal="toggled" from="active" to="." method="_on_active_toggled"] 27 | [connection signal="item_selected" from="segment_select" to="." method="_on_segment_select_item_selected"] 28 | [connection signal="item_selected" from="socket_select" to="." method="_on_socket_select_item_selected"] 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 mohsenph69 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /gdextension/src/color_brushes/mpaint_256.cpp: -------------------------------------------------------------------------------- 1 | #include "mpaint_256.h" 2 | 3 | 4 | String MPaint256::_get_name(){ 5 | return "Paint 256"; 6 | } 7 | void MPaint256::_set_property(String prop_name, Variant value){ 8 | if(prop_name=="paint-layer"){ 9 | int tmp = value; 10 | paint_layer = tmp; 11 | } 12 | } 13 | bool MPaint256::is_two_point_brush(){ 14 | return false; 15 | } 16 | void MPaint256::before_draw(){ 17 | 18 | } 19 | void MPaint256::set_color(uint32_t local_x,uint32_t local_y,uint32_t x,uint32_t y,MImage* img){ 20 | //Calculating w 21 | float dx = (float)UABS_DIFF(x,grid->brush_px_pos_x); 22 | float dy = (float)UABS_DIFF(y,grid->brush_px_pos_y); 23 | float px_dis = sqrt(dx*dx + dy*dy); 24 | // setting color 25 | const uint8_t* ptr = grid->get_pixel_by_pointer(x,y,grid->current_paint_index); 26 | uint32_t ofs = (local_y*img->width + local_x)*img->pixel_size; 27 | uint8_t* ptrw = img->data.ptrw() + ofs; 28 | memcpy(ptrw, ptr, img->pixel_size); 29 | if(px_dis<(float)grid->brush_px_radius && grid->get_brush_mask_value_bool(x,y)){ 30 | ptrw[0]=paint_layer; 31 | } 32 | } --------------------------------------------------------------------------------