Run godot --convert-3to4 (automated conversion)

Apply Godot 4.6 automated conversion: renames Spatial.translate->position,
margin_*->offset_*, tool->@tool, .empty()->.is_empty(), DynamicFont->FontFile,
onready->@onready, export()->@export, and many more.

127 files changed by the tool. Manual fixes still required for:
 - godot_db_manager plugin (incompatible APIs: WindowDialog, Tabs, etc.)
 - lod plugin (Spatial -> Node3D renames)
 - ResourceLoader.load_interactive removed -> load_threaded_request
 - OS.set_window_fullscreen removed -> DisplayServer
 - Viewport.set_size_override removed

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vaillant Jeremy
2026-05-16 19:18:27 +02:00
parent efa35a444a
commit 01ea3af253
127 changed files with 2262 additions and 2258 deletions
+1
View File
@@ -0,0 +1 @@
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 8 size = 8
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 10 size = 10
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 12 size = 12
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 14 size = 14
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,6 +1,6 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 18 size = 18
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 20 size = 20
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 22 size = 22
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 24 size = 24
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,7 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/Roboto-Regular.ttf" type="FontFile" id=1]
[resource] [resource]
size = 26 size = 26
font_data = ExtResource( 1 ) font_data = ExtResource( 1 )
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBConstants class GDDBConstants
""" """
class_name GDDBConstants class_name GDDBConstants
tool
extends Node extends Node
# GDDB signature # GDDB signature
+1 -1
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBGlobals class GDDBGlobals
""" """
class_name GDDBGlobals class_name GDDBGlobals
tool
extends Node extends Node
# a flag that tells if the tool's interface is active or not # a flag that tells if the tool's interface is active or not
+1 -1
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBTypes class GDDBTypes
""" """
class_name GDDBTypes class_name GDDBTypes
tool
extends Node extends Node
# Database loading errors # Database loading errors
+5 -3
View File
@@ -188,11 +188,11 @@ func is_dirty() -> bool :
# serialization # serialization
func save_db() -> void : func save_db() -> void :
if(m_db_name.empty()): if(m_db_name.is_empty()):
print("ERROR: GDDatabase::save_db() - current database doesn't have a name") print("ERROR: GDDatabase::save_db() - current database doesn't have a name")
return return
if(m_db_filepath.empty()): if(m_db_filepath.is_empty()):
print("ERROR: GDDatabase::save_db() - current database doesn't have a path file") print("ERROR: GDDatabase::save_db() - current database doesn't have a path file")
return return
@@ -257,7 +257,9 @@ func load_db() -> int :
file.open(get_db_filepath(), File.READ) file.open(get_db_filepath(), File.READ)
var content = file.get_as_text() var content = file.get_as_text()
file.close() file.close()
var dictionary = JSON.parse(content).result var test_json_conv = JSON.new()
test_json_conv.parse(content).result
var dictionary = test_json_conv.get_data()
# check the signature # check the signature
if(!dictionary.has(gddb_constants.c_gddb_signature)): if(!dictionary.has(gddb_constants.c_gddb_signature)):
+40 -40
View File
@@ -1,40 +1,40 @@
""" """
GDDBData class GDDBData class
""" """
class_name GDDBData class_name GDDBData
extends Object extends Object
var m_prop_id : int = -1 var m_prop_id : int = -1
var m_row_idx : int = -1 var m_row_idx : int = -1
var m_data : String = "" var m_data : String = ""
# sets the property id # sets the property id
func set_prop_id(prop_id : int) -> void : func set_prop_id(prop_id : int) -> void :
m_prop_id = prop_id m_prop_id = prop_id
# returns the property id # returns the property id
func get_prop_id() -> int : func get_prop_id() -> int :
return m_prop_id return m_prop_id
# sets the row index # sets the row index
func set_row_idx(row_idx : int) -> void : func set_row_idx(row_idx : int) -> void :
m_row_idx = row_idx m_row_idx = row_idx
# returns the row index # returns the row index
func get_row_idx() -> int : func get_row_idx() -> int :
return m_row_idx return m_row_idx
# sets the data # sets the data
func set_data(data : String) -> void : func set_data(data : String) -> void :
m_data = data m_data = data
# returns the data # returns the data
func get_data() -> String : func get_data() -> String :
return m_data return m_data
# dumps the data # dumps the data
func dump() -> String : func dump() -> String :
var dump_text = "prop_id: " + str(m_prop_id) + ", row_idx: " + str(m_row_idx) + ", data: " + m_data var dump_text = "prop_id: " + str(m_prop_id) + ", row_idx: " + str(m_row_idx) + ", data: " + m_data
return dump_text return dump_text
+141 -141
View File
@@ -1,141 +1,141 @@
""" """
GDDBMan class GDDBMan class
""" """
class_name GDDBMan class_name GDDBMan
extends Object extends Object
var m_databases = [] var m_databases = []
# adds a database # adds a database
func add_database(db_name : String) -> int : func add_database(db_name : String) -> int :
if(!can_add_db(db_name)): if(!can_add_db(db_name)):
print("ERROR: GDDBMan::add_database(" + db_name + ") already exists") print("ERROR: GDDBMan::add_database(" + db_name + ") already exists")
return gddb_constants.c_invalid_id return gddb_constants.c_invalid_id
# print("GDDBMan::add_database(" + db_name + ")") # print("GDDBMan::add_database(" + db_name + ")")
var db_id = generate_new_db_id() var db_id = generate_new_db_id()
var db = load(gddb_constants.c_addon_main_path + "core/database.gd").new() var db = load(gddb_constants.c_addon_main_path + "core/database.gd").new()
db.set_db_id(db_id) db.set_db_id(db_id)
db.set_db_name(db_name) db.set_db_name(db_name)
m_databases.push_back(db) m_databases.push_back(db)
return db_id return db_id
# loads a database from a file # loads a database from a file
func load_database(filepath : String) -> int : func load_database(filepath : String) -> int :
var db_id = generate_new_db_id() var db_id = generate_new_db_id()
var db = load(gddb_constants.c_addon_main_path + "core/database.gd").new() var db = load(gddb_constants.c_addon_main_path + "core/database.gd").new()
db.set_db_id(db_id) db.set_db_id(db_id)
db.set_db_filepath(filepath) db.set_db_filepath(filepath)
if(db.load_db() == gddb_types.e_db_invalid_file): if(db.load_db() == gddb_types.e_db_invalid_file):
db.free() db.free()
return gddb_types.e_db_invalid_file return gddb_types.e_db_invalid_file
elif(db.load_db() == gddb_types.e_db_invalid_ver): elif(db.load_db() == gddb_types.e_db_invalid_ver):
db.free() db.free()
return gddb_types.e_db_invalid_ver return gddb_types.e_db_invalid_ver
m_databases.push_back(db) m_databases.push_back(db)
return db_id return db_id
# erases a database at index # erases a database at index
# it does not erase the database file # it does not erase the database file
func erase_db_at(idx : int) -> void : func erase_db_at(idx : int) -> void :
if(idx < 0 || idx > m_databases.size() - 1): if(idx < 0 || idx > m_databases.size() - 1):
print("ERROR: GDDBMan::erase_db_at(" + str(idx) + ") - index out of bounds") print("ERROR: GDDBMan::erase_db_at(" + str(idx) + ") - index out of bounds")
m_databases[idx].clear() m_databases[idx].clear()
m_databases[idx].free() m_databases[idx].free()
m_databases.remove(idx) m_databases.remove(idx)
# erases a database by id # erases a database by id
# it does not erase the database file # it does not erase the database file
func erase_db_by_id(db_id : int) -> void : func erase_db_by_id(db_id : int) -> void :
var db_found = false var db_found = false
for idx in range(0, m_databases.size()): for idx in range(0, m_databases.size()):
if(m_databases[idx].get_db_id() == db_id): if(m_databases[idx].get_db_id() == db_id):
m_databases[idx].clear() m_databases[idx].clear()
m_databases[idx].free() m_databases[idx].free()
m_databases.remove(idx) m_databases.remove(idx)
db_found = true db_found = true
break break
if(!db_found): if(!db_found):
print("ERROR: GDDBMan::erase_db_by_id(" + str(db_id) + ") - database not found") print("ERROR: GDDBMan::erase_db_by_id(" + str(db_id) + ") - database not found")
# erases a database by name # erases a database by name
# it does not erase the database file # it does not erase the database file
func erase_db_by_name(db_name : String) -> void : func erase_db_by_name(db_name : String) -> void :
var db_found = false var db_found = false
for idx in range(0, m_databases.size()): for idx in range(0, m_databases.size()):
if(m_databases[idx].get_db_name() == db_name): if(m_databases[idx].get_db_name() == db_name):
m_databases[idx].clear() m_databases[idx].clear()
m_databases[idx].free() m_databases[idx].free()
m_databases.remove(idx) m_databases.remove(idx)
db_found = true db_found = true
break break
if(!db_found): if(!db_found):
print("ERROR: GDDBMan::erase_db_by_id(" + db_name + ") - database not found") print("ERROR: GDDBMan::erase_db_by_id(" + db_name + ") - database not found")
# returns the databases count # returns the databases count
func get_databases_count() -> int : func get_databases_count() -> int :
return m_databases.size() return m_databases.size()
# returns a database at index # returns a database at index
func get_db_at(idx : int) -> Object : func get_db_at(idx : int) -> Object :
if(idx < 0 || idx >= m_databases.size()): if(idx < 0 || idx >= m_databases.size()):
print("ERROR: GDDBMan::get_db_at(" + str(idx) + ") - invalid index") print("ERROR: GDDBMan::get_db_at(" + str(idx) + ") - invalid index")
return null return null
return m_databases[idx] return m_databases[idx]
# returns a database by an id # returns a database by an id
func get_db_by_id(db_id : int) -> Object : func get_db_by_id(db_id : int) -> Object :
for idx in range(0, m_databases.size()): for idx in range(0, m_databases.size()):
if(m_databases[idx].get_db_id() == db_id): if(m_databases[idx].get_db_id() == db_id):
return m_databases[idx] return m_databases[idx]
print("ERROR: GDDBMan::get_db_by_id(" + str(db_id) + ") - invalid id") print("ERROR: GDDBMan::get_db_by_id(" + str(db_id) + ") - invalid id")
return null return null
# returns a database by a name # returns a database by a name
func get_db_by_name(db_name : String) -> Object : func get_db_by_name(db_name : String) -> Object :
for idx in range(0, m_databases.size()): for idx in range(0, m_databases.size()):
if(m_databases[idx].get_db_name() == db_name): if(m_databases[idx].get_db_name() == db_name):
return m_databases[idx] return m_databases[idx]
return null return null
# generates a new table id # generates a new table id
func generate_new_db_id() -> int : func generate_new_db_id() -> int :
if(m_databases.size() == 0): if(m_databases.size() == 0):
return 0 return 0
return m_databases[m_databases.size()-1].get_db_id() + 1 return m_databases[m_databases.size()-1].get_db_id() + 1
# checks if a database already exists # checks if a database already exists
func can_add_db(db_name : String) -> bool : func can_add_db(db_name : String) -> bool :
for idx in range(0, m_databases.size()): for idx in range(0, m_databases.size()):
if(m_databases[idx].get_db_name() == db_name): if(m_databases[idx].get_db_name() == db_name):
print("ERROR: Database with name \"" + db_name + "\" already exists") print("ERROR: Database with name \"" + db_name + "\" already exists")
return false return false
return true return true
# deletes all databases # deletes all databases
func clear() -> void : func clear() -> void :
for idx in range(0, m_databases.size()): for idx in range(0, m_databases.size()):
m_databases[idx].clear() m_databases[idx].clear()
m_databases[idx].free() m_databases[idx].free()
m_databases.clear() m_databases.clear()
# dumps all databases # dumps all databases
func dump(to_console : bool = false) -> String : func dump(to_console : bool = false) -> String :
var dump_text = "\nDatabase manager - dump" var dump_text = "\nDatabase manager - dump"
dump_text += "\n====================================================================================" dump_text += "\n===================================================================================="
for idx in range(0, m_databases.size()): for idx in range(0, m_databases.size()):
dump_text += m_databases[idx].dump() dump_text += m_databases[idx].dump()
dump_text += "====================================================================================" dump_text += "===================================================================================="
if(to_console): if(to_console):
print(dump_text) print(dump_text)
return dump_text return dump_text
+2 -2
View File
@@ -122,7 +122,7 @@ func add_table_prop(prop_name : String, table_name : String) -> int :
func link_tables_props() -> void : func link_tables_props() -> void :
for idx in range(0, m_props.size()): for idx in range(0, m_props.size()):
var custom_prop_type = m_props[idx].get_prop_custom_type() var custom_prop_type = m_props[idx].get_prop_custom_type()
if(!custom_prop_type.empty()): if(!custom_prop_type.is_empty()):
var table = m_parent_database.get_table_by_name(custom_prop_type) var table = m_parent_database.get_table_by_name(custom_prop_type)
m_props[idx].set_prop_type(gddb_types.e_prop_types_count + table.get_table_id()) m_props[idx].set_prop_type(gddb_types.e_prop_types_count + table.get_table_id())
m_props[idx].set_prop_custom_type("") m_props[idx].set_prop_custom_type("")
@@ -396,7 +396,7 @@ func get_dictionary_at_row_idx(row_idx : int) -> Dictionary :
dict[data_prop_name] = m_data[idx].get_data() dict[data_prop_name] = m_data[idx].get_data()
prop_idx += 1 prop_idx += 1
if(dict.empty()): if(dict.is_empty()):
print("ERROR: GDDBDTable::get_data_at_row_idx(" + str(row_idx) + ") - invalid row index") print("ERROR: GDDBDTable::get_data_at_row_idx(" + str(row_idx) + ") - invalid row index")
return dict return dict
+2 -2
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBDataLabel class GDDBDataLabel
""" """
class_name GDDBDataLabel class_name GDDBDataLabel
tool
extends Label extends Label
signal resize_property signal resize_property
@@ -27,7 +27,7 @@ func _input(event : InputEvent) -> void :
var evLocal = $resize_ctrl.make_input_local(event) var evLocal = $resize_ctrl.make_input_local(event)
if event is InputEventMouseButton : if event is InputEventMouseButton :
if(event.button_index == BUTTON_LEFT): if(event.button_index == MOUSE_BUTTON_LEFT):
if(event.pressed): if(event.pressed):
var rect = Rect2(Vector2(0, 0), $resize_ctrl.get_size()) var rect = Rect2(Vector2(0, 0), $resize_ctrl.get_size())
var inside = rect.has_point(evLocal.position) var inside = rect.has_point(evLocal.position)
+8 -8
View File
@@ -1,17 +1,17 @@
[gd_scene load_steps=5 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/godot_db_manager/data_label.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/data_label.gd" type="Script" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="DynamicFont" id=2] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="FontFile" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture" id=3] [ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture2D" id=3]
[ext_resource path="res://addons/godot_db_manager/assets/tex/debug.png" type="Texture" id=4] [ext_resource path="res://addons/godot_db_manager/assets/tex/debug.png" type="Texture2D" id=4]
[node name="lbl" type="Label"] [node name="lbl" type="Label"]
anchor_right = 0.167 anchor_right = 0.167
margin_right = -0.300018 offset_right = -0.300018
margin_bottom = 11.52 offset_bottom = 11.52
rect_min_size = Vector2( 150, 32 ) custom_minimum_size = Vector2( 150, 32 )
mouse_filter = 0 mouse_filter = 0
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
text = "ID" text = "ID"
valign = 1 valign = 1
script = ExtResource( 1 ) script = ExtResource( 1 )
@@ -34,7 +34,7 @@ __meta__ = {
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = -3.0 offset_left = -3.0
mouse_filter = 0 mouse_filter = 0
mouse_default_cursor_shape = 10 mouse_default_cursor_shape = 10
texture = ExtResource( 3 ) texture = ExtResource( 3 )
+24 -24
View File
@@ -1,11 +1,11 @@
@tool
""" """
class GDDBEditor class GDDBEditor
""" """
class_name GDDBEditor class_name GDDBEditor
tool extends TabBar
extends Tabs
var m_name = "" var m_name = ""
var m_database = null var m_database = null
@@ -14,23 +14,23 @@ var m_filepath = ""
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void : func _ready() -> void :
set_tab_align(Tabs.ALIGN_LEFT) set_tab_alignment(TabBar.ALIGN_LEFT)
set_tab_close_display_policy(Tabs.CLOSE_BUTTON_SHOW_ALWAYS) set_tab_close_display_policy(TabBar.CLOSE_BUTTON_SHOW_ALWAYS)
$tables_list.connect("resize_tables_list", self, "on_resize_the_table_list") $tables_list.connect("resize_tables_list", Callable(self, "on_resize_the_table_list"))
$tables_list.connect("add_table", self, "on_add_table") $tables_list.connect("add_table", Callable(self, "on_add_table"))
$tables_list.connect("edit_table_name", self, "on_edit_table") $tables_list.connect("edit_table_name", Callable(self, "on_edit_table"))
$tables_list.connect("delete_table", self, "on_delete_table") $tables_list.connect("delete_table", Callable(self, "on_delete_table"))
$tables_list.connect("select_table", self, "on_select_table") $tables_list.connect("select_table", Callable(self, "on_select_table"))
$table_editor.connect("set_dirty", self, "on_set_dirty") $table_editor.connect("set_dirty", Callable(self, "on_set_dirty"))
$delete_table_dlg.connect("delete_table", self, "on_confirm_delete_table") $delete_table_dlg.connect("delete_table", Callable(self, "on_confirm_delete_table"))
$new_table_dlg.connect("cancel_dialog", self, "on_close_new_table_dlg") $new_table_dlg.connect("cancel_dialog", Callable(self, "on_close_new_table_dlg"))
$new_table_dlg.get_close_button().connect("pressed", self, "on_close_new_table_dlg") $new_table_dlg.get_close_button().connect("pressed", Callable(self, "on_close_new_table_dlg"))
$error_dlg.connect("confirmed", self, "on_retry_create_table") $error_dlg.connect("confirmed", Callable(self, "on_retry_create_table"))
# resizing the tables list # resizing the tables list
func on_resize_the_table_list(diff_x : float) -> void : func on_resize_the_table_list(diff_x : float) -> void :
@@ -56,7 +56,7 @@ func on_resize_the_table_list(diff_x : float) -> void :
# overrides the member from base class # overrides the member from base class
func set_name(ctrl_name) -> void : func set_name(ctrl_name) -> void :
m_name = ctrl_name m_name = ctrl_name
.set_name(ctrl_name) super.set_name(ctrl_name)
# sets the database; for easy access # sets the database; for easy access
func set_database(db) -> void : func set_database(db) -> void :
@@ -92,9 +92,9 @@ func get_db_name() -> String :
func set_dirty(dirty) -> void : func set_dirty(dirty) -> void :
if(dirty): if(dirty):
var title = m_name + "*" var title = m_name + "*"
.set_name(title) super.set_name(title)
else: else:
.set_name(m_name) super.set_name(m_name)
# called when the user presses the "add_table" button from the "tables_list/tables_header" # called when the user presses the "add_table" button from the "tables_list/tables_header"
func on_add_table() -> void : func on_add_table() -> void :
@@ -102,13 +102,13 @@ func on_add_table() -> void :
$new_table_dlg.set_dld_type(gddb_types.e_new_dlg_type_new) $new_table_dlg.set_dld_type(gddb_types.e_new_dlg_type_new)
$new_table_dlg.set_table_id(gddb_constants.c_invalid_id) $new_table_dlg.set_table_id(gddb_constants.c_invalid_id)
$new_table_dlg.set_init_name("") $new_table_dlg.set_init_name("")
$new_table_dlg.connect("create_new_table", self, "on_create_table") $new_table_dlg.connect("create_new_table", Callable(self, "on_create_table"))
$new_table_dlg.popup_centered() $new_table_dlg.popup_centered()
# called when the user accepts the name of the table in the "new_table_dlg" # called when the user accepts the name of the table in the "new_table_dlg"
func on_create_table(table_name : String) -> void : func on_create_table(table_name : String) -> void :
# print("GDDBEditor::on_create_table(" + table_name + ")") # print("GDDBEditor::on_create_table(" + table_name + ")")
$new_table_dlg.disconnect("create_new_table", self, "on_create_table") $new_table_dlg.disconnect("create_new_table", Callable(self, "on_create_table"))
var table_id = m_database.add_table(table_name) var table_id = m_database.add_table(table_name)
if(table_id == gddb_constants.c_invalid_id): if(table_id == gddb_constants.c_invalid_id):
$error_dlg.set_text("Table with the name \"" + table_name + "\" already exists" ) $error_dlg.set_text("Table with the name \"" + table_name + "\" already exists" )
@@ -132,7 +132,7 @@ func on_edit_table(table_id : int, table_name : String) -> void :
$new_table_dlg.set_dld_type(gddb_types.e_new_dlg_type_edit) $new_table_dlg.set_dld_type(gddb_types.e_new_dlg_type_edit)
$new_table_dlg.set_table_id(table_id) $new_table_dlg.set_table_id(table_id)
$new_table_dlg.set_init_name(table_name) $new_table_dlg.set_init_name(table_name)
$new_table_dlg.connect("create_new_table", self, "on_table_name_edited") $new_table_dlg.connect("create_new_table", Callable(self, "on_table_name_edited"))
$new_table_dlg.popup_centered() $new_table_dlg.popup_centered()
# gets called when canceling the new_table_dlg # gets called when canceling the new_table_dlg
@@ -140,9 +140,9 @@ func on_close_new_table_dlg() -> void :
# print("GDDBEditor::on_close_new_table_dlg()") # print("GDDBEditor::on_close_new_table_dlg()")
var dlg_type = $new_table_dlg.get_dlg_type() var dlg_type = $new_table_dlg.get_dlg_type()
if(dlg_type == gddb_types.e_new_dlg_type_new): if(dlg_type == gddb_types.e_new_dlg_type_new):
$new_table_dlg.disconnect("create_new_table", self, "on_create_table") $new_table_dlg.disconnect("create_new_table", Callable(self, "on_create_table"))
elif(dlg_type == gddb_types.e_new_dlg_type_edit): elif(dlg_type == gddb_types.e_new_dlg_type_edit):
$new_table_dlg.disconnect("create_new_table", self, "on_table_name_edited") $new_table_dlg.disconnect("create_new_table", Callable(self, "on_table_name_edited"))
# called when the user presses the "delete_table" from the "tables/list/table" # called when the user presses the "delete_table" from the "tables/list/table"
func on_delete_table(table_id : int) -> void : func on_delete_table(table_id : int) -> void :
@@ -155,7 +155,7 @@ func on_delete_table(table_id : int) -> void :
# called when the user accepts the name of the table in the "new_table_dlg" # called when the user accepts the name of the table in the "new_table_dlg"
func on_table_name_edited(table_name : String) -> void : func on_table_name_edited(table_name : String) -> void :
# print("GDDBEditor::on_table_name_edited(" + table_name + ")") # print("GDDBEditor::on_table_name_edited(" + table_name + ")")
$new_table_dlg.disconnect("create_new_table", self, "on_table_name_edited") $new_table_dlg.disconnect("create_new_table", Callable(self, "on_table_name_edited"))
var table_id = $new_table_dlg.get_table_id() var table_id = $new_table_dlg.get_table_id()
if(!m_database.edit_table_name(table_name, table_id)): if(!m_database.edit_table_name(table_name, table_id)):
$error_dlg.set_text("Table with the name \"" + table_name + "\" already exists" ) $error_dlg.set_text("Table with the name \"" + table_name + "\" already exists" )
@@ -198,7 +198,7 @@ func save_database() -> void:
# returns true if the database can be saved, otherwise false # returns true if the database can be saved, otherwise false
func can_save_database() -> bool: func can_save_database() -> bool:
return !m_database.get_db_filepath().empty() return !m_database.get_db_filepath().is_empty()
# sets the database's path # sets the database's path
func set_database_filepath(filepath : String) -> void: func set_database_filepath(filepath : String) -> void:
+5 -5
View File
@@ -8,10 +8,10 @@
[ext_resource path="res://addons/godot_db_manager/dlgs/delete_table_dlg.tscn" type="PackedScene" id=6] [ext_resource path="res://addons/godot_db_manager/dlgs/delete_table_dlg.tscn" type="PackedScene" id=6]
[ext_resource path="res://addons/godot_db_manager/debug/dbg.tscn" type="PackedScene" id=7] [ext_resource path="res://addons/godot_db_manager/debug/dbg.tscn" type="PackedScene" id=7]
[node name="db_editor" type="Tabs"] [node name="db_editor" type="TabBar"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
tab_align = 0 tab_alignment = 0
tab_close_display_policy = 2 tab_close_display_policy = 2
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
@@ -21,11 +21,11 @@ __meta__ = {
[node name="tables_list" parent="." instance=ExtResource( 2 )] [node name="tables_list" parent="." instance=ExtResource( 2 )]
anchor_right = 0.0 anchor_right = 0.0
margin_right = 170.0 offset_right = 170.0
rect_min_size = Vector2( 180, 30 ) custom_minimum_size = Vector2( 180, 30 )
[node name="table_editor" parent="." instance=ExtResource( 4 )] [node name="table_editor" parent="." instance=ExtResource( 4 )]
margin_left = 181.0 offset_left = 181.0
[node name="dbg" parent="." instance=ExtResource( 7 )] [node name="dbg" parent="." instance=ExtResource( 7 )]
visible = false visible = false
+15 -15
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBInterface class GDDBInterface
""" """
class_name GDDBInterface class_name GDDBInterface
tool
extends Control extends Control
var m_db_manager = null var m_db_manager = null
@@ -15,20 +15,20 @@ func _ready() -> void:
m_db_manager = load(gddb_constants.c_addon_main_path + "core/db_man.gd").new() m_db_manager = load(gddb_constants.c_addon_main_path + "core/db_man.gd").new()
# menu connections # menu connections
$dlg/menu.connect("new_database", self, "on_menu_new_database") $dlg/menu.connect("new_database", Callable(self, "on_menu_new_database"))
$dlg/menu.connect("load_database", self, "on_menu_load_database") $dlg/menu.connect("load_database", Callable(self, "on_menu_load_database"))
$dlg/menu.connect("save_database", self, "on_menu_save_database") $dlg/menu.connect("save_database", Callable(self, "on_menu_save_database"))
$dlg/menu.connect("save_database_as", self, "on_menu_save_database_as") $dlg/menu.connect("save_database_as", Callable(self, "on_menu_save_database_as"))
# dialod notifications # dialod notifications
$dlg.connect("about_to_show", self, "on_about_to_show") $dlg.connect("about_to_popup", Callable(self, "on_about_to_show"))
$dlg.get_close_button().connect("pressed", self, "on_close") $dlg.get_close_button().connect("pressed", Callable(self, "on_close"))
# new database connections # new database connections
$dlg/new_db_dlg.connect("create_new_db", self, "on_new_database") $dlg/new_db_dlg.connect("create_new_db", Callable(self, "on_new_database"))
# save / load connections # save / load connections
$dlg/load_db_dlg.connect("file_selected", self, "on_file_selected") $dlg/load_db_dlg.connect("file_selected", Callable(self, "on_file_selected"))
# Called when the node is about to be shown. # Called when the node is about to be shown.
func on_about_to_show() -> void : func on_about_to_show() -> void :
@@ -44,7 +44,7 @@ func on_menu_new_database() -> void:
# called when loading a database from the menu # called when loading a database from the menu
func on_menu_load_database() -> void: func on_menu_load_database() -> void:
$dlg/load_db_dlg.set_mode(FileDialog.MODE_OPEN_FILE) $dlg/load_db_dlg.set_mode(FileDialog.FILE_MODE_OPEN_FILE)
$dlg/load_db_dlg.set_title("Load Database ...") $dlg/load_db_dlg.set_title("Load Database ...")
$dlg/load_db_dlg.set_current_file("") $dlg/load_db_dlg.set_current_file("")
$dlg/load_db_dlg.popup_centered() $dlg/load_db_dlg.popup_centered()
@@ -61,7 +61,7 @@ func on_menu_save_database() -> void:
# called when saving a database as another from the menu # called when saving a database as another from the menu
func on_menu_save_database_as(): func on_menu_save_database_as():
# print("on_menu_save_database_as") # print("on_menu_save_database_as")
$dlg/load_db_dlg.set_mode(FileDialog.MODE_SAVE_FILE) $dlg/load_db_dlg.set_mode(FileDialog.FILE_MODE_SAVE_FILE)
$dlg/load_db_dlg.set_title("Save Database As ...") $dlg/load_db_dlg.set_title("Save Database As ...")
var currnet_tab = $dlg/databases.get_current_tab_control() var currnet_tab = $dlg/databases.get_current_tab_control()
@@ -81,7 +81,7 @@ func on_new_database(db_name : String) -> void:
var db = m_db_manager.get_db_by_id(db_id) var db = m_db_manager.get_db_by_id(db_id)
# print("new DB added: " + str(db)) # print("new DB added: " + str(db))
var db_editor = load(gddb_constants.c_addon_main_path + "db_editor.tscn").instance() var db_editor = load(gddb_constants.c_addon_main_path + "db_editor.tscn").instantiate()
$dlg/databases.add_child(db_editor) $dlg/databases.add_child(db_editor)
db_editor.set_name(db_name) db_editor.set_name(db_name)
db.set_dirty(true) db.set_dirty(true)
@@ -96,7 +96,7 @@ func on_new_database(db_name : String) -> void:
func on_file_selected(filepath : String) -> void: func on_file_selected(filepath : String) -> void:
# print("GDDBInterface::on_file_selected(" + filepath + ")") # print("GDDBInterface::on_file_selected(" + filepath + ")")
if($dlg/load_db_dlg.get_mode() == FileDialog.MODE_SAVE_FILE): if($dlg/load_db_dlg.get_mode() == FileDialog.FILE_MODE_SAVE_FILE):
var filepath_low = filepath.to_lower() var filepath_low = filepath.to_lower()
# check for the file extension # check for the file extension
@@ -117,7 +117,7 @@ func on_file_selected(filepath : String) -> void:
save_database_as(filepath) save_database_as(filepath)
elif($dlg/load_db_dlg.get_mode() == FileDialog.MODE_OPEN_FILE): elif($dlg/load_db_dlg.get_mode() == FileDialog.FILE_MODE_OPEN_FILE):
load_database(filepath) load_database(filepath)
# saves a database to a given file path # saves a database to a given file path
@@ -144,7 +144,7 @@ func load_database(filepath : String) -> void:
db.set_dirty(false) db.set_dirty(false)
# print("new DB added: " + str(db)) # print("new DB added: " + str(db))
var db_editor = load(gddb_constants.c_addon_main_path + "db_editor.tscn").instance() var db_editor = load(gddb_constants.c_addon_main_path + "db_editor.tscn").instantiate()
$dlg/databases.add_child(db_editor) $dlg/databases.add_child(db_editor)
db_editor.set_name(db.get_db_name()) db_editor.set_name(db.get_db_name())
db_editor.set_database(db) db_editor.set_database(db)
+14 -14
View File
@@ -1,7 +1,7 @@
[gd_scene load_steps=7 format=2] [gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/godot_db_manager/debug/dbg.tscn" type="PackedScene" id=1] [ext_resource path="res://addons/godot_db_manager/debug/dbg.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="DynamicFont" id=2] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="FontFile" id=2]
[ext_resource path="res://addons/godot_db_manager/dlgs/error_dlg.tscn" type="PackedScene" id=3] [ext_resource path="res://addons/godot_db_manager/dlgs/error_dlg.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/godot_db_manager/db_interface.gd" type="Script" id=4] [ext_resource path="res://addons/godot_db_manager/db_interface.gd" type="Script" id=4]
[ext_resource path="res://addons/godot_db_manager/dlgs/new_db_dlg.tscn" type="PackedScene" id=5] [ext_resource path="res://addons/godot_db_manager/dlgs/new_db_dlg.tscn" type="PackedScene" id=5]
@@ -14,11 +14,11 @@ __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="dlg" type="WindowDialog" parent="."] [node name="dlg" type="Window" parent="."]
visible = true visible = true
margin_right = 1147.0 offset_right = 1147.0
margin_bottom = 768.0 offset_bottom = 768.0
popup_exclusive = true exclusive = true
window_title = "Godot Database Manager" window_title = "Godot Database Manager"
resizable = true resizable = true
__meta__ = { __meta__ = {
@@ -30,9 +30,9 @@ __meta__ = {
[node name="databases" type="TabContainer" parent="dlg"] [node name="databases" type="TabContainer" parent="dlg"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_top = 30.0 offset_top = 30.0
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
tab_align = 0 tab_alignment = 0
drag_to_rearrange_enabled = true drag_to_rearrange_enabled = true
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
@@ -40,23 +40,23 @@ __meta__ = {
[node name="new_db_dlg" parent="dlg" instance=ExtResource( 5 )] [node name="new_db_dlg" parent="dlg" instance=ExtResource( 5 )]
visible = false visible = false
margin_right = 3.832 offset_right = 3.832
[node name="error_dlg" parent="dlg" instance=ExtResource( 3 )] [node name="error_dlg" parent="dlg" instance=ExtResource( 3 )]
visible = false visible = false
anchor_right = 0.187 anchor_right = 0.187
anchor_bottom = 0.136 anchor_bottom = 0.136
margin_right = 0.469986 offset_right = 0.469986
margin_bottom = -0.0800018 offset_bottom = -0.0800018
[node name="load_db_dlg" type="FileDialog" parent="dlg"] [node name="load_db_dlg" type="FileDialog" parent="dlg"]
anchor_right = 0.349 anchor_right = 0.349
anchor_bottom = 0.418 anchor_bottom = 0.418
margin_right = -0.309998 offset_right = -0.309998
margin_bottom = 0.209991 offset_bottom = 0.209991
window_title = "Open a File" window_title = "Open a File"
mode = 0 mode = 0
filters = PoolStringArray( "*.json" ) filters = PackedStringArray( "*.json" )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
+33 -33
View File
@@ -1,33 +1,33 @@
""" @tool
class GDDBManager """
""" class GDDBManager
"""
class_name GDDBManager
class_name GDDBManager
tool
extends EditorPlugin extends EditorPlugin
var DBInterface = preload("./db_interface.tscn") var DBInterface = preload("./db_interface.tscn")
var db_interface : Node var db_interface : Node
func _enter_tree(): func _enter_tree():
add_autoload_singleton("gddb_constants", "res://addons/godot_db_manager/core/GDDBConstants.gd") add_autoload_singleton("gddb_constants", "res://addons/godot_db_manager/core/GDDBConstants.gd")
add_autoload_singleton("gddb_types", "res://addons/godot_db_manager/core/GDDBTypes.gd") add_autoload_singleton("gddb_types", "res://addons/godot_db_manager/core/GDDBTypes.gd")
add_autoload_singleton("gddb_globals", "res://addons/godot_db_manager/core/GDDBGlobals.gd") add_autoload_singleton("gddb_globals", "res://addons/godot_db_manager/core/GDDBGlobals.gd")
# Initialization of the plugin goes here # Initialization of the plugin goes here
db_interface = DBInterface.instance() db_interface = DBInterface.instantiate()
get_editor_interface().get_base_control().add_child(db_interface) get_editor_interface().get_base_control().add_child(db_interface)
add_tool_menu_item("Godot Database Manager", self, "open_config") add_tool_menu_item("Godot Database Manager", self, "open_config")
func _exit_tree(): func _exit_tree():
# Clean-up of the plugin goes here # Clean-up of the plugin goes here
remove_tool_menu_item("Godot Database Manager") remove_tool_menu_item("Godot Database Manager")
if(db_interface): if(db_interface):
db_interface.queue_free() db_interface.queue_free()
func open_config(UD): func open_config(UD):
var window = db_interface.get_node("dlg") as WindowDialog var window = db_interface.get_node("dlg") as Window
if(window): if(window):
window.popup_centered() window.popup_centered()
+13 -13
View File
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=2] [gd_scene load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/tex/debug.png" type="Texture" id=1] [ext_resource path="res://addons/godot_db_manager/assets/tex/debug.png" type="Texture2D" id=1]
[node name="dbg" type="Control"] [node name="dbg" type="Control"]
anchor_right = 1.0 anchor_right = 1.0
@@ -11,14 +11,14 @@ __meta__ = {
} }
[node name="1" type="Control" parent="."] [node name="1" type="Control" parent="."]
margin_right = 40.0 offset_right = 40.0
margin_bottom = 40.0 offset_bottom = 40.0
mouse_filter = 2 mouse_filter = 2
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Sprite" type="Sprite" parent="1"] [node name="Sprite2D" type="Sprite2D" parent="1"]
scale = Vector2( 4, 4 ) scale = Vector2( 4, 4 )
texture = ExtResource( 1 ) texture = ExtResource( 1 )
centered = false centered = false
@@ -28,14 +28,14 @@ region_rect = Rect2( 2, 50, 10, 10 )
[node name="2" type="Control" parent="."] [node name="2" type="Control" parent="."]
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
margin_left = -40.0 offset_left = -40.0
margin_bottom = 40.0 offset_bottom = 40.0
mouse_filter = 2 mouse_filter = 2
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Sprite" type="Sprite" parent="2"] [node name="Sprite2D" type="Sprite2D" parent="2"]
scale = Vector2( 4, 4 ) scale = Vector2( 4, 4 )
texture = ExtResource( 1 ) texture = ExtResource( 1 )
centered = false centered = false
@@ -45,14 +45,14 @@ region_rect = Rect2( 2, 50, 10, 10 )
[node name="3" type="Control" parent="."] [node name="3" type="Control" parent="."]
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_top = -40.0 offset_top = -40.0
margin_right = 40.0 offset_right = 40.0
mouse_filter = 2 mouse_filter = 2
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Sprite" type="Sprite" parent="3"] [node name="Sprite2D" type="Sprite2D" parent="3"]
scale = Vector2( 4, 4 ) scale = Vector2( 4, 4 )
texture = ExtResource( 1 ) texture = ExtResource( 1 )
centered = false centered = false
@@ -64,14 +64,14 @@ anchor_left = 1.0
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = -40.0 offset_left = -40.0
margin_top = -40.0 offset_top = -40.0
mouse_filter = 2 mouse_filter = 2
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Sprite" type="Sprite" parent="4"] [node name="Sprite2D" type="Sprite2D" parent="4"]
scale = Vector2( 4, 4 ) scale = Vector2( 4, 4 )
texture = ExtResource( 1 ) texture = ExtResource( 1 )
centered = false centered = false
+3 -3
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBDataPanel class GDDBDataPanel
""" """
class_name GDDBDataPanel class_name GDDBDataPanel
tool
extends PopupPanel extends PopupPanel
signal select_data signal select_data
@@ -16,8 +16,8 @@ var m_table = null
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
connect("about_to_show", self, "on_about_to_show") connect("about_to_popup", Callable(self, "on_about_to_show"))
$ItemList.connect("item_selected", self, "on_item_selected") $ItemList.connect("item_selected", Callable(self, "on_item_selected"))
# sets property id # sets property id
func set_prop_id(prop_id : int) -> void : func set_prop_id(prop_id : int) -> void :
+25 -25
View File
@@ -1,25 +1,25 @@
[gd_scene load_steps=3 format=2] [gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/godot_db_manager/dlgs/data_dlg.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/dlgs/data_dlg.gd" type="Script" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="DynamicFont" id=2] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="FontFile" id=2]
[node name="data_dlg" type="PopupPanel"] [node name="data_dlg" type="PopupPanel"]
anchor_right = 0.285625 anchor_right = 0.285625
anchor_bottom = 0.351111 anchor_bottom = 0.351111
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="ItemList" type="ItemList" parent="."] [node name="ItemList" type="ItemList" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 4.0 offset_top = 4.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
items = [ "ababab", null, false, "cdcdcd", null, false, "efefef", null, false ] items = [ "ababab", null, false, "cdcdcd", null, false, "efefef", null, false ]
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
+41 -41
View File
@@ -1,41 +1,41 @@
""" @tool
class GDDBDeletePropDlg """
""" class GDDBDeletePropDlg
"""
class_name GDDBDeletePropDlg
class_name GDDBDeletePropDlg
tool
extends WindowDialog extends Window
signal delete_prop signal delete_prop
var m_prop_id = gddb_constants.c_invalid_id var m_prop_id = gddb_constants.c_invalid_id
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void : func _ready() -> void :
$v_layout/buttons/ok_btn.connect("pressed", self, "on_ok_btn_pressed") $v_layout/buttons/ok_btn.connect("pressed", Callable(self, "on_ok_btn_pressed"))
$v_layout/buttons/cancel_btn.connect("pressed", self, "on_cancel_btn_pressed") $v_layout/buttons/cancel_btn.connect("pressed", Callable(self, "on_cancel_btn_pressed"))
# sets the property id # sets the property id
func set_prop_id(prop_id : int) -> void : func set_prop_id(prop_id : int) -> void :
m_prop_id = prop_id m_prop_id = prop_id
# returns the property id # returns the property id
func get_prop_id() -> int : func get_prop_id() -> int :
return m_prop_id return m_prop_id
func set_prop_name(prop_name : String) -> void: func set_prop_name(prop_name : String) -> void:
var text = "Delete property with name \"" + prop_name + "\" ?" var text = "Delete property with name \"" + prop_name + "\" ?"
$v_layout/prop_info/prop_lbl.set_text(text) $v_layout/prop_info/prop_lbl.set_text(text)
# returns the table id # returns the table id
func get_table_id() -> int : func get_table_id() -> int :
return m_prop_id return m_prop_id
# called when the OK button is pressed # called when the OK button is pressed
func on_ok_btn_pressed() -> void : func on_ok_btn_pressed() -> void :
emit_signal("delete_prop") emit_signal("delete_prop")
hide() hide()
func on_cancel_btn_pressed() -> void: func on_cancel_btn_pressed() -> void:
hide() hide()
@@ -1,66 +1,66 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/godot_db_manager/dlgs/delete_prop_dlg.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/dlgs/delete_prop_dlg.gd" type="Script" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="DynamicFont" id=2] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="FontFile" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="DynamicFont" id=3] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="FontFile" id=3]
[node name="delete_prop_dlg" type="WindowDialog"] [node name="delete_prop_dlg" type="Window"]
visible = true visible = true
anchor_right = 0.257 anchor_right = 0.257
anchor_bottom = 0.084 anchor_bottom = 0.084
margin_right = 0.799988 offset_right = 0.799988
margin_bottom = 0.399994 offset_bottom = 0.399994
focus_next = NodePath("v_layout/buttons/ok_btn") focus_next = NodePath("v_layout/buttons/ok_btn")
focus_mode = 1 focus_mode = 1
custom_fonts/title_font = ExtResource( 2 ) theme_override_fonts/title_font = ExtResource( 2 )
popup_exclusive = true exclusive = true
window_title = "Delete property" window_title = "Delete property"
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="v_layout" type="VBoxContainer" parent="."] [node name="v_layout" type="VBoxContainer" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_constants/separation = 10 theme_override_constants/separation = 10
alignment = 1 alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="prop_info" type="HBoxContainer" parent="v_layout"] [node name="prop_info" type="HBoxContainer" parent="v_layout"]
margin_top = 13.0 offset_top = 13.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 30.0 offset_bottom = 30.0
alignment = 1 alignment = 1
[node name="prop_lbl" type="Label" parent="v_layout/prop_info"] [node name="prop_lbl" type="Label" parent="v_layout/prop_info"]
margin_left = 152.0 offset_left = 152.0
margin_right = 259.0 offset_right = 259.0
margin_bottom = 17.0 offset_bottom = 17.0
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
text = "Property name: " text = "Property name: "
[node name="buttons" type="HBoxContainer" parent="v_layout"] [node name="buttons" type="HBoxContainer" parent="v_layout"]
margin_top = 40.0 offset_top = 40.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 61.0 offset_bottom = 61.0
custom_constants/separation = 50 theme_override_constants/separation = 50
alignment = 1 alignment = 1
[node name="ok_btn" type="Button" parent="v_layout/buttons"] [node name="ok_btn" type="Button" parent="v_layout/buttons"]
margin_left = 81.0 offset_left = 81.0
margin_right = 181.0 offset_right = 181.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "OK" text = "OK"
[node name="cancel_btn" type="Button" parent="v_layout/buttons"] [node name="cancel_btn" type="Button" parent="v_layout/buttons"]
margin_left = 231.0 offset_left = 231.0
margin_right = 331.0 offset_right = 331.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "Cancel" text = "Cancel"
@@ -1,37 +1,37 @@
""" @tool
class GDDBDeleteTableDlg """
""" class GDDBDeleteTableDlg
"""
class_name GDDBDeleteTableDlg
class_name GDDBDeleteTableDlg
tool
extends WindowDialog extends Window
signal delete_table signal delete_table
var m_table_id = gddb_constants.c_invalid_id var m_table_id = gddb_constants.c_invalid_id
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
$v_layout/buttons/ok_btn.connect("pressed", self, "on_ok_btn_pressed") $v_layout/buttons/ok_btn.connect("pressed", Callable(self, "on_ok_btn_pressed"))
$v_layout/buttons/cancel_btn.connect("pressed", self, "on_cancel_btn_pressed") $v_layout/buttons/cancel_btn.connect("pressed", Callable(self, "on_cancel_btn_pressed"))
# sets the table id # sets the table id
func set_table_id(table_id : int) -> void: func set_table_id(table_id : int) -> void:
m_table_id = table_id m_table_id = table_id
func set_table_name(table_name : String) -> void: func set_table_name(table_name : String) -> void:
var text = "Delete table with name \"" + table_name + "\" ?" var text = "Delete table with name \"" + table_name + "\" ?"
$v_layout/table_info/table_lbl.set_text(text) $v_layout/table_info/table_lbl.set_text(text)
# returns the table id # returns the table id
func get_table_id() -> int: func get_table_id() -> int:
return m_table_id return m_table_id
# called when the OK button is pressed # called when the OK button is pressed
func on_ok_btn_pressed() -> void: func on_ok_btn_pressed() -> void:
emit_signal("delete_table") emit_signal("delete_table")
hide() hide()
func on_cancel_btn_pressed() -> void: func on_cancel_btn_pressed() -> void:
hide() hide()
@@ -1,66 +1,66 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/godot_db_manager/dlgs/delete_table_dlg.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/dlgs/delete_table_dlg.gd" type="Script" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="DynamicFont" id=2] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="FontFile" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="DynamicFont" id=3] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="FontFile" id=3]
[node name="delete_table_dlg" type="WindowDialog"] [node name="delete_table_dlg" type="Window"]
visible = true visible = true
anchor_right = 0.257 anchor_right = 0.257
anchor_bottom = 0.084 anchor_bottom = 0.084
margin_right = 0.799988 offset_right = 0.799988
margin_bottom = 0.399994 offset_bottom = 0.399994
focus_next = NodePath("v_layout/buttons/ok_btn") focus_next = NodePath("v_layout/buttons/ok_btn")
focus_mode = 1 focus_mode = 1
custom_fonts/title_font = ExtResource( 2 ) theme_override_fonts/title_font = ExtResource( 2 )
popup_exclusive = true exclusive = true
window_title = "Delete table" window_title = "Delete table"
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="v_layout" type="VBoxContainer" parent="."] [node name="v_layout" type="VBoxContainer" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_constants/separation = 10 theme_override_constants/separation = 10
alignment = 1 alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="table_info" type="HBoxContainer" parent="v_layout"] [node name="table_info" type="HBoxContainer" parent="v_layout"]
margin_top = 13.0 offset_top = 13.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 30.0 offset_bottom = 30.0
alignment = 1 alignment = 1
[node name="table_lbl" type="Label" parent="v_layout/table_info"] [node name="table_lbl" type="Label" parent="v_layout/table_info"]
margin_left = 162.0 offset_left = 162.0
margin_right = 249.0 offset_right = 249.0
margin_bottom = 17.0 offset_bottom = 17.0
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
text = "Table name: " text = "Table name: "
[node name="buttons" type="HBoxContainer" parent="v_layout"] [node name="buttons" type="HBoxContainer" parent="v_layout"]
margin_top = 40.0 offset_top = 40.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 61.0 offset_bottom = 61.0
custom_constants/separation = 50 theme_override_constants/separation = 50
alignment = 1 alignment = 1
[node name="ok_btn" type="Button" parent="v_layout/buttons"] [node name="ok_btn" type="Button" parent="v_layout/buttons"]
margin_left = 81.0 offset_left = 81.0
margin_right = 181.0 offset_right = 181.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "OK" text = "OK"
[node name="cancel_btn" type="Button" parent="v_layout/buttons"] [node name="cancel_btn" type="Button" parent="v_layout/buttons"]
margin_left = 231.0 offset_left = 231.0
margin_right = 331.0 offset_right = 331.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "Cancel" text = "Cancel"
+59 -59
View File
@@ -1,59 +1,59 @@
""" @tool
class GDDBEditStringDlg """
""" class GDDBEditStringDlg
"""
class_name GDDBEditStringDlg
class_name GDDBEditStringDlg
tool
extends WindowDialog extends Window
signal string_edited signal string_edited
var m_prop_id = gddb_constants.c_invalid_id var m_prop_id = gddb_constants.c_invalid_id
var m_row_idx = gddb_constants.c_invalid_id var m_row_idx = gddb_constants.c_invalid_id
var m_data_text = "" var m_data_text = ""
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
$v_layout/btns/ok_btn.connect("pressed", self, "on_ok_btn_pressed") $v_layout/btns/ok_btn.connect("pressed", Callable(self, "on_ok_btn_pressed"))
$v_layout/btns/cancel_btn.connect("pressed", self, "on_cancel_btn_pressed") $v_layout/btns/cancel_btn.connect("pressed", Callable(self, "on_cancel_btn_pressed"))
$v_layout/text.connect("text_changed", self, "on_text_changed") $v_layout/text.connect("text_changed", Callable(self, "on_text_changed"))
# sets property id # sets property id
func set_prop_id(prop_id : int) -> void: func set_prop_id(prop_id : int) -> void:
m_prop_id = prop_id m_prop_id = prop_id
# returns property id # returns property id
func get_prop_id() -> int : func get_prop_id() -> int :
return m_prop_id return m_prop_id
# sets row index # sets row index
func set_row_idx(row_idx : int) -> void : func set_row_idx(row_idx : int) -> void :
m_row_idx = row_idx m_row_idx = row_idx
# returns row index # returns row index
func get_row_idx() -> int : func get_row_idx() -> int :
return m_row_idx return m_row_idx
# sets data text # sets data text
func set_data_text(text : String) -> void : func set_data_text(text : String) -> void :
m_data_text = text m_data_text = text
$v_layout/text.set_text(text) $v_layout/text.set_text(text)
# returns data text # returns data text
func get_data_text() -> String : func get_data_text() -> String :
return m_data_text return m_data_text
# Called when the OK button is pressed # Called when the OK button is pressed
func on_ok_btn_pressed() -> void : func on_ok_btn_pressed() -> void :
emit_signal("string_edited") emit_signal("string_edited")
hide() hide()
# Called when the Cancel button is pressed # Called when the Cancel button is pressed
func on_cancel_btn_pressed() -> void : func on_cancel_btn_pressed() -> void :
hide() hide()
# Called when text is changed # Called when text is changed
func on_text_changed() -> void: func on_text_changed() -> void:
m_data_text = $v_layout/text.get_text() m_data_text = $v_layout/text.get_text()
@@ -1,60 +1,60 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/godot_db_manager/dlgs/edit_string_dlg.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/dlgs/edit_string_dlg.gd" type="Script" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="DynamicFont" id=2] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="FontFile" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="DynamicFont" id=3] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="FontFile" id=3]
[node name="edit_string_dlg" type="WindowDialog"] [node name="edit_string_dlg" type="Window"]
anchor_right = 0.430625 anchor_right = 0.430625
anchor_bottom = 0.423333 anchor_bottom = 0.423333
focus_next = NodePath("v_layout/text") focus_next = NodePath("v_layout/text")
custom_fonts/title_font = ExtResource( 3 ) theme_override_fonts/title_font = ExtResource( 3 )
window_title = "Edit string" window_title = "Edit string"
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": true "_edit_use_anchors_": true
} }
[node name="v_layout" type="VBoxContainer" parent="."] [node name="v_layout" type="VBoxContainer" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="edit_text_btns" type="HBoxContainer" parent="v_layout"] [node name="edit_text_btns" type="HBoxContainer" parent="v_layout"]
margin_right = 689.0 offset_right = 689.0
margin_bottom = 30.0 offset_bottom = 30.0
rect_min_size = Vector2( 0, 30 ) custom_minimum_size = Vector2( 0, 30 )
[node name="text" type="TextEdit" parent="v_layout"] [node name="text" type="TextEdit" parent="v_layout"]
margin_top = 34.0 offset_top = 34.0
margin_right = 689.0 offset_right = 689.0
margin_bottom = 334.0 offset_bottom = 334.0
rect_min_size = Vector2( 0, 300 ) custom_minimum_size = Vector2( 0, 300 )
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
caret_blink = true caret_blink = true
[node name="btns" type="HBoxContainer" parent="v_layout"] [node name="btns" type="HBoxContainer" parent="v_layout"]
margin_top = 338.0 offset_top = 338.0
margin_right = 689.0 offset_right = 689.0
margin_bottom = 368.0 offset_bottom = 368.0
rect_min_size = Vector2( 0, 30 ) custom_minimum_size = Vector2( 0, 30 )
custom_constants/separation = 200 theme_override_constants/separation = 200
alignment = 1 alignment = 1
[node name="ok_btn" type="Button" parent="v_layout/btns"] [node name="ok_btn" type="Button" parent="v_layout/btns"]
margin_left = 144.0 offset_left = 144.0
margin_right = 244.0 offset_right = 244.0
margin_bottom = 30.0 offset_bottom = 30.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "OK" text = "OK"
[node name="cancel_btn" type="Button" parent="v_layout/btns"] [node name="cancel_btn" type="Button" parent="v_layout/btns"]
margin_left = 444.0 offset_left = 444.0
margin_right = 544.0 offset_right = 544.0
margin_bottom = 30.0 offset_bottom = 30.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "Cancel" text = "Cancel"
+11 -11
View File
@@ -1,11 +1,11 @@
[gd_scene format=2] [gd_scene format=2]
[node name="error_dlg" type="AcceptDialog"] [node name="error_dlg" type="AcceptDialog"]
visible = true visible = true
anchor_right = 0.139 anchor_right = 0.139
anchor_bottom = 0.099 anchor_bottom = 0.099
margin_right = 0.599976 offset_right = 0.599976
margin_bottom = -0.100006 offset_bottom = -0.100006
popup_exclusive = true exclusive = true
window_title = "Error" window_title = "Error"
dialog_autowrap = true dialog_autowrap = true
@@ -1,76 +1,76 @@
""" @tool
class GDDBLoadResourcePathDlg """
""" class GDDBLoadResourcePathDlg
"""
class_name GDDBLoadResourcePathDlg
class_name GDDBLoadResourcePathDlg
tool
extends FileDialog extends FileDialog
# TODO: put this list in a config file # TODO: put this list in a config file
const file_filters = [ const file_filters = [
# Godot resource file types # Godot resource file types
"*.res, *.tres ; Godot resource file types", "*.res, *.tres ; Godot resource file types",
# Godot scene files # Godot scene files
"*.scn, *.tscn, *escn ; Godot scene file types", "*.scn, *.tscn, *escn ; Godot scene file types",
# Code file types # Code file types
"*.gd, *.cs, *.h, *.c, *.hpp, *.cpp ; Code file types", "*.gd, *.cs, *.h, *.c, *.hpp, *.cpp ; Code file types",
# Shader file types # Shader file types
"*.shader ; Shader file types", "*.shader ; Shader file types",
# material file types # material file types
"*.mat ; Material file types", "*.mat ; Material file types",
# mesh file types # mesh file types
"*.dae, *.gltf, *.obj, *.fbx ; Mesh file types", "*.dae, *.gltf, *.obj, *.fbx ; Mesh file types",
# animation file types # animation file types
"*.anim ; Animation file types", "*.anim ; Animation file types",
# font file types # font file types
"*.ttf, *.otf ; Font file types", "*.ttf, *.otf ; Font file types",
# image file types # image file types
"*.png, *.jpg, *.jpeg, *.tiff, *.tga, *.bmp, *.webp, *.gif, *.hdr ; Images file types", "*.png, *.jpg, *.jpeg, *.tiff, *.tga, *.bmp, *.webp, *.gif, *.hdr ; Images file types",
# soung file types # soung file types
"*.snd, *.wav, *.ogg, *.mp3 ; Sound file types", "*.snd, *.wav, *.ogg, *.mp3 ; Sound file types",
# video file types # video file types
"*.ogg, *.mpg, *.mpeg, *.avi, *.mov, *.mp4, *.webm ; Video file types", "*.ogg, *.mpg, *.mpeg, *.avi, *.mov, *.mp4, *.webm ; Video file types",
# text file types # text file types
"*.txt, *.csv, *.json, *.xml, *.cfg, *.ini ; Text file types", "*.txt, *.csv, *.json, *.xml, *.cfg, *.ini ; Text file types",
# document file types # document file types
"*.doc, *.docx, *.xls, *.xlsx, *.odt, *.ods, *.pdf ; Doc file types", "*.doc, *.docx, *.xls, *.xlsx, *.odt, *.ods, *.pdf ; Doc file types",
# binary data file types # binary data file types
"*.dat, *.raw ; Binary data file types" "*.dat, *.raw ; Binary data file types"
] ]
var m_prop_id = gddb_constants.c_invalid_id var m_prop_id = gddb_constants.c_invalid_id
var m_row_idx = gddb_constants.c_invalid_id var m_row_idx = gddb_constants.c_invalid_id
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
set_filters(PoolStringArray(file_filters)) set_filters(PackedStringArray(file_filters))
# sets the property id # sets the property id
func set_prop_id(prop_id : int) -> void : func set_prop_id(prop_id : int) -> void :
m_prop_id = prop_id m_prop_id = prop_id
# returns the property id # returns the property id
func get_prop_id() -> int : func get_prop_id() -> int :
return m_prop_id return m_prop_id
# sets the row index # sets the row index
func set_row_idx(row_idx : int) -> void : func set_row_idx(row_idx : int) -> void :
m_row_idx = row_idx m_row_idx = row_idx
# returns the row index # returns the row index
func get_row_idx() -> int : func get_row_idx() -> int :
return m_row_idx return m_row_idx
@@ -1,16 +1,16 @@
[gd_scene load_steps=2 format=2] [gd_scene load_steps=2 format=2]
[ext_resource path="res://addons/godot_db_manager/dlgs/load_res_path_dlg.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/dlgs/load_res_path_dlg.gd" type="Script" id=1]
[node name="load_res_path_dlg" type="FileDialog"] [node name="load_res_path_dlg" type="FileDialog"]
anchor_right = 0.404 anchor_right = 0.404
anchor_bottom = 0.431 anchor_bottom = 0.431
margin_right = -0.400024 offset_right = -0.400024
margin_bottom = 0.0999756 offset_bottom = 0.0999756
window_title = "Open a File" window_title = "Open a File"
resizable = true resizable = true
mode = 0 mode = 0
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
+63 -63
View File
@@ -1,63 +1,63 @@
""" @tool
class GDDBNewDBDlg """
""" class GDDBNewDBDlg
"""
class_name GDDBNewDBDlg
class_name GDDBNewDBDlg
tool
extends WindowDialog extends Window
signal create_new_db signal create_new_db
var m_current_db_name = "" var m_current_db_name = ""
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void : func _ready() -> void :
$v_layout/buttons/ok_btn.connect("pressed", self, "on_ok_btn_pressed") $v_layout/buttons/ok_btn.connect("pressed", Callable(self, "on_ok_btn_pressed"))
$v_layout/buttons/cancel_btn.connect("pressed", self, "on_cancel_btn_pressed") $v_layout/buttons/cancel_btn.connect("pressed", Callable(self, "on_cancel_btn_pressed"))
connect("about_to_show", self, "on_about_to_show") connect("about_to_popup", Callable(self, "on_about_to_show"))
$v_layout/db_info/db_edt.connect("text_changed", self, "on_text_changed") $v_layout/db_info/db_edt.connect("text_changed", Callable(self, "on_text_changed"))
$v_layout/db_info/db_edt.connect("text_entered", self, "on_text_confirmed") $v_layout/db_info/db_edt.connect("text_submitted", Callable(self, "on_text_confirmed"))
# Called when the node is about to be shown. # Called when the node is about to be shown.
func on_about_to_show() -> void : func on_about_to_show() -> void :
m_current_db_name = "" m_current_db_name = ""
$v_layout/db_info/db_edt.set_text(m_current_db_name) $v_layout/db_info/db_edt.set_text(m_current_db_name)
# called everytime the text is changed # called everytime the text is changed
func on_text_changed(new_text: String) -> void : func on_text_changed(new_text: String) -> void :
var change_text = true var change_text = true
if(!gddb_globals.check_db_name(new_text)): if(!gddb_globals.check_db_name(new_text)):
change_text = false change_text = false
else: else:
if(new_text.length() > gddb_constants.c_max_db_name_len): if(new_text.length() > gddb_constants.c_max_db_name_len):
change_text = false change_text = false
else: else:
change_text = true change_text = true
if(change_text): if(change_text):
m_current_db_name = $v_layout/db_info/db_edt.get_text() m_current_db_name = $v_layout/db_info/db_edt.get_text()
else: else:
$v_layout/db_info/db_edt.set_text(m_current_db_name) $v_layout/db_info/db_edt.set_text(m_current_db_name)
$v_layout/db_info/db_edt.set_cursor_position(m_current_db_name.length()) $v_layout/db_info/db_edt.set_caret_column(m_current_db_name.length())
# called when the user presses the ENTER key # called when the user presses the ENTER key
func on_text_confirmed(text : String) -> void : func on_text_confirmed(text : String) -> void :
# print("GDDBNewDBDlg::on_text_confirmed(" + text + ")") # print("GDDBNewDBDlg::on_text_confirmed(" + text + ")")
if(m_current_db_name.empty()): if(m_current_db_name.is_empty()):
return return
handle_db_name() handle_db_name()
hide() hide()
# called when the OK button is pressed # called when the OK button is pressed
func on_ok_btn_pressed() -> void : func on_ok_btn_pressed() -> void :
if(!m_current_db_name.empty()): if(!m_current_db_name.is_empty()):
handle_db_name() handle_db_name()
# called when the Cancel button is pressed # called when the Cancel button is pressed
func on_cancel_btn_pressed() -> void : func on_cancel_btn_pressed() -> void :
hide() hide()
# handles the name of the database # handles the name of the database
func handle_db_name() -> void : func handle_db_name() -> void :
emit_signal("create_new_db", m_current_db_name) emit_signal("create_new_db", m_current_db_name)
+82 -82
View File
@@ -1,82 +1,82 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="DynamicFont" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="FontFile" id=1]
[ext_resource path="res://addons/godot_db_manager/dlgs/new_db_dlg.gd" type="Script" id=2] [ext_resource path="res://addons/godot_db_manager/dlgs/new_db_dlg.gd" type="Script" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="DynamicFont" id=3] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="FontFile" id=3]
[node name="new_db_dlg" type="WindowDialog"] [node name="new_db_dlg" type="Window"]
visible = true visible = true
anchor_right = 0.257 anchor_right = 0.257
anchor_bottom = 0.1 anchor_bottom = 0.1
margin_right = 0.799988 offset_right = 0.799988
focus_next = NodePath("v_layout/db_info/db_edt") focus_next = NodePath("v_layout/db_info/db_edt")
focus_mode = 2 focus_mode = 2
custom_fonts/title_font = ExtResource( 1 ) theme_override_fonts/title_font = ExtResource( 1 )
popup_exclusive = true exclusive = true
window_title = "New database (max 16 characters)" window_title = "New database (max 16 characters)"
script = ExtResource( 2 ) script = ExtResource( 2 )
__meta__ = { __meta__ = {
"_edit_horizontal_guides_": [ 90.0781 ], "_edit_horizontal_guides_": [ 90.0781 ],
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="v_layout" type="VBoxContainer" parent="."] [node name="v_layout" type="VBoxContainer" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_constants/separation = 20 theme_override_constants/separation = 20
alignment = 1 alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="db_info" type="HBoxContainer" parent="v_layout"] [node name="db_info" type="HBoxContainer" parent="v_layout"]
margin_top = 11.0 offset_top = 11.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 38.0 offset_bottom = 38.0
alignment = 1 alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="db_lbl" type="Label" parent="v_layout/db_info"] [node name="db_lbl" type="Label" parent="v_layout/db_info"]
margin_left = 18.0 offset_left = 18.0
margin_top = 5.0 offset_top = 5.0
margin_right = 89.0 offset_right = 89.0
margin_bottom = 22.0 offset_bottom = 22.0
custom_fonts/font = ExtResource( 1 ) theme_override_fonts/font = ExtResource( 1 )
text = "DB name: " text = "DB name: "
[node name="db_edt" type="LineEdit" parent="v_layout/db_info"] [node name="db_edt" type="LineEdit" parent="v_layout/db_info"]
margin_left = 93.0 offset_left = 93.0
margin_right = 393.0 offset_right = 393.0
margin_bottom = 27.0 offset_bottom = 27.0
rect_min_size = Vector2( 300, 20 ) custom_minimum_size = Vector2( 300, 20 )
custom_fonts/font = ExtResource( 1 ) theme_override_fonts/font = ExtResource( 1 )
caret_blink = true caret_blink = true
caret_blink_speed = 0.5 caret_blink_interval = 0.5
[node name="buttons" type="HBoxContainer" parent="v_layout"] [node name="buttons" type="HBoxContainer" parent="v_layout"]
margin_top = 58.0 offset_top = 58.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 79.0 offset_bottom = 79.0
custom_constants/separation = 80 theme_override_constants/separation = 80
alignment = 1 alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="ok_btn" type="Button" parent="v_layout/buttons"] [node name="ok_btn" type="Button" parent="v_layout/buttons"]
margin_left = 66.0 offset_left = 66.0
margin_right = 166.0 offset_right = 166.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "OK" text = "OK"
[node name="cancel_btn" type="Button" parent="v_layout/buttons"] [node name="cancel_btn" type="Button" parent="v_layout/buttons"]
margin_left = 246.0 offset_left = 246.0
margin_right = 346.0 offset_right = 346.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "Cancel" text = "Cancel"
@@ -1,11 +1,11 @@
@tool
""" """
class GDDBNewDBDlg class GDDBNewDBDlg
""" """
class_name GDDBNewTableDlg class_name GDDBNewTableDlg
tool extends Window
extends WindowDialog
signal create_new_table signal create_new_table
signal cancel_dialog signal cancel_dialog
@@ -16,10 +16,10 @@ var m_current_table_name = ""
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
$v_layout/buttons/ok_btn.connect("pressed", self, "on_ok_btn_pressed") $v_layout/buttons/ok_btn.connect("pressed", Callable(self, "on_ok_btn_pressed"))
$v_layout/buttons/cancel_btn.connect("pressed", self, "on_cancel_btn_pressed") $v_layout/buttons/cancel_btn.connect("pressed", Callable(self, "on_cancel_btn_pressed"))
$v_layout/table_info/table_edt.connect("text_changed", self, "on_text_changed") $v_layout/table_info/table_edt.connect("text_changed", Callable(self, "on_text_changed"))
$v_layout/table_info/table_edt.connect("text_entered", self, "on_text_confirmed") $v_layout/table_info/table_edt.connect("text_submitted", Callable(self, "on_text_confirmed"))
m_current_table_name = "" m_current_table_name = ""
# sets the type of the dialog # sets the type of the dialog
@@ -58,18 +58,18 @@ func on_text_changed(new_text: String) -> void:
m_current_table_name = $v_layout/table_info/table_edt.get_text() m_current_table_name = $v_layout/table_info/table_edt.get_text()
else: else:
$v_layout/table_info/table_edt.set_text(m_current_table_name) $v_layout/table_info/table_edt.set_text(m_current_table_name)
$v_layout/table_info/table_edt.set_cursor_position(m_current_table_name.length()) $v_layout/table_info/table_edt.set_caret_column(m_current_table_name.length())
# called when the user presses the ENTER key # called when the user presses the ENTER key
func on_text_confirmed(text : String) -> void: func on_text_confirmed(text : String) -> void:
if(m_current_table_name.empty()): if(m_current_table_name.is_empty()):
return return
handle_table_name() handle_table_name()
hide() hide()
# called when the OK button is pressed # called when the OK button is pressed
func on_ok_btn_pressed() -> void: func on_ok_btn_pressed() -> void:
if(!m_current_table_name.empty()): if(!m_current_table_name.is_empty()):
handle_table_name() handle_table_name()
hide() hide()
+73 -73
View File
@@ -1,73 +1,73 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="DynamicFont" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_12.tres" type="FontFile" id=1]
[ext_resource path="res://addons/godot_db_manager/dlgs/new_table_dlg.gd" type="Script" id=2] [ext_resource path="res://addons/godot_db_manager/dlgs/new_table_dlg.gd" type="Script" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="DynamicFont" id=3] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_14.tres" type="FontFile" id=3]
[node name="new_table_dlg" type="WindowDialog"] [node name="new_table_dlg" type="Window"]
visible = true visible = true
anchor_right = 0.257 anchor_right = 0.257
anchor_bottom = 0.084 anchor_bottom = 0.084
margin_right = 0.799988 offset_right = 0.799988
margin_bottom = 0.399994 offset_bottom = 0.399994
focus_next = NodePath("v_layout/table_info/table_edt") focus_next = NodePath("v_layout/table_info/table_edt")
focus_mode = 1 focus_mode = 1
custom_fonts/title_font = ExtResource( 3 ) theme_override_fonts/title_font = ExtResource( 3 )
popup_exclusive = true exclusive = true
window_title = "New table (max 16 characters)" window_title = "New table (max 16 characters)"
script = ExtResource( 2 ) script = ExtResource( 2 )
[node name="v_layout" type="VBoxContainer" parent="."] [node name="v_layout" type="VBoxContainer" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_constants/separation = 10 theme_override_constants/separation = 10
alignment = 1 alignment = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="table_info" type="HBoxContainer" parent="v_layout"] [node name="table_info" type="HBoxContainer" parent="v_layout"]
margin_top = 8.0 offset_top = 8.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 35.0 offset_bottom = 35.0
alignment = 1 alignment = 1
[node name="table_lbl" type="Label" parent="v_layout/table_info"] [node name="table_lbl" type="Label" parent="v_layout/table_info"]
margin_left = 10.0 offset_left = 10.0
margin_top = 5.0 offset_top = 5.0
margin_right = 97.0 offset_right = 97.0
margin_bottom = 22.0 offset_bottom = 22.0
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "Table name: " text = "Table name: "
[node name="table_edt" type="LineEdit" parent="v_layout/table_info"] [node name="table_edt" type="LineEdit" parent="v_layout/table_info"]
margin_left = 101.0 offset_left = 101.0
margin_right = 401.0 offset_right = 401.0
margin_bottom = 27.0 offset_bottom = 27.0
rect_min_size = Vector2( 300, 20 ) custom_minimum_size = Vector2( 300, 20 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
caret_blink = true caret_blink = true
caret_blink_speed = 0.5 caret_blink_interval = 0.5
[node name="buttons" type="HBoxContainer" parent="v_layout"] [node name="buttons" type="HBoxContainer" parent="v_layout"]
margin_top = 45.0 offset_top = 45.0
margin_right = 412.0 offset_right = 412.0
margin_bottom = 66.0 offset_bottom = 66.0
custom_constants/separation = 80 theme_override_constants/separation = 80
alignment = 1 alignment = 1
[node name="ok_btn" type="Button" parent="v_layout/buttons"] [node name="ok_btn" type="Button" parent="v_layout/buttons"]
margin_left = 66.0 offset_left = 66.0
margin_right = 166.0 offset_right = 166.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 1 ) theme_override_fonts/font = ExtResource( 1 )
text = "OK" text = "OK"
[node name="cancel_btn" type="Button" parent="v_layout/buttons"] [node name="cancel_btn" type="Button" parent="v_layout/buttons"]
margin_left = 246.0 offset_left = 246.0
margin_right = 346.0 offset_right = 346.0
margin_bottom = 21.0 offset_bottom = 21.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 1 ) theme_override_fonts/font = ExtResource( 1 )
text = "Cancel" text = "Cancel"
+5 -5
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBMenu class GDDBMenu
""" """
class_name GDDBMenu class_name GDDBMenu
tool
extends Control extends Control
signal new_database signal new_database
@@ -29,18 +29,18 @@ var m_enable_save_as_db = false
var m_check_autosave_on_load = false var m_check_autosave_on_load = false
func _ready() -> void: func _ready() -> void:
$layout/File.connect("about_to_show", self, "on_about_to_show_file_menu") $layout/File.connect("about_to_popup", Callable(self, "on_about_to_show_file_menu"))
$layout/File.get_popup().clear() $layout/File.get_popup().clear()
$layout/File.get_popup().add_item("New DB", e_file_new_id) $layout/File.get_popup().add_item("New DB", e_file_new_id)
$layout/File.get_popup().add_item("Load DB", e_file_load_id) $layout/File.get_popup().add_item("Load DB", e_file_load_id)
$layout/File.get_popup().add_item("Save DB", e_file_save_id) $layout/File.get_popup().add_item("Save DB", e_file_save_id)
$layout/File.get_popup().add_item("Save DB As ...", e_file_save_as_id) $layout/File.get_popup().add_item("Save DB As ...", e_file_save_as_id)
$layout/File.get_popup().connect("id_pressed", self, "on_file_id_pressed") $layout/File.get_popup().connect("id_pressed", Callable(self, "on_file_id_pressed"))
$layout/Options.connect("about_to_show", self, "on_about_to_show_options_menu") $layout/Options.connect("about_to_popup", Callable(self, "on_about_to_show_options_menu"))
$layout/Options.get_popup().clear() $layout/Options.get_popup().clear()
$layout/Options.get_popup().add_check_item("Autosave on close", e_option_autosave_on_close_id) $layout/Options.get_popup().add_check_item("Autosave on close", e_option_autosave_on_close_id)
$layout/Options.get_popup().connect("id_pressed", self, "on_options_id_pressed") $layout/Options.get_popup().connect("id_pressed", Callable(self, "on_options_id_pressed"))
# called before showing the file menu # called before showing the file menu
func on_about_to_show_file_menu() -> void: func on_about_to_show_file_menu() -> void:
+11 -11
View File
@@ -1,11 +1,11 @@
[gd_scene load_steps=3 format=2] [gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/godot_db_manager/menu.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/menu.gd" type="Script" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="DynamicFont" id=2] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="FontFile" id=2]
[node name="menu" type="Control"] [node name="menu" type="Control"]
anchor_right = 1.0 anchor_right = 1.0
rect_min_size = Vector2( 0, 30 ) custom_minimum_size = Vector2( 0, 30 )
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
"_edit_horizontal_guides_": [ 30.0 ], "_edit_horizontal_guides_": [ 30.0 ],
@@ -14,23 +14,23 @@ __meta__ = {
} }
[node name="layout" type="HBoxContainer" parent="."] [node name="layout" type="HBoxContainer" parent="."]
margin_right = 1024.0 offset_right = 1024.0
margin_bottom = 30.0 offset_bottom = 30.0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="File" type="MenuButton" parent="layout"] [node name="File" type="MenuButton" parent="layout"]
margin_right = 40.0 offset_right = 40.0
margin_bottom = 30.0 offset_bottom = 30.0
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
text = "File" text = "File"
items = [ "New DB", null, 0, false, false, 0, 0, null, "", false, "Load DB", null, 0, false, false, 1, 0, null, "", false, "Save DB", null, 0, false, false, 2, 0, null, "", false, "Save DB As ...", null, 0, false, false, 3, 0, null, "", false ] items = [ "New DB", null, 0, false, false, 0, 0, null, "", false, "Load DB", null, 0, false, false, 1, 0, null, "", false, "Save DB", null, 0, false, false, 2, 0, null, "", false, "Save DB As ...", null, 0, false, false, 3, 0, null, "", false ]
[node name="Options" type="MenuButton" parent="layout"] [node name="Options" type="MenuButton" parent="layout"]
margin_left = 44.0 offset_left = 44.0
margin_right = 117.0 offset_right = 117.0
margin_bottom = 30.0 offset_bottom = 30.0
custom_fonts/font = ExtResource( 2 ) theme_override_fonts/font = ExtResource( 2 )
text = "Options" text = "Options"
items = [ "Autosave on close", null, 1, false, false, 4, 0, null, "", false ] items = [ "Autosave on close", null, 1, false, false, 4, 0, null, "", false ]
+17 -17
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBTableCell class GDDBTableCell
""" """
class_name GDDBTableCell class_name GDDBTableCell
tool
extends Control extends Control
signal edit_data signal edit_data
@@ -20,16 +20,16 @@ var m_row_idx : int = -1
var m_text : String = "" var m_text : String = ""
func _ready() -> void : func _ready() -> void :
$LineEdit.connect("text_changed", self, "on_text_changed") $LineEdit.connect("text_changed", Callable(self, "on_text_changed"))
$LineEdit/edit_btn.connect("pressed", self, "on_edit_string") $LineEdit/edit_btn.connect("pressed", Callable(self, "on_edit_string"))
$Button.connect("pressed", self, "on_button_pressed") $Button.connect("pressed", Callable(self, "on_button_pressed"))
$Button.set_clip_text(true) $Button.set_clip_text(true)
$CheckBox.connect("toggled", self, "on_toggle_button") $CheckBox.connect("toggled", Callable(self, "on_toggle_button"))
func _exit_tree() -> void : func _exit_tree() -> void :
$LineEdit.disconnect("text_changed", self, "on_text_changed") $LineEdit.disconnect("text_changed", Callable(self, "on_text_changed"))
# sets the property id # sets the property id
func set_prop_id(id : int) -> void : func set_prop_id(id : int) -> void :
@@ -137,10 +137,10 @@ func on_edit_string() -> void :
# called when edit the data # called when edit the data
func on_text_changed(new_text : String) -> void : func on_text_changed(new_text : String) -> void :
if(new_text.empty()): if(new_text.is_empty()):
m_text = "" m_text = ""
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(0) $LineEdit.set_caret_column(0)
return return
if(m_prop_type == gddb_types.e_prop_type_int): if(m_prop_type == gddb_types.e_prop_type_int):
@@ -163,25 +163,25 @@ func check_integer(text : String) -> bool :
is_negative = true is_negative = true
# check if the current string is only "-" # check if the current string is only "-"
if(text.empty()): if(text.is_empty()):
m_text = "-" m_text = "-"
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(m_text.length()) $LineEdit.set_caret_column(m_text.length())
return true return true
if(text.is_valid_integer()): if(text.is_valid_int()):
if(text.begins_with("0")): if(text.begins_with("0")):
# a negative integer cannot start with "0" # a negative integer cannot start with "0"
if(is_negative): if(is_negative):
m_text = "-" m_text = "-"
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(1) $LineEdit.set_caret_column(1)
return true return true
# a positive number starting with "0" can be only "0" # a positive number starting with "0" can be only "0"
m_text = "0" m_text = "0"
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(1) $LineEdit.set_caret_column(1)
return true return true
# don't add more "-" in front of the number # don't add more "-" in front of the number
@@ -195,11 +195,11 @@ func check_integer(text : String) -> bool :
m_text = text m_text = text
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(m_text.length()) $LineEdit.set_caret_column(m_text.length())
return true return true
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(m_text.length()) $LineEdit.set_caret_column(m_text.length())
return false return false
func check_float(text : String) -> bool : func check_float(text : String) -> bool :
@@ -210,12 +210,12 @@ func check_float(text : String) -> bool :
|| text.begins_with("09")): || text.begins_with("09")):
m_text = "0" m_text = "0"
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(1) $LineEdit.set_caret_column(1)
return true return true
m_text = text m_text = text
return true return true
$LineEdit.set_text(m_text) $LineEdit.set_text(m_text)
$LineEdit.set_cursor_position(m_text.length()) $LineEdit.set_caret_column(m_text.length())
return false return false
+12 -12
View File
@@ -1,8 +1,8 @@
[gd_scene load_steps=7 format=2] [gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture" id=1] [ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture2D" id=1]
[ext_resource path="res://addons/godot_db_manager/table_cell.gd" type="Script" id=2] [ext_resource path="res://addons/godot_db_manager/table_cell.gd" type="Script" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="DynamicFont" id=3] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="FontFile" id=3]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 1 ) atlas = ExtResource( 1 )
@@ -18,8 +18,8 @@ region = Rect2( 28, 28, 24, 24 )
[node name="table_cell" type="Control"] [node name="table_cell" type="Control"]
anchor_right = 1.0 anchor_right = 1.0
margin_bottom = 15.36 offset_bottom = 15.36
rect_min_size = Vector2( 150, 32 ) custom_minimum_size = Vector2( 150, 32 )
script = ExtResource( 2 ) script = ExtResource( 2 )
__meta__ = { __meta__ = {
"_edit_horizontal_guides_": [ 32.0 ], "_edit_horizontal_guides_": [ 32.0 ],
@@ -29,10 +29,10 @@ __meta__ = {
[node name="LineEdit" type="LineEdit" parent="."] [node name="LineEdit" type="LineEdit" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 0.914286 anchor_bottom = 0.914286
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "TESTING WWW" text = "TESTING WWW"
caret_blink = true caret_blink = true
caret_blink_speed = 0.5 caret_blink_interval = 0.5
__meta__ = { __meta__ = {
"_edit_use_anchors_": true "_edit_use_anchors_": true
} }
@@ -41,10 +41,10 @@ __meta__ = {
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = -29.0 offset_left = -29.0
margin_top = 4.0 offset_top = 4.0
margin_right = -5.0 offset_right = -5.0
margin_bottom = -4.0 offset_bottom = -4.0
texture_normal = SubResource( 1 ) texture_normal = SubResource( 1 )
texture_pressed = SubResource( 2 ) texture_pressed = SubResource( 2 )
texture_hover = SubResource( 3 ) texture_hover = SubResource( 3 )
@@ -56,7 +56,7 @@ __meta__ = {
visible = false visible = false
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
clip_text = true clip_text = true
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
@@ -66,7 +66,7 @@ __meta__ = {
visible = false visible = false
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
+31 -31
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBTableEditor class GDDBTableEditor
""" """
class_name GDDBTableEditor class_name GDDBTableEditor
tool
extends Control extends Control
signal set_dirty signal set_dirty
@@ -13,17 +13,17 @@ var m_parent_table = null
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
$tabs/structure/header/new_property_btn.connect("pressed", self, "on_new_property_btn_pressed") $tabs/structure/header/new_property_btn.connect("pressed", Callable(self, "on_new_property_btn_pressed"))
$tabs/data/add_data_btn.connect("pressed", self, "on_add_row_data_btn_pressed") $tabs/data/add_data_btn.connect("pressed", Callable(self, "on_add_row_data_btn_pressed"))
$tabs/data/add_data_btn.set_disabled(true) $tabs/data/add_data_btn.set_disabled(true)
$load_res_path_dlg.connect("file_selected", self, "on_select_res_path") $load_res_path_dlg.connect("file_selected", Callable(self, "on_select_res_path"))
$data_dlg.connect("select_data", self, "on_select_data") $data_dlg.connect("select_data", Callable(self, "on_select_data"))
$edit_string_dlg.connect("string_edited", self, "on_text_edited") $edit_string_dlg.connect("string_edited", Callable(self, "on_text_edited"))
$delete_prop_dlg.connect("delete_prop", self, "on_confirm_delete_property") $delete_prop_dlg.connect("delete_prop", Callable(self, "on_confirm_delete_property"))
# called when resizing a property # called when resizing a property
func on_resize_property(prop_id : int, diff_x : float) -> void : func on_resize_property(prop_id : int, diff_x : float) -> void :
@@ -97,36 +97,36 @@ func on_new_property_btn_pressed() -> void:
# adds a property to structure tab # adds a property to structure tab
func add_prop_to_structure(prop_id : int, prop_type : int, prop_name : String) -> void: func add_prop_to_structure(prop_id : int, prop_type : int, prop_name : String) -> void:
# print("GDDBTableEditor::add_prop_to_structure(" + str(prop_id) + ", " + str(prop_type) + ", " + prop_name + ")") # print("GDDBTableEditor::add_prop_to_structure(" + str(prop_id) + ", " + str(prop_type) + ", " + prop_name + ")")
var prop = load(gddb_constants.c_addon_main_path + "table_property.tscn").instance() var prop = load(gddb_constants.c_addon_main_path + "table_property.tscn").instantiate()
$tabs/structure/scroll/properties.add_child(prop) $tabs/structure/scroll/properties.add_child(prop)
prop.set_parent_table(m_parent_table) prop.set_parent_table(m_parent_table)
prop.setup(prop_id, prop_type, prop_name) prop.setup(prop_id, prop_type, prop_name)
prop.connect("edit_property", self, "on_edit_property") prop.connect("edit_property", Callable(self, "on_edit_property"))
prop.connect("delete_property", self, "on_delete_property") prop.connect("delete_property", Callable(self, "on_delete_property"))
prop.connect("enable_autoincrement", self, "on_enable_prop_autoincrement") prop.connect("enable_autoincrement", Callable(self, "on_enable_prop_autoincrement"))
# adds a property to data tab # adds a property to data tab
func add_prop_to_data(prop_id : int, prop_type : int, prop_name : String, has_autoincrement : bool) -> void: func add_prop_to_data(prop_id : int, prop_type : int, prop_name : String, has_autoincrement : bool) -> void:
var prop = load(gddb_constants.c_addon_main_path + "data_label.tscn").instance() var prop = load(gddb_constants.c_addon_main_path + "data_label.tscn").instantiate()
$tabs/data/scroll/data_holder/data_header.add_child(prop) $tabs/data/scroll/data_holder/data_header.add_child(prop)
prop.set_prop_id(prop_id) prop.set_prop_id(prop_id)
prop.set_text(prop_name) prop.set_text(prop_name)
prop.connect("resize_property", self, "on_resize_property") prop.connect("resize_property", Callable(self, "on_resize_property"))
# add property to the existing rows # add property to the existing rows
for idx in range(0, $tabs/data/scroll/data_holder/data_container.get_child_count()): for idx in range(0, $tabs/data/scroll/data_holder/data_container.get_child_count()):
var row = $tabs/data/scroll/data_holder/data_container.get_child(idx) var row = $tabs/data/scroll/data_holder/data_container.get_child(idx)
var cell = load(gddb_constants.c_addon_main_path + "table_cell.tscn").instance() var cell = load(gddb_constants.c_addon_main_path + "table_cell.tscn").instantiate()
row.add_child(cell) row.add_child(cell)
cell.set_prop_id(prop_id) cell.set_prop_id(prop_id)
cell.set_row_idx(idx) cell.set_row_idx(idx)
cell.set_prop_type(prop_type) cell.set_prop_type(prop_type)
cell.set_text("") cell.set_text("")
cell.enable_autoincrement(has_autoincrement) cell.enable_autoincrement(has_autoincrement)
cell.connect("edit_data", self, "on_edit_data") cell.connect("edit_data", Callable(self, "on_edit_data"))
cell.connect("choose_resource", self, "on_choose_resource") cell.connect("choose_resource", Callable(self, "on_choose_resource"))
cell.connect("choose_data", self, "on_choose_data") cell.connect("choose_data", Callable(self, "on_choose_data"))
cell.connect("edit_string", self, "on_edit_string") cell.connect("edit_string", Callable(self, "on_edit_string"))
# called when the add data button is pressed # called when the add data button is pressed
func on_add_row_data_btn_pressed() -> void: func on_add_row_data_btn_pressed() -> void:
@@ -139,7 +139,7 @@ func on_add_row_data_btn_pressed() -> void:
var row = HBoxContainer.new() var row = HBoxContainer.new()
$tabs/data/scroll/data_holder/data_container.add_child(row) $tabs/data/scroll/data_holder/data_container.add_child(row)
for idx in range(0, $tabs/structure/scroll/properties.get_child_count()): for idx in range(0, $tabs/structure/scroll/properties.get_child_count()):
var cell = load(gddb_constants.c_addon_main_path + "table_cell.tscn").instance() var cell = load(gddb_constants.c_addon_main_path + "table_cell.tscn").instantiate()
var prop = $tabs/structure/scroll/properties.get_child(idx) var prop = $tabs/structure/scroll/properties.get_child(idx)
var db_prop = m_parent_table.get_prop_by_id(idx) var db_prop = m_parent_table.get_prop_by_id(idx)
row.add_child(cell) row.add_child(cell)
@@ -150,10 +150,10 @@ func on_add_row_data_btn_pressed() -> void:
cell.enable_autoincrement(db_prop.has_autoincrement()) cell.enable_autoincrement(db_prop.has_autoincrement())
if(autoincrement): if(autoincrement):
cell.set_text(str(row_idx+1)) cell.set_text(str(row_idx+1))
cell.connect("edit_data", self, "on_edit_data") cell.connect("edit_data", Callable(self, "on_edit_data"))
cell.connect("choose_resource", self, "on_choose_resource") cell.connect("choose_resource", Callable(self, "on_choose_resource"))
cell.connect("choose_data", self, "on_choose_data") cell.connect("choose_data", Callable(self, "on_choose_data"))
cell.connect("edit_string", self, "on_edit_string") cell.connect("edit_string", Callable(self, "on_edit_string"))
emit_signal("set_dirty") emit_signal("set_dirty")
@@ -173,12 +173,12 @@ func fill_properties() -> void:
for idx in range(0, props_count): for idx in range(0, props_count):
var db_prop = m_parent_table.get_prop_at(idx) var db_prop = m_parent_table.get_prop_at(idx)
add_prop_to_structure(db_prop.get_prop_id(), db_prop.get_prop_type(), db_prop.get_prop_name()) add_prop_to_structure(db_prop.get_prop_id(), db_prop.get_prop_type(), db_prop.get_prop_name())
var prop = load(gddb_constants.c_addon_main_path + "data_label.tscn").instance() var prop = load(gddb_constants.c_addon_main_path + "data_label.tscn").instantiate()
$tabs/data/scroll/data_holder/data_header.add_child(prop) $tabs/data/scroll/data_holder/data_header.add_child(prop)
prop.set_prop_id(db_prop.get_prop_id()) prop.set_prop_id(db_prop.get_prop_id())
prop.set_prop_type(db_prop.get_prop_type()) prop.set_prop_type(db_prop.get_prop_type())
prop.set_text(db_prop.get_prop_name()) prop.set_text(db_prop.get_prop_name())
prop.connect("resize_property", self, "on_resize_property") prop.connect("resize_property", Callable(self, "on_resize_property"))
if(props_count > 0): if(props_count > 0):
$tabs/data/add_data_btn.set_disabled(false) $tabs/data/add_data_btn.set_disabled(false)
@@ -198,7 +198,7 @@ func fill_data() -> void:
#print("Prop type: " + str(db_prop.get_prop_type())) #print("Prop type: " + str(db_prop.get_prop_type()))
#print("Prop name: " + str(db_prop.get_prop_name())) #print("Prop name: " + str(db_prop.get_prop_name()))
var cell = load(gddb_constants.c_addon_main_path + "table_cell.tscn").instance() var cell = load(gddb_constants.c_addon_main_path + "table_cell.tscn").instantiate()
var cell_data = data_row[jdx].get_data() var cell_data = data_row[jdx].get_data()
var prop_type = db_prop.get_prop_type() var prop_type = db_prop.get_prop_type()
@@ -215,10 +215,10 @@ func fill_data() -> void:
cell.set_prop_type(prop_type) cell.set_prop_type(prop_type)
cell.set_text(cell_data) cell.set_text(cell_data)
cell.enable_autoincrement(db_prop.has_autoincrement()) cell.enable_autoincrement(db_prop.has_autoincrement())
cell.connect("edit_data", self, "on_edit_data") cell.connect("edit_data", Callable(self, "on_edit_data"))
cell.connect("choose_resource", self, "on_choose_resource") cell.connect("choose_resource", Callable(self, "on_choose_resource"))
cell.connect("choose_data", self, "on_choose_data") cell.connect("choose_data", Callable(self, "on_choose_data"))
cell.connect("edit_string", self, "on_edit_string") cell.connect("edit_string", Callable(self, "on_edit_string"))
# links properties # links properties
func link_props() -> void : func link_props() -> void :
@@ -312,7 +312,7 @@ func on_confirm_delete_property() -> void:
for jdx in range(0, row.get_child_count()): for jdx in range(0, row.get_child_count()):
var cell = row.get_child(jdx) var cell = row.get_child(jdx)
if(cell.get_prop_id() == prop_id): if(cell.get_prop_id() == prop_id):
cell.disconnect("edit_data", self, "on_edit_data") cell.disconnect("edit_data", Callable(self, "on_edit_data"))
cell.queue_free() cell.queue_free()
break break
+33 -33
View File
@@ -6,8 +6,8 @@
[ext_resource path="res://addons/godot_db_manager/dlgs/data_dlg.tscn" type="PackedScene" id=4] [ext_resource path="res://addons/godot_db_manager/dlgs/data_dlg.tscn" type="PackedScene" id=4]
[ext_resource path="res://addons/godot_db_manager/dlgs/edit_string_dlg.tscn" type="PackedScene" id=5] [ext_resource path="res://addons/godot_db_manager/dlgs/edit_string_dlg.tscn" type="PackedScene" id=5]
[ext_resource path="res://addons/godot_db_manager/dlgs/delete_prop_dlg.tscn" type="PackedScene" id=6] [ext_resource path="res://addons/godot_db_manager/dlgs/delete_prop_dlg.tscn" type="PackedScene" id=6]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="DynamicFont" id=7] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="FontFile" id=7]
[ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture" id=8] [ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture2D" id=8]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 8 ) atlas = ExtResource( 8 )
@@ -50,41 +50,41 @@ __meta__ = {
[node name="tabs" type="TabContainer" parent="."] [node name="tabs" type="TabContainer" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_fonts/font = ExtResource( 7 ) theme_override_fonts/font = ExtResource( 7 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="structure" type="Tabs" parent="tabs"] [node name="structure" type="TabBar" parent="tabs"]
visible = false visible = false
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 40.0 offset_top = 40.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
tab_close_display_policy = 2 tab_close_display_policy = 2
[node name="header" type="HBoxContainer" parent="tabs/structure"] [node name="header" type="HBoxContainer" parent="tabs/structure"]
margin_right = 892.0 offset_right = 892.0
margin_bottom = 24.0 offset_bottom = 24.0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="new_property_btn" type="TextureButton" parent="tabs/structure/header"] [node name="new_property_btn" type="TextureButton" parent="tabs/structure/header"]
margin_right = 24.0 offset_right = 24.0
margin_bottom = 24.0 offset_bottom = 24.0
texture_normal = SubResource( 1 ) texture_normal = SubResource( 1 )
texture_pressed = SubResource( 2 ) texture_pressed = SubResource( 2 )
texture_hover = SubResource( 3 ) texture_hover = SubResource( 3 )
[node name="props_lbl" type="Label" parent="tabs/structure/header"] [node name="props_lbl" type="Label" parent="tabs/structure/header"]
margin_left = 28.0 offset_left = 28.0
margin_top = 1.0 offset_top = 1.0
margin_right = 114.0 offset_right = 114.0
margin_bottom = 23.0 offset_bottom = 23.0
custom_fonts/font = ExtResource( 7 ) theme_override_fonts/font = ExtResource( 7 )
text = "Properties:" text = "Properties:"
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
@@ -93,7 +93,7 @@ __meta__ = {
[node name="scroll" type="ScrollContainer" parent="tabs/structure"] [node name="scroll" type="ScrollContainer" parent="tabs/structure"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_top = 30.0 offset_top = 30.0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
@@ -103,18 +103,18 @@ __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="data" type="Tabs" parent="tabs"] [node name="data" type="TabBar" parent="tabs"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 40.0 offset_top = 40.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
tab_close_display_policy = 2 tab_close_display_policy = 2
[node name="add_data_btn" type="TextureButton" parent="tabs/data"] [node name="add_data_btn" type="TextureButton" parent="tabs/data"]
margin_right = 24.0 offset_right = 24.0
margin_bottom = 24.0 offset_bottom = 24.0
disabled = true disabled = true
texture_normal = SubResource( 4 ) texture_normal = SubResource( 4 )
texture_pressed = SubResource( 5 ) texture_pressed = SubResource( 5 )
@@ -127,31 +127,31 @@ __meta__ = {
[node name="scroll" type="ScrollContainer" parent="tabs/data"] [node name="scroll" type="ScrollContainer" parent="tabs/data"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_top = 38.0 offset_top = 38.0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="data_holder" type="VBoxContainer" parent="tabs/data/scroll"] [node name="data_holder" type="VBoxContainer" parent="tabs/data/scroll"]
margin_bottom = 36.0 offset_bottom = 36.0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="data_header" type="HBoxContainer" parent="tabs/data/scroll/data_holder"] [node name="data_header" type="HBoxContainer" parent="tabs/data/scroll/data_holder"]
margin_bottom = 32.0 offset_bottom = 32.0
rect_min_size = Vector2( 0, 32 ) custom_minimum_size = Vector2( 0, 32 )
rect_clip_content = true clip_contents = true
[node name="data_container" type="VBoxContainer" parent="tabs/data/scroll/data_holder"] [node name="data_container" type="VBoxContainer" parent="tabs/data/scroll/data_holder"]
margin_top = 36.0 offset_top = 36.0
margin_bottom = 36.0 offset_bottom = 36.0
[node name="error_dlg" parent="." instance=ExtResource( 1 )] [node name="error_dlg" parent="." instance=ExtResource( 1 )]
visible = false visible = false
[node name="load_res_path_dlg" parent="." instance=ExtResource( 2 )] [node name="load_res_path_dlg" parent="." instance=ExtResource( 2 )]
filters = PoolStringArray( "*.res, *.tres ; Godot resource file types", "*.scn, *.tscn, *escn ; Godot scene file types", "*.gd, *.cs, *.h, *.c, *.hpp, *.cpp ; Code file types", "*.shader ; Shader file types", "*.mat ; Material file types", "*.dae, *.gltf, *.obj, *.fbx ; Mesh file types", "*.anim ; Animation file types", "*.ttf, *.otf ; Font file types", "*.png, *.jpg, *.jpeg, *.tiff, *.tga, *.bmp, *.webp, *.gif, *.hdr ; Images file types", "*.snd, *.wav, *.ogg, *.mp3 ; Sound file types", "*.ogg, *.mpg, *.mpeg, *.avi, *.mov, *.mp4, *.webm ; Video file types", "*.txt, *.csv, *.json, *.xml, *.cfg, *.ini ; Text file types", "*.doc, *.docx, *.xls, *.xlsx, *.odt, *.ods, *.pdf ; Doc file types", "*.dat, *.raw ; Binary data file types" ) filters = PackedStringArray( "*.res, *.tres ; Godot resource file types", "*.scn, *.tscn, *escn ; Godot scene file types", "*.gd, *.cs, *.h, *.c, *.hpp, *.cpp ; Code file types", "*.shader ; Shader file types", "*.mat ; Material file types", "*.dae, *.gltf, *.obj, *.fbx ; Mesh file types", "*.anim ; Animation file types", "*.ttf, *.otf ; Font file types", "*.png, *.jpg, *.jpeg, *.tiff, *.tga, *.bmp, *.webp, *.gif, *.hdr ; Images file types", "*.snd, *.wav, *.ogg, *.mp3 ; Sound file types", "*.ogg, *.mpg, *.mpeg, *.avi, *.mov, *.mp4, *.webm ; Video file types", "*.txt, *.csv, *.json, *.xml, *.cfg, *.ini ; Text file types", "*.doc, *.docx, *.xls, *.xlsx, *.odt, *.ods, *.pdf ; Doc file types", "*.dat, *.raw ; Binary data file types" )
[node name="data_dlg" parent="." instance=ExtResource( 4 )] [node name="data_dlg" parent="." instance=ExtResource( 4 )]
+4 -4
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBTableItem class GDDBTableItem
""" """
class_name GDDBTableItem class_name GDDBTableItem
tool
extends Control extends Control
signal select_item signal select_item
@@ -18,9 +18,9 @@ var m_is_selected = false
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
$select_btn.connect("pressed", self, "on_select_btn_pressed") $select_btn.connect("pressed", Callable(self, "on_select_btn_pressed"))
$edit_table_btn.connect("pressed", self, "on_edit_table_btn_pressed") $edit_table_btn.connect("pressed", Callable(self, "on_edit_table_btn_pressed"))
$delete_table_btn.connect("pressed", self, "on_delete_table_btn_pressed") $delete_table_btn.connect("pressed", Callable(self, "on_delete_table_btn_pressed"))
$select.hide() $select.hide()
# sets the table id # sets the table id
+17 -17
View File
@@ -1,9 +1,9 @@
[gd_scene load_steps=11 format=2] [gd_scene load_steps=11 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="DynamicFont" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="FontFile" id=1]
[ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture" id=2] [ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture2D" id=2]
[ext_resource path="res://addons/godot_db_manager/table_item.gd" type="Script" id=3] [ext_resource path="res://addons/godot_db_manager/table_item.gd" type="Script" id=3]
[ext_resource path="res://addons/godot_db_manager/assets/tex/debug.png" type="Texture" id=4] [ext_resource path="res://addons/godot_db_manager/assets/tex/debug.png" type="Texture2D" id=4]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
@@ -32,8 +32,8 @@ region = Rect2( 54, 28, 24, 24 )
[node name="table_item" type="Control"] [node name="table_item" type="Control"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 0.021 anchor_bottom = 0.021
margin_bottom = 0.399998 offset_bottom = 0.399998
rect_min_size = Vector2( 180, 34 ) custom_minimum_size = Vector2( 180, 34 )
script = ExtResource( 3 ) script = ExtResource( 3 )
__meta__ = { __meta__ = {
"_edit_horizontal_guides_": [ 34.0 ], "_edit_horizontal_guides_": [ 34.0 ],
@@ -64,10 +64,10 @@ __meta__ = {
[node name="table_name" type="Label" parent="."] [node name="table_name" type="Label" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_right = -6.10352e-05 offset_right = -6.10352e-05
margin_bottom = -4.0 offset_bottom = -4.0
rect_min_size = Vector2( 100, 0 ) custom_minimum_size = Vector2( 100, 0 )
custom_fonts/font = ExtResource( 1 ) theme_override_fonts/font = ExtResource( 1 )
text = "Table_999" text = "Table_999"
valign = 1 valign = 1
__meta__ = { __meta__ = {
@@ -85,10 +85,10 @@ __meta__ = {
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = -56.0 offset_left = -56.0
margin_top = 5.0 offset_top = 5.0
margin_right = -32.0 offset_right = -32.0
margin_bottom = -5.0 offset_bottom = -5.0
texture_normal = SubResource( 1 ) texture_normal = SubResource( 1 )
texture_pressed = SubResource( 2 ) texture_pressed = SubResource( 2 )
texture_hover = SubResource( 3 ) texture_hover = SubResource( 3 )
@@ -100,10 +100,10 @@ __meta__ = {
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = -28.0 offset_left = -28.0
margin_top = 5.0 offset_top = 5.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -5.0 offset_bottom = -5.0
texture_normal = SubResource( 4 ) texture_normal = SubResource( 4 )
texture_pressed = SubResource( 5 ) texture_pressed = SubResource( 5 )
texture_hover = SubResource( 6 ) texture_hover = SubResource( 6 )
+6 -6
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBTableProperty class GDDBTableProperty
""" """
class_name GDDBTableProperty class_name GDDBTableProperty
tool
extends Control extends Control
signal delete_property signal delete_property
@@ -19,20 +19,20 @@ var m_parent_table = null
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
$prop_name.connect("text_changed", self, "on_name_changed") $prop_name.connect("text_changed", Callable(self, "on_name_changed"))
$prop_type.clear() $prop_type.clear()
for idx in range(0, gddb_types.e_prop_types_count): for idx in range(0, gddb_types.e_prop_types_count):
$prop_type.add_item(gddb_globals.get_data_name(idx), gddb_types.e_prop_type_bool + idx) $prop_type.add_item(gddb_globals.get_data_name(idx), gddb_types.e_prop_type_bool + idx)
$prop_type.select(0) $prop_type.select(0)
$prop_type.get_popup().connect("about_to_show", self, "on_about_to_show") $prop_type.get_popup().connect("about_to_popup", Callable(self, "on_about_to_show"))
$prop_type.connect("item_selected", self, "on_type_changed") $prop_type.connect("item_selected", Callable(self, "on_type_changed"))
$delete_button.connect("pressed", self, "on_delete_button_pressed") $delete_button.connect("pressed", Callable(self, "on_delete_button_pressed"))
$autoincrement_btn.hide() $autoincrement_btn.hide()
$autoincrement_btn.connect("toggled", self, "on_set_autoincrement") $autoincrement_btn.connect("toggled", Callable(self, "on_set_autoincrement"))
# setup property # setup property
func setup(prop_id : int, prop_type : int, prop_name : String) -> void: func setup(prop_id : int, prop_type : int, prop_name : String) -> void:
+32 -32
View File
@@ -1,8 +1,8 @@
[gd_scene load_steps=7 format=2] [gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture" id=1] [ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture2D" id=1]
[ext_resource path="res://addons/godot_db_manager/table_property.gd" type="Script" id=2] [ext_resource path="res://addons/godot_db_manager/table_property.gd" type="Script" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="DynamicFont" id=3] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_18.tres" type="FontFile" id=3]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 1 ) atlas = ExtResource( 1 )
@@ -18,8 +18,8 @@ region = Rect2( 54, 28, 24, 24 )
[node name="table_property" type="Control"] [node name="table_property" type="Control"]
anchor_right = 1.0 anchor_right = 1.0
margin_bottom = 15.36 offset_bottom = 15.36
rect_min_size = Vector2( 900, 32 ) custom_minimum_size = Vector2( 900, 32 )
script = ExtResource( 2 ) script = ExtResource( 2 )
__meta__ = { __meta__ = {
"_edit_horizontal_guides_": [ 32.0 ], "_edit_horizontal_guides_": [ 32.0 ],
@@ -27,10 +27,10 @@ __meta__ = {
} }
[node name="delete_button" type="TextureButton" parent="."] [node name="delete_button" type="TextureButton" parent="."]
margin_left = 3.0 offset_left = 3.0
margin_top = 4.0 offset_top = 4.0
margin_right = 27.0 offset_right = 27.0
margin_bottom = 28.0 offset_bottom = 28.0
texture_normal = SubResource( 1 ) texture_normal = SubResource( 1 )
texture_pressed = SubResource( 2 ) texture_pressed = SubResource( 2 )
texture_hover = SubResource( 3 ) texture_hover = SubResource( 3 )
@@ -39,50 +39,50 @@ __meta__ = {
} }
[node name="prop_name_label" type="Label" parent="."] [node name="prop_name_label" type="Label" parent="."]
margin_left = 28.0 offset_left = 28.0
margin_top = 2.0 offset_top = 2.0
margin_right = 97.0 offset_right = 97.0
margin_bottom = 24.0 offset_bottom = 24.0
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = " Name:" text = " Name:"
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="prop_name" type="LineEdit" parent="."] [node name="prop_name" type="LineEdit" parent="."]
margin_left = 109.0 offset_left = 109.0
margin_right = 409.0 offset_right = 409.0
margin_bottom = 32.0 offset_bottom = 32.0
rect_min_size = Vector2( 300, 0 ) custom_minimum_size = Vector2( 300, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="type_label" type="Label" parent="."] [node name="type_label" type="Label" parent="."]
margin_left = 413.0 offset_left = 413.0
margin_top = 2.0 offset_top = 2.0
margin_right = 473.0 offset_right = 473.0
margin_bottom = 24.0 offset_bottom = 24.0
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = " Type:" text = " Type:"
[node name="prop_type" type="OptionButton" parent="."] [node name="prop_type" type="OptionButton" parent="."]
margin_left = 485.0 offset_left = 485.0
margin_right = 735.0 offset_right = 735.0
margin_bottom = 32.0 offset_bottom = 32.0
rect_min_size = Vector2( 250, 0 ) custom_minimum_size = Vector2( 250, 0 )
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "Bool" text = "Bool"
items = [ "Bool", null, false, 0, null, "Integer", null, false, 1, null, "Float", null, false, 2, null, "String", null, false, 3, null, "Resource", null, false, 4, null ] items = [ "Bool", null, false, 0, null, "Integer", null, false, 1, null, "Float", null, false, 2, null, "String", null, false, 3, null, "Resource", null, false, 4, null ]
selected = 0 selected = 0
[node name="autoincrement_btn" type="CheckBox" parent="."] [node name="autoincrement_btn" type="CheckBox" parent="."]
visible = false visible = false
margin_left = 740.0 offset_left = 740.0
margin_right = 891.0 offset_right = 891.0
margin_bottom = 32.0 offset_bottom = 32.0
custom_fonts/font = ExtResource( 3 ) theme_override_fonts/font = ExtResource( 3 )
text = "Auto increment" text = "Auto increment"
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
+17 -17
View File
@@ -1,17 +1,17 @@
""" @tool
class GDDBTablesHeader """
""" class GDDBTablesHeader
"""
class_name GDDBTablesHeader
class_name GDDBTablesHeader
tool
extends Control extends Control
signal add_table signal add_table
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
$add_table_btn.connect("pressed", self, "on_add_table_btn_pressed") $add_table_btn.connect("pressed", Callable(self, "on_add_table_btn_pressed"))
func on_add_table_btn_pressed(): func on_add_table_btn_pressed():
emit_signal("add_table") emit_signal("add_table")
+14 -14
View File
@@ -1,8 +1,8 @@
[gd_scene load_steps=7 format=2] [gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_20.tres" type="DynamicFont" id=1] [ext_resource path="res://addons/godot_db_manager/assets/fnt/roboto_20.tres" type="FontFile" id=1]
[ext_resource path="res://addons/godot_db_manager/tables_header.gd" type="Script" id=2] [ext_resource path="res://addons/godot_db_manager/tables_header.gd" type="Script" id=2]
[ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture" id=3] [ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture2D" id=3]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 3 ) atlas = ExtResource( 3 )
@@ -19,9 +19,9 @@ region = Rect2( 2, 28, 24, 24 )
[node name="tables_header" type="Control"] [node name="tables_header" type="Control"]
anchor_right = 0.188889 anchor_right = 0.188889
anchor_bottom = 0.019 anchor_bottom = 0.019
margin_right = 6.10352e-05 offset_right = 6.10352e-05
margin_bottom = -0.4 offset_bottom = -0.4
rect_min_size = Vector2( 170, 30 ) custom_minimum_size = Vector2( 170, 30 )
script = ExtResource( 2 ) script = ExtResource( 2 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": true, "_edit_use_anchors_": true,
@@ -29,10 +29,10 @@ __meta__ = {
} }
[node name="add_table_btn" type="TextureButton" parent="."] [node name="add_table_btn" type="TextureButton" parent="."]
margin_left = 2.0 offset_left = 2.0
margin_top = 2.0 offset_top = 2.0
margin_right = 26.0 offset_right = 26.0
margin_bottom = 26.0 offset_bottom = 26.0
texture_normal = SubResource( 1 ) texture_normal = SubResource( 1 )
texture_pressed = SubResource( 2 ) texture_pressed = SubResource( 2 )
texture_hover = SubResource( 3 ) texture_hover = SubResource( 3 )
@@ -44,9 +44,9 @@ __meta__ = {
anchor_left = 0.165 anchor_left = 0.165
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 0.8 anchor_bottom = 0.8
margin_left = -0.0500259 offset_left = -0.0500259
margin_right = -0.000152588 offset_right = -0.000152588
custom_fonts/font = ExtResource( 1 ) theme_override_fonts/font = ExtResource( 1 )
text = "Tables " text = "Tables "
align = 1 align = 1
__meta__ = { __meta__ = {
@@ -56,8 +56,8 @@ __meta__ = {
[node name="line" type="NinePatchRect" parent="."] [node name="line" type="NinePatchRect" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_top = 29.0 offset_top = 29.0
margin_right = -0.000152588 offset_right = -0.000152588
texture = ExtResource( 3 ) texture = ExtResource( 3 )
region_rect = Rect2( 80, 2, 24, 2 ) region_rect = Rect2( 80, 2, 24, 2 )
__meta__ = { __meta__ = {
+7 -7
View File
@@ -1,10 +1,10 @@
@tool
""" """
class GDDBTablesList class GDDBTablesList
""" """
class_name GDDBTablesList class_name GDDBTablesList
tool
extends Control extends Control
signal resize_tables_list signal resize_tables_list
@@ -24,7 +24,7 @@ func _ready() -> void:
m_mouse_pos_pressed = Vector2() m_mouse_pos_pressed = Vector2()
m_mouse_pressed = false m_mouse_pressed = false
$tables_header.connect("add_table", self, "on_add_table") $tables_header.connect("add_table", Callable(self, "on_add_table"))
# called when the node gets an input # called when the node gets an input
func _input(event : InputEvent) -> void : func _input(event : InputEvent) -> void :
@@ -34,7 +34,7 @@ func _input(event : InputEvent) -> void :
var evLocal = $resize_ctrl.make_input_local(event) var evLocal = $resize_ctrl.make_input_local(event)
if event is InputEventMouseButton : if event is InputEventMouseButton :
if(event.button_index == BUTTON_LEFT): if(event.button_index == MOUSE_BUTTON_LEFT):
if(event.pressed): if(event.pressed):
var rect = Rect2(Vector2(0, 0), $resize_ctrl.get_size()) var rect = Rect2(Vector2(0, 0), $resize_ctrl.get_size())
var inside = rect.has_point(evLocal.position) var inside = rect.has_point(evLocal.position)
@@ -66,13 +66,13 @@ func on_add_table() -> void :
# creates a table # creates a table
func create_table(db_table : Object, select_table : bool = true) -> void: func create_table(db_table : Object, select_table : bool = true) -> void:
# print("GDDBTablesList::create_table(" + str(db_table) + ")") # print("GDDBTablesList::create_table(" + str(db_table) + ")")
var table = load(gddb_constants.c_addon_main_path + "table_item.tscn").instance() var table = load(gddb_constants.c_addon_main_path + "table_item.tscn").instantiate()
var table_id = db_table.get_table_id() var table_id = db_table.get_table_id()
table.set_table_id(table_id) table.set_table_id(table_id)
table.set_table_name(db_table.get_table_name()) table.set_table_name(db_table.get_table_name())
table.connect("select_item", self, "on_select_item") table.connect("select_item", Callable(self, "on_select_item"))
table.connect("edit_table", self, "on_edit_table_name") table.connect("edit_table", Callable(self, "on_edit_table_name"))
table.connect("delete_table", self, "on_delete_table") table.connect("delete_table", Callable(self, "on_delete_table"))
m_tables.push_back(table) m_tables.push_back(table)
$tables_container/tables.add_child(table) $tables_container/tables.add_child(table)
if(select_table): if(select_table):
+10 -10
View File
@@ -3,13 +3,13 @@
[ext_resource path="res://addons/godot_db_manager/tables_list.gd" type="Script" id=1] [ext_resource path="res://addons/godot_db_manager/tables_list.gd" type="Script" id=1]
[ext_resource path="res://addons/godot_db_manager/tables_header.tscn" type="PackedScene" id=2] [ext_resource path="res://addons/godot_db_manager/tables_header.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/godot_db_manager/debug/dbg.tscn" type="PackedScene" id=3] [ext_resource path="res://addons/godot_db_manager/debug/dbg.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture" id=4] [ext_resource path="res://addons/godot_db_manager/assets/tex/gui.png" type="Texture2D" id=4]
[node name="tables_list" type="Control"] [node name="tables_list" type="Control"]
anchor_right = 0.2 anchor_right = 0.2
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_right = -9.99991 offset_right = -9.99991
rect_min_size = Vector2( 180, 225 ) custom_minimum_size = Vector2( 180, 225 )
script = ExtResource( 1 ) script = ExtResource( 1 )
__meta__ = { __meta__ = {
"_edit_horizontal_guides_": [ 29.9686, 584.0 ], "_edit_horizontal_guides_": [ 29.9686, 584.0 ],
@@ -20,21 +20,21 @@ __meta__ = {
[node name="tables_header" parent="." instance=ExtResource( 2 )] [node name="tables_header" parent="." instance=ExtResource( 2 )]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 0.0 anchor_bottom = 0.0
margin_right = -9.15527e-05 offset_right = -9.15527e-05
margin_bottom = 30.0 offset_bottom = 30.0
rect_min_size = Vector2( 180, 30 ) custom_minimum_size = Vector2( 180, 30 )
[node name="tables_container" type="ScrollContainer" parent="."] [node name="tables_container" type="ScrollContainer" parent="."]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_top = 32.0 offset_top = 32.0
rect_min_size = Vector2( 180, 0 ) custom_minimum_size = Vector2( 180, 0 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="tables" type="VBoxContainer" parent="tables_container"] [node name="tables" type="VBoxContainer" parent="tables_container"]
rect_clip_content = true clip_contents = true
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
@@ -43,7 +43,7 @@ __meta__ = {
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = -3.0 offset_left = -3.0
mouse_filter = 0 mouse_filter = 0
mouse_default_cursor_shape = 15 mouse_default_cursor_shape = 15
texture = ExtResource( 4 ) texture = ExtResource( 4 )
+5 -5
View File
@@ -1,14 +1,14 @@
# Copyright © 2020 Hugo Locurcio and contributors - MIT License # Copyright © 2020 Hugo Locurcio and contributors - MIT License
# See `LICENSE.md` included in the source distribution for details. # See `LICENSE.md` included in the source distribution for details.
extends CPUParticles extends CPUParticles3D
class_name LODCPUParticles, "lod_cpu_particles.svg" class_name LODCPUParticles, "lod_cpu_particles.svg"
# If `false`, LOD won't update anymore. This can be used for performance comparison # If `false`, LOD won't update anymore. This can be used for performance comparison
# purposes. # purposes.
export var enable_lod := true @export var enable_lod := true
# The maximum particle emitting distance in units. Past this distance, particles will no longer emit. # The maximum particle emitting distance in units. Past this distance, particles will no longer emit.
export(float, 0.0, 1000.0, 0.1) var max_emit_distance := 50 @export var max_emit_distance := 50 # (float, 0.0, 1000.0, 0.1)
# The rate at which LODs will be updated (in seconds). Lower values are more reactive # The rate at which LODs will be updated (in seconds). Lower values are more reactive
# but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes. # but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes.
@@ -36,7 +36,7 @@ func _ready() -> void:
# Add random jitter to the timer to ensure LODs don't all swap at the same time. # Add random jitter to the timer to ensure LODs don't all swap at the same time.
randomize() randomize()
timer += rand_range(0, refresh_rate) timer += randf_range(0, refresh_rate)
# Despite LOD not being related to physics, we chose to run in `_physics_process()` # Despite LOD not being related to physics, we chose to run in `_physics_process()`
# to minimize the amount of method calls per second (and therefore decrease CPU usage). # to minimize the amount of method calls per second (and therefore decrease CPU usage).
@@ -45,7 +45,7 @@ func _physics_process(delta: float) -> void:
return return
# We need a camera to do the rest. # We need a camera to do the rest.
var camera := get_viewport().get_camera() var camera := get_viewport().get_camera_3d()
if camera == null: if camera == null:
return return
+8 -8
View File
@@ -1,25 +1,25 @@
# Copyright © 2020 Hugo Locurcio and contributors - MIT License # Copyright © 2020 Hugo Locurcio and contributors - MIT License
# See `LICENSE.md` included in the source distribution for details. # See `LICENSE.md` included in the source distribution for details.
extends OmniLight extends OmniLight3D
class_name LODOmniLight, "lod_omni_light.svg" class_name LODOmniLight, "lod_omni_light.svg"
# If `false`, LOD won't update anymore. This can be used for performance comparison # If `false`, LOD won't update anymore. This can be used for performance comparison
# purposes. # purposes.
export var enable_lod := true @export var enable_lod := true
# The maximum shadow distance in units. Past this distance, the shadow will be disabled. # The maximum shadow distance in units. Past this distance, the shadow will be disabled.
export(float, 0.0, 1000.0, 0.1) var shadow_max_distance := 25 @export var shadow_max_distance := 25 # (float, 0.0, 1000.0, 0.1)
# The distance factor at which the shadow starts fading. # The distance factor at which the shadow starts fading.
# A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading. # A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading.
export(float, 0.0, 1.0, 0.1) var shadow_fade_start := 0.8 @export var shadow_fade_start := 0.8 # (float, 0.0, 1.0, 0.1)
# The maximum shadow distance in units. Past this distance, the light will be hidden. # The maximum shadow distance in units. Past this distance, the light will be hidden.
export(float, 0.0, 1000.0, 0.1) var light_max_distance := 50 @export var light_max_distance := 50 # (float, 0.0, 1000.0, 0.1)
# The distance factor at which the light starts fading. # The distance factor at which the light starts fading.
# A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading. # A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading.
export(float, 0.0, 1.0, 0.1) var light_fade_start := 0.8 @export var light_fade_start := 0.8 # (float, 0.0, 1.0, 0.1)
# The rate at which LODs will be updated (in seconds). Lower values are more reactive # The rate at which LODs will be updated (in seconds). Lower values are more reactive
# but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes. # but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes.
@@ -52,7 +52,7 @@ func _ready() -> void:
# Add random jitter to the timer to ensure LODs don't all swap at the same time. # Add random jitter to the timer to ensure LODs don't all swap at the same time.
randomize() randomize()
timer += rand_range(0, refresh_rate) timer += randf_range(0, refresh_rate)
# Despite LOD not being related to physics, we chose to run in `_physics_process()` # Despite LOD not being related to physics, we chose to run in `_physics_process()`
# to minimize the amount of method calls per second (and therefore decrease CPU usage). # to minimize the amount of method calls per second (and therefore decrease CPU usage).
@@ -61,7 +61,7 @@ func _physics_process(delta: float) -> void:
return return
# We need a camera to do the rest. # We need a camera to do the rest.
var camera := get_viewport().get_camera() var camera := get_viewport().get_camera_3d()
if camera == null: if camera == null:
return return
+4 -4
View File
@@ -5,10 +5,10 @@ class_name LODParticles, "lod_particles.svg"
# If `false`, LOD won't update anymore. This can be used for performance comparison # If `false`, LOD won't update anymore. This can be used for performance comparison
# purposes. # purposes.
export var enable_lod := true @export var enable_lod := true
# The maximum particle emitting distance in units. Past this distance, particles will no longer emit. # The maximum particle emitting distance in units. Past this distance, particles will no longer emit.
export(float, 0.0, 1000.0, 0.1) var max_emit_distance := 50 @export var max_emit_distance := 50 # (float, 0.0, 1000.0, 0.1)
# The rate at which LODs will be updated (in seconds). Lower values are more reactive # The rate at which LODs will be updated (in seconds). Lower values are more reactive
# but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes. # but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes.
@@ -36,7 +36,7 @@ func _ready() -> void:
# Add random jitter to the timer to ensure LODs don't all swap at the same time. # Add random jitter to the timer to ensure LODs don't all swap at the same time.
randomize() randomize()
timer += rand_range(0, refresh_rate) timer += randf_range(0, refresh_rate)
# Despite LOD not being related to physics, we chose to run in `_physics_process()` # Despite LOD not being related to physics, we chose to run in `_physics_process()`
# to minimize the amount of method calls per second (and therefore decrease CPU usage). # to minimize the amount of method calls per second (and therefore decrease CPU usage).
@@ -45,7 +45,7 @@ func _physics_process(delta: float) -> void:
return return
# We need a camera to do the rest. # We need a camera to do the rest.
var camera := get_viewport().get_camera() var camera := get_viewport().get_camera_3d()
if camera == null: if camera == null:
return return
+7 -7
View File
@@ -1,21 +1,21 @@
# Copyright © 2020 Hugo Locurcio and contributors - MIT License # Copyright © 2020 Hugo Locurcio and contributors - MIT License
# See `LICENSE.md` included in the source distribution for details. # See `LICENSE.md` included in the source distribution for details.
extends Spatial extends Node3D
class_name LODSpatial, "lod_spatial.svg" class_name LODSpatial, "lod_spatial.svg"
# If `false`, LOD won't update anymore. This can be used for performance comparison # If `false`, LOD won't update anymore. This can be used for performance comparison
# purposes. # purposes.
export var enable_lod := true @export var enable_lod := true
# The maximum LOD 0 (high quality) distance in units. # The maximum LOD 0 (high quality) distance in units.
export(float, 0.0, 1000.0, 0.1) var lod_0_max_distance := 10 @export var lod_0_max_distance := 10 # (float, 0.0, 1000.0, 0.1)
# The maximum LOD 1 (medium quality) distance in units. # The maximum LOD 1 (medium quality) distance in units.
export(float, 0.0, 1000.0, 0.1) var lod_1_max_distance := 25 @export var lod_1_max_distance := 25 # (float, 0.0, 1000.0, 0.1)
# The maximum LOD 2 (low quality) distance in units. # The maximum LOD 2 (low quality) distance in units.
# Past this distance, all LOD variants are hidden. # Past this distance, all LOD variants are hidden.
export(float, 0.0, 1000.0, 0.1) var lod_2_max_distance := 100 @export var lod_2_max_distance := 100 # (float, 0.0, 1000.0, 0.1)
# The rate at which LODs will be updated (in seconds). Lower values are more reactive # The rate at which LODs will be updated (in seconds). Lower values are more reactive
# but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes. # but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes.
@@ -43,7 +43,7 @@ func _ready() -> void:
# Add random jitter to the timer to ensure LODs don't all swap at the same time. # Add random jitter to the timer to ensure LODs don't all swap at the same time.
randomize() randomize()
timer += rand_range(0, refresh_rate) timer += randf_range(0, refresh_rate)
# Despite LOD not being related to physics, we chose to run in `_physics_process()` # Despite LOD not being related to physics, we chose to run in `_physics_process()`
@@ -53,7 +53,7 @@ func _physics_process(delta: float) -> void:
return return
# We need a camera to do the rest. # We need a camera to do the rest.
var camera := get_viewport().get_camera() var camera := get_viewport().get_camera_3d()
if camera == null: if camera == null:
return return
+8 -8
View File
@@ -1,25 +1,25 @@
# Copyright © 2020 Hugo Locurcio and contributors - MIT License # Copyright © 2020 Hugo Locurcio and contributors - MIT License
# See `LICENSE.md` included in the source distribution for details. # See `LICENSE.md` included in the source distribution for details.
extends SpotLight extends SpotLight3D
class_name LODSpotLight, "lod_spot_light.svg" class_name LODSpotLight, "lod_spot_light.svg"
# If `false`, LOD won't update anymore. This can be used for performance comparison # If `false`, LOD won't update anymore. This can be used for performance comparison
# purposes. # purposes.
export var enable_lod := true @export var enable_lod := true
# The maximum shadow distance in units. Past this distance, the shadow will be disabled. # The maximum shadow distance in units. Past this distance, the shadow will be disabled.
export(float, 0.0, 1000.0, 0.1) var shadow_max_distance := 25 @export var shadow_max_distance := 25 # (float, 0.0, 1000.0, 0.1)
# The distance factor at which the shadow starts fading. # The distance factor at which the shadow starts fading.
# A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading. # A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading.
export(float, 0.0, 1.0, 0.1) var shadow_fade_start := 0.8 @export var shadow_fade_start := 0.8 # (float, 0.0, 1.0, 0.1)
# The maximum shadow distance in units. Past this distance, the light will be hidden. # The maximum shadow distance in units. Past this distance, the light will be hidden.
export(float, 0.0, 1000.0, 0.1) var light_max_distance := 50 @export var light_max_distance := 50 # (float, 0.0, 1000.0, 0.1)
# The distance factor at which the light starts fading. # The distance factor at which the light starts fading.
# A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading. # A value of 0.0 will result in the smoothest transition whereas a value of 1.0 disables fading.
export(float, 0.0, 1.0, 0.1) var light_fade_start := 0.8 @export var light_fade_start := 0.8 # (float, 0.0, 1.0, 0.1)
# The rate at which LODs will be updated (in seconds). Lower values are more reactive # The rate at which LODs will be updated (in seconds). Lower values are more reactive
# but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes. # but use more CPU, which is especially noticeable with large amounts of LOD-enabled nodes.
@@ -52,7 +52,7 @@ func _ready() -> void:
# Add random jitter to the timer to ensure LODs don't all swap at the same time. # Add random jitter to the timer to ensure LODs don't all swap at the same time.
randomize() randomize()
timer += rand_range(0, refresh_rate) timer += randf_range(0, refresh_rate)
# Despite LOD not being related to physics, we chose to run in `_physics_process()` # Despite LOD not being related to physics, we chose to run in `_physics_process()`
# to minimize the amount of method calls per second (and therefore decrease CPU usage). # to minimize the amount of method calls per second (and therefore decrease CPU usage).
@@ -61,7 +61,7 @@ func _physics_process(delta: float) -> void:
return return
# We need a camera to do the rest. # We need a camera to do the rest.
var camera := get_viewport().get_camera() var camera := get_viewport().get_camera_3d()
if camera == null: if camera == null:
return return
+1 -1
View File
@@ -1,7 +1,7 @@
@tool
# Copyright © 2020 Hugo Locurcio and contributors - MIT License # Copyright © 2020 Hugo Locurcio and contributors - MIT License
# See `LICENSE.md` included in the source distribution for details. # See `LICENSE.md` included in the source distribution for details.
# #
# This script is needed to make the `class_name` script visible in the Create New Node dialog # This script is needed to make the `class_name` script visible in the Create New Node dialog
# once the plugin is enabled. # once the plugin is enabled.
tool
extends EditorPlugin extends EditorPlugin
+2 -2
View File
@@ -1,8 +1,8 @@
[gd_resource type="Environment" load_steps=3 format=2] [gd_resource type="Environment" load_steps=3 format=2]
[ext_resource path="res://assets/hdri/tx_night_place.hdr" type="Texture" id=1] [ext_resource path="res://assets/hdri/tx_night_place.hdr" type="Texture2D" id=1]
[sub_resource type="PanoramaSky" id=2] [sub_resource type="Sky" id=2]
panorama = ExtResource( 1 ) panorama = ExtResource( 1 )
[resource] [resource]
+2 -2
View File
@@ -1,6 +1,6 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://assets/fonts/MKX Title.ttf" type="DynamicFontData" id=1] [ext_resource path="res://assets/fonts/MKX Title.ttf" type="FontFile" id=1]
[resource] [resource]
size = 30 size = 30
+2 -2
View File
@@ -1,6 +1,6 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://assets/fonts/kirsty/kirsty rg.otf" type="DynamicFontData" id=1] [ext_resource path="res://assets/fonts/kirsty/kirsty rg.otf" type="FontFile" id=1]
[resource] [resource]
use_mipmaps = true use_mipmaps = true
+2 -2
View File
@@ -1,6 +1,6 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://assets/fonts/kirsty/kirsty rg.otf" type="DynamicFontData" id=1] [ext_resource path="res://assets/fonts/kirsty/kirsty rg.otf" type="FontFile" id=1]
[resource] [resource]
size = 24 size = 24
+2 -2
View File
@@ -1,6 +1,6 @@
[gd_resource type="DynamicFont" load_steps=2 format=2] [gd_resource type="FontFile" load_steps=2 format=2]
[ext_resource path="res://assets/fonts/kirsty/kirsty bd.otf" type="DynamicFontData" id=1] [ext_resource path="res://assets/fonts/kirsty/kirsty bd.otf" type="FontFile" id=1]
[resource] [resource]
size = 46 size = 46
+2 -2
View File
@@ -1,8 +1,8 @@
[gd_resource type="Environment" load_steps=3 format=2] [gd_resource type="Environment" load_steps=3 format=2]
[ext_resource path="res://assets/hdri/tx_night_place.hdr" type="Texture" id=1] [ext_resource path="res://assets/hdri/tx_night_place.hdr" type="Texture2D" id=1]
[sub_resource type="PanoramaSky" id=1] [sub_resource type="Sky" id=1]
panorama = ExtResource( 1 ) panorama = ExtResource( 1 )
[resource] [resource]
+1 -1
View File
@@ -32,7 +32,7 @@ void light() {
" "
nodes/fragment/3/node = SubResource( 1 ) nodes/fragment/3/node = SubResource( 1 )
nodes/fragment/3/position = Vector2( 0, 140 ) nodes/fragment/3/position = Vector2( 0, 140 )
nodes/fragment/connections = PoolIntArray( 3, 0, 0, 0 ) nodes/fragment/connections = PackedInt32Array( 3, 0, 0, 0 )
[resource] [resource]
shader = SubResource( 2 ) shader = SubResource( 2 )
+3 -3
View File
@@ -1,13 +1,13 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=2] [gd_resource type="ShaderMaterial" load_steps=3 format=2]
[sub_resource type="VisualShaderNodeColorUniform" id=1] [sub_resource type="VisualShaderNodeColorParameter" id=1]
uniform_name = "BaseColor" uniform_name = "BaseColor"
[sub_resource type="VisualShader" id=2] [sub_resource type="VisualShader" id=2]
code = "shader_type spatial; code = "shader_type spatial;
render_mode specular_schlick_ggx; render_mode specular_schlick_ggx;
uniform vec4 BaseColor : hint_color; uniform vec4 BaseColor : source_color;
@@ -34,7 +34,7 @@ void light() {
graph_offset = Vector2( -278, -353.75 ) graph_offset = Vector2( -278, -353.75 )
nodes/fragment/5/node = SubResource( 1 ) nodes/fragment/5/node = SubResource( 1 )
nodes/fragment/5/position = Vector2( 180, 140 ) nodes/fragment/5/position = Vector2( 180, 140 )
nodes/fragment/connections = PoolIntArray( 5, 0, 0, 0 ) nodes/fragment/connections = PackedInt32Array( 5, 0, 0, 0 )
[resource] [resource]
shader = SubResource( 2 ) shader = SubResource( 2 )
+3 -3
View File
@@ -1,13 +1,13 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=2] [gd_resource type="ShaderMaterial" load_steps=3 format=2]
[sub_resource type="VisualShaderNodeColorUniform" id=1] [sub_resource type="VisualShaderNodeColorParameter" id=1]
uniform_name = "BaseColor" uniform_name = "BaseColor"
[sub_resource type="VisualShader" id=2] [sub_resource type="VisualShader" id=2]
code = "shader_type spatial; code = "shader_type spatial;
render_mode specular_schlick_ggx; render_mode specular_schlick_ggx;
uniform vec4 BaseColor : hint_color; uniform vec4 BaseColor : source_color;
@@ -34,7 +34,7 @@ void light() {
graph_offset = Vector2( -278, -353.75 ) graph_offset = Vector2( -278, -353.75 )
nodes/fragment/5/node = SubResource( 1 ) nodes/fragment/5/node = SubResource( 1 )
nodes/fragment/5/position = Vector2( 180, 140 ) nodes/fragment/5/position = Vector2( 180, 140 )
nodes/fragment/connections = PoolIntArray( 5, 0, 0, 0 ) nodes/fragment/connections = PackedInt32Array( 5, 0, 0, 0 )
[resource] [resource]
shader = SubResource( 2 ) shader = SubResource( 2 )
+2 -2
View File
@@ -2,9 +2,9 @@
[ext_resource path="res://assets/props/book/sm_book_lod1.mesh" type="ArrayMesh" id=2] [ext_resource path="res://assets/props/book/sm_book_lod1.mesh" type="ArrayMesh" id=2]
[node name="sm_book" type="Spatial"] [node name="sm_book" type="Node3D"]
[node name="sm_book-lod1" type="MeshInstance" parent="."] [node name="sm_book-lod1" type="MeshInstance3D" parent="."]
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 2 ) mesh = ExtResource( 2 )
material/0 = null material/0 = null
+5 -5
View File
@@ -1,9 +1,9 @@
tool @tool
extends Spatial extends Node3D
export(bool) var activate_candlestick = false setget activateCandlestick @export var activate_candlestick: bool = false: set = activateCandlestick
export(bool) var activate_candle = false setget activateCandle @export var activate_candle: bool = false: set = activateCandle
export(String, "Candle Top", "Candle A", "Candle B", "Candle C", "Candle D") var list_candles @export var list_candles # (String, "Candle Top", "Candle A", "Candle B", "Candle C", "Candle D")
func activateCandlestick(_newCandlestick): func activateCandlestick(_newCandlestick):
pass pass
+6 -6
View File
@@ -4,21 +4,21 @@
[ext_resource path="res://assets/props/candle/candle.gd" type="Script" id=2] [ext_resource path="res://assets/props/candle/candle.gd" type="Script" id=2]
[ext_resource path="res://assets/props/candle/sm_candle_top_lod1.mesh" type="ArrayMesh" id=3] [ext_resource path="res://assets/props/candle/sm_candle_top_lod1.mesh" type="ArrayMesh" id=3]
[node name="sm_candlestick" type="Spatial"] [node name="sm_candlestick" type="Node3D"]
script = ExtResource( 2 ) script = ExtResource( 2 )
[node name="sm_candlestick_lod1" type="MeshInstance" parent="."] [node name="sm_candlestick_lod1" type="MeshInstance3D" parent="."]
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="candles" type="MeshInstance" parent="sm_candlestick_lod1"] [node name="candles" type="MeshInstance3D" parent="sm_candlestick_lod1"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000981584, 0.150082, 0 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000981584, 0.150082, 0 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 3 ) mesh = ExtResource( 3 )
material/0 = null material/0 = null
[node name="OmniLight" type="OmniLight" parent="sm_candlestick_lod1/candles"] [node name="OmniLight3D" type="OmniLight3D" parent="sm_candlestick_lod1/candles"]
transform = Transform( 1, 5.5022e-09, 1.96774e-13, -5.5022e-09, 1, 1.08271e-21, -1.96774e-13, -2.1654e-21, 1, 1.3737e-08, 0.0619183, -2.98023e-08 ) transform = Transform3D( 1, 5.5022e-09, 1.96774e-13, -5.5022e-09, 1, 1.08271e-21, -1.96774e-13, -2.1654e-21, 1, 1.3737e-08, 0.0619183, -2.98023e-08 )
visible = false visible = false
light_color = Color( 0.960784, 0.611765, 0.00784314, 1 ) light_color = Color( 0.960784, 0.611765, 0.00784314, 1 )
light_energy = 12.0 light_energy = 12.0
+1 -1
View File
@@ -11,7 +11,7 @@ dest_files=[ "res://.import/dagger.gltf-9abeaff593c97cf77a40ff9da7a19949.scn" ]
[params] [params]
nodes/root_type="Spatial" nodes/root_type="Node3D"
nodes/root_name="Scene Root" nodes/root_name="Scene Root"
nodes/root_scale=1.0 nodes/root_scale=1.0
nodes/custom_script="" nodes/custom_script=""
+2 -2
View File
@@ -2,9 +2,9 @@
[ext_resource path="res://assets/props/godet/sm_godet_lod1.mesh" type="ArrayMesh" id=1] [ext_resource path="res://assets/props/godet/sm_godet_lod1.mesh" type="ArrayMesh" id=1]
[node name="sm_godet" type="Spatial"] [node name="sm_godet" type="Node3D"]
[node name="sm_godet_lod1" type="MeshInstance" parent="."] [node name="sm_godet_lod1" type="MeshInstance3D" parent="."]
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
+2 -2
View File
@@ -2,9 +2,9 @@
[ext_resource path="res://assets/props/growler/sm_growler_lod1.mesh" type="ArrayMesh" id=1] [ext_resource path="res://assets/props/growler/sm_growler_lod1.mesh" type="ArrayMesh" id=1]
[node name="sm_growler" type="Spatial"] [node name="sm_growler" type="Node3D"]
[node name="sm_growler_lod1" type="MeshInstance" parent="."] [node name="sm_growler_lod1" type="MeshInstance3D" parent="."]
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
+1 -1
View File
@@ -11,7 +11,7 @@ dest_files=[ "res://.import/plane.gltf-66ed665b319174d1333eee69632f6e77.scn" ]
[params] [params]
nodes/root_type="Spatial" nodes/root_type="Node3D"
nodes/root_name="Scene Root" nodes/root_name="Scene Root"
nodes/root_scale=1.0 nodes/root_scale=1.0
nodes/custom_script="" nodes/custom_script=""
+4 -4
View File
@@ -1,10 +1,10 @@
tool @tool
extends Spatial extends Node3D
export(bool) var paper @export var paper: bool
func activatePaper(showPaper): func activatePaper(showPaper):
if Engine.editor_hint: if Engine.is_editor_hint():
paper = showPaper paper = showPaper
# var parent = get_node(".").name # var parent = get_node(".").name
+3 -3
View File
@@ -4,15 +4,15 @@
[ext_resource path="res://assets/props/parchment/parchment.gd" type="Script" id=2] [ext_resource path="res://assets/props/parchment/parchment.gd" type="Script" id=2]
[ext_resource path="res://assets/props/parchment/sm_paperparchment_lod0.mesh" type="ArrayMesh" id=3] [ext_resource path="res://assets/props/parchment/sm_paperparchment_lod0.mesh" type="ArrayMesh" id=3]
[node name="sm_parchment" type="Spatial"] [node name="sm_parchment" type="Node3D"]
script = ExtResource( 2 ) script = ExtResource( 2 )
[node name="sm_wood_parchment_lod1" type="MeshInstance" parent="."] [node name="sm_wood_parchment_lod1" type="MeshInstance3D" parent="."]
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="paper" type="MeshInstance" parent="."] [node name="paper" type="MeshInstance3D" parent="."]
visible = false visible = false
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 3 ) mesh = ExtResource( 3 )
+1 -1
View File
@@ -11,7 +11,7 @@ dest_files=[ "res://.import/stool a.gltf-c3791f77fb719c9b265365f0cebb48c1.scn" ]
[params] [params]
nodes/root_type="Spatial" nodes/root_type="Node3D"
nodes/root_name="Scene Root" nodes/root_name="Scene Root"
nodes/root_scale=1.0 nodes/root_scale=1.0
nodes/custom_script="" nodes/custom_script=""
+2 -2
View File
@@ -2,9 +2,9 @@
[ext_resource path="res://assets/props/stool b/sm_stool_2_lod1.mesh" type="ArrayMesh" id=1] [ext_resource path="res://assets/props/stool b/sm_stool_2_lod1.mesh" type="ArrayMesh" id=1]
[node name="sm_stool_b" type="Spatial"] [node name="sm_stool_b" type="Node3D"]
[node name="sm_stool_2_lod1" type="MeshInstance" parent="."] [node name="sm_stool_2_lod1" type="MeshInstance3D" parent="."]
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
+2 -2
View File
@@ -2,9 +2,9 @@
[ext_resource path="res://assets/props/table/sm_table_lod2.mesh" type="ArrayMesh" id=1] [ext_resource path="res://assets/props/table/sm_table_lod2.mesh" type="ArrayMesh" id=1]
[node name="sm_table" type="Spatial"] [node name="sm_table" type="Node3D"]
[node name="sm_table_lod1" type="MeshInstance" parent="."] [node name="sm_table_lod1" type="MeshInstance3D" parent="."]
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/ambient-sound-level-warcraft.ogg-eca793b67538fcb6a049f7f31dff337d.oggstr" path="res://.import/ambient-sound-level-warcraft.ogg-eca793b67538fcb6a049f7f31dff337d.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/click-button.ogg-80b2cbbc4fed369d32c5a684038e7942.oggstr" path="res://.import/click-button.ogg-80b2cbbc4fed369d32c5a684038e7942.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/Apple.ogg-f89120a96b14173404c312d1b4ef368e.oggstr" path="res://.import/Apple.ogg-f89120a96b14173404c312d1b4ef368e.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/Beer.ogg-0e6bc95a6b45b804996f580a1be3aee0.oggstr" path="res://.import/Beer.ogg-0e6bc95a6b45b804996f580a1be3aee0.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/Coins.ogg-f9cdd1d56965eda212616a29dbbeb095.oggstr" path="res://.import/Coins.ogg-f9cdd1d56965eda212616a29dbbeb095.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/Dagger.ogg-178fe92ff6535d2fb657b61a6eac19d3.oggstr" path="res://.import/Dagger.ogg-178fe92ff6535d2fb657b61a6eac19d3.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/Fiole.ogg-1906e95d5cfcc7fb30df4ed47d615be2.oggstr" path="res://.import/Fiole.ogg-1906e95d5cfcc7fb30df4ed47d615be2.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/Spyglass.ogg-ba1068305c94ce71d19393b8c494b13c.oggstr" path="res://.import/Spyglass.ogg-ba1068305c94ce71d19393b8c494b13c.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/Weapon Gun.ogg-6fb518cb7a9f877d5716e766285221ac.oggstr" path="res://.import/Weapon Gun.ogg-6fb518cb7a9f877d5716e766285221ac.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[remap] [remap]
importer="ogg_vorbis" importer="oggvorbisstr"
type="AudioStreamOGGVorbis" type="AudioStreamOGGVorbis"
path="res://.import/victory.ogg-f200c5ed87d76f20ec981fde28a9e56b.oggstr" path="res://.import/victory.ogg-f200c5ed87d76f20ec981fde28a9e56b.oggstr"
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_resource type="Environment" load_steps=2 format=2] [gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1] [sub_resource type="Sky" id=1]
[resource] [resource]
background_mode = 2 background_mode = 2
+1 -1
View File
@@ -1,4 +1,4 @@
extends Spatial extends Node3D
# Declare member variables here. Examples: # Declare member variables here. Examples:
+143 -143
View File
@@ -1,7 +1,7 @@
[gd_scene load_steps=19 format=2] [gd_scene load_steps=19 format=2]
[ext_resource path="res://assets/props/book/sm_book.mesh" type="ArrayMesh" id=1] [ext_resource path="res://assets/props/book/sm_book.mesh" type="ArrayMesh" id=1]
[ext_resource path="res://developers/aurelien/CheckLightmap.lmbake" type="BakedLightmapData" id=2] [ext_resource path="res://developers/aurelien/CheckLightmap.lmbake" type="LightmapGIData" id=2]
[ext_resource path="res://developers/aurelien/CheckLightmap.gd" type="Script" id=3] [ext_resource path="res://developers/aurelien/CheckLightmap.gd" type="Script" id=3]
[ext_resource path="res://assets/props/misc/plane.mesh" type="ArrayMesh" id=4] [ext_resource path="res://assets/props/misc/plane.mesh" type="ArrayMesh" id=4]
[ext_resource path="res://assets/props/candle/sm_candlestick.mesh" type="ArrayMesh" id=5] [ext_resource path="res://assets/props/candle/sm_candlestick.mesh" type="ArrayMesh" id=5]
@@ -19,11 +19,11 @@
[ext_resource path="res://assets/props/stool b/sm_stool_b.mesh" type="ArrayMesh" id=18] [ext_resource path="res://assets/props/stool b/sm_stool_b.mesh" type="ArrayMesh" id=18]
[ext_resource path="res://assets/props/table/sm_table.mesh" type="ArrayMesh" id=19] [ext_resource path="res://assets/props/table/sm_table.mesh" type="ArrayMesh" id=19]
[node name="Spatial" type="Spatial"] [node name="Node3D" type="Node3D"]
script = ExtResource( 3 ) script = ExtResource( 3 )
[node name="BakedLightmap" type="BakedLightmap" parent="."] [node name="LightmapGI" type="LightmapGI" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.01067, 1.3203, -1.6367 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.01067, 1.3203, -1.6367 )
extents = Vector3( 3.82531, 1.56454, 4.38589 ) extents = Vector3( 3.82531, 1.56454, 4.38589 )
quality = 3 quality = 3
bounces = 5 bounces = 5
@@ -36,441 +36,441 @@ light_data = ExtResource( 2 )
[node name="WorldEnvironment" type="WorldEnvironment" parent="."] [node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = ExtResource( 10 ) environment = ExtResource( 10 )
[node name="Camera" type="Camera" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform( 0.089016, -0.715663, 0.692751, 0, 0.695512, 0.718515, -0.99603, -0.0639593, 0.0619117, 1.67474, 2.13639, -1.14519 ) transform = Transform3D( 0.089016, -0.715663, 0.692751, 0, 0.695512, 0.718515, -0.99603, -0.0639593, 0.0619117, 1.67474, 2.13639, -1.14519 )
[node name="plane" type="MeshInstance" parent="."] [node name="plane" type="MeshInstance3D" parent="."]
transform = Transform( 8.39917, 0, 0, 0, 1, 0, 0, 0, 11.9516, -0.796654, 0, -1.7752 ) transform = Transform3D( 8.39917, 0, 0, 0, 1, 0, 0, 0, 11.9516, -0.796654, 0, -1.7752 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 4 ) mesh = ExtResource( 4 )
material/0 = null material/0 = null
[node name="Lighting" type="Spatial" parent="."] [node name="Lighting" type="Node3D" parent="."]
[node name="SpotLight2" type="SpotLight" parent="Lighting"] [node name="SpotLight2" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, 0.479468 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, 0.479468 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight5" type="SpotLight" parent="Lighting"] [node name="SpotLight5" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -0.597942 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -0.597942 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight4" type="SpotLight" parent="Lighting"] [node name="SpotLight4" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -0.234948 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -0.234948 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight3" type="SpotLight" parent="Lighting"] [node name="SpotLight3" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, 0.149649 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, 0.149649 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight6" type="SpotLight" parent="Lighting"] [node name="SpotLight6" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -1.7265 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -1.7265 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight7" type="SpotLight" parent="Lighting"] [node name="SpotLight7" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -1.36351 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -1.36351 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight8" type="SpotLight" parent="Lighting"] [node name="SpotLight8" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -0.978908 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -0.978908 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight9" type="SpotLight" parent="Lighting"] [node name="SpotLight9" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -2.81604 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -2.81604 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight10" type="SpotLight" parent="Lighting"] [node name="SpotLight10" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -2.45304 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -2.45304 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight11" type="SpotLight" parent="Lighting"] [node name="SpotLight11" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -2.06845 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -2.06845 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight12" type="SpotLight" parent="Lighting"] [node name="SpotLight12" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -3.94141 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -3.94141 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight13" type="SpotLight" parent="Lighting"] [node name="SpotLight13" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -3.57842 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -3.57842 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight14" type="SpotLight" parent="Lighting"] [node name="SpotLight14" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -3.19382 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -3.19382 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight15" type="SpotLight" parent="Lighting"] [node name="SpotLight15" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -5.07697 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -5.07697 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight16" type="SpotLight" parent="Lighting"] [node name="SpotLight16" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -4.71398 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -4.71398 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight17" type="SpotLight" parent="Lighting"] [node name="SpotLight17" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -4.32938 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.41082, 0.959701, -4.32938 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight18" type="SpotLight" parent="Lighting"] [node name="SpotLight18" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, 0.479468 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, 0.479468 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight19" type="SpotLight" parent="Lighting"] [node name="SpotLight19" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -0.597942 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -0.597942 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight20" type="SpotLight" parent="Lighting"] [node name="SpotLight20" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -0.234948 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -0.234948 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight21" type="SpotLight" parent="Lighting"] [node name="SpotLight21" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, 0.149649 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, 0.149649 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight22" type="SpotLight" parent="Lighting"] [node name="SpotLight22" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -1.7265 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -1.7265 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight23" type="SpotLight" parent="Lighting"] [node name="SpotLight23" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -1.36351 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -1.36351 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight24" type="SpotLight" parent="Lighting"] [node name="SpotLight24" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -0.978908 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -0.978908 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight25" type="SpotLight" parent="Lighting"] [node name="SpotLight25" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -2.81604 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -2.81604 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight26" type="SpotLight" parent="Lighting"] [node name="SpotLight26" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -2.45304 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -2.45304 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight27" type="SpotLight" parent="Lighting"] [node name="SpotLight27" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -2.06845 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -2.06845 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight28" type="SpotLight" parent="Lighting"] [node name="SpotLight28" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -3.94141 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -3.94141 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight29" type="SpotLight" parent="Lighting"] [node name="SpotLight29" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -3.57842 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -3.57842 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight30" type="SpotLight" parent="Lighting"] [node name="SpotLight30" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -3.19382 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -3.19382 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight31" type="SpotLight" parent="Lighting"] [node name="SpotLight31" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -5.07697 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -5.07697 )
light_color = Color( 0.564706, 0.227451, 0.227451, 1 ) light_color = Color( 0.564706, 0.227451, 0.227451, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight32" type="SpotLight" parent="Lighting"] [node name="SpotLight32" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -4.71398 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -4.71398 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="SpotLight33" type="SpotLight" parent="Lighting"] [node name="SpotLight33" type="SpotLight3D" parent="Lighting"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -4.32938 ) transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -1.92602, 1.57864, -4.32938 )
light_color = Color( 0.227451, 0.564706, 0.262745, 1 ) light_color = Color( 0.227451, 0.564706, 0.262745, 1 )
light_bake_mode = 2 light_bake_mode = 2
shadow_enabled = true shadow_enabled = true
spot_angle = 15.0 spot_angle = 15.0
[node name="Books" type="Spatial" parent="."] [node name="Books" type="Node3D" parent="."]
[node name="sm_book4" type="MeshInstance" parent="Books"] [node name="sm_book4" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.743055, 0.0414186, 1.03485 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.743055, 0.0414186, 1.03485 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book5" type="MeshInstance" parent="Books"] [node name="sm_book5" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0423009, 0.0414186, 1.05613 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0423009, 0.0414186, 1.05613 )
use_in_baked_light = true use_in_baked_light = true
lightmap_scale = 3 lightmap_scale = 3
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book11" type="MeshInstance" parent="Books"] [node name="sm_book11" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0423009, 0.0414186, 1.52165 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0423009, 0.0414186, 1.52165 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book6" type="MeshInstance" parent="Books"] [node name="sm_book6" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.293967, 0.0414186, 1.03485 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.293967, 0.0414186, 1.03485 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book7" type="MeshInstance" parent="Books"] [node name="sm_book7" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.743055, 0.0414186, 1.51383 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.743055, 0.0414186, 1.51383 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book8" type="MeshInstance" parent="Books"] [node name="sm_book8" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.293967, 0.0414186, 1.51383 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.293967, 0.0414186, 1.51383 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book" type="MeshInstance" parent="Books"] [node name="sm_book" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0435888, 0.106022 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0435888, 0.106022 )
use_in_baked_light = true use_in_baked_light = true
lightmap_scale = 1 lightmap_scale = 1
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book2" type="MeshInstance" parent="Books"] [node name="sm_book2" type="MeshInstance3D" parent="Books"]
transform = Transform( 0.276862, 0, 0.96091, 0, 1, 0, -0.96091, 0, 0.276862, -0.104465, 0.0414188, 0.547756 ) transform = Transform3D( 0.276862, 0, 0.96091, 0, 1, 0, -0.96091, 0, 0.276862, -0.104465, 0.0414188, 0.547756 )
use_in_baked_light = true use_in_baked_light = true
lightmap_scale = 1 lightmap_scale = 1
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book3" type="MeshInstance" parent="Books"] [node name="sm_book3" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.381911, 0.0414187, 1.03881 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.381911, 0.0414187, 1.03881 )
use_in_baked_light = true use_in_baked_light = true
lightmap_scale = 1 lightmap_scale = 1
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book10" type="MeshInstance" parent="Books"] [node name="sm_book10" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.381911, 0.0414187, 0.331732 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.381911, 0.0414187, 0.331732 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="sm_book9" type="MeshInstance" parent="Books"] [node name="sm_book9" type="MeshInstance3D" parent="Books"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.381911, 0.0414187, 1.53911 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.381911, 0.0414187, 1.53911 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 1 ) mesh = ExtResource( 1 )
material/0 = null material/0 = null
[node name="Candle" type="Spatial" parent="."] [node name="Candle" type="Node3D" parent="."]
[node name="sm_candlestick" type="MeshInstance" parent="Candle"] [node name="sm_candlestick" type="MeshInstance3D" parent="Candle"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26949, -0.000247162, -0.190021 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26949, -0.000247162, -0.190021 )
use_in_baked_light = true use_in_baked_light = true
lightmap_scale = 1 lightmap_scale = 1
mesh = ExtResource( 5 ) mesh = ExtResource( 5 )
material/0 = null material/0 = null
[node name="sm_candlestick2" type="MeshInstance" parent="Candle"] [node name="sm_candlestick2" type="MeshInstance3D" parent="Candle"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.477435, -0.000247162, -0.190021 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.477435, -0.000247162, -0.190021 )
use_in_baked_light = true use_in_baked_light = true
lightmap_scale = 1 lightmap_scale = 1
mesh = ExtResource( 5 ) mesh = ExtResource( 5 )
material/0 = null material/0 = null
[node name="sm_candle_a" type="MeshInstance" parent="Candle"] [node name="sm_candle_a" type="MeshInstance3D" parent="Candle"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.460123, 0.0295914, 0.0291587 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.460123, 0.0295914, 0.0291587 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 9 ) mesh = ExtResource( 9 )
material/0 = null material/0 = null
[node name="sm_candle_a2" type="MeshInstance" parent="Candle"] [node name="sm_candle_a2" type="MeshInstance3D" parent="Candle"]
transform = Transform( 3, 0, 0, 0, 3, 0, 0, 0, 3, 0.291979, 0.0295914, 0.0291587 ) transform = Transform3D( 3, 0, 0, 0, 3, 0, 0, 0, 3, 0.291979, 0.0295914, 0.0291587 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 9 ) mesh = ExtResource( 9 )
material/0 = null material/0 = null
[node name="sm_candle_b" type="MeshInstance" parent="Candle"] [node name="sm_candle_b" type="MeshInstance3D" parent="Candle"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.469327, 0.0330793, -0.387681 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.469327, 0.0330793, -0.387681 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 7 ) mesh = ExtResource( 7 )
material/0 = null material/0 = null
[node name="sm_candle_b2" type="MeshInstance" parent="Candle"] [node name="sm_candle_b2" type="MeshInstance3D" parent="Candle"]
transform = Transform( 1.83922, 0, 0, 0, 1.83922, 0, 0, 0, 1.83922, 0.271941, 0.0630442, -0.414322 ) transform = Transform3D( 1.83922, 0, 0, 0, 1.83922, 0, 0, 0, 1.83922, 0.271941, 0.0630442, -0.414322 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 7 ) mesh = ExtResource( 7 )
material/0 = null material/0 = null
[node name="sm_candle_d" type="MeshInstance" parent="Candle"] [node name="sm_candle_d" type="MeshInstance3D" parent="Candle"]
transform = Transform( 2.21301, 0, 0, 0, 2.21301, 0, 0, 0, 2.21301, 0.470213, 0.0446767, -0.844206 ) transform = Transform3D( 2.21301, 0, 0, 0, 2.21301, 0, 0, 0, 2.21301, 0.470213, 0.0446767, -0.844206 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 11 ) mesh = ExtResource( 11 )
material/0 = null material/0 = null
[node name="sm_candle_d2" type="MeshInstance" parent="Candle"] [node name="sm_candle_d2" type="MeshInstance3D" parent="Candle"]
transform = Transform( 3.61366, 0, 0, 0, 3.61366, 0, 0, 0, 3.61366, 0.199182, 0.12495, -0.844578 ) transform = Transform3D( 3.61366, 0, 0, 0, 3.61366, 0, 0, 0, 3.61366, 0.199182, 0.12495, -0.844578 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 11 ) mesh = ExtResource( 11 )
material/0 = null material/0 = null
[node name="sm_candle_c" type="MeshInstance" parent="Candle"] [node name="sm_candle_c" type="MeshInstance3D" parent="Candle"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.473356, 0.0278057, -0.559005 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.473356, 0.0278057, -0.559005 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 8 ) mesh = ExtResource( 8 )
material/0 = null material/0 = null
[node name="sm_candle_c2" type="MeshInstance" parent="Candle"] [node name="sm_candle_c2" type="MeshInstance3D" parent="Candle"]
transform = Transform( 2.21301, 0, 0, 0, 2.21301, 0, 0, 0, 2.21301, 0.283916, 0.0534962, -0.597519 ) transform = Transform3D( 2.21301, 0, 0, 0, 2.21301, 0, 0, 0, 2.21301, 0.283916, 0.0534962, -0.597519 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 8 ) mesh = ExtResource( 8 )
material/0 = null material/0 = null
[node name="sm_candle_top" type="MeshInstance" parent="Candle"] [node name="sm_candle_top" type="MeshInstance3D" parent="Candle"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.502775, 0.0267428, -1.04497 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.502775, 0.0267428, -1.04497 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 12 ) mesh = ExtResource( 12 )
material/0 = null material/0 = null
[node name="sm_candle_top2" type="MeshInstance" parent="Candle"] [node name="sm_candle_top2" type="MeshInstance3D" parent="Candle"]
transform = Transform( 3.02964, 0, 0, 0, 3.02964, 0, 0, 0, 3.02964, 0.323108, 0.0842445, -1.08129 ) transform = Transform3D( 3.02964, 0, 0, 0, 3.02964, 0, 0, 0, 3.02964, 0.323108, 0.0842445, -1.08129 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 12 ) mesh = ExtResource( 12 )
material/0 = null material/0 = null
[node name="sm_godet" type="MeshInstance" parent="."] [node name="sm_godet" type="MeshInstance3D" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.496689, 0.0078643, -1.39236 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.496689, 0.0078643, -1.39236 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 13 ) mesh = ExtResource( 13 )
material/0 = null material/0 = null
[node name="sm_wood_parchment" type="MeshInstance" parent="."] [node name="sm_wood_parchment" type="MeshInstance3D" parent="."]
transform = Transform( -0.582776, 0, -0.812633, 0, 1, 0, 0.812633, 0, -0.582776, 0.56408, 0.0561891, -3.02517 ) transform = Transform3D( -0.582776, 0, -0.812633, 0, 1, 0, 0.812633, 0, -0.582776, 0.56408, 0.0561891, -3.02517 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 16 ) mesh = ExtResource( 16 )
material/0 = null material/0 = null
[node name="sm_wood_parchment2" type="MeshInstance" parent="."] [node name="sm_wood_parchment2" type="MeshInstance3D" parent="."]
transform = Transform( -1.33197, 0, -0.568074, 0, 1.53487, 0, 0.762673, 0, -0.992113, 0.315509, 0.0907792, -3.01831 ) transform = Transform3D( -1.33197, 0, -0.568074, 0, 1.53487, 0, 0.762673, 0, -0.992113, 0.315509, 0.0907792, -3.01831 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 16 ) mesh = ExtResource( 16 )
material/0 = null material/0 = null
[node name="sm_paper_parcment" type="MeshInstance" parent="."] [node name="sm_paper_parcment" type="MeshInstance3D" parent="."]
transform = Transform( 0.00464255, 0, -0.999989, 0, 1, 0, 0.999989, 0, 0.00464255, 0.602608, -0.0039514, -2.28984 ) transform = Transform3D( 0.00464255, 0, -0.999989, 0, 1, 0, 0.999989, 0, 0.00464255, 0.602608, -0.0039514, -2.28984 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 15 ) mesh = ExtResource( 15 )
material/0 = null material/0 = null
[node name="sm_paper_parcment2" type="MeshInstance" parent="."] [node name="sm_paper_parcment2" type="MeshInstance3D" parent="."]
transform = Transform( 0.164983, 0, 1.25894, 0, 1.26971, 0, -1.25894, 0, 0.164983, 0.21995, -0.00395134, -2.34543 ) transform = Transform3D( 0.164983, 0, 1.25894, 0, 1.26971, 0, -1.25894, 0, 0.164983, 0.21995, -0.00395134, -2.34543 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 15 ) mesh = ExtResource( 15 )
material/0 = null material/0 = null
[node name="sm_growler" type="MeshInstance" parent="."] [node name="sm_growler" type="MeshInstance3D" parent="."]
transform = Transform( 0.605072, 0, 0.796171, 0, 1, 0, -0.796171, 0, 0.605072, 0.506431, 0, -1.78796 ) transform = Transform3D( 0.605072, 0, 0.796171, 0, 1, 0, -0.796171, 0, 0.605072, 0.506431, 0, -1.78796 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 14 ) mesh = ExtResource( 14 )
material/0 = null material/0 = null
[node name="sm_growler2" type="MeshInstance" parent="."] [node name="sm_growler2" type="MeshInstance3D" parent="."]
transform = Transform( -0.881676, 0, -1.078, 0, 1.39264, 0, 1.078, 0, -0.881676, 0.162736, -0.000296712, -1.78636 ) transform = Transform3D( -0.881676, 0, -1.078, 0, 1.39264, 0, 1.078, 0, -0.881676, 0.162736, -0.000296712, -1.78636 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 14 ) mesh = ExtResource( 14 )
material/0 = null material/0 = null
[node name="sm_godet2" type="MeshInstance" parent="."] [node name="sm_godet2" type="MeshInstance3D" parent="."]
transform = Transform( 1.74966, 0, 0, 0, 1.74966, 0, 0, 0, 1.74966, 0.277748, 0.0325533, -1.39477 ) transform = Transform3D( 1.74966, 0, 0, 0, 1.74966, 0, 0, 0, 1.74966, 0.277748, 0.0325533, -1.39477 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 13 ) mesh = ExtResource( 13 )
material/0 = null material/0 = null
[node name="sm_floor" type="MeshInstance" parent="."] [node name="sm_floor" type="MeshInstance3D" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39092, 0.0131278, -4.30235 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39092, 0.0131278, -4.30235 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 17 ) mesh = ExtResource( 17 )
material/0 = null material/0 = null
[node name="sm_table" type="MeshInstance" parent="."] [node name="sm_table" type="MeshInstance3D" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.60057, 0.781203, -0.818648 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.60057, 0.781203, -0.818648 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 19 ) mesh = ExtResource( 19 )
material/0 = null material/0 = null
[node name="sm_stool_b" type="MeshInstance" parent="."] [node name="sm_stool_b" type="MeshInstance3D" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.71977, -3.03984e-06, -2.63978 ) transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.71977, -3.03984e-06, -2.63978 )
use_in_baked_light = true use_in_baked_light = true
mesh = ExtResource( 18 ) mesh = ExtResource( 18 )
material/0 = null material/0 = null
+64 -64
View File
@@ -14,34 +14,34 @@ anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
custom_constants/vseparation = 10 theme_override_constants/v_separation = 10
custom_constants/hseparation = 10 theme_override_constants/h_separation = 10
columns = 2 columns = 2
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="TabContainerGeneral" type="TabContainer" parent="GridContainer"] [node name="TabContainerGeneral" type="TabContainer" parent="GridContainer"]
margin_right = 635.0 offset_right = 635.0
margin_bottom = 233.0 offset_bottom = 233.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
tab_align = 0 tab_alignment = 0
[node name="Generale" type="Tabs" parent="GridContainer/TabContainerGeneral"] [node name="Generale" type="TabBar" parent="GridContainer/TabContainerGeneral"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 32.0 offset_top = 32.0
margin_right = 36.0 offset_right = 36.0
margin_bottom = 20.0 offset_bottom = 20.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
scrolling_enabled = false scrolling_enabled = false
[node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerGeneral/Generale"] [node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerGeneral/Generale"]
margin_right = 624.0 offset_right = 624.0
margin_bottom = 221.0 offset_bottom = 221.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit. text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.
@@ -54,21 +54,21 @@ __meta__ = {
} }
[node name="TabContainerMobile" type="TabContainer" parent="GridContainer"] [node name="TabContainerMobile" type="TabContainer" parent="GridContainer"]
margin_left = 645.0 offset_left = 645.0
margin_right = 1280.0 offset_right = 1280.0
margin_bottom = 233.0 offset_bottom = 233.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
tab_align = 0 tab_alignment = 0
[node name="Mobile" type="Tabs" parent="GridContainer/TabContainerMobile"] [node name="Mobile" type="TabBar" parent="GridContainer/TabContainerMobile"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 32.0 offset_top = 32.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
tab_align = 0 tab_alignment = 0
[node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerMobile/Mobile"] [node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerMobile/Mobile"]
anchor_right = 1.0 anchor_right = 1.0
@@ -82,21 +82,21 @@ __meta__ = {
} }
[node name="TabContainerSound" type="TabContainer" parent="GridContainer"] [node name="TabContainerSound" type="TabContainer" parent="GridContainer"]
margin_top = 243.0 offset_top = 243.0
margin_right = 635.0 offset_right = 635.0
margin_bottom = 476.0 offset_bottom = 476.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
tab_align = 0 tab_alignment = 0
[node name="Sound" type="Tabs" parent="GridContainer/TabContainerSound"] [node name="Sound" type="TabBar" parent="GridContainer/TabContainerSound"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 32.0 offset_top = 32.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
tab_align = 0 tab_alignment = 0
[node name="RichTextLabel2" type="RichTextLabel" parent="GridContainer/TabContainerSound/Sound"] [node name="RichTextLabel2" type="RichTextLabel" parent="GridContainer/TabContainerSound/Sound"]
anchor_right = 1.0 anchor_right = 1.0
@@ -110,22 +110,22 @@ __meta__ = {
} }
[node name="TabContainerGraphisme" type="TabContainer" parent="GridContainer"] [node name="TabContainerGraphisme" type="TabContainer" parent="GridContainer"]
margin_left = 645.0 offset_left = 645.0
margin_top = 243.0 offset_top = 243.0
margin_right = 1280.0 offset_right = 1280.0
margin_bottom = 476.0 offset_bottom = 476.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
tab_align = 0 tab_alignment = 0
[node name="Graphisme" type="Tabs" parent="GridContainer/TabContainerGraphisme"] [node name="Graphisme" type="TabBar" parent="GridContainer/TabContainerGraphisme"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 32.0 offset_top = 32.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
tab_align = 0 tab_alignment = 0
scrolling_enabled = false scrolling_enabled = false
[node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerGraphisme/Graphisme"] [node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerGraphisme/Graphisme"]
@@ -146,21 +146,21 @@ __meta__ = {
} }
[node name="TabContainerSound2" type="TabContainer" parent="GridContainer"] [node name="TabContainerSound2" type="TabContainer" parent="GridContainer"]
margin_top = 486.0 offset_top = 486.0
margin_right = 635.0 offset_right = 635.0
margin_bottom = 719.0 offset_bottom = 719.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
tab_align = 0 tab_alignment = 0
[node name="Sound" type="Tabs" parent="GridContainer/TabContainerSound2"] [node name="Sound" type="TabBar" parent="GridContainer/TabContainerSound2"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 32.0 offset_top = 32.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
tab_align = 0 tab_alignment = 0
[node name="RichTextLabel2" type="RichTextLabel" parent="GridContainer/TabContainerSound2/Sound"] [node name="RichTextLabel2" type="RichTextLabel" parent="GridContainer/TabContainerSound2/Sound"]
anchor_right = 1.0 anchor_right = 1.0
@@ -174,22 +174,22 @@ __meta__ = {
} }
[node name="TabContainerGraphisme2" type="TabContainer" parent="GridContainer"] [node name="TabContainerGraphisme2" type="TabContainer" parent="GridContainer"]
margin_left = 645.0 offset_left = 645.0
margin_top = 486.0 offset_top = 486.0
margin_right = 1280.0 offset_right = 1280.0
margin_bottom = 719.0 offset_bottom = 719.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
tab_align = 0 tab_alignment = 0
[node name="Graphisme" type="Tabs" parent="GridContainer/TabContainerGraphisme2"] [node name="Graphisme" type="TabBar" parent="GridContainer/TabContainerGraphisme2"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 32.0 offset_top = 32.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
tab_align = 0 tab_alignment = 0
scrolling_enabled = false scrolling_enabled = false
[node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerGraphisme2/Graphisme"] [node name="RichTextLabel" type="RichTextLabel" parent="GridContainer/TabContainerGraphisme2/Graphisme"]
+18 -18
View File
@@ -9,33 +9,33 @@ __meta__ = {
} }
[node name="MarginContainer" type="MarginContainer" parent="."] [node name="MarginContainer" type="MarginContainer" parent="."]
margin_right = 1280.0 offset_right = 1280.0
margin_bottom = 1280.0 offset_bottom = 1280.0
rect_min_size = Vector2( 1280, 1280 ) custom_minimum_size = Vector2( 1280, 1280 )
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
custom_constants/margin_right = 10 theme_override_constants/margin_right = 10
custom_constants/margin_top = 10 theme_override_constants/margin_top = 10
custom_constants/margin_left = 10 theme_override_constants/margin_left = 10
custom_constants/margin_bottom = 10 theme_override_constants/margin_bottom = 10
[node name="TabContainerGeneral" type="TabContainer" parent="MarginContainer"] [node name="TabContainerGeneral" type="TabContainer" parent="MarginContainer"]
margin_left = 10.0 offset_left = 10.0
margin_top = 10.0 offset_top = 10.0
margin_right = 1270.0 offset_right = 1270.0
margin_bottom = 1270.0 offset_bottom = 1270.0
rect_min_size = Vector2( 0, 1080 ) custom_minimum_size = Vector2( 0, 1080 )
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
tab_align = 0 tab_alignment = 0
[node name="Generale" type="Tabs" parent="MarginContainer/TabContainerGeneral"] [node name="Generale" type="TabBar" parent="MarginContainer/TabContainerGeneral"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 4.0 offset_left = 4.0
margin_top = 32.0 offset_top = 32.0
margin_right = -4.0 offset_right = -4.0
margin_bottom = -4.0 offset_bottom = -4.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
scrolling_enabled = false scrolling_enabled = false
+39 -39
View File
@@ -1,17 +1,17 @@
[gd_scene load_steps=5 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-leather.png" type="Texture" id=1] [ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-leather.png" type="Texture2D" id=1]
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Count.png" type="Texture" id=2] [ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Count.png" type="Texture2D" id=2]
[ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-shadow.png" type="Texture" id=3] [ext_resource path="res://assets/ui/themes/tab_select/UI-level-btn-shadow.png" type="Texture2D" id=3]
[ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset.png" type="Texture" id=4] [ext_resource path="res://assets/ui/themes/tab_select/UI-Button-Reset.png" type="Texture2D" id=4]
[node name="Control" type="Control"] [node name="Control" type="Control"]
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
margin_left = -639.646 offset_left = -639.646
margin_top = 0.707092 offset_top = 0.707092
margin_right = 640.354 offset_right = 640.354
margin_bottom = 720.707 offset_bottom = 720.707
size_flags_horizontal = 0 size_flags_horizontal = 0
size_flags_vertical = 0 size_flags_vertical = 0
__meta__ = { __meta__ = {
@@ -21,9 +21,9 @@ __meta__ = {
[node name="BckShadow" type="TextureRect" parent="."] [node name="BckShadow" type="TextureRect" parent="."]
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
margin_left = -227.0 offset_left = -227.0
margin_right = 228.0 offset_right = 228.0
margin_bottom = 720.0 offset_bottom = 720.0
texture = ExtResource( 3 ) texture = ExtResource( 3 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
@@ -32,65 +32,65 @@ __meta__ = {
[node name="MarginContainer" type="MarginContainer" parent="."] [node name="MarginContainer" type="MarginContainer" parent="."]
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
margin_left = -228.5 offset_left = -228.5
margin_right = 228.5 offset_right = 228.5
margin_bottom = 436.0 offset_bottom = 436.0
custom_constants/margin_right = 20 theme_override_constants/margin_right = 20
custom_constants/margin_top = 20 theme_override_constants/margin_top = 20
custom_constants/margin_left = 20 theme_override_constants/margin_left = 20
custom_constants/margin_bottom = 0 theme_override_constants/margin_bottom = 0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="AlignColumn" type="VBoxContainer" parent="MarginContainer"] [node name="AlignColumn" type="VBoxContainer" parent="MarginContainer"]
margin_left = 20.0 offset_left = 20.0
margin_top = 20.0 offset_top = 20.0
margin_right = 437.0 offset_right = 437.0
margin_bottom = 549.0 offset_bottom = 549.0
custom_constants/separation = 0 theme_override_constants/separation = 0
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="TextureRect" type="TextureRect" parent="MarginContainer/AlignColumn"] [node name="TextureRect" type="TextureRect" parent="MarginContainer/AlignColumn"]
margin_right = 417.0 offset_right = 417.0
margin_bottom = 416.0 offset_bottom = 416.0
texture = ExtResource( 1 ) texture = ExtResource( 1 )
[node name="VBoxContainer" type="HBoxContainer" parent="MarginContainer/AlignColumn"] [node name="VBoxContainer" type="HBoxContainer" parent="MarginContainer/AlignColumn"]
margin_top = 416.0 offset_top = 416.0
margin_right = 417.0 offset_right = 417.0
margin_bottom = 529.0 offset_bottom = 529.0
custom_constants/separation = 0 theme_override_constants/separation = 0
alignment = 1 alignment = 1
[node name="TextureRect2" type="TextureRect" parent="MarginContainer/AlignColumn/VBoxContainer"] [node name="TextureRect2" type="TextureRect" parent="MarginContainer/AlignColumn/VBoxContainer"]
margin_left = 7.0 offset_left = 7.0
margin_right = 185.0 offset_right = 185.0
margin_bottom = 113.0 offset_bottom = 113.0
size_flags_horizontal = 0 size_flags_horizontal = 0
texture = ExtResource( 4 ) texture = ExtResource( 4 )
[node name="TextureRect3" type="TextureRect" parent="MarginContainer/AlignColumn/VBoxContainer"] [node name="TextureRect3" type="TextureRect" parent="MarginContainer/AlignColumn/VBoxContainer"]
margin_left = 185.0 offset_left = 185.0
margin_right = 410.0 offset_right = 410.0
margin_bottom = 113.0 offset_bottom = 113.0
rect_pivot_offset = Vector2( -231.224, -72.2715 ) pivot_offset = Vector2( -231.224, -72.2715 )
size_flags_horizontal = 0 size_flags_horizontal = 0
texture = ExtResource( 2 ) texture = ExtResource( 2 )
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/AlignColumn/VBoxContainer/TextureRect3"] [node name="MarginContainer" type="MarginContainer" parent="MarginContainer/AlignColumn/VBoxContainer/TextureRect3"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
custom_constants/margin_bottom = 10 theme_override_constants/margin_bottom = 10
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Label" type="Label" parent="MarginContainer/AlignColumn/VBoxContainer/TextureRect3/MarginContainer"] [node name="Label" type="Label" parent="MarginContainer/AlignColumn/VBoxContainer/TextureRect3/MarginContainer"]
margin_right = 225.0 offset_right = 225.0
margin_bottom = 103.0 offset_bottom = 103.0
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 7 size_flags_vertical = 7
text = "X / 10" text = "X / 10"
+10 -9
View File
@@ -1,3 +1,4 @@
; Project was converted by built-in tool to Godot 4
; Engine configuration file. ; Engine configuration file.
; It's best edited using the editor UI and not directly, ; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious. ; since the parameters that go here are not all obvious.
@@ -6,7 +7,7 @@
; [section] ; section goes between [] ; [section] ; section goes between []
; param=value ; assign values to parameters ; param=value ; assign values to parameters
config_version=4 config_version=5
_global_script_classes=[ { _global_script_classes=[ {
"base": "Node", "base": "Node",
@@ -223,8 +224,8 @@ GlobalAnimation="*res://scripts/Animation.gd"
[display] [display]
window/size/width=1280 window/size/viewport_width=1280
window/size/height=720 window/size/viewport_height=720
window/size/resizable=false window/size/resizable=false
window/dpi/allow_hidpi=true window/dpi/allow_hidpi=true
window/handheld/orientation="sensor_landscape" window/handheld/orientation="sensor_landscape"
@@ -233,7 +234,7 @@ window/stretch/aspect="expand"
[editor_plugins] [editor_plugins]
enabled=PoolStringArray( "res://addons/godot_db_manager/plugin.cfg", "res://addons/lod/plugin.cfg" ) enabled=PackedStringArray( "res://addons/godot_db_manager/plugin.cfg", "res://addons/lod/plugin.cfg" )
[importer_defaults] [importer_defaults]
@@ -251,14 +252,14 @@ scene={
ui_end={ ui_end={
"deadzone": 0.5, "deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777230,"physical_scancode":0,"unicode":0,"echo":false,"script":null) "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"command":false,"pressed":false,"keycode":4194318,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"command":false,"pressed":false,"keycode":4194305,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
] ]
} }
[locale] [locale]
translations=PoolStringArray( "res://locales/fr.po", "res://locales/en.po" ) translations=PackedStringArray( "res://locales/fr.po", "res://locales/en.po" )
locale_filter=[ 1, [ "en_GB", "fr_FR" ] ] locale_filter=[ 1, [ "en_GB", "fr_FR" ] ]
[physics] [physics]
@@ -270,8 +271,8 @@ common/enable_pause_aware_picking=true
quality/driver/fallback_to_gles2=true quality/driver/fallback_to_gles2=true
threads/thread_model=2 threads/thread_model=2
vram_compression/import_etc=true vram_compression/import_etc=true
quality/shading/force_vertex_shading.mobile=false shading/overrides/force_vertex_shading.mobile=false
quality/lightmapping/use_bicubic_sampling.mobile=true quality/lightmapping/use_bicubic_sampling.mobile=true
quality/depth/hdr.mobile=true quality/depth/hdr.mobile=true
environment/default_environment="res://default_env.tres" environment/defaults/default_environment="res://default_env.tres"
quality/dynamic_fonts/use_oversampling=false quality/dynamic_fonts/use_oversampling=false
+7 -7
View File
@@ -1,12 +1,12 @@
extends Node extends Node
export (PackedScene) var title = load("res://scenes/UI/title/Title.tscn") @export var title: PackedScene = load("res://scenes/UI/title/Title.tscn")
export (PackedScene) var setting = load("res://scenes/UI/settings/Settings.tscn") @export var setting: PackedScene = load("res://scenes/UI/settings/Settings.tscn")
export (PackedScene) var choose_scene = load("res://scenes/UI/choose_scenes/ChooseScene.tscn") @export var choose_scene: PackedScene = load("res://scenes/UI/choose_scenes/ChooseScene.tscn")
onready var current_scene = "title" @onready var current_scene = "title"
onready var stream_button = preload("res://assets/sounds/click-button.ogg") @onready var stream_button = preload("res://assets/sounds/click-button.ogg")
onready var home = $MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer/CenterContainer/TextureRect @onready var home = $MarginContainer/HBoxContainer/UI_summary/PanelWood/VBoxContainer/CenterContainer/TextureRect
func _ready(): func _ready():
_translation() _translation()
@@ -32,7 +32,7 @@ func _apply_scene(actual_scene):
if node.get_child_count() != 0: if node.get_child_count() != 0:
node.get_child(0).queue_free() node.get_child(0).queue_free()
node.add_child(actual_scene.instance()) node.add_child(actual_scene.instantiate())
# Load scene for select game # Load scene for select game
func _on_ButtonPuzzle_pressed(): func _on_ButtonPuzzle_pressed():

Some files were not shown because too many files have changed in this diff Show More