feat: edit entries

This commit is contained in:
LunarAkai 2025-06-30 23:50:48 +02:00
commit 3d87fd8fcb
30 changed files with 519 additions and 6 deletions

View file

@ -0,0 +1,16 @@
@tool
class_name HeaderFormat extends Resource
@export var font_size: float = 2.5 : set = _set_font_size
@export var is_bold: bool = false
@export var is_italic: bool = false
@export var is_unterlined: bool = false
@export var font_color: Color = Color.WHITE
func _init() -> void:
resource_local_to_scene = true
func _set_font_size(new_font_size: float) -> void:
font_size = new_font_size
emit_changed()

View file

@ -0,0 +1 @@
uid://ditc3t85lnt0q

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>

After

Width:  |  Height:  |  Size: 994 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ngkmg8gqx5nw"
path="res://.godot/imported/icon.svg-e8bff433ae193df07631b878b5446367.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/markdown_text_edit/icon.svg"
dest_files=["res://.godot/imported/icon.svg-e8bff433ae193df07631b878b5446367.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,27 @@
class_name MarkdownTextEdit extends TextEdit
@export var h1 = HeaderFormat.new() : set = _set_h1_format
var _converted_text: String
func _ready() -> void:
h1.changed.connect(_update)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _update() -> void:
text = _convert_markdown(markdown_text)
queue_redraw()
func _set_h1_format(new_format: HeaderFormat) -> void:
h1 = new_format
_update()
func _convert_markdown(text: String = "") -> String:
_converted_text = ""
var lines = text.split("\n")

View file

@ -0,0 +1 @@
uid://c1xscjw1psr0s

View file

@ -0,0 +1,7 @@
[plugin]
name="MarkdownTextEdit"
description="A custom node for adding a Markdown Text Edit Node"
author="LunarAkai"
version="0.1.0"
script="plugin.gd"

View file

@ -0,0 +1,15 @@
@tool
extends EditorPlugin
func _enter_tree() -> void:
# Initialization of the plugin goes here.
add_custom_type("MarkdownTextEdit", "TextEdit", preload("markdown_text_edit.gd"), null)
func _exit_tree() -> void:
# Clean-up of the plugin goes here.
remove_custom_type("MarkdownTextEdit")

View file

@ -0,0 +1 @@
uid://eutnj6toxhhs

View file

@ -32,6 +32,10 @@ window/size/transparent=true
window/subwindows/embed_subwindows=false
window/per_pixel_transparency/allowed=true
[editor_plugins]
enabled=PackedStringArray("res://addons/markdown_text_edit/plugin.cfg")
[rendering]
renderer/rendering_method="gl_compatibility"

View file

@ -1,6 +1,10 @@
extends Node
signal settings_window_closed
signal edit_window_closed
signal edit_window_requested(text: String)
signal edit_window_text_saved(text: String)
signal main_panel_color_changed(color: Color)
signal main_window_color_changed(color: Color)
signal side_panel_color_changed(color: Color)

38
src/UI/done_box.gd Normal file
View file

@ -0,0 +1,38 @@
extends HBoxContainer
@export var edit_menu: PackedScene
@export var options_menu: MenuButton
@export var entry_text_box: RichTextLabel
var instantiated_menu
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
options_menu.get_popup().id_pressed.connect(_on_index_pressed)
SignalBus.edit_window_text_saved.connect(on_edit_window_text_save)
SignalBus.edit_window_closed.connect(on_edit_window_closed)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_index_pressed(index:int) -> void:
print(index)
if index == 0:
instantiated_menu = edit_menu.instantiate()
add_child(instantiated_menu)
SignalBus.edit_window_requested.emit(entry_text_box.text)
if index == 1:
queue_free()
func on_edit_window_text_save(text: String) -> void:
entry_text_box.text = text
func on_edit_window_closed() -> void:
instantiated_menu.queue_free()

1
src/UI/done_box.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://buvowannsky2u

View file

@ -0,0 +1,12 @@
extends MenuButton
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View file

@ -0,0 +1 @@
uid://hx7vjovdnudk

29
src/UI/editmenu.gd Normal file
View file

@ -0,0 +1,29 @@
extends Window
@export var text_edit: TextEdit
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
SignalBus.edit_window_requested.connect(on_edit_window_requested)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_close_requested() -> void:
SignalBus.edit_window_closed.emit()
func on_edit_window_requested(text: String) -> void:
text_edit.text = text
func _on_cancel_button_button_down() -> void:
SignalBus.edit_window_closed.emit()
func _on_save_button_button_down() -> void:
SignalBus.edit_window_text_saved.emit(text_edit.text)
SignalBus.edit_window_closed.emit()

1
src/UI/editmenu.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://cdkqu7he8lkb6

58
src/UI/editmenu.tscn Normal file
View file

@ -0,0 +1,58 @@
[gd_scene load_steps=4 format=3 uid="uid://dcifyvgobrvp5"]
[ext_resource type="Script" uid="uid://cdkqu7he8lkb6" path="res://src/UI/editmenu.gd" id="1_qmobg"]
[ext_resource type="Texture2D" uid="uid://bpvgbghct7ayv" path="res://src/assets/icons/x.svg" id="2_lut1q"]
[ext_resource type="Texture2D" uid="uid://cbj48abbpldb" path="res://src/assets/icons/device-floppy.svg" id="3_i6crh"]
[node name="Control" type="Window" node_paths=PackedStringArray("text_edit")]
title = "Edit Entry"
initial_position = 1
size = Vector2i(600, 300)
exclusive = true
script = ExtResource("1_qmobg")
text_edit = NodePath("Panel/MarginContainer/VBoxContainer/TextEdit")
[node name="Panel" type="Panel" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="MarginContainer" type="MarginContainer" parent="Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/MarginContainer"]
layout_mode = 2
[node name="TextEdit" type="TextEdit" parent="Panel/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
wrap_mode = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
[node name="CancelButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Cancel"
icon = ExtResource("2_lut1q")
[node name="SaveButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Save"
icon = ExtResource("3_i6crh")
[connection signal="close_requested" from="." to="." method="_on_close_requested"]
[connection signal="button_down" from="Panel/MarginContainer/VBoxContainer/HBoxContainer/CancelButton" to="." method="_on_cancel_button_button_down"]
[connection signal="button_down" from="Panel/MarginContainer/VBoxContainer/HBoxContainer/SaveButton" to="." method="_on_save_button_button_down"]

View file

@ -139,6 +139,7 @@ size_flags_vertical = 3
script = ExtResource("5_05tj4")
current_active_panel = NodePath("MainPanel")
container_collection_box = NodePath("Panel/MarginContainer/ScrollContainer/ContainerBox")
main_panel_scene = ExtResource("9_cqoei")
[node name="Panel" type="Panel" parent="Panel/VBoxContainer/UIManager"]
custom_minimum_size = Vector2(200, 0)

View file

@ -4,10 +4,14 @@ class_name MainPanel extends ScrollContainer
@export var style_box: StyleBoxFlat
@export var panel_main_color: Color
var id: int = 1
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
panel_main_color = style_box.bg_color
create_panel_name()
SignalBus.main_panel_color_changed.connect(_on_main_panel_color_changed)
# Called every frame. 'delta' is the elapsed time since the previous frame.
@ -18,3 +22,9 @@ func _process(delta: float) -> void:
func _on_main_panel_color_changed(color: Color):
style_box.bg_color = color
func create_panel_name() -> void:
var panel_name: String = "Container %d" % id
container_name_label.text = panel_name

View file

@ -1,9 +1,15 @@
[gd_scene load_steps=5 format=3 uid="uid://cirolvhfd455u"]
[gd_scene load_steps=11 format=3 uid="uid://cirolvhfd455u"]
[ext_resource type="Theme" uid="uid://bal6yp0a25hf2" path="res://src/theme/main_theme.tres" id="1_c0dr6"]
[ext_resource type="Script" uid="uid://bmsw85eprqln1" path="res://src/UI/main_panel.gd" id="2_5qsb6"]
[ext_resource type="StyleBox" uid="uid://b7rqx5hwj7wff" path="res://src/UI/main_panel.tres" id="3_enj05"]
[ext_resource type="Script" uid="uid://b4q5pgorn5osd" path="res://src/UI/m_panel.gd" id="4_1citv"]
[ext_resource type="Texture2D" uid="uid://dof65a47bfapk" path="res://src/assets/icons/library-plus.svg" id="5_1citv"]
[ext_resource type="Texture2D" uid="uid://c1ccasyx80msg" path="res://src/assets/icons/dots-vertical.svg" id="5_bb2jg"]
[ext_resource type="Script" uid="uid://buvowannsky2u" path="res://src/UI/done_box.gd" id="5_w3kqg"]
[ext_resource type="PackedScene" uid="uid://dcifyvgobrvp5" path="res://src/UI/editmenu.tscn" id="6_qxra8"]
[ext_resource type="Texture2D" uid="uid://s3vf3vhl8y3e" path="res://src/assets/icons/trash.svg" id="7_8bhwf"]
[ext_resource type="Texture2D" uid="uid://ne4o3drvj5vw" path="res://src/assets/icons/color-picker.svg" id="8_8bhwf"]
[node name="MainPanel" type="ScrollContainer" node_paths=PackedStringArray("container_name_label")]
anchors_preset = 15
@ -40,3 +46,83 @@ text = "Container"
fit_content = true
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator" type="HSeparator" parent="Panel/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="MarginContainer" type="MarginContainer" parent="Panel/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/VBoxContainer/MarginContainer"]
layout_mode = 2
[node name="DayContainer" type="VBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer"]
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/separation = -150
[node name="HSeparator" type="HSeparator" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10
[node name="RichTextLabel" type="RichTextLabel" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
bbcode_enabled = true
text = "[b]MM.DD.YYYY[b]"
fit_content = true
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator2" type="HSeparator" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10
[node name="DoneBox" type="HBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer" node_paths=PackedStringArray("options_menu", "entry_text_box")]
layout_mode = 2
theme_override_constants/separation = 20
script = ExtResource("5_w3kqg")
edit_menu = ExtResource("6_qxra8")
options_menu = NodePath("MenuButton")
entry_text_box = NodePath("RichTextLabel")
[node name="RichTextLabel" type="RichTextLabel" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/DoneBox"]
layout_mode = 2
size_flags_horizontal = 3
focus_mode = 2
bbcode_enabled = true
text = "Haaaalooo"
fit_content = true
context_menu_enabled = true
selection_enabled = true
[node name="MenuButton" type="MenuButton" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/DoneBox"]
layout_mode = 2
icon = ExtResource("5_bb2jg")
item_count = 2
popup/item_0/text = "Edit"
popup/item_0/icon = ExtResource("8_8bhwf")
popup/item_0/id = 0
popup/item_1/text = "Delete"
popup/item_1/icon = ExtResource("7_8bhwf")
popup/item_1/id = 1
[node name="Button" type="Button" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
theme = ExtResource("1_c0dr6")
text = "Add"
icon = ExtResource("5_1citv")
icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true

View file

@ -4,10 +4,11 @@ class_name UIManager extends HBoxContainer
@export var panel_array: Array[MainPanel] = []
@export var container_collection_box: ContainerBox
@export var main_panel_scene: PackedScene
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var text: String = "Container %d" % container_collection_box.container_id
current_active_panel.container_name_label.text = text
current_active_panel.id = 1
panel_array.append(current_active_panel)
SignalBus.on_panel_created.connect(_on_panel_created)
@ -20,11 +21,20 @@ func _process(delta: float) -> void:
func _on_panel_created() -> void:
var new_panel: MainPanel = MainPanel.new()
var new_panel: MainPanel = main_panel_scene.instantiate()
new_panel.id = panel_array.size() + 1
panel_array.append(new_panel)
func _on_panel_requested(index: int) -> void:
if current_active_panel == panel_array[index]:
print("Already active")
return
print("Panel: %d requested" % index)
current_active_panel.hide()
current_active_panel = panel_array[index]
add_child(current_active_panel)
if not current_active_panel.is_inside_tree():
add_child(current_active_panel)
else:
current_active_panel.show()

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-device-floppy"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2" /><path d="M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /><path d="M14 4l0 4l-6 0l0 -4" /></svg>

After

Width:  |  Height:  |  Size: 486 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbj48abbpldb"
path="res://.godot/imported/device-floppy.svg-196bee635b672ffa0178dd7fca5a05a1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/assets/icons/device-floppy.svg"
dest_files=["res://.godot/imported/device-floppy.svg-196bee635b672ffa0178dd7fca5a05a1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-dots-vertical"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /></svg>

After

Width:  |  Height:  |  Size: 478 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c1ccasyx80msg"
path="res://.godot/imported/dots-vertical.svg-77a2a2e2f26aa993a761e42c62684789.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/assets/icons/dots-vertical.svg"
dest_files=["res://.godot/imported/dots-vertical.svg-77a2a2e2f26aa993a761e42c62684789.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-edit"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1" /><path d="M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z" /><path d="M16 5l3 3" /></svg>

After

Width:  |  Height:  |  Size: 487 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b8jge687ywvxq"
path="res://.godot/imported/edit.svg-50f092b99a31ef59a0174f63ff97ec28.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/assets/icons/edit.svg"
dest_files=["res://.godot/imported/edit.svg-50f092b99a31ef59a0174f63ff97ec28.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-trash"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 7l16 0" /><path d="M10 11l0 6" /><path d="M14 11l0 6" /><path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12" /><path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3" /></svg>

After

Width:  |  Height:  |  Size: 492 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://s3vf3vhl8y3e"
path="res://.godot/imported/trash.svg-a7d9a96809f7fcd93ed16ffbf8de08f9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/assets/icons/trash.svg"
dest_files=["res://.godot/imported/trash.svg-a7d9a96809f7fcd93ed16ffbf8de08f9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false