From b2fc1b63a336393f9f757ec45905b96a8e2c7d43 Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 13:04:39 +0200 Subject: [PATCH 01/10] Remove useless var/print --- db/MScene.gd | 2 -- 1 file changed, 2 deletions(-) diff --git a/db/MScene.gd b/db/MScene.gd index 7fc2ac9..d177007 100644 --- a/db/MScene.gd +++ b/db/MScene.gd @@ -1,6 +1,5 @@ extends "res://db/MBase.gd" -var m_id = null var m_value = { "id": null, "value": null } var m_lock = { "id": null, "value": null } var m_label = null @@ -10,7 +9,6 @@ var m_level = null var m_mesh = null func _init(row_index): - print("scene#_init") table = Global.database.get_table_by_name("scenes") var datas = table.get_data_at_row_idx(row_index) From 6b9e476b0067bce7a066bbbe4b57312a30d07c9c Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 14:05:09 +0200 Subject: [PATCH 02/10] Use dbb for levels --- db/MLevel.gd | 31 +++++++++++++ db/MScene.gd | 9 ---- db/ahog.json | 7 ++- scenes/UI/choose_scenes/ChooseScene.gd | 63 ++++++++------------------ scenes/levels/levels.gd | 4 +- 5 files changed, 54 insertions(+), 60 deletions(-) create mode 100644 db/MLevel.gd diff --git a/db/MLevel.gd b/db/MLevel.gd new file mode 100644 index 0000000..6b65594 --- /dev/null +++ b/db/MLevel.gd @@ -0,0 +1,31 @@ +extends "res://db/MBase.gd" + +var m_name = null +var m_thumb = null + +func _init(row_idx): + table = Global.database.get_table_by_name("levels") + + var datas = table.get_data_at_row_idx(row_idx) + if true: + m_name = _get_name(datas) + m_thumb = _get_thumb(datas) + +func object_to_find(): + return 25 as String + +func object_finding(): + return 9 as String + +func name(): + return m_name + +func thumbnail(): + return m_thumb + +## PRIVATE +func _get_name(datas): + return _get_data(datas, 0) as String + +func _get_thumb(datas): + return _get_data(datas, 1) as String diff --git a/db/MScene.gd b/db/MScene.gd index d177007..ebdbaee 100644 --- a/db/MScene.gd +++ b/db/MScene.gd @@ -32,15 +32,6 @@ func search_keys(): if m_tick_reference["id"] == null: m_tick_reference["id"] = _get_tick_reference_id(prop_index) -func object(): - return { - "label": m_label, - "lock": m_lock["value"], - "value": m_value["value"], - "tick_reference": m_tick_reference["value"], - "mesh": m_mesh - } - func key(): return m_key diff --git a/db/ahog.json b/db/ahog.json index 2e57850..80b5cd4 100644 --- a/db/ahog.json +++ b/db/ahog.json @@ -14,10 +14,9 @@ "table_name":"levels", "props":[ {"name":"name","type":"3","auto_increment":"0"}, - {"name":"thumb","type":"4","auto_increment":"0"}, - {"name":"resource","type":"4","auto_increment":"0"} + {"name":"thumb","type":"4","auto_increment":"0"} ], - "data":["WarCraft","res://assets/levels/warcraft.jpg","res://scenes/levels/warcraft/WarCraft.tscn"] + "data":["WarCraft","res://assets/levels/warcraft.jpg"] }, { "table_name":"scenes", @@ -33,4 +32,4 @@ "data":["0.0","True","Dagger","0","dagger","0","dagger","0.0","0","Fiole","7788","fiole1","0","fioles/fiole1","1.79","0","Fiole","0","fiole2","0","fioles/fiole2","0.0","0","Fiole","0","fiole3","0","fioles/fiole_socle/fiole3","0.0","0","Spyglass","0","spyglass","0","spyglass","0.0","0","Coins","0","coin1","0","golds/coin1","0.0","0","Coins","0","coin2","0","golds/coin2","0.0","0","Coins","0","coin3","0","golds/coin3","0.0","0","Weapon Gun","0","weapon","0","weapon","0.0","0","Apple","0","apple1","0","apples/apple1","0.0","0","Apple","0","apple2","0","apples/apple2","0.0","0","Apple","0","apple3","0","apples/apple3","0.0","0","Apple","0","apple4","0","apples/apple4","0.0","0","Beer","0","beer","0","beer","0.0","0","SuperDager","0","gadder","1","sm_super_dager"] } ] -} +} \ No newline at end of file diff --git a/scenes/UI/choose_scenes/ChooseScene.gd b/scenes/UI/choose_scenes/ChooseScene.gd index 8fbcdff..440ffc3 100644 --- a/scenes/UI/choose_scenes/ChooseScene.gd +++ b/scenes/UI/choose_scenes/ChooseScene.gd @@ -3,6 +3,8 @@ extends Control export (PackedScene) var template = load("res://scenes/levels/Template.tscn") onready var levels = Array() +onready var mlevel = load("res://db/MLevel.gd") +onready var table = Global.table_levels func _ready(): _apply_scenes() @@ -12,51 +14,16 @@ func _on_warcraft_pressed(): Global.current_scene_int = 0 Global.goto_scene("res://scenes/levels/warcraft/WarCraft.tscn") -func _on_develop_pressed(): - Global.current_scene_int = 1 - Global.goto_scene("res://developers/aurelien/CheckLightmap.tscn") +func _on_reset_level(): + print("Reset level ...") ## PRIVATE func _apply_scenes(): - var table = Global.table_levels - var datas = null - var name = null - var thumb = null - var resource = null - for row_index in range(0, Global.table_levels.m_rows_count): - datas = Global.table_levels.get_data_at_row_idx(row_index) - - for index in range(0, table.get_props_count()): - if name == null: - name = _get_name(index, table, datas) - if thumb == null: - thumb = _get_thumb(index, table, datas) - if resource == null: - resource = _get_resource(index, table, datas) - - _apply_scene(_load_scene(name), - _load_texture(thumb), - _build_path(name), - _build_method(name)) - name = null - thumb = null - resource = null - -func _get_name(index, table, datas): - if table.get_prop_at(index).get_prop_name() == "name": - return datas[index].get_data() - -func _get_thumb(index, table, datas): - if table.get_prop_at(index).get_prop_name() == "thumb": - return datas[index].get_data() - -func _get_resource(index, table, datas): - if table.get_prop_at(index).get_prop_name() == "resource": - return datas[index].get_data() + _apply_scene(mlevel.new(row_index)) func _build_path(name): - return "MarginContainer/HBoxContainer/"+name+"/TextureRect" + return "MarginContainer/HBoxContainer/"+name func _build_method(name): return "_on_"+name.to_lower()+"_pressed" @@ -70,9 +37,17 @@ func _load_scene(name): func _load_texture(thumbnail): return load(thumbnail) -func _apply_scene(instance, thumb, node, method): - $MarginContainer/HBoxContainer.add_child(instance) - var button = get_node(node+"/TextureButton") - button.set_normal_texture(thumb) - button.connect("pressed", self, method) +func _apply_scene(level): + $MarginContainer/HBoxContainer.add_child(_load_scene(level.name())) + var node = _build_path(level.name()) + var select = get_node(node+"/TextureRect/TextureButton") + var reset = get_node(node+"/VBoxContainer/ButtonReset") + var count = get_node(node+"/VBoxContainer/ButtonCount/Label") + + select.set_normal_texture(_load_texture(level.thumbnail())) + select.connect("pressed", self, _build_method(level.name())) + reset.set_disabled(true) + reset.connect("pressed", self, "_on_reset_level") + + count.set_text(level.object_finding()+" / "+level.object_to_find()) diff --git a/scenes/levels/levels.gd b/scenes/levels/levels.gd index 8cb17ec..b3f7864 100644 --- a/scenes/levels/levels.gd +++ b/scenes/levels/levels.gd @@ -9,11 +9,9 @@ const RAY_LENGTH = 1000 onready var gyroscope_value_old = Vector3(0, 0, 0) onready var table = Global.database.get_table_by_name("scenes") onready var meshes = {} -onready var meshes2 = null onready var from = null onready var to = null - -var mscene = load("res://db/MScene.gd") +onready var mscene = load("res://db/MScene.gd") func _ready(): _load_translations() From 7fa72282326226829e4926329cc03e4d02e9f352 Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 14:14:17 +0200 Subject: [PATCH 03/10] Create method for labels and button to template --- scenes/UI/choose_scenes/ChooseScene.gd | 17 ++++++++++++++--- scenes/levels/Template.tscn | 22 +++++++++------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/scenes/UI/choose_scenes/ChooseScene.gd b/scenes/UI/choose_scenes/ChooseScene.gd index 440ffc3..dbc7c94 100644 --- a/scenes/UI/choose_scenes/ChooseScene.gd +++ b/scenes/UI/choose_scenes/ChooseScene.gd @@ -40,14 +40,25 @@ func _load_texture(thumbnail): func _apply_scene(level): $MarginContainer/HBoxContainer.add_child(_load_scene(level.name())) var node = _build_path(level.name()) + + _configure_select(level, node) + _configure_reset(level, node) + _configure_counter(level, node) + +func _configure_select(level, node): var select = get_node(node+"/TextureRect/TextureButton") - var reset = get_node(node+"/VBoxContainer/ButtonReset") - var count = get_node(node+"/VBoxContainer/ButtonCount/Label") select.set_normal_texture(_load_texture(level.thumbnail())) select.connect("pressed", self, _build_method(level.name())) - reset.set_disabled(true) +func _configure_reset(level, node): + var reset = get_node(node+"/VBoxContainer/ButtonReset") + + if int(level.object_finding()) != 0: + reset.set_disabled(true) reset.connect("pressed", self, "_on_reset_level") + +func _configure_counter(level, node): + var count = get_node(node+"/VBoxContainer/ButtonCount/Label") count.set_text(level.object_finding()+" / "+level.object_to_find()) diff --git a/scenes/levels/Template.tscn b/scenes/levels/Template.tscn index 0ad350d..1807bef 100644 --- a/scenes/levels/Template.tscn +++ b/scenes/levels/Template.tscn @@ -1,6 +1,4 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://assets/levels/warcraft.jpg" type="Texture" id=1] +[gd_scene format=2] [node name="VBoxContainer" type="VBoxContainer"] margin_right = 150.0 @@ -10,9 +8,7 @@ __meta__ = { } [node name="TextureRect" type="TextureRect" parent="."] -margin_right = 150.0 -margin_bottom = 150.0 -texture = ExtResource( 1 ) +margin_right = 350.0 __meta__ = { "_edit_use_anchors_": false } @@ -26,8 +22,8 @@ __meta__ = { } [node name="VBoxContainer" type="HBoxContainer" parent="."] -margin_top = 154.0 -margin_right = 150.0 +margin_top = 4.0 +margin_right = 350.0 margin_bottom = 174.0 size_flags_horizontal = 3 size_flags_vertical = 3 @@ -35,8 +31,8 @@ custom_constants/separation = 25 alignment = 1 [node name="ButtonReset" type="Button" parent="VBoxContainer"] -margin_right = 62.0 -margin_bottom = 20.0 +margin_right = 162.0 +margin_bottom = 170.0 mouse_default_cursor_shape = 2 size_flags_horizontal = 3 @@ -53,9 +49,9 @@ __meta__ = { } [node name="ButtonCount" type="Button" parent="VBoxContainer"] -margin_left = 87.0 -margin_right = 150.0 -margin_bottom = 20.0 +margin_left = 187.0 +margin_right = 350.0 +margin_bottom = 170.0 mouse_default_cursor_shape = 2 size_flags_horizontal = 3 __meta__ = { From 0148703274ce8e55873722beec15b58ba4df0bb9 Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 14:30:00 +0200 Subject: [PATCH 04/10] Add background to button select level --- assets/ui/themes/icon-reset.png | Bin 0 -> 2796 bytes assets/ui/themes/icon-reset.png.import | 34 +++++++++++++++++++++++++ assets/ui/themes/level-btn.png | Bin 0 -> 56350 bytes assets/ui/themes/level-btn.png.import | 34 +++++++++++++++++++++++++ scenes/levels/Template.tscn | 28 ++++++++++++-------- 5 files changed, 86 insertions(+), 10 deletions(-) create mode 100644 assets/ui/themes/icon-reset.png create mode 100644 assets/ui/themes/icon-reset.png.import create mode 100644 assets/ui/themes/level-btn.png create mode 100644 assets/ui/themes/level-btn.png.import diff --git a/assets/ui/themes/icon-reset.png b/assets/ui/themes/icon-reset.png new file mode 100644 index 0000000000000000000000000000000000000000..08def079b330e87061db038f1a8e51d373aec1a9 GIT binary patch literal 2796 zcmb7G4LFl)AAc6fXNpKlt?3(^&6tg`*~n-T8$vPjV6jcxWXQ*h+VP#7O3GI{4kM1w zoRHO#ilc+`jt-qtqBzxbyuOaFcRJO1-|KpNuj@S5^E~%`|F8e=_y7Ix|Npw~JH^%I zpoXfxDgXc)6i2d~d`wvVl$GTFA8Z(1@?nd>-b>)l4H85$cpyLw~J|60IY3=;S6RdD1Zil!7L6QCTnhkL0N%# zn5Q|_lp0O~Ls*W{JkUMbg~p5yWnu$iwl+{}Ax=)f1_cbLkR8V1#|>+;Aug1xG^nd9pZx+(`cZ4*)6^N8#`V3=R{dknu1%1)RkS#97!8Ne*UMlASrm z5{b08!&(qY_Lk=M7^EGBh{9k$VaZ%(1RLZCK4Am@!jiv;UF`*SxI8i$f~dZTI+itr>xA; zXs_{xRO7z-wduM#K9$B9PTjTjzv>>S5rmm#cSh9vmdZxs(CLe~75vJvM@zB=N!s1T zSDaU^vvIGk%C7n#hYaYm^4Q`e)KfzYo_{lg%glwvmKdDzekqZMWjw_ z8G5!)`V>vT)w}+B!<(VgyXW~*r0K}c<4s7T!vj2|WQ*?Aj0S)B+r2$xsi(LuBw>!3 zdr~}0JBGJvETQx1+QytB2y6^0wU*}3z-KmY8&Fo;q*)BPR&r%RTROf4`}CbSi@vuH z_=cZ%;vW-|bc4usG4x|(g(kju!bBx{s`f#Fcr*P{AMl(QvrJXF6?PGh4FdAYGQ ztBt;NjJzv8c|uWoS*&K5YU@9CS^QKyjh0k>KL9_yztRH_{(%krCA!(UxO`@?-BJ>+ z_Sz{bwXL?ytLtEW-&xR zgq_9NJXvs?oYo=}dv*&9P}~HM^;s*nbeWI?pjARi7t1f6P1*lFlAx(#`zH1NipNhH z2^S^5t)K2Q;wrr!a}By3n54O_bK511!nSv=VqJ*|!JJ3ck z9kNsxjdlZ!!%h9g8Toq{3U@N2%m`MZ<^#@^D)S3Z8rIwmTBz#Eg;-dj)0lfxu1ajQ z4n3|kp1g@;<+|_a2OPz3eA;Dk*X9e6D7LDsL`x z#GP4O`h$l8n(WVCflTEk%i^=N(c^c=Ea65N1!yoLr9C6#)a*iXm*i0&&kT?}p8FOl zE9uCKv*{HnDHCqZOl$cK&S<4A#+DS4E?0N;0>f%5x-O}C20`#=9qYtY#+8-c)`7$%}&}+*CSzc`QOVq^9DIPF*w(<1~SKTzf+l3f~um(qL*gqGN z6n~puP&_+Om{Te$kF=-ut$X9_&?C|^9;O*j_m9nvD`?EQ03A>z?8Wu&S6zVa1bn zjb63)yOeqcQgyClYHjb!w3uXdlk5VOf|2@qM16HvJ3G6hB;>(??OUg8toC}%XQk~; z^0cYmgd0e-OQ?L&jg-mek{|tsv?`3=0k4%+oME;S(ldAW65R}@W^VdSMYJ5={5Vpf zQuk)E>VQS8umAQD=zH$|=0m4Zd&&=jL%EG<^h3Aiz2=W132rop7JSRCb7hGtl}54n z@v+KT2OZtDj!yXjOL`TjZCUz7CtHrF>RoPko7NQH{;8AlGoaDrF^CGSa>^3;)*?!n!d>sPDK6>ZfoOg?HH*NrQM tzyhz&VQRkaCj9*q>A#P%m+{Nm{y^<+tSma^t=;PVlVa~euCnt_{5Mj|iN^o{ literal 0 HcmV?d00001 diff --git a/assets/ui/themes/icon-reset.png.import b/assets/ui/themes/icon-reset.png.import new file mode 100644 index 0000000..8e4a318 --- /dev/null +++ b/assets/ui/themes/icon-reset.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon-reset.png-d000c25cd26938ceb23700c305ecc4f1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ui/themes/icon-reset.png" +dest_files=[ "res://.import/icon-reset.png-d000c25cd26938ceb23700c305ecc4f1.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/ui/themes/level-btn.png b/assets/ui/themes/level-btn.png new file mode 100644 index 0000000000000000000000000000000000000000..908199445772bdec5bebc6f03a7051b04462da4e GIT binary patch literal 56350 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 eyglF9^M3$60$`0_XAT Date: Sat, 15 May 2021 15:46:03 +0200 Subject: [PATCH 05/10] Add texture to button reset/score --- assets/ui/themes/icon-reset.png | Bin 2796 -> 6408 bytes scenes/levels/Template.tscn | 28 ++++++++++++++-------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/assets/ui/themes/icon-reset.png b/assets/ui/themes/icon-reset.png index 08def079b330e87061db038f1a8e51d373aec1a9..161bd52ce9d5a1124053f691cf136c64a6d518f4 100644 GIT binary patch literal 6408 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 diff --git a/scenes/levels/Template.tscn b/scenes/levels/Template.tscn index b654a5a..ec2c14a 100644 --- a/scenes/levels/Template.tscn +++ b/scenes/levels/Template.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=3 format=2] [ext_resource path="res://assets/ui/themes/level-btn.png" type="Texture" id=1] +[ext_resource path="res://assets/ui/themes/icon-reset.png" type="Texture" id=2] [node name="VBoxContainer" type="VBoxContainer"] margin_right = 150.0 @@ -10,7 +11,7 @@ __meta__ = { } [node name="TextureRect" type="TextureRect" parent="."] -margin_right = 200.0 +margin_right = 217.0 margin_bottom = 200.0 texture = ExtResource( 1 ) __meta__ = { @@ -31,18 +32,19 @@ __meta__ = { [node name="VBoxContainer" type="HBoxContainer" parent="."] margin_top = 204.0 -margin_right = 200.0 -margin_bottom = 224.0 +margin_right = 217.0 +margin_bottom = 332.0 size_flags_horizontal = 3 size_flags_vertical = 3 custom_constants/separation = 25 alignment = 1 -[node name="ButtonReset" type="Button" parent="VBoxContainer"] -margin_right = 87.0 -margin_bottom = 20.0 +[node name="ButtonReset" type="TextureButton" parent="VBoxContainer"] +margin_right = 64.0 +margin_bottom = 128.0 mouse_default_cursor_shape = 2 size_flags_horizontal = 3 +texture_normal = ExtResource( 2 ) [node name="Label" type="Label" parent="VBoxContainer/ButtonReset"] anchor_right = 1.0 @@ -56,15 +58,13 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ButtonCount" type="Button" parent="VBoxContainer"] -margin_left = 112.0 -margin_right = 200.0 -margin_bottom = 20.0 +[node name="ButtonCount" type="TextureButton" parent="VBoxContainer"] +margin_left = 89.0 +margin_right = 217.0 +margin_bottom = 128.0 mouse_default_cursor_shape = 2 size_flags_horizontal = 3 -__meta__ = { -"_edit_use_anchors_": false -} +texture_normal = ExtResource( 2 ) [node name="Label" type="Label" parent="VBoxContainer/ButtonCount"] anchor_right = 1.0 From 90fce7425a105ddf641250508f7a608338bb0fad Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 16:36:28 +0200 Subject: [PATCH 06/10] Fix base bdd --- db/ahog.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/ahog.json b/db/ahog.json index 80b5cd4..298edf8 100644 --- a/db/ahog.json +++ b/db/ahog.json @@ -29,7 +29,7 @@ {"name":"level","type":"table","table_name":"levels","auto_increment":"0"}, {"name":"mesh","type":"3","auto_increment":"0"} ], - "data":["0.0","True","Dagger","0","dagger","0","dagger","0.0","0","Fiole","7788","fiole1","0","fioles/fiole1","1.79","0","Fiole","0","fiole2","0","fioles/fiole2","0.0","0","Fiole","0","fiole3","0","fioles/fiole_socle/fiole3","0.0","0","Spyglass","0","spyglass","0","spyglass","0.0","0","Coins","0","coin1","0","golds/coin1","0.0","0","Coins","0","coin2","0","golds/coin2","0.0","0","Coins","0","coin3","0","golds/coin3","0.0","0","Weapon Gun","0","weapon","0","weapon","0.0","0","Apple","0","apple1","0","apples/apple1","0.0","0","Apple","0","apple2","0","apples/apple2","0.0","0","Apple","0","apple3","0","apples/apple3","0.0","0","Apple","0","apple4","0","apples/apple4","0.0","0","Beer","0","beer","0","beer","0.0","0","SuperDager","0","gadder","1","sm_super_dager"] + "data":["0.0","True","Dagger","0","dagger","0","dagger","0.0","0","Fiole","14006","fiole1","0","fioles/fiole1","1.45","0","Fiole","0","fiole2","0","fioles/fiole2","0.0","0","Fiole","0","fiole3","0","fioles/fiole_socle/fiole3","0.0","0","Spyglass","0","spyglass","0","spyglass","0.0","0","Coins","0","coin1","0","golds/coin1","0.0","0","Coins","0","coin2","0","golds/coin2","0.0","0","Coins","0","coin3","0","golds/coin3","0.0","0","Weapon Gun","0","weapon","0","weapon","0.0","0","Apple","0","apple1","0","apples/apple1","0.0","0","Apple","0","apple2","0","apples/apple2","0.0","0","Apple","0","apple3","0","apples/apple3","0.0","0","Apple","0","apple4","0","apples/apple4","0.0","0","Beer","0","beer","0","beer","0.0","0","SuperDager","0","gadder","1","sm_super_dager"] } ] } \ No newline at end of file From 196cf39e1882fea55660f2cbec5d6a72424cb794 Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 16:36:49 +0200 Subject: [PATCH 07/10] Fix when collider is empty --- scenes/levels/levels.gd | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scenes/levels/levels.gd b/scenes/levels/levels.gd index b3f7864..3035d9d 100644 --- a/scenes/levels/levels.gd +++ b/scenes/levels/levels.gd @@ -157,6 +157,7 @@ func _physics_process(_delta): var result = space_state.intersect_ray(from, to, [], 1, false, true) from = null to = null - var node = result["collider"].get_parent() - if node != null: - _start_dissolve(node.name) + if result.has("collider"): + var node = result["collider"].get_parent() + if node != null: + _start_dissolve(node.name) From 233da48acb539295a684b69cad9571f591ced766 Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 16:37:06 +0200 Subject: [PATCH 08/10] Remove useless var --- scenes/main.gd | 1 - 1 file changed, 1 deletion(-) diff --git a/scenes/main.gd b/scenes/main.gd index 5234596..64d32cf 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -4,7 +4,6 @@ export (PackedScene) var settings = load("res://scenes/UI/settings/Settings.tscn export (PackedScene) var scenes = load("res://scenes/UI/choose_scenes/ChooseScene.tscn") onready var current_scene = "title" -onready var scene_instance = $MarginContainer/HBoxContainer/MarginContainer/scene_instance func _ready(): _translation() From 6980458eec6b55859fb39b6f331cdd655dbc3634 Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 16:37:48 +0200 Subject: [PATCH 09/10] Get count element --- db/MLevel.gd | 23 ++++++++++++++++++++--- scenes/UI/settings/Settings.gd | 4 ++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/db/MLevel.gd b/db/MLevel.gd index 6b65594..68b73f9 100644 --- a/db/MLevel.gd +++ b/db/MLevel.gd @@ -2,20 +2,37 @@ extends "res://db/MBase.gd" var m_name = null var m_thumb = null +var m_level = null func _init(row_idx): + m_level = row_idx table = Global.database.get_table_by_name("levels") - var datas = table.get_data_at_row_idx(row_idx) + var datas = table.get_data_at_row_idx(m_level) if true: m_name = _get_name(datas) m_thumb = _get_thumb(datas) func object_to_find(): - return 25 as String + var count = 0 + var datas = _scenes().get_data_by_prop_name_and_data("level", String(m_level)) + + if datas.size() != 0: + count = datas.size() + + return count as String + +func _scenes(): + return Global.database.get_table_by_name("scenes") func object_finding(): - return 9 as String + var count = 0 + var datas = _scenes().get_data_by_prop_name_and_data("lock", String(m_level)) + + if datas.size() != 0: + count = datas.count(true) + + return count as String func name(): return m_name diff --git a/scenes/UI/settings/Settings.gd b/scenes/UI/settings/Settings.gd index 66df407..ec623d9 100644 --- a/scenes/UI/settings/Settings.gd +++ b/scenes/UI/settings/Settings.gd @@ -20,8 +20,8 @@ func _apply_settings(): var lang = _get_settings_data("langue", Global.table_settings, Global.data_settings) var gyro = _get_settings_data("gyroscope", Global.table_settings, Global.data_settings) - #$CenterContainer/VBoxContainer/Langue/HBoxContainer/data.set_text(lang) - #$CenterContainer/VBoxContainer/gyroscope/HBoxContainer/data.set_pressed(int(gyro) as bool) + $VBoxContainer/Langue/HBoxContainer/data.set_text(lang) + $VBoxContainer/gyroscope/HBoxContainer/data.set_pressed(int(gyro) as bool) func _get_settings_data(name, table, datas): for index in range(0, Global.table_settings.get_props_count()): From 9d9ca0a283e4c54fd4abc835b65875fabf6c67a5 Mon Sep 17 00:00:00 2001 From: VAILLANT Jeremy Date: Sat, 15 May 2021 16:40:14 +0200 Subject: [PATCH 10/10] Add env base --- assets/env/base_env.tres | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 assets/env/base_env.tres diff --git a/assets/env/base_env.tres b/assets/env/base_env.tres new file mode 100644 index 0000000..e78bbbc --- /dev/null +++ b/assets/env/base_env.tres @@ -0,0 +1,28 @@ +[gd_resource type="Environment" load_steps=3 format=2] + +[ext_resource path="res://assets/hdri/tx_night_place.hdr" type="Texture" id=1] + +[sub_resource type="PanoramaSky" id=2] +panorama = ExtResource( 1 ) + +[resource] +background_mode = 3 +background_sky = SubResource( 2 ) +background_color = Color( 0.188235, 0.133333, 0.133333, 1 ) +background_energy = 0.6 +ambient_light_color = Color( 0.694118, 0.168627, 0.67451, 1 ) +ambient_light_energy = 1.55 +ambient_light_sky_contribution = 0.5 +fog_enabled = true +fog_color = Color( 0.562167, 0.29, 1, 0.941176 ) +fog_depth_begin = 0.0 +fog_depth_end = 60.0 +fog_depth_curve = 1.10957 +fog_height_enabled = true +fog_height_min = 2.0 +fog_height_max = -20.0 +fog_height_curve = 0.965936 +tonemap_mode = 2 +ss_reflections_enabled = true +dof_blur_far_distance = 2.0 +glow_enabled = true