Compare commits
51 Commits
release/0.
...
feature/ed
| Author | SHA1 | Date | |
|---|---|---|---|
| 89440a0180 | |||
| 2252a80bb9 | |||
| 29c9cd4828 | |||
| 6d426fe4fb | |||
| e5259f500f | |||
| d99320fcc8 | |||
| 44d838fedf | |||
| 8e0f13a10c | |||
| 8aacb4b615 | |||
| 990acac845 | |||
| af6ae3e137 | |||
| 72f2d1b091 | |||
| 7f380e7ccd | |||
| cfe374f350 | |||
| 93f2651889 | |||
| acc55fb462 | |||
| 33b9af05d9 | |||
| 12c4167c23 | |||
| d01336a938 | |||
| cb5acb0a0d | |||
| 34e5cdb80f | |||
| 8337f3d150 | |||
| 94c0363156 | |||
| c9fee9ad87 | |||
| 279fd91aa1 | |||
| 481c7993c4 | |||
| 080ea1dfe1 | |||
| 01835d0a4e | |||
| 981df00da2 | |||
| ed20451c36 | |||
| 1c74528184 | |||
| 2f1971c52a | |||
| e5949dc0cf | |||
| 67228746b5 | |||
| 9eec24157d | |||
| 021c862f7b | |||
| 3fa3f48476 | |||
| d03c46fb33 | |||
| 3d0b68a280 | |||
| bd93904bcb | |||
| 3d9445a40a | |||
| 0b63c25df1 | |||
| 173dc4e01c | |||
| a889dca375 | |||
| 39d14cb7de | |||
| 1266cc3355 | |||
| 39bf0d68e0 | |||
| 9406706a83 | |||
| 179883ef30 | |||
| 31f04e5881 | |||
| b5365d3644 |
3
.cursorignore
Normal file
@@ -0,0 +1,3 @@
|
||||
*.import
|
||||
*.uid
|
||||
*.translation
|
||||
@@ -9,7 +9,7 @@ env:
|
||||
GODOT_VERSION: 4.5
|
||||
EXPORT_NAME: LasGymkhanikasDeUli
|
||||
PROJECT_PATH: .
|
||||
APPWRITE_API_KEY: ${{ secrets.APPWRITE_API_KEY }}
|
||||
APPWRITE_API_KEY: "${{ secrets.APPWRITE_API_KEY }}"
|
||||
|
||||
jobs:
|
||||
all-exports:
|
||||
@@ -36,3 +36,4 @@ jobs:
|
||||
build/**/*.appimage
|
||||
build/**/*.tar.gz
|
||||
build/**/*.zip
|
||||
build/**/*.exe
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
## Development
|
||||
- Oier
|
||||
- Eneko
|
||||
|
||||
## Collaborations
|
||||
- Pico
|
||||
- Miette
|
||||
- Niko
|
||||
- Urtzi
|
||||
1977
CHANGELOG.md
@@ -1,83 +0,0 @@
|
||||
Subject: [PATCH] feat(deploy): Itch.io publishing. #203
|
||||
---
|
||||
Index: .gitea/workflows/push-release.yml
|
||||
IDEA additional info:
|
||||
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||
<+>UTF-8
|
||||
===================================================================
|
||||
diff --git a/.gitea/workflows/push-release.yml b/.gitea/workflows/push-release.yml
|
||||
--- a/.gitea/workflows/push-release.yml (revision 1c1f32e2aa839ccf963326d88f5f21bb3085ba1d)
|
||||
+++ b/.gitea/workflows/push-release.yml (revision 8d2907c071001995b91dc6234ec511729fd49137)
|
||||
@@ -34,16 +34,6 @@
|
||||
files: |
|
||||
build/**/*.appimage
|
||||
build/**/*.tar.gz
|
||||
- - name: Publish AMD to itch.io
|
||||
- uses: yeslayla/butler-publish-itchio-action@master
|
||||
- env:
|
||||
- BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
|
||||
- CHANNEL: linux
|
||||
- PACKAGE: build/debug/amd64/*.appimage
|
||||
- - name: Publish ARM to itch.io
|
||||
- uses: yeslayla/butler-publish-itchio-action@master
|
||||
- env:
|
||||
- BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
|
||||
- CHANNEL: linux
|
||||
- PACKAGE: build/debug/arm64/*.appimage
|
||||
- VERSION_FILE: build/version.txt
|
||||
\ No newline at end of file
|
||||
+ - name: Publishing
|
||||
+ run: |
|
||||
+ ./publish.sh
|
||||
\ No newline at end of file
|
||||
Index: bash_colors.sh
|
||||
===================================================================
|
||||
diff --git a/bash_colors.sh b/bash_colors.sh
|
||||
new file mode 100644
|
||||
--- /dev/null (revision 8d2907c071001995b91dc6234ec511729fd49137)
|
||||
+++ b/bash_colors.sh (revision 8d2907c071001995b91dc6234ec511729fd49137)
|
||||
@@ -0,0 +1,6 @@
|
||||
+NOCOLOR='\033[0m' # No Color
|
||||
+BLUE='\e[34m' # BrightBlue
|
||||
+BOLD_BLUE='\033[1;94m' # BrightBlue
|
||||
+GREEN='\e[49;32m' # Green
|
||||
+ORANGE='\033[1;33m'
|
||||
+RED='\033[1;31m'
|
||||
\ No newline at end of file
|
||||
Index: publish.sh
|
||||
===================================================================
|
||||
diff --git a/publish.sh b/publish.sh
|
||||
new file mode 100644
|
||||
--- /dev/null (revision 8d2907c071001995b91dc6234ec511729fd49137)
|
||||
+++ b/publish.sh (revision 8d2907c071001995b91dc6234ec511729fd49137)
|
||||
@@ -0,0 +1,29 @@
|
||||
+#!/bin/bash
|
||||
+source bash_colors.sh
|
||||
+
|
||||
+ITCHIO_ENABLED=true
|
||||
+
|
||||
+VERSION=`cat build/version.txt`
|
||||
+echo -e "Publishing ${GREEN}v${VERSION}${NOCOLOR}"
|
||||
+
|
||||
+# Publish to Itch.io
|
||||
+if [ "$ITCHIO_ENABLED" = true ] ; then
|
||||
+ echo -e "${BLUE}Publishing to Itch.io${NOCOLOR}"
|
||||
+ if ! command -v butler >/dev/null 2>&1
|
||||
+ then
|
||||
+ echo -e "${RED}butler could not be found. Aborting!${NOCOLOR}"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
+
|
||||
+
|
||||
+ echo -e "${ORANGE}Publishing AMD64${NOCOLOR}"
|
||||
+ butler push build/debug/amd64/LasGymkhanikasDeUli--debug.x86_64.appimage uliwood/las-gymkhanikas-de-uli-turno-cocina:linux-amd64 --userversion $VERSION
|
||||
+
|
||||
+ echo -e "${ORANGE}Publishing ARM64${NOCOLOR}"
|
||||
+ butler push build/debug/arm64/LasGymkhanikasDeUli--debug.arm_64.appimage uliwood/las-gymkhanikas-de-uli-turno-cocina:linux-arm64 --userversion $VERSION
|
||||
+
|
||||
+
|
||||
+ else
|
||||
+ echo -e "${ORANGE}Itch.io not enabled.{NOCOLOR}"
|
||||
+fi
|
||||
\ No newline at end of file
|
||||
@@ -40,6 +40,11 @@ func initialize(dialog_manager: ESCDialogManager, character: String, text: Strin
|
||||
|
||||
func handle_input(_event):
|
||||
if _event is InputEventMouseButton and _event.pressed:
|
||||
# MODIFIED FOR RTMI-UI: HACK FOR MENU/FULLSCREEN/MUSIC BUTTONS
|
||||
var position: Vector2 = _event.global_position
|
||||
if position.x > 1080 and position.y < 70:
|
||||
return
|
||||
# END MODIFIED FOR RTMI-UI
|
||||
if escoria.inputs_manager.input_mode != \
|
||||
escoria.inputs_manager.INPUT_NONE and \
|
||||
_dialog_manager != null:
|
||||
|
||||
@@ -68,6 +68,9 @@ var _progress_tween: Tween
|
||||
|
||||
# Build up the UI
|
||||
func _ready():
|
||||
escoria.paused.connect(_on_paused)
|
||||
escoria.resumed.connect(_on_resumed)
|
||||
|
||||
_click_to_continue = escoria.settings_manager.get_custom_setting(
|
||||
RTMISimpleDialogSettings.CLEAR_TEXT_BY_CLICK_ONLY_KEY,
|
||||
RTMISimpleDialogSettings.CLEAR_TEXT_BY_CLICK_ONLY_DEFAULT_VALUE
|
||||
@@ -304,12 +307,14 @@ func _on_dialog_finished():
|
||||
# Handler managing pause notification from Escoria
|
||||
func _on_paused():
|
||||
_talking_timer.set_paused(true)
|
||||
hide()
|
||||
|
||||
|
||||
|
||||
# Handler managing resume notification from Escoria
|
||||
func _on_resumed():
|
||||
_talking_timer.set_paused(false)
|
||||
|
||||
show()
|
||||
|
||||
func _stop_character_talking():
|
||||
# Make the speaking item animation stop talking, if it is still alive
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class_name RTMIAchievementSummaryMenu
|
||||
extends PanelContainer
|
||||
|
||||
func ready() -> void:
|
||||
%SummaryPanel.hide_position()
|
||||
|
||||
func _on_rtmi_menu_button_pressed() -> void:
|
||||
hide()
|
||||
|
||||
func refresh() -> void:
|
||||
%SummaryPanel.refresh()
|
||||
@@ -0,0 +1 @@
|
||||
uid://bp676ele1a2dk
|
||||
@@ -0,0 +1,54 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bcu6ik8qq0dl6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cbq03pmsdusib" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary_panel.tscn" id="1_iv6go"]
|
||||
[ext_resource type="Script" uid="uid://bp676ele1a2dk" path="res://addons/escoria-ui-return-monkey-island/achievements/menu/rtmi_achievements_menu.gd" id="1_krbpm"]
|
||||
[ext_resource type="Script" uid="uid://elqkwjm0r5c7" path="res://addons/escoria-ui-return-monkey-island/menus/rtmi_menu_button.gd" id="2_ntqhu"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_krbpm"]
|
||||
bg_color = Color(0.21960784, 0.21960784, 0.21960784, 1)
|
||||
|
||||
[node name="AchievementsMenu" type="PanelContainer"]
|
||||
process_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_krbpm")
|
||||
script = ExtResource("1_krbpm")
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="CenterContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/PanelContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 20
|
||||
theme_override_constants/margin_top = 20
|
||||
theme_override_constants/margin_right = 20
|
||||
theme_override_constants/margin_bottom = 20
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer"]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="SummaryPanel" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer" instance=ExtResource("1_iv6go")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 50)
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/normal_font_size = 16
|
||||
text = "ACHIEVEMENTS_MENU_NOTE"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Back" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "OPTIONS_BACK"
|
||||
script = ExtResource("2_ntqhu")
|
||||
metadata/_custom_type_script = "uid://elqkwjm0r5c7"
|
||||
|
||||
[connection signal="pressed" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Back" to="." method="_on_rtmi_menu_button_pressed"]
|
||||
@@ -46,6 +46,8 @@ func get_unlocked_achievements_total() -> int:
|
||||
unlocked_achievements_total += 1
|
||||
return unlocked_achievements_total
|
||||
|
||||
func is_perfect_score() -> bool:
|
||||
return get_achievements_total() == get_unlocked_achievements_total()
|
||||
|
||||
func reset_achievements() -> void:
|
||||
_achievement_tracker.clear()
|
||||
@@ -65,7 +67,6 @@ func unlock_achievement(achievement_id) -> void:
|
||||
_achievement_tracker.set(achievement_id, true)
|
||||
unlocked.emit(achievement_id)
|
||||
|
||||
|
||||
func is_unlocked(achievement_id: String) -> bool:
|
||||
if not has(achievement_id):
|
||||
escoria.logger.error(self, "Achievement '%s' not found.")
|
||||
|
||||
@@ -21,7 +21,9 @@ func update() -> void:
|
||||
var achievements = gymkhana.achievement_manager.get_achievements()
|
||||
achievements.sort()
|
||||
for key in achievements:
|
||||
%Container.add_child(UiEscoriaVariableBuilder.create(key, achievements[key]))
|
||||
var variable: UIEscoriaVariable = UiEscoriaVariableBuilder.create(key, achievements[key])
|
||||
variable.double_clicked.connect(_on_double_clicked)
|
||||
%Container.add_child(variable)
|
||||
|
||||
|
||||
func clear() -> void:
|
||||
@@ -32,3 +34,6 @@ func clear() -> void:
|
||||
|
||||
func _on_time_updated(elapsed_time_in_seconds: int) -> void:
|
||||
%TimeTrackerLabel.text = str(elapsed_time_in_seconds)
|
||||
|
||||
func _on_double_clicked(achievement_id) -> void:
|
||||
gymkhana.achievement_manager.unlock_achievement(achievement_id)
|
||||
|
||||
@@ -73,22 +73,12 @@ func get_scores(collection: String) -> Array[RTMIScoreRow]:
|
||||
|
||||
func submit_score(collection: String, name: String, time: int) -> bool:
|
||||
var hash = ("%s_%s_%s_%s" % [collection, name, time, score_submit_key]).sha256_text()
|
||||
var request_data: String = (
|
||||
JSON
|
||||
. new()
|
||||
. stringify(
|
||||
{
|
||||
"collectionId": collection,
|
||||
"score":
|
||||
{
|
||||
"name": name,
|
||||
"time": time,
|
||||
},
|
||||
"hash": hash
|
||||
}
|
||||
)
|
||||
)
|
||||
var response_data = await _score_http_request(http_requests[SUBMIT], score_submit_url, HTTPClient.METHOD_POST, request_data)
|
||||
var url = "%s/%s/%s/%s/%s" % [score_submit_url, collection, name.uri_encode(), time, hash]
|
||||
var response_data = await _score_http_request(http_requests[SUBMIT], url)
|
||||
|
||||
if response_data == null:
|
||||
push_error("Error submitting score: response data is null")
|
||||
return false
|
||||
|
||||
if not response_data.success:
|
||||
push_error("Error submitting score: error=%s" % response_data.errorMsg)
|
||||
@@ -134,7 +124,7 @@ func _score_http_request(
|
||||
return response_data
|
||||
|
||||
|
||||
func format_time(time: int) -> String:
|
||||
static func format_time(time: int) -> String:
|
||||
var hours = time / 3600
|
||||
var minutes = (time % 3600) / 60
|
||||
var seconds = time % 60
|
||||
|
||||
@@ -41,6 +41,11 @@ unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
collection = "perfect"
|
||||
|
||||
[node name="Label" type="Label" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "SCOREBOARD_NOTE"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
@@ -6,88 +6,42 @@ signal score_submitted()
|
||||
const CHARACTER_LIMIT: int = 32
|
||||
const ALLOWED_CHARACTERS = "[à-ÿÀ-ŸA-Za-z0-9 _-]"
|
||||
|
||||
var perfect = false
|
||||
var collection: String
|
||||
|
||||
@onready var input_name: LineEdit = %InputName
|
||||
@onready var total_time: Label = %TotalTime
|
||||
@onready var pos: Label = %Position
|
||||
@onready var achievement_count: Label = %AchievementCount
|
||||
@onready var unlocked_achievements_container: VBoxContainer = %UnlockedAchievementsContainer
|
||||
@onready var submit_button: RTMIMenuButton = %SubmitButton
|
||||
@onready var spinner: Spinner = %Spinner
|
||||
|
||||
@onready var summary_panel: RTMIAchievementSummaryPanel = %SummaryPanel
|
||||
|
||||
func _ready() -> void:
|
||||
_fill()
|
||||
input_name.text_changed.connect(_on_input_name_changed)
|
||||
input_name.grab_focus()
|
||||
|
||||
|
||||
func show():
|
||||
super.show()
|
||||
|
||||
summary_panel.show_position()
|
||||
check_perfect()
|
||||
check_score()
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("ui_enter"):
|
||||
_on_submit_button_up()
|
||||
|
||||
|
||||
func _fill():
|
||||
_clear()
|
||||
total_time.text = gymkhana.score_manager.format_time(gymkhana.achievement_manager.played_time)
|
||||
var achievements = gymkhana.achievement_manager.get_achievements()
|
||||
var unlocked = 0
|
||||
for achievement_key in achievements:
|
||||
var label = Label.new()
|
||||
label.text = tr(gymkhana.achievement_manager.generate_achievement_literal(
|
||||
achievement_key, "title"
|
||||
))
|
||||
label.add_theme_color_override("font_color", Color.DIM_GRAY)
|
||||
if achievements.get(achievement_key):
|
||||
label.add_theme_color_override("font_color", Color.GREEN)
|
||||
unlocked += 1
|
||||
unlocked_achievements_container.add_child(label)
|
||||
|
||||
achievement_count.text = "%s / %s" % [unlocked, achievements.size()]
|
||||
|
||||
if unlocked == achievements.size():
|
||||
submit_button.text = tr("SUBMIT_PERFECT_SCORE")
|
||||
perfect = true
|
||||
|
||||
collection = gymkhana.score_manager.PERFECT if perfect else gymkhana.score_manager.FASTEST
|
||||
check_score()
|
||||
|
||||
|
||||
func check_score():
|
||||
if perfect:
|
||||
func check_perfect():
|
||||
if gymkhana.achievement_manager.is_perfect_score():
|
||||
escoria.game_scene.launch_confetti()
|
||||
escoria.globals_manager.set_global("turno_cocina_perfect_score", true)
|
||||
|
||||
|
||||
submit_button.text = tr("SUBMIT_PERFECT_SCORE")
|
||||
|
||||
func check_score():
|
||||
var played_time = floor(randf() * 1000)
|
||||
collection = gymkhana.score_manager.PERFECT if gymkhana.achievement_manager.is_perfect_score() else gymkhana.score_manager.FASTEST
|
||||
|
||||
var pos_int = await gymkhana.score_manager.calculate_score_position(collection, gymkhana.achievement_manager.played_time)
|
||||
pos.text = "#" + str(pos_int + 1)
|
||||
summary_panel.score_position = pos_int + 1
|
||||
|
||||
|
||||
|
||||
func _clear() -> void:
|
||||
for child in unlocked_achievements_container.get_children():
|
||||
unlocked_achievements_container.remove_child(child)
|
||||
child.queue_free()
|
||||
|
||||
|
||||
func _get_all_achievements() -> Array:
|
||||
var unlocked_achievements: Array = []
|
||||
var all_achievements = gymkhana.achievement_manager.get_achievements()
|
||||
for achievement in all_achievements:
|
||||
if all_achievements.get(achievement) == true:
|
||||
unlocked_achievements.append(achievement)
|
||||
return unlocked_achievements
|
||||
|
||||
|
||||
func _on_input_name_changed(_new_text: String):
|
||||
var valid = _validate_name()
|
||||
|
||||
if not valid:
|
||||
_set_label_error()
|
||||
return
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://ch5d4emoxq6t4"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://ch5d4emoxq6t4"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://wor3bvk7tdh0" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary.gd" id="1_vcqj7"]
|
||||
[ext_resource type="PackedScene" uid="uid://cbq03pmsdusib" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary_panel.tscn" id="2_0xx2m"]
|
||||
[ext_resource type="Script" uid="uid://elqkwjm0r5c7" path="res://addons/escoria-ui-return-monkey-island/menus/rtmi_menu_button.gd" id="2_3d1qx"]
|
||||
[ext_resource type="Script" uid="uid://doqt8bqgwakt" path="res://addons/tattomoosa.spinner/spinner.gd" id="3_co5jd"]
|
||||
|
||||
@@ -22,101 +23,9 @@ theme_override_constants/margin_bottom = 10
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="TotalTimeLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "TOTAL_TIME"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TotalTime" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"]
|
||||
[node name="SummaryPanel" parent="MarginContainer/VBoxContainer" instance=ExtResource("2_0xx2m")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "0h 00m 00s"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 2
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="PositionLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "POSITION"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Position" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "-"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 2
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/separator = SubResource("StyleBoxEmpty_co5jd")
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementTitle" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "ACHIEVEMENT_SUMMARY"
|
||||
|
||||
[node name="AchievementCount" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "1 / 7"
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 10
|
||||
theme_override_constants/margin_bottom = 10
|
||||
|
||||
[node name="UnlockedAchievementsContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label3" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label4" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label5" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label6" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="HSeparator3" type="HSeparator" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
class_name RTMIAchievementSummaryPanel
|
||||
extends VBoxContainer
|
||||
|
||||
@onready var total_time: Label = %TotalTime
|
||||
@onready var pos: Label = %Position
|
||||
@onready var achievement_count: Label = %AchievementCount
|
||||
@onready var unlocked_achievements_container: VBoxContainer = %UnlockedAchievementsContainer
|
||||
|
||||
var score_position: int = 0:
|
||||
set(new_value):
|
||||
score_position = new_value
|
||||
%Position.text = "#%d" % new_value
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_fill()
|
||||
|
||||
func refresh() -> void:
|
||||
_fill()
|
||||
|
||||
func _fill():
|
||||
_clear()
|
||||
total_time.text = RTMIScoreManager.format_time(gymkhana.achievement_manager.played_time)
|
||||
var achievements = gymkhana.achievement_manager.get_achievements()
|
||||
for achievement_key in achievements:
|
||||
var label = Label.new()
|
||||
label.text = tr(gymkhana.achievement_manager.generate_achievement_literal(
|
||||
achievement_key, "title"
|
||||
))
|
||||
label.add_theme_color_override("font_color", Color.DIM_GRAY)
|
||||
if achievements.get(achievement_key):
|
||||
label.add_theme_color_override("font_color", Color.GREEN)
|
||||
unlocked_achievements_container.add_child(label)
|
||||
|
||||
achievement_count.text = "%s / %s" % [gymkhana.achievement_manager.get_unlocked_achievements_total(), achievements.size()]
|
||||
|
||||
|
||||
func _clear() -> void:
|
||||
for child in unlocked_achievements_container.get_children():
|
||||
unlocked_achievements_container.remove_child(child)
|
||||
child.queue_free()
|
||||
|
||||
func show_position() -> void:
|
||||
%PositionContainer.show()
|
||||
|
||||
|
||||
func hide_position() -> void:
|
||||
%PositionContainer.hide()
|
||||
@@ -0,0 +1 @@
|
||||
uid://b7llgro3vx5rr
|
||||
@@ -0,0 +1,105 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cbq03pmsdusib"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b7llgro3vx5rr" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary_panel.gd" id="1_cgp0k"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_co5jd"]
|
||||
|
||||
[node name="SummaryPanel" type="VBoxContainer"]
|
||||
script = ExtResource("1_cgp0k")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="TotalTimeLabel" type="Label" parent="HBoxContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "TOTAL_TIME"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="TotalTime" type="Label" parent="HBoxContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "0h 00m 00s"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 2
|
||||
|
||||
[node name="PositionContainer" type="VBoxContainer" parent="HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="PositionLabel" type="Label" parent="HBoxContainer/PositionContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "POSITION"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Position" type="Label" parent="HBoxContainer/PositionContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "-"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 2
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_styles/separator = SubResource("StyleBoxEmpty_co5jd")
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementTitle" type="Label" parent="HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "ACHIEVEMENT_SUMMARY"
|
||||
|
||||
[node name="AchievementCount" type="Label" parent="HBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "1 / 7"
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 10
|
||||
theme_override_constants/margin_bottom = 10
|
||||
|
||||
[node name="UnlockedAchievementsContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label2" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label3" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label4" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label5" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
|
||||
[node name="Label6" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENT TEXT PLACEHOLDER"
|
||||
@@ -0,0 +1,21 @@
|
||||
@tool
|
||||
extends GridContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
refresh()
|
||||
|
||||
|
||||
func refresh() -> void:
|
||||
var characters := ESCEditorHelper.get_characters()
|
||||
for character in characters:
|
||||
var button = ESCCharacterGridButton.new()
|
||||
button.text = character
|
||||
button.character_path = characters[character]
|
||||
add_child(button)
|
||||
|
||||
|
||||
func _clear() -> void:
|
||||
for child in get_children():
|
||||
remove_child(child)
|
||||
child.queue_free()
|
||||
@@ -0,0 +1 @@
|
||||
uid://cprmhtbtpwqtn
|
||||
@@ -0,0 +1,14 @@
|
||||
@tool
|
||||
class_name ESCCharacterGridButton
|
||||
extends Button
|
||||
|
||||
var character_path: String
|
||||
|
||||
var _loaded_character = ESCPlayer
|
||||
|
||||
func _ready():
|
||||
pressed.connect(_button_pressed)
|
||||
|
||||
|
||||
func _button_pressed():
|
||||
EditorInterface.open_scene_from_path(character_path)
|
||||
@@ -0,0 +1 @@
|
||||
uid://sprnym2weug8
|
||||
@@ -0,0 +1,59 @@
|
||||
@tool
|
||||
class_name ESCItemGridButton
|
||||
extends VBoxContainer
|
||||
|
||||
const RESIZE_RATIO: float = 0.5
|
||||
|
||||
|
||||
var _item_path: String
|
||||
var _loaded_item: ESCItem
|
||||
var _use_inventory_texture: bool = false
|
||||
|
||||
func _init(item_path: String, use_inventory_texture: bool):
|
||||
_item_path = item_path
|
||||
_use_inventory_texture = use_inventory_texture
|
||||
|
||||
|
||||
func _ready():
|
||||
_loaded_item = load(_item_path).instantiate()
|
||||
|
||||
var button = TextureButton.new()
|
||||
var texture: Texture = _get_item_texture(_loaded_item)
|
||||
|
||||
#button.ignore_texture_size = true
|
||||
button.stretch_mode = TextureButton.STRETCH_KEEP_CENTERED
|
||||
button.texture_normal = texture
|
||||
|
||||
button.custom_minimum_size = Vector2i(150,150)
|
||||
button.gui_input.connect(_on_button_gui_input)
|
||||
add_child(button)
|
||||
|
||||
var label = Label.new()
|
||||
label.text = _loaded_item.global_id
|
||||
label.text_overrun_behavior = TextServer.OVERRUN_TRIM_ELLIPSIS_FORCE
|
||||
label.custom_minimum_size = Vector2i(150, 0)
|
||||
label.gui_input.connect(_on_label_gui_input)
|
||||
label.tooltip_text = _item_path
|
||||
add_child(label)
|
||||
|
||||
|
||||
func _on_button_gui_input(event: InputEvent):
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MouseButton.MOUSE_BUTTON_LEFT and event.double_click:
|
||||
EditorInterface.open_scene_from_path(_item_path)
|
||||
EditorInterface.edit_node(EditorInterface.get_edited_scene_root())
|
||||
|
||||
|
||||
func _on_label_gui_input(event: InputEvent):
|
||||
if event is InputEventMouseButton:
|
||||
print("D")
|
||||
if event.button_index == MouseButton.MOUSE_BUTTON_LEFT and event.double_click:
|
||||
DisplayServer.clipboard_set(_item_path)
|
||||
escoria.logger.info(self, "%s copied." % _item_path)
|
||||
|
||||
func _get_item_texture(item: ESCItem):
|
||||
if _use_inventory_texture:
|
||||
return item._get_inventory_texture()
|
||||
for c in item.get_children():
|
||||
if c is TextureRect or c is Sprite2D:
|
||||
return c.texture
|
||||
@@ -0,0 +1 @@
|
||||
uid://bqll8erv6o7kd
|
||||
@@ -0,0 +1,13 @@
|
||||
@tool
|
||||
class_name ESCRoomGridButton
|
||||
extends Button
|
||||
|
||||
var room_path: String
|
||||
|
||||
|
||||
func _ready():
|
||||
pressed.connect(_button_pressed)
|
||||
|
||||
|
||||
func _button_pressed():
|
||||
EditorInterface.open_scene_from_path(room_path)
|
||||
@@ -0,0 +1 @@
|
||||
uid://da4n8ed4moe6y
|
||||
@@ -0,0 +1,22 @@
|
||||
@tool
|
||||
extends Control
|
||||
class_name ESCRoomInspectorItem
|
||||
|
||||
@onready var label: Label = %Label
|
||||
@onready var button_pinpoint: Button = %ButtonPinpoint
|
||||
|
||||
var _item: ESCItem
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
button_pinpoint.pressed.connect(_on_pinpoint_pressed)
|
||||
|
||||
|
||||
func set_item(item: ESCItem) -> void:
|
||||
_item = item
|
||||
label.text = item.global_id
|
||||
|
||||
|
||||
func _on_pinpoint_pressed():
|
||||
print("PINPOINT: %s" % _item.global_id, "Owner: %s" % _item.owner)
|
||||
EditorInterface.edit_node(_item)
|
||||
@@ -0,0 +1 @@
|
||||
uid://qk4h81i8pcsw
|
||||
@@ -0,0 +1,34 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://uii3u2y0w3yo"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://qk4h81i8pcsw" path="res://addons/escoria-ui-return-monkey-island/editor-tools/elements/esc_room_inspector_item.gd" id="1_lqbf8"]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
custom_minimum_size = Vector2(0, 15)
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
script = ExtResource("1_lqbf8")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "turno_cocina"
|
||||
|
||||
[node name="ButtonPinpoint" type="Button" parent="HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "."
|
||||
@@ -0,0 +1,89 @@
|
||||
@tool
|
||||
class_name ESCEditorHelper
|
||||
|
||||
const FILE_EXTENSION_ASHES = "esc"
|
||||
const DIRECTORIES_TO_EXCLUDE = ["addons"]
|
||||
const BASE_PROJECT_DIR = "res://"
|
||||
|
||||
|
||||
static func get_element(element_path: String) -> Dictionary:
|
||||
var element_list: Dictionary = {}
|
||||
var path = ProjectSettings.globalize_path(element_path)
|
||||
if not OS.has_feature("editor"):
|
||||
path = OS.get_executable_path().get_base_dir().path_join(path)
|
||||
|
||||
var dir = DirAccess.open(path)
|
||||
|
||||
if dir != null:
|
||||
dir.list_dir_begin() # TODOConverter3To4 fill missing arguments https://github.com/godotengine/godot/pull/40547
|
||||
var file_name = dir.get_next()
|
||||
while file_name != "":
|
||||
if dir.current_is_dir():
|
||||
element_list.set(file_name, "%s/%s/%s.tscn" % [element_path, file_name, file_name])
|
||||
file_name = dir.get_next()
|
||||
|
||||
element_list.sort()
|
||||
|
||||
else:
|
||||
ESCSafeLogging.log_warn(
|
||||
ESCEditorHelper, "A problem occurred while opening rooms folder %s." % str(path)
|
||||
)
|
||||
|
||||
return element_list
|
||||
|
||||
|
||||
static func get_rooms() -> Dictionary:
|
||||
var rooms_folder = ESCProjectSettingsManager.get_setting(
|
||||
ESCProjectSettingsManager.ROOM_SELECTOR_ROOM_DIR
|
||||
)
|
||||
if rooms_folder == "":
|
||||
return {}
|
||||
return get_element(rooms_folder)
|
||||
|
||||
|
||||
static func get_characters() -> Dictionary:
|
||||
var rooms_folder = "res://gymkhana/characters"
|
||||
if rooms_folder == "":
|
||||
return {}
|
||||
return get_element(rooms_folder)
|
||||
|
||||
|
||||
static func get_items() -> Array:
|
||||
var items_path = (
|
||||
ESCProjectSettingsManager
|
||||
. get_setting(ESCProjectSettingsManager.INVENTORY_ITEMS_PATH)
|
||||
. trim_suffix("/")
|
||||
)
|
||||
var files: Array = _get_files("tscn", items_path)
|
||||
#var files = []
|
||||
return files
|
||||
|
||||
|
||||
static func _get_files(extension: String, path: String) -> Array:
|
||||
var dir = DirAccess.open(path)
|
||||
var files := []
|
||||
|
||||
if dir:
|
||||
dir.list_dir_begin()
|
||||
else:
|
||||
ESCSafeLogging.log_warn(ESCEditorHelper, "Unable to open '%s'." % path)
|
||||
return files
|
||||
|
||||
var filename: String = dir.get_next()
|
||||
|
||||
while not filename.is_empty():
|
||||
var filename_with_path: String = _make_full_path(dir.get_current_dir(), filename)
|
||||
|
||||
if not dir.current_is_dir():
|
||||
if filename.get_extension() == extension:
|
||||
files.append(filename_with_path)
|
||||
|
||||
filename = dir.get_next()
|
||||
|
||||
return files
|
||||
|
||||
|
||||
static func _make_full_path(directory: String, filename: String) -> String:
|
||||
var separator: String = "" if directory.ends_with("/") else "/"
|
||||
|
||||
return directory + separator + filename
|
||||
@@ -0,0 +1 @@
|
||||
uid://dwy5heuqtglo8
|
||||
@@ -0,0 +1,12 @@
|
||||
@tool
|
||||
class_name ESCEscoriaDock
|
||||
extends Panel
|
||||
|
||||
@onready var tab_container: TabContainer = %TabContainer
|
||||
|
||||
func _ready() -> void:
|
||||
tab_container.tab_changed.connect(_on_tab_changed)
|
||||
|
||||
func _on_tab_changed(current_tab) -> void:
|
||||
print("Tab change %s" % current_tab)
|
||||
return
|
||||
@@ -0,0 +1 @@
|
||||
uid://q3bxu7fjbxrb
|
||||
@@ -0,0 +1,49 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://cx10t424sepxe"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://q3bxu7fjbxrb" path="res://addons/escoria-ui-return-monkey-island/editor-tools/esc_escoria_dock.gd" id="1_ff15v"]
|
||||
[ext_resource type="Script" uid="uid://7r7dgsfeiuic" path="res://addons/escoria-ui-return-monkey-island/editor-tools/rooms_grid.gd" id="2_fm76t"]
|
||||
[ext_resource type="PackedScene" uid="uid://y1u61mgoeluv" path="res://addons/escoria-ui-return-monkey-island/editor-tools/esc_escoria_dock_items.tscn" id="3_fm76t"]
|
||||
[ext_resource type="Script" uid="uid://cprmhtbtpwqtn" path="res://addons/escoria-ui-return-monkey-island/editor-tools/characters_grid.gd" id="4_uu37h"]
|
||||
|
||||
[node name="Escoria" type="Panel"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_ff15v")
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
current_tab = 0
|
||||
|
||||
[node name="Rooms" type="ScrollContainer" parent="TabContainer"]
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 0
|
||||
|
||||
[node name="RoomsGrid" type="GridContainer" parent="TabContainer/Rooms"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
columns = 10
|
||||
script = ExtResource("2_fm76t")
|
||||
|
||||
[node name="Items" parent="TabContainer" instance=ExtResource("3_fm76t")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 1
|
||||
|
||||
[node name="Characters" type="ScrollContainer" parent="TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 2
|
||||
|
||||
[node name="CharactersGrid" type="GridContainer" parent="TabContainer/Characters"]
|
||||
layout_mode = 2
|
||||
script = ExtResource("4_uu37h")
|
||||
@@ -0,0 +1,13 @@
|
||||
@tool
|
||||
extends VBoxContainer
|
||||
|
||||
@onready var check_inventory_texture: CheckButton = %CheckInventoryTexture
|
||||
@onready var items_grid: GridContainer = %ItemsGrid
|
||||
|
||||
func _ready():
|
||||
check_inventory_texture.toggled.connect(_on_inventory_texture_toggled)
|
||||
|
||||
func _on_inventory_texture_toggled(is_toggled: bool):
|
||||
items_grid.use_inventory_texture = is_toggled
|
||||
items_grid.refresh()
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://cqrwlqhfdth14
|
||||
@@ -0,0 +1,35 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://y1u61mgoeluv"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dsrwrbxtdbccb" path="res://addons/escoria-ui-return-monkey-island/editor-tools/items_tab.gd" id="1_osotr"]
|
||||
[ext_resource type="Script" uid="uid://cqrwlqhfdth14" path="res://addons/escoria-ui-return-monkey-island/editor-tools/esc_escoria_dock_items.gd" id="1_ukssm"]
|
||||
|
||||
[node name="Items" type="VBoxContainer"]
|
||||
offset_right = 1227.0
|
||||
offset_bottom = 285.0
|
||||
size_flags_vertical = 3
|
||||
script = ExtResource("1_ukssm")
|
||||
|
||||
[node name="MenuBar" type="MenuBar" parent="."]
|
||||
custom_minimum_size = Vector2(0, 35)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CheckInventoryTexture" type="CheckButton" parent="MenuBar"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_right = 44.0
|
||||
offset_bottom = 24.0
|
||||
text = "Invetory texture"
|
||||
|
||||
[node name="Items" type="ScrollContainer" parent="."]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
metadata/_tab_index = 2
|
||||
|
||||
[node name="ItemsGrid" type="GridContainer" parent="Items"]
|
||||
unique_name_in_owner = true
|
||||
clip_contents = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
columns = 7
|
||||
script = ExtResource("1_osotr")
|
||||
@@ -0,0 +1,49 @@
|
||||
@tool
|
||||
class_name ESCRoomInspectorDock
|
||||
extends Panel
|
||||
|
||||
@onready var current_room_label: Label = %CurrentRoomLabelValue
|
||||
@onready var room_objects_list: VBoxContainer = %RoomObjectsList
|
||||
|
||||
const room_item_control = preload("res://addons/escoria-ui-return-monkey-island/editor-tools/elements/esc_room_inspector_item.tscn")
|
||||
|
||||
func scene_changed(root_node: Node) -> void:
|
||||
_clear_room_objects_list()
|
||||
|
||||
var room_objects = []
|
||||
if not root_node is ESCRoom:
|
||||
current_room_label.text = "No room selected."
|
||||
return
|
||||
|
||||
var room_node = root_node as ESCRoom
|
||||
|
||||
current_room_label.text = room_node.global_id
|
||||
for child in root_node.get_children():
|
||||
if child is ESCItem:
|
||||
var ui_item = room_item_control.instantiate()
|
||||
room_objects_list.add_child(ui_item)
|
||||
ui_item.set_item(child)
|
||||
|
||||
|
||||
func scene_closed(filepath: String) -> void:
|
||||
check_open_scenes()
|
||||
|
||||
# From: https://github.com/carenalgas/popochiu/blob/develop/addons/popochiu/editor/main_dock/popochiu_dock.gd
|
||||
func check_open_scenes() -> void:
|
||||
# Fixes #273: Since Godot is not triggering the EditorPlugin.scene_changed signal when opening a
|
||||
# scene when no other scenes are opened, listen to the EditorSelection.selection_changed signal
|
||||
await get_tree().process_frame
|
||||
if EditorInterface.get_open_scenes().is_empty():
|
||||
EditorInterface.get_selection().selection_changed.connect(_on_editor_selection_changed)
|
||||
|
||||
|
||||
func _on_editor_selection_changed() -> void:
|
||||
if EditorInterface.get_edited_scene_root():
|
||||
EditorInterface.get_selection().selection_changed.disconnect(_on_editor_selection_changed)
|
||||
scene_changed(EditorInterface.get_edited_scene_root())
|
||||
|
||||
|
||||
func _clear_room_objects_list() -> void:
|
||||
for child in room_objects_list.get_children():
|
||||
room_objects_list.remove_child(child)
|
||||
child.queue_free()
|
||||
@@ -0,0 +1 @@
|
||||
uid://b2euhjc1kb6cn
|
||||
@@ -0,0 +1,45 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dtb2gkj65kpug"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b2euhjc1kb6cn" path="res://addons/escoria-ui-return-monkey-island/editor-tools/esc_room_inspector_dock.gd" id="1_lnj8i"]
|
||||
|
||||
[node name="Room" type="Panel"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_lnj8i")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CurrentRoomLabel" type="Label" parent="VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CurrentRoomLabelValue" type="Label" parent="VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "CURRENT_ROOM"
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
current_tab = 0
|
||||
|
||||
[node name="Items" type="ScrollContainer" parent="VBoxContainer/TabContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
metadata/_tab_index = 0
|
||||
|
||||
[node name="RoomObjectsList" type="VBoxContainer" parent="VBoxContainer/TabContainer/Items"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
@@ -0,0 +1,21 @@
|
||||
@tool
|
||||
extends GridContainer
|
||||
|
||||
@onready var items_grid: GridContainer = %ItemsGrid
|
||||
|
||||
var use_inventory_texture: bool = false
|
||||
|
||||
func _ready() -> void:
|
||||
refresh()
|
||||
|
||||
func refresh() -> void:
|
||||
_clear()
|
||||
for item in ESCEditorHelper.get_items():
|
||||
var button = ESCItemGridButton.new(item,use_inventory_texture)
|
||||
items_grid.add_child(button)
|
||||
|
||||
|
||||
func _clear() -> void:
|
||||
for child in get_children():
|
||||
remove_child(child)
|
||||
child.queue_free()
|
||||
@@ -0,0 +1 @@
|
||||
uid://dsrwrbxtdbccb
|
||||
@@ -0,0 +1,21 @@
|
||||
@tool
|
||||
extends GridContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
refresh()
|
||||
|
||||
|
||||
func refresh() -> void:
|
||||
var rooms := ESCEditorHelper.get_rooms()
|
||||
for room in rooms:
|
||||
var button = ESCRoomGridButton.new()
|
||||
button.text = room
|
||||
button.room_path = rooms[room]
|
||||
add_child(button)
|
||||
|
||||
|
||||
func _clear() -> void:
|
||||
for child in get_children():
|
||||
remove_child(child)
|
||||
child.queue_free()
|
||||
@@ -0,0 +1 @@
|
||||
uid://7r7dgsfeiuic
|
||||
@@ -59,13 +59,14 @@ const ESC_UI_CHANGE_VERB_ACTION = "esc_change_verb"
|
||||
@export var video_player: RTMIVideoPlayer
|
||||
@export var language_selector: RTMILanguageSelector
|
||||
@export var confetti: RTMIConfetti
|
||||
@export var tools: Container
|
||||
@export var achievement_summary: RTMIAchievementSummaryMenu
|
||||
|
||||
# Tracks the mouse's current position onscreen.
|
||||
var _current_mouse_pos = Vector2.ZERO
|
||||
|
||||
|
||||
func _init():
|
||||
|
||||
gymkhana.item_count_manager = ESCItemCountManager.new()
|
||||
gymkhana.tooltip_manager = ESCTootltipManager.new()
|
||||
gymkhana.global_observer = RTMIGlobalObserver.new()
|
||||
@@ -266,7 +267,6 @@ func element_focused(element_id: String) -> void:
|
||||
tooltip_node.set_target(target_obj.tooltip_name)
|
||||
tooltip_node.set_target_object(target_obj)
|
||||
|
||||
|
||||
if escoria.action_manager.has_actions(target_obj):
|
||||
if target_obj is ESCItemWithTooltip:
|
||||
if target_obj.is_interactive:
|
||||
@@ -442,6 +442,11 @@ func unpause_game():
|
||||
escoria.main.current_scene.game.show_ui()
|
||||
escoria.main.current_scene.show()
|
||||
escoria.set_game_paused(false)
|
||||
if achievement_summary.visible:
|
||||
achievement_summary.visible = false
|
||||
if %highscores.visible:
|
||||
%highscores.visible = false
|
||||
|
||||
gymkhana.music_manager.resume()
|
||||
gymkhana.achievement_manager.resume_tracking_time()
|
||||
|
||||
@@ -565,7 +570,10 @@ func _on_event_done(return_code: int, _event_name: String):
|
||||
|
||||
|
||||
func _on_MenuButton_pressed() -> void:
|
||||
pause_game()
|
||||
if escoria.current_state == escoria.GAME_STATE.PAUSED:
|
||||
unpause_game()
|
||||
else:
|
||||
pause_game()
|
||||
|
||||
|
||||
# Clears the tooltip content (if an ESCTooltip node exists in UI)
|
||||
@@ -614,6 +622,7 @@ func _on_say_finished() -> void:
|
||||
await get_tree().create_timer(0.01).timeout
|
||||
update_highlights()
|
||||
|
||||
|
||||
func _is_input_all():
|
||||
return escoria.inputs_manager.input_mode == ESCInputsManager.INPUT_ALL
|
||||
|
||||
@@ -668,5 +677,11 @@ func update_highlights():
|
||||
if room_child is ESCItemWithTooltip:
|
||||
room_child.get_component("outline").update_highlight()
|
||||
|
||||
|
||||
func launch_confetti():
|
||||
confetti.launch()
|
||||
|
||||
|
||||
func show_achievement_summary() -> void:
|
||||
achievement_summary.show()
|
||||
achievement_summary.refresh()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=32 format=3 uid="uid://cabos3cse6b71"]
|
||||
[gd_scene load_steps=33 format=3 uid="uid://cabos3cse6b71"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bl50queikqfjc" path="res://addons/escoria-ui-return-monkey-island/inventory/inventory_ui.tscn" id="1"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/scenes/dialogs/esc_dialog_player.gd" id="2"]
|
||||
@@ -25,6 +25,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://y2hfekr163su" path="res://addons/escoria-ui-return-monkey-island/icons/exit_fullscreen_hover.svg" id="15_j7gr8"]
|
||||
[ext_resource type="Texture2D" uid="uid://e2xk0aimdte" path="res://addons/escoria-ui-return-monkey-island/icons/music-double-note-disabled.svg" id="16"]
|
||||
[ext_resource type="Texture2D" uid="uid://nsthsaybnd71" path="res://addons/escoria-ui-return-monkey-island/icons/fullscreen.svg" id="18_ixq7a"]
|
||||
[ext_resource type="PackedScene" uid="uid://bcu6ik8qq0dl6" path="res://addons/escoria-ui-return-monkey-island/achievements/menu/rtmi_achievements_menu.tscn" id="18_j7gr8"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3kgkl2r5xe4d" path="res://addons/escoria-ui-return-monkey-island/achievements/rtmi_achievement_notification_container.tscn" id="18_ssxmx"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0066wpl3qky4" path="res://addons/escoria-ui-return-monkey-island/menus/language_selector/language_selector.tscn" id="19_we0hb"]
|
||||
[ext_resource type="Shader" uid="uid://iehp1eakxyak" path="res://addons/escoria-ui-return-monkey-island/shaders/vignette.gdshader" id="20_parhr"]
|
||||
@@ -41,7 +42,7 @@ shader_parameter/vignette_strength = 0.9
|
||||
shader_parameter/dither_strength = 0.03
|
||||
shader_parameter/vignette_color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="game" type="Node2D" node_paths=PackedStringArray("inventory_ui", "rtmi_tooltip_node", "dev_tools_node", "video_player", "language_selector", "confetti")]
|
||||
[node name="game" type="Node2D" node_paths=PackedStringArray("inventory_ui", "rtmi_tooltip_node", "dev_tools_node", "video_player", "language_selector", "confetti", "achievement_summary")]
|
||||
script = ExtResource("5")
|
||||
inventory_ui = NodePath("game_layer/ui_layer/Inventory")
|
||||
rtmi_tooltip_node = NodePath("game_layer/tooltip_layer/tooltip")
|
||||
@@ -49,14 +50,15 @@ dev_tools_node = NodePath("game_layer/ui_layer/DevTools")
|
||||
video_player = NodePath("menu_layer/video_player")
|
||||
language_selector = NodePath("menu_layer/language_selector")
|
||||
confetti = NodePath("CanvasLayer/Confetti")
|
||||
achievement_summary = NodePath("menu_layer/AchievementsMenu")
|
||||
main_menu = NodePath("menu_layer/main_menu")
|
||||
pause_menu = NodePath("menu_layer/pause_menu")
|
||||
mouse_tooltip_margin = 70.0
|
||||
editor_debug_mode = 1
|
||||
ui_parent_control_node = NodePath("game_layer/ui_layer/Tools")
|
||||
|
||||
[node name="black_and_white_shader" type="CanvasLayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layer = 4
|
||||
visible = false
|
||||
script = ExtResource("2_o34rc")
|
||||
|
||||
@@ -69,6 +71,7 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
layer = 4
|
||||
|
||||
[node name="Confetti" parent="CanvasLayer" instance=ExtResource("4_ixq7a")]
|
||||
|
||||
@@ -85,7 +88,8 @@ color = Color(0, 0, 0, 1)
|
||||
[node name="game_layer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="dialog_layer" type="CanvasLayer" parent="game_layer"]
|
||||
layer = 3
|
||||
unique_name_in_owner = true
|
||||
layer = 2
|
||||
|
||||
[node name="ESCDialogsPlayer" type="Control" parent="game_layer/dialog_layer"]
|
||||
layout_mode = 3
|
||||
@@ -94,7 +98,7 @@ theme = ExtResource("9")
|
||||
script = ExtResource("2")
|
||||
|
||||
[node name="tooltip_layer" type="CanvasLayer" parent="game_layer"]
|
||||
layer = 2
|
||||
layer = 4
|
||||
|
||||
[node name="tooltip" parent="game_layer/tooltip_layer" instance=ExtResource("4")]
|
||||
z_index = 10
|
||||
@@ -106,51 +110,11 @@ offset_from_cursor_action4 = Vector2(0, -20)
|
||||
debug_mode = true
|
||||
|
||||
[node name="ui_layer" type="CanvasLayer" parent="game_layer"]
|
||||
layer = 2
|
||||
|
||||
[node name="DevTools" parent="game_layer/ui_layer" instance=ExtResource("7_qk4ex")]
|
||||
visible = false
|
||||
|
||||
[node name="Tools" type="PanelContainer" parent="game_layer/ui_layer"]
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -220.0
|
||||
offset_bottom = 84.0
|
||||
grow_horizontal = 0
|
||||
theme = ExtResource("9")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="game_layer/ui_layer/Tools"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="game_layer/ui_layer/Tools/MarginContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 2
|
||||
|
||||
[node name="FullScreenButton" type="TextureButton" parent="game_layer/ui_layer/Tools/MarginContainer/HBoxContainer2"]
|
||||
process_mode = 3
|
||||
layout_mode = 2
|
||||
texture_normal = ExtResource("18_ixq7a")
|
||||
texture_hover = ExtResource("12_te176")
|
||||
script = ExtResource("13_6rlck")
|
||||
fullscreen_active_texture = ExtResource("14_c6byj")
|
||||
fullscreen_active_hover_texture = ExtResource("15_j7gr8")
|
||||
fullscreen_default_texture = ExtResource("18_ixq7a")
|
||||
fullscreen_default_hover_texture = ExtResource("12_te176")
|
||||
|
||||
[node name="MusicButton" type="TextureButton" parent="game_layer/ui_layer/Tools/MarginContainer/HBoxContainer2"]
|
||||
custom_minimum_size = Vector2(64, 0)
|
||||
layout_mode = 2
|
||||
script = ExtResource("14")
|
||||
music_enabled_texture = ExtResource("6")
|
||||
music_enabled_hover_texture = ExtResource("13")
|
||||
music_disabled_texture = ExtResource("16")
|
||||
music_disabled_hover_texture = ExtResource("15")
|
||||
|
||||
[node name="MenuButton" type="TextureButton" parent="game_layer/ui_layer/Tools/MarginContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
texture_normal = ExtResource("13_we0hb")
|
||||
texture_hover = ExtResource("14_parhr")
|
||||
|
||||
[node name="Inventory" parent="game_layer/ui_layer" instance=ExtResource("1")]
|
||||
anchors_preset = 7
|
||||
anchor_top = 1.0
|
||||
@@ -165,7 +129,7 @@ pivot_offset = Vector2(845, 116)
|
||||
[node name="AchievementNotifications" parent="game_layer/ui_layer" instance=ExtResource("18_ssxmx")]
|
||||
|
||||
[node name="menu_layer" type="CanvasLayer" parent="."]
|
||||
layer = 2
|
||||
layer = 8
|
||||
|
||||
[node name="pause_menu" parent="menu_layer" instance=ExtResource("8")]
|
||||
visible = false
|
||||
@@ -183,6 +147,55 @@ visible = false
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
|
||||
[connection signal="button_down" from="game_layer/ui_layer/Tools/MarginContainer/HBoxContainer2/FullScreenButton" to="game_layer/ui_layer/Tools/MarginContainer/HBoxContainer2/FullScreenButton" method="_on_button_down"]
|
||||
[connection signal="pressed" from="game_layer/ui_layer/Tools/MarginContainer/HBoxContainer2/MusicButton" to="." method="_on_MusicButton_pressed"]
|
||||
[connection signal="pressed" from="game_layer/ui_layer/Tools/MarginContainer/HBoxContainer2/MenuButton" to="." method="_on_MenuButton_pressed"]
|
||||
[node name="AchievementsMenu" parent="menu_layer" instance=ExtResource("18_j7gr8")]
|
||||
visible = false
|
||||
|
||||
[node name="buttons_layer" type="CanvasLayer" parent="."]
|
||||
layer = 10
|
||||
|
||||
[node name="Tools" type="PanelContainer" parent="buttons_layer"]
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -220.0
|
||||
offset_bottom = 84.0
|
||||
grow_horizontal = 0
|
||||
theme = ExtResource("9")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="buttons_layer/Tools"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="buttons_layer/Tools/MarginContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 2
|
||||
|
||||
[node name="FullScreenButton" type="TextureButton" parent="buttons_layer/Tools/MarginContainer/HBoxContainer2"]
|
||||
process_mode = 3
|
||||
layout_mode = 2
|
||||
texture_normal = ExtResource("18_ixq7a")
|
||||
texture_hover = ExtResource("12_te176")
|
||||
script = ExtResource("13_6rlck")
|
||||
fullscreen_active_texture = ExtResource("14_c6byj")
|
||||
fullscreen_active_hover_texture = ExtResource("15_j7gr8")
|
||||
fullscreen_default_texture = ExtResource("18_ixq7a")
|
||||
fullscreen_default_hover_texture = ExtResource("12_te176")
|
||||
|
||||
[node name="MusicButton" type="TextureButton" parent="buttons_layer/Tools/MarginContainer/HBoxContainer2"]
|
||||
process_mode = 3
|
||||
custom_minimum_size = Vector2(64, 0)
|
||||
layout_mode = 2
|
||||
script = ExtResource("14")
|
||||
music_enabled_texture = ExtResource("6")
|
||||
music_enabled_hover_texture = ExtResource("13")
|
||||
music_disabled_texture = ExtResource("16")
|
||||
music_disabled_hover_texture = ExtResource("15")
|
||||
|
||||
[node name="MenuButton" type="TextureButton" parent="buttons_layer/Tools/MarginContainer/HBoxContainer2"]
|
||||
process_mode = 3
|
||||
layout_mode = 2
|
||||
texture_normal = ExtResource("13_we0hb")
|
||||
texture_hover = ExtResource("14_parhr")
|
||||
|
||||
[connection signal="button_down" from="buttons_layer/Tools/MarginContainer/HBoxContainer2/FullScreenButton" to="buttons_layer/Tools/MarginContainer/HBoxContainer2/FullScreenButton" method="_on_button_down"]
|
||||
[connection signal="pressed" from="buttons_layer/Tools/MarginContainer/HBoxContainer2/MusicButton" to="." method="_on_MusicButton_pressed"]
|
||||
[connection signal="pressed" from="buttons_layer/Tools/MarginContainer/HBoxContainer2/MenuButton" to="." method="_on_MenuButton_pressed"]
|
||||
|
||||
@@ -103,9 +103,3 @@ func warm_esc_cache() -> void:
|
||||
for file in files:
|
||||
# We need to use the compiler from the escoria singelton for the cache to work.
|
||||
escoria.esc_compiler.load_esc_file(file)
|
||||
|
||||
func toogle_fullscreen():
|
||||
pass
|
||||
|
||||
func set_fullscreen(value: bool):
|
||||
pass
|
||||
|
||||
@@ -26,12 +26,12 @@
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="7.5520836"
|
||||
inkscape:cx="21.914482"
|
||||
inkscape:cx="22.046896"
|
||||
inkscape:cy="41.114481"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="941"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-height="959"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="15"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1" />
|
||||
<rect
|
||||
@@ -48,26 +48,40 @@
|
||||
style="stroke-width:6.24650214;stroke-dasharray:none">
|
||||
<g
|
||||
id="g1">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.7411847,39.334608 H 24.137035 l -0.05328,18.906603"
|
||||
id="path1"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 58.258814,39.334609 H 39.862965 l 0.05328,18.906602"
|
||||
id="path1-3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.741185,24.665391 H 24.137034 L 24.083754,5.7587889"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 58.258814,24.665391 H 39.862965 l 0.05328,-18.9066019"
|
||||
id="path3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<g
|
||||
id="g5"
|
||||
transform="matrix(1.3734613,0,0,1.3734613,-11.492178,-13.01245)">
|
||||
<g
|
||||
id="g2"
|
||||
style="stroke-width:4.66977;stroke-dasharray:none"
|
||||
transform="matrix(0.72808748,0,0,0.72808748,8.7012011,8.7012006)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.9734296,19.171545 H 18.643188 L 18.589908,5.7572476"
|
||||
id="path2-6"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 57.109402,19.171545 H 44.439643 l 0.05328,-13.4142974"
|
||||
id="path1-7"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
<g
|
||||
id="g4"
|
||||
style="stroke-width:4.66977;stroke-dasharray:none"
|
||||
transform="matrix(0.72808748,0,0,-0.72808748,8.7012011,56.844804)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.9734296,19.171545 H 18.643188 L 18.589908,5.7572476"
|
||||
id="path3-5"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 57.109402,19.171545 H 44.439643 l 0.05328,-13.4142974"
|
||||
id="path4"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 3.2 KiB |
@@ -25,13 +25,13 @@
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="7.5520836"
|
||||
inkscape:cx="24.827585"
|
||||
inkscape:cy="29.859309"
|
||||
inkscape:zoom="5.3401295"
|
||||
inkscape:cx="42.040179"
|
||||
inkscape:cy="14.325495"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="941"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-height="959"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="15"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3" />
|
||||
<rect
|
||||
@@ -43,28 +43,37 @@
|
||||
y="0"
|
||||
ry="11.032078" />
|
||||
<g
|
||||
id="g2"
|
||||
style="stroke-width:6.2465;stroke-dasharray:none"
|
||||
transform="matrix(0.72808748,0,0,0.72808748,8.7012011,8.7012006)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.7411851,39.334609 H 24.137034 l -0.05328,18.906602"
|
||||
id="path1"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 58.258814,39.334609 H 39.862965 l 0.05328,18.906602"
|
||||
id="path1-3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.741185,24.665391 H 24.137034 L 24.083754,5.7587889"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 58.258814,24.665391 H 39.862965 l 0.05328,-18.9066019"
|
||||
id="path3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
id="g5"
|
||||
transform="translate(0.33388895,-0.7730023)">
|
||||
<g
|
||||
id="g2"
|
||||
style="stroke-width:4.66977;stroke-dasharray:none"
|
||||
transform="matrix(0.72808748,0,0,0.72808748,8.7012011,8.7012006)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.9734296,19.171545 H 18.643188 L 18.589908,5.7572476"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 57.109402,19.171545 H 44.439643 l 0.05328,-13.4142974"
|
||||
id="path1"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
<g
|
||||
id="g4"
|
||||
style="stroke-width:4.66977;stroke-dasharray:none"
|
||||
transform="matrix(0.72808748,0,0,-0.72808748,8.7012011,56.844804)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.9734296,19.171545 H 18.643188 L 18.589908,5.7572476"
|
||||
id="path3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66977;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 57.109402,19.171545 H 44.439643 l 0.05328,-13.4142974"
|
||||
id="path4"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.9 KiB |
@@ -26,12 +26,12 @@
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="7.5520836"
|
||||
inkscape:cx="21.914482"
|
||||
inkscape:cx="22.046896"
|
||||
inkscape:cy="41.114481"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="941"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-height="959"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="15"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g3" />
|
||||
<rect
|
||||
@@ -47,24 +47,25 @@
|
||||
transform="matrix(0.72808748,0,0,0.72808748,8.7012004,8.7012005)"
|
||||
style="stroke-width:6.24650214;stroke-dasharray:none">
|
||||
<g
|
||||
id="g1">
|
||||
id="g1"
|
||||
style="stroke-width:4.66976853;stroke-dasharray:none">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 24.145849,58.25 H 5.7499995 l 0.053284,-18.906602"
|
||||
id="path1"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 39.854151,58.25 H 58.25 L 58.19672,39.343398"
|
||||
id="path1-3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 24.145849,5.75 H 5.7499995 l 0.053284,18.906602"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 39.854151,5.75 H 58.25 l -0.05328,18.906602"
|
||||
id="path3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -29,9 +29,9 @@
|
||||
inkscape:cx="24.827585"
|
||||
inkscape:cy="29.859309"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="941"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-height="959"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="15"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3" />
|
||||
<rect
|
||||
@@ -44,25 +44,25 @@
|
||||
ry="11.032078" />
|
||||
<g
|
||||
id="g2"
|
||||
style="stroke-width:6.2465;stroke-dasharray:none"
|
||||
style="stroke-width:4.66976853;stroke-dasharray:none"
|
||||
transform="matrix(0.72808748,0,0,0.72808748,8.7012011,8.7012006)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 24.145849,58.25 H 5.7499995 l 0.053284,-18.906602"
|
||||
id="path1"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 39.854151,58.25 H 58.25 L 58.19672,39.343398"
|
||||
id="path1-3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 24.145849,5.75 H 5.7499995 l 0.053284,18.906602"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:6.2465;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
style="fill:none;stroke:#000000;stroke-width:4.66976853;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 39.854151,5.75 H 58.25 l -0.05328,18.906602"
|
||||
id="path3"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
@@ -1,14 +1,19 @@
|
||||
# A simple main menu
|
||||
extends Control
|
||||
|
||||
var save_enabled = ESCProjectSettingsManager.get_setting( RTMIUiSettings.SAVEGAME_ENABLED)
|
||||
var save_enabled = ESCProjectSettingsManager.get_setting(RTMIUiSettings.SAVEGAME_ENABLED)
|
||||
|
||||
|
||||
# Start the game
|
||||
func _on_new_game_pressed():
|
||||
escoria.new_game()
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
%Version.text = "v%s %s" % [gymkhana.version.current, "DEGUG" if OS.has_feature("debug") else ""]
|
||||
if OS.get_name() == "Web":
|
||||
%quit.visible = false
|
||||
|
||||
|
||||
# Show the load slots
|
||||
func _on_load_game_pressed():
|
||||
|
||||
@@ -88,6 +88,7 @@ script = ExtResource("5_4i6cp")
|
||||
|
||||
[node name="quit" type="Button" parent="main/main/buttons"]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "QUIT"
|
||||
script = ExtResource("5_4i6cp")
|
||||
|
||||
@@ -8,7 +8,8 @@ func _ready():
|
||||
escoria.game_scene.hide_ui()
|
||||
hide()
|
||||
|
||||
gymkhana.achievement_manager.time_updated.connect(_on_time_updated)
|
||||
if OS.get_name() == "Web":
|
||||
%quit.visible = false
|
||||
|
||||
|
||||
# Continue the game
|
||||
@@ -92,3 +93,7 @@ func _on_time_updated(current_time):
|
||||
|
||||
func _on_highscores_button_up() -> void:
|
||||
escoria.game_scene.show_highscores()
|
||||
|
||||
|
||||
func _on_achievements_pressed() -> void:
|
||||
escoria.game_scene.show_achievement_summary()
|
||||
|
||||
@@ -64,18 +64,6 @@ layout_mode = 2
|
||||
texture = ExtResource("3")
|
||||
stretch_mode = 3
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CurrentTimeLabel" type="Label" parent="VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "CURRENT_PLAYING_TIME"
|
||||
|
||||
[node name="CurrentTime" type="Label" parent="VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "1min 20s"
|
||||
|
||||
[node name="menuitems" type="VBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 10
|
||||
@@ -87,6 +75,12 @@ size_flags_vertical = 3
|
||||
text = "CONTINUE_GAME"
|
||||
script = ExtResource("6_31lra")
|
||||
|
||||
[node name="achievements" type="Button" parent="VBoxContainer/menuitems"]
|
||||
layout_mode = 2
|
||||
text = "ACHIEVEMENTS"
|
||||
script = ExtResource("6_31lra")
|
||||
metadata/_custom_type_script = "uid://elqkwjm0r5c7"
|
||||
|
||||
[node name="highscores" type="Button" parent="VBoxContainer/menuitems"]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
layout_mode = 2
|
||||
@@ -123,6 +117,7 @@ text = "OPTIONS"
|
||||
script = ExtResource("6_31lra")
|
||||
|
||||
[node name="quit" type="Button" parent="VBoxContainer/menuitems"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
@@ -133,6 +128,7 @@ script = ExtResource("6_31lra")
|
||||
[connection signal="back_button_pressed" from="load_game" to="." method="_on_load_game_back_button_pressed"]
|
||||
[connection signal="back_button_pressed" from="options" to="." method="_on_options_back_button_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/menuitems/continue" to="." method="_on_continue_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/menuitems/achievements" to="." method="_on_achievements_pressed"]
|
||||
[connection signal="button_up" from="VBoxContainer/menuitems/highscores" to="." method="_on_highscores_button_up"]
|
||||
[connection signal="pressed" from="VBoxContainer/menuitems/new_game" to="." method="_on_new_game_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/menuitems/save_game" to="." method="_on_save_game_pressed"]
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
extends ESCCompiler
|
||||
class_name RTMICompiler
|
||||
extends ESCCompiler
|
||||
|
||||
## Cached esc files
|
||||
var _esc_cache: Dictionary
|
||||
|
||||
|
||||
func load_esc_file(path: String, associated_global_id: String = "") -> ESCScript:
|
||||
if _esc_cache.has(path):
|
||||
escoria.logger.info(self, "CACHE HIT: %s" % path)
|
||||
return _esc_cache.get(path)
|
||||
escoria.logger.info(self, "CACHE MISS: %s" % path)
|
||||
|
||||
|
||||
ESCSafeLogging.log_debug(self, "Loading file '%s' for parsing..." % path)
|
||||
|
||||
if not FileAccess.file_exists(path):
|
||||
@@ -21,6 +22,7 @@ func load_esc_file(path: String, associated_global_id: String = "") -> ESCScript
|
||||
|
||||
return _compiler_shim(file.get_as_text(), path, associated_global_id)
|
||||
|
||||
|
||||
func _compiler_shim(source: String, filename: String = "", associated_global_id: String = ""):
|
||||
var script = super._compiler_shim(source, filename, associated_global_id)
|
||||
_esc_cache[filename] = script
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
# Plugin script to initialize Escoria simple mouse UI
|
||||
extends EditorPlugin
|
||||
|
||||
var room_inspector_dock: ESCRoomInspectorDock
|
||||
var escoria_dock: ESCEscoriaDock
|
||||
|
||||
var _srt_loader := SrtFormatLoader.new()
|
||||
var _srt_saver := SrtFormatSaver.new()
|
||||
|
||||
@@ -17,6 +20,15 @@ func _enter_tree() -> void:
|
||||
ResourceLoader.add_resource_format_loader(_txt_loader)
|
||||
ResourceSaver.add_resource_format_saver(_txt_saver)
|
||||
|
||||
room_inspector_dock = preload("res://addons/escoria-ui-return-monkey-island/editor-tools/esc_room_inspector_dock.tscn").instantiate()
|
||||
room_inspector_dock.ready.connect(_on_room_inspector_dock_ready)
|
||||
room_inspector_dock.focus_mode = Control.FOCUS_ALL
|
||||
add_control_to_dock(DOCK_SLOT_LEFT_BR, room_inspector_dock)
|
||||
|
||||
escoria_dock = preload("res://addons/escoria-ui-return-monkey-island/editor-tools/esc_escoria_dock.tscn").instantiate()
|
||||
#escoria_dock.ready.connect(_on_dock_ready)
|
||||
escoria_dock.focus_mode = Control.FOCUS_ALL
|
||||
add_control_to_bottom_panel(escoria_dock, "Escoria")
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
@@ -25,7 +37,14 @@ func _exit_tree() -> void:
|
||||
|
||||
ResourceLoader.remove_resource_format_loader(_txt_loader)
|
||||
ResourceSaver.remove_resource_format_saver(_txt_saver)
|
||||
# Clean-up of the plugin goes here.
|
||||
# Remove the dock.
|
||||
remove_control_from_docks(room_inspector_dock)
|
||||
# Erase the control from the memory.
|
||||
room_inspector_dock.free()
|
||||
|
||||
remove_control_from_bottom_panel(escoria_dock)
|
||||
escoria_dock.free()
|
||||
|
||||
# Override function to return the plugin name.
|
||||
func _get_plugin_name():
|
||||
@@ -56,3 +75,18 @@ func _enable_plugin():
|
||||
)
|
||||
else:
|
||||
get_editor_interface().set_plugin_enabled(_get_plugin_name(), false)
|
||||
|
||||
func _on_room_inspector_dock_ready() -> void:
|
||||
# Fill the dock with Rooms, Characters, Inventory items, Dialogs and AudioCues
|
||||
room_inspector_dock.grab_focus()
|
||||
|
||||
scene_changed.connect(room_inspector_dock.scene_changed)
|
||||
scene_closed.connect(room_inspector_dock.scene_closed)
|
||||
|
||||
|
||||
|
||||
if EditorInterface.get_edited_scene_root():
|
||||
room_inspector_dock.scene_changed(EditorInterface.get_edited_scene_root())
|
||||
else:
|
||||
room_inspector_dock.check_open_scenes()
|
||||
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
@abstract class_name BaseTextPlainFormatLoader
|
||||
class_name BaseTextPlainFormatLoader
|
||||
extends ResourceFormatLoader
|
||||
|
||||
const ResourceClass = preload("res://addons/escoria-ui-return-monkey-island/resources/text_plain_resource.gd")
|
||||
@abstract func get_recognized_extensions() -> Array
|
||||
const ResourceClass = preload(
|
||||
"res://addons/escoria-ui-return-monkey-island/resources/text_plain_resource.gd"
|
||||
)
|
||||
|
||||
|
||||
func get_recognized_extensions() -> Array:
|
||||
return []
|
||||
|
||||
|
||||
func _get_recognized_extensions() -> PackedStringArray:
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
@abstract class_name BaseTextPlainFormatSaver
|
||||
class_name BaseTextPlainFormatSaver
|
||||
extends ResourceFormatSaver
|
||||
|
||||
const ResourceClass = preload(
|
||||
"res://addons/escoria-ui-return-monkey-island/resources/text_plain_resource.gd"
|
||||
)
|
||||
@abstract func get_recognized_extensions(_resource: Resource) -> Array
|
||||
|
||||
|
||||
func get_recognized_extensions(_resource: Resource) -> Array:
|
||||
return []
|
||||
|
||||
|
||||
func _get_recognized_extensions(resource: Resource) -> PackedStringArray:
|
||||
@@ -22,7 +25,7 @@ func _recognize(resource: Resource) -> bool:
|
||||
|
||||
func _save(resource: Resource, path: String, flags: int) -> int:
|
||||
var err: int
|
||||
var file = FileAccess.open(path,flags)
|
||||
var file = FileAccess.open(path, flags)
|
||||
|
||||
file.store_string(resource.get("text"))
|
||||
file.close()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
extends Resource
|
||||
class_name RTMIUiSettings
|
||||
extends Resource
|
||||
|
||||
const SETTINGS_ROOT = "escoria/rtmi_ui"
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3hnbv"]
|
||||
bg_color = Color(0, 0, 0, 1)
|
||||
shadow_size = 16
|
||||
|
||||
[resource]
|
||||
MarginContainer/constants/margin_bottom = 8
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
class_name UIEscoriaVariable
|
||||
extends Control
|
||||
|
||||
signal double_clicked()
|
||||
|
||||
enum {
|
||||
STRING,
|
||||
NUMBER,
|
||||
@@ -45,6 +47,7 @@ func _on_name_gui_input(event: InputEvent) -> void:
|
||||
_set_copied(true)
|
||||
DisplayServer.clipboard_set(var_name)
|
||||
escoria.logger.info(self, "%s copied." % var_name)
|
||||
double_clicked.emit(var_name)
|
||||
|
||||
func _set_copied(value: bool):
|
||||
_copied = value
|
||||
|
||||
7
addons/kenyoni/plugin_reloader/LICENSE.md
Normal file
@@ -0,0 +1,7 @@
|
||||
Copyright 2022-present Iceflower S (iceflower@gmx.de)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
61
addons/kenyoni/plugin_reloader/internal/reloader.gd
Normal file
@@ -0,0 +1,61 @@
|
||||
@tool
|
||||
extends MarginContainer
|
||||
|
||||
@export var _reload_button: CheckButton
|
||||
@export var _option_button: OptionButton
|
||||
|
||||
var _last_selection: String = ""
|
||||
|
||||
func _ready() -> void:
|
||||
self._option_button.item_selected.connect(func(idx: int) -> void:
|
||||
self._last_selection = self._option_button.get_item_metadata(idx)
|
||||
self._update_button_bar()
|
||||
)
|
||||
self._reload_button.toggled.connect(func(toggled: bool) -> void:
|
||||
EditorInterface.set_plugin_enabled("res://addons/" + self._last_selection + "/plugin.cfg", toggled)
|
||||
self._reload_plugin_list()
|
||||
)
|
||||
|
||||
EditorInterface.get_resource_filesystem().filesystem_changed.connect(self._reload_plugin_list)
|
||||
self._reload_plugin_list()
|
||||
|
||||
func _update_button_bar() -> void:
|
||||
if self._last_selection != "":
|
||||
self._reload_button.set_pressed_no_signal(EditorInterface.is_plugin_enabled("res://addons/" + self._last_selection + "/plugin.cfg"))
|
||||
self._option_button.icon = null
|
||||
self._reload_button.disabled = self._last_selection == ""
|
||||
|
||||
func _reload_plugin_list() -> void:
|
||||
self._option_button.clear()
|
||||
for dir: String in DirAccess.get_directories_at("res://addons/"):
|
||||
self._add_plugin_to_list(dir)
|
||||
# subfolder
|
||||
for sub_dir: String in DirAccess.get_directories_at("res://addons/" + dir):
|
||||
self._add_plugin_to_list(dir + "/" + sub_dir)
|
||||
|
||||
if self._last_selection == "" && self._option_button.get_item_count() > 0:
|
||||
self._last_selection = self._option_button.get_item_metadata(0)
|
||||
self._update_button_bar()
|
||||
|
||||
func _add_plugin_to_list(plugin_id: String) -> void:
|
||||
# ignore the current plugin
|
||||
if plugin_id == "kenyoni/plugin_reloader":
|
||||
return
|
||||
|
||||
var cfg_path: String = "res://addons/" + plugin_id + "/plugin.cfg"
|
||||
if !FileAccess.file_exists(cfg_path):
|
||||
return
|
||||
|
||||
var plugin_cfg: ConfigFile = ConfigFile.new()
|
||||
plugin_cfg.load(cfg_path)
|
||||
var plugin_name: String = plugin_cfg.get_value("plugin", "name", plugin_id)
|
||||
self._option_button.add_item(plugin_name)
|
||||
var idx: int = self._option_button.get_item_count() - 1
|
||||
self._option_button.set_item_metadata(idx, plugin_id)
|
||||
self._option_button.set_item_tooltip(idx, "res://addons/" + plugin_id + "/")
|
||||
if EditorInterface.is_plugin_enabled(cfg_path):
|
||||
self._option_button.set_item_icon(idx, self.get_theme_icon(&"TileChecked", &"EditorIcons"))
|
||||
else:
|
||||
self._option_button.set_item_icon(idx, self.get_theme_icon(&"TileUnchecked", &"EditorIcons"))
|
||||
if plugin_id == self._last_selection:
|
||||
self._option_button.select(idx)
|
||||
1
addons/kenyoni/plugin_reloader/internal/reloader.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b6eu3fxcktuu6
|
||||
21
addons/kenyoni/plugin_reloader/internal/reloader.tscn
Normal file
@@ -0,0 +1,21 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dryoyuj4vl0l5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b6eu3fxcktuu6" path="res://addons/kenyoni/plugin_reloader/internal/reloader.gd" id="1_kd7gg"]
|
||||
|
||||
[node name="Reloader" type="MarginContainer" node_paths=PackedStringArray("_reload_button", "_option_button")]
|
||||
offset_right = 76.0
|
||||
offset_bottom = 24.0
|
||||
script = ExtResource("1_kd7gg")
|
||||
_reload_button = NodePath("HBoxContainer/reload_button")
|
||||
_option_button = NodePath("HBoxContainer/OptionButton")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="reload_button" type="CheckButton" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
19
addons/kenyoni/plugin_reloader/plugin.cfg
Normal file
@@ -0,0 +1,19 @@
|
||||
[plugin]
|
||||
|
||||
name="Plugin Reloader"
|
||||
description="Enable or disable plugins from within the editor main screen."
|
||||
author="Kenyoni Software"
|
||||
version="1.1.0"
|
||||
script="plugin.gd"
|
||||
license="MIT"
|
||||
repository="https://github.com/kenyoni-software/godot-addons"
|
||||
keywords=[
|
||||
"tool"
|
||||
]
|
||||
classifiers=[
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"License :: OSI Approved :: MIT License"
|
||||
]
|
||||
|
||||
[plugin.dependencies]
|
||||
godot=">=4.2"
|
||||
20
addons/kenyoni/plugin_reloader/plugin.gd
Normal file
@@ -0,0 +1,20 @@
|
||||
@tool
|
||||
extends EditorPlugin
|
||||
|
||||
const ReloaderScene: PackedScene = preload("res://addons/kenyoni/plugin_reloader/internal/reloader.tscn")
|
||||
const Reloader := preload("res://addons/kenyoni/plugin_reloader/internal/reloader.gd")
|
||||
|
||||
var _reloader: Reloader
|
||||
|
||||
func _get_plugin_name() -> String:
|
||||
return "Plugin Reloader"
|
||||
|
||||
func _enter_tree() -> void:
|
||||
self._reloader = ReloaderScene.instantiate()
|
||||
self.add_control_to_container(CustomControlContainer.CONTAINER_TOOLBAR, self._reloader)
|
||||
# move before editor run bar
|
||||
self._reloader.get_parent().move_child(self._reloader, self._reloader.get_parent().find_child("@EditorRunBar@*", true, false).get_index())
|
||||
|
||||
func _exit_tree() -> void:
|
||||
self.remove_control_from_container(CustomControlContainer.CONTAINER_TOOLBAR, self._reloader)
|
||||
self._reloader.queue_free()
|
||||
1
addons/kenyoni/plugin_reloader/plugin.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bcx3j4sbnf4mw
|
||||
@@ -4,5 +4,5 @@ project_id="68fff7ac0029558ca82c"
|
||||
database_id="68fff91900295af283bf"
|
||||
|
||||
[score_submit]
|
||||
url="https://gymkhana.functions.app.fosil.eu"
|
||||
url="https://gymkhana.fosil.eu/submit-score"
|
||||
key="API_KEY_PLACEHOLDER"
|
||||
|
||||
@@ -9,7 +9,11 @@ DEFAULT_DESTINATION_PATH="../escoria-demo-game"
|
||||
DESTINATION_PATH="${1:-$DEFAULT_DESTINATION_PATH}"
|
||||
|
||||
REMOTE_PATCHES=(
|
||||
"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/777.patch"
|
||||
#"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/777.patch"
|
||||
"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/791.patch"
|
||||
"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/792.patch"
|
||||
"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/793.patch"
|
||||
"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/794.patch"
|
||||
)
|
||||
|
||||
PROJECT_PATH=$PWD
|
||||
@@ -44,7 +48,7 @@ echo -e "${BLUE}Applying remote patches...${NOCOLOR}"
|
||||
echo -e ==========================
|
||||
for REMOTE_PATCH in "${REMOTE_PATCHES[@]}"; do
|
||||
echo -e "Patch: ${ORANGE}$REMOTE_PATCH${NOCOLOR}"
|
||||
curl $REMOTE_PATCH | git apply -v --index
|
||||
curl $REMOTE_PATCH | git apply -v --reject --index
|
||||
done
|
||||
|
||||
echo -e
|
||||
@@ -52,9 +56,14 @@ echo -e "${BLUE}Applying local patches...${NOCOLOR}"
|
||||
echo -e ==========================
|
||||
for FILE in $PROJECT_PATH/patches/*; do
|
||||
echo -e "Patch: ${ORANGE}$FILE${NOCOLOR}"
|
||||
git apply -v --index $FILE
|
||||
git apply -v --reject --index $FILE
|
||||
done
|
||||
|
||||
|
||||
echo -e
|
||||
echo -e "${BLUE}Rejected files...${NOCOLOR}"
|
||||
echo -e ==========================
|
||||
find -name "*.rej"
|
||||
|
||||
popd > /dev/null
|
||||
echo -e "${BLUE}Done!🎉${NOCOLOR}"
|
||||
22
build.sh
@@ -20,7 +20,7 @@ if [ ! -f $PROJECT_PATH/secret/api.cfg ]; then
|
||||
echo "api.cfg File not found! creating one."
|
||||
mkdir -p $PROJECT_PATH/secret/
|
||||
cp $PROJECT_PATH/api.cfg.debug $PROJECT_PATH/secret/api.cfg
|
||||
sed -i "s/API_KEY_PLACEHOLDER/$APPWRITE_API_KEY/" $PROJECT_PATH/api.cfg
|
||||
sed -i "s/API_KEY_PLACEHOLDER/$APPWRITE_API_KEY/" $PROJECT_PATH/secret/api.cfg
|
||||
fi
|
||||
|
||||
echo "Building $VERSION version"
|
||||
@@ -37,27 +37,38 @@ PLATFORMS=(
|
||||
"amd"
|
||||
"arm"
|
||||
"web"
|
||||
"web-multi"
|
||||
"win"
|
||||
)
|
||||
|
||||
declare -A PLATFORM_NAMES
|
||||
PLATFORM_NAMES["amd"]=$EXPORT_NAME
|
||||
PLATFORM_NAMES["arm"]=$EXPORT_NAME
|
||||
PLATFORM_NAMES["web"]="index"
|
||||
PLATFORM_NAMES["web-multi"]="index"
|
||||
PLATFORM_NAMES["win"]=$EXPORT_NAME
|
||||
|
||||
declare -A PLATFORM_EXTENSIONS
|
||||
PLATFORM_EXTENSIONS["amd"]=".x86_64.appimage"
|
||||
PLATFORM_EXTENSIONS["arm"]=".arm_64.appimage"
|
||||
PLATFORM_EXTENSIONS["web"]=".html"
|
||||
PLATFORM_EXTENSIONS["web-multi"]=".html"
|
||||
PLATFORM_EXTENSIONS["win"]=".exe"
|
||||
|
||||
declare -A PLATFORM_EXPORTS
|
||||
PLATFORM_EXPORTS["amd"]="Linux"
|
||||
PLATFORM_EXPORTS["arm"]="LinuxARM"
|
||||
PLATFORM_EXPORTS["web"]="Web"
|
||||
PLATFORM_EXPORTS["web-multi"]="WebThread"
|
||||
PLATFORM_EXPORTS["win"]="Windows"
|
||||
|
||||
declare -A PLATFORM_OVERRIDES
|
||||
PLATFORM_OVERRIDES["amd"]="debug"
|
||||
PLATFORM_OVERRIDES["arm"]="debug"
|
||||
PLATFORM_OVERRIDES["web"]="web"
|
||||
PLATFORM_OVERRIDES["web-multi"]="web"
|
||||
PLATFORM_OVERRIDES["win"]="debug"
|
||||
|
||||
|
||||
CURRENT_EXPORT_DIR=$EXPORT_DIR/release
|
||||
|
||||
@@ -77,8 +88,7 @@ for TYPE in "${BUILD_TYPES[@]}"; do
|
||||
|
||||
cp $PROJECT_PATH/override.cfg.${PLATFORM_OVERRIDES[$PLATFORM]} $PROJECT_PATH/override.cfg
|
||||
echo "escoria/main/game_version=\"$VERSION\"" >> $PROJECT_PATH/override.cfg
|
||||
|
||||
if [ "$PLATFORM" == "web" ]; then CURRENT_EXPORT_NAME=${PLATFORM_NAMES[$PLATFORM]}; else CURRENT_EXPORT_NAME=$CURRENT_EXPORT_NAME; fi
|
||||
if [[ "$PLATFORM" == *"web"* ]]; then CURRENT_EXPORT_NAME=${PLATFORM_NAMES[$PLATFORM]}; else CURRENT_EXPORT_NAME=$CURRENT_EXPORT_NAME; fi
|
||||
godot --headless $STD_OUTPUT --export-$TYPE "${PLATFORM_EXPORTS[$PLATFORM]}" "$CURRENT_EXPORT_DIR/$PLATFORM/$CURRENT_EXPORT_NAME${PLATFORM_EXTENSIONS[$PLATFORM]}"
|
||||
done
|
||||
|
||||
@@ -86,6 +96,12 @@ for TYPE in "${BUILD_TYPES[@]}"; do
|
||||
tar cfz ../web-$TYPE.tar.gz .
|
||||
zip ../web-$TYPE.zip *
|
||||
cd $PROJECT_PATH
|
||||
cd $CURRENT_EXPORT_DIR/web-multi
|
||||
tar cfz ../web-multi-$TYPE.tar.gz .
|
||||
zip ../web-multi-$TYPE.zip *
|
||||
|
||||
cd $PROJECT_PATH
|
||||
|
||||
done
|
||||
|
||||
rm $PROJECT_PATH/override.cfg
|
||||
|
||||
47
examples/kenyoni/plugin_reloader/README.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Godot Addons
|
||||
|
||||

|
||||
[](https://github.com/IceflowRE/go-multiprogressbar/blob/master/LICENSE.md)
|
||||
[](https://kenyoni-software.github.io/godot-addons)
|
||||
|
||||
Download [here](https://github.com/kenyoni-software/godot-addons/releases/tag/latest).
|
||||
|
||||
You can find a documentation with examples and detailed information [here](https://kenyoni-software.github.io/godot-addons).
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](./LICENSE.md)
|
||||
|
||||
---
|
||||
|
||||
> [!NOTE]
|
||||
> **Godot 4.3. or lower**
|
||||
> If you import any plugin or open a Godot project for the first time, the plugins will throw errors. To ensure correct operation, reload the project and the errors are gone.
|
||||
> *Background: most plugins are using `preload`, but on first import there is nothing which can be preloaded.*
|
||||
|
||||
## Addons
|
||||
|
||||
- [AspectRatioResizeContainer](https://kenyoni-software.github.io/godot-addons/addons/aspect_ratio_resize_container)
|
||||
Extension of `AspectRatioContainer` to update it's own size.
|
||||
- [Custom Theme Overrides](https://kenyoni-software.github.io/godot-addons/addons/custom_theme_overrides)
|
||||
Utility to provide custom theme overrides for any node.
|
||||
- [Git SHA Project Setting](https://kenyoni-software.github.io/godot-addons/addons/git_sha_project_setting)
|
||||
Add Git SHA as project setting.
|
||||
- [Hide Private Properties](https://kenyoni-software.github.io/godot-addons/addons/hide_private_properties)
|
||||
Hide private properties of instantiated child scenes.
|
||||
- [Icon Explorer](https://kenyoni-software.github.io/godot-addons/addons/icon_explorer)
|
||||
Browse different icons and save them.
|
||||
- [Icons Patcher](https://kenyoni-software.github.io/godot-addons/addons/icons_patcher)
|
||||
Patch Pictogrammers icons to white.
|
||||
- [License Manager](https://kenyoni-software.github.io/godot-addons/addons/licenses)
|
||||
Manage license and copyright for third party graphics, software or libraries.
|
||||
- [Logging](https://kenyoni-software.github.io/godot-addons/addons/glogging)
|
||||
Simple logger.
|
||||
- [Plugin Reloader](https://kenyoni-software.github.io/godot-addons/addons/plugin_reloader)
|
||||
Enable or disable plugins from within the editor main screen.
|
||||
- [QR Code](https://kenyoni-software.github.io/godot-addons/addons/qr_code)
|
||||
QRCodeRect and QR Code generation.
|
||||
- [Remove Orphan UID](https://kenyoni-software.github.io/godot-addons/addons/remove_orphan_uid)
|
||||
Remove orphan UIDs from the project.
|
||||
- [TextureButtonColored](https://kenyoni-software.github.io/godot-addons/addons/texture_button_colored)
|
||||
Extension of `TextureButton` with color options.
|
||||
@@ -9,7 +9,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.esc, *.csv, *.ncsv, *.cfg, *.srt"
|
||||
exclude_filter="*.xcf, saves/*, scripts/*,vscode-extension-ashes/*"
|
||||
export_path="build/LasGymkhanikasDeUli.appimage.x86_64"
|
||||
export_path="build/LasGymkhanikasDeUli.x86_64"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters="*.cfg"
|
||||
encryption_exclude_filters=""
|
||||
@@ -139,3 +139,372 @@ texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
texture_format/no_bptc_fallbacks=true
|
||||
|
||||
[preset.3]
|
||||
|
||||
name="WebThread"
|
||||
platform="Web"
|
||||
runnable=false
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.esc, *.csv, *.ncsv, *.cfg, *.srt"
|
||||
exclude_filter="*.xcf, saves/*, scripts/*,vscode-extension-ashes/*"
|
||||
export_path="build/web-multi/index.html"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.3.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
variant/extensions_support=false
|
||||
variant/thread_support=true
|
||||
vram_texture_compression/for_desktop=true
|
||||
vram_texture_compression/for_mobile=false
|
||||
html/export_icon=true
|
||||
html/custom_html_shell="res://platform/web/full-size.html"
|
||||
html/head_include=""
|
||||
html/canvas_resize_policy=2
|
||||
html/focus_canvas_on_start=true
|
||||
html/experimental_virtual_keyboard=false
|
||||
progressive_web_app/enabled=true
|
||||
progressive_web_app/ensure_cross_origin_isolation_headers=true
|
||||
progressive_web_app/offline_page=""
|
||||
progressive_web_app/display=0
|
||||
progressive_web_app/orientation=1
|
||||
progressive_web_app/icon_144x144=""
|
||||
progressive_web_app/icon_180x180=""
|
||||
progressive_web_app/icon_512x512=""
|
||||
progressive_web_app/background_color=Color(0, 0, 0, 1)
|
||||
threads/emscripten_pool_size=8
|
||||
threads/godot_pool_size=4
|
||||
|
||||
[preset.4]
|
||||
|
||||
name="Windows"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
advanced_options=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.esc, *.csv, *.ncsv, *.cfg, *.srt"
|
||||
exclude_filter="*.xcf, saves/*, scripts/*,vscode-extension-ashes/*"
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.4.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=true
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
shader_baker/enabled=true
|
||||
binary_format/architecture="x86_64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon="uid://d22lbvlnub5a7"
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name="Uliwood"
|
||||
application/product_name="Las Gymkhanikas de Uli"
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
application/export_d3d12=0
|
||||
application/d3d12_agility_sdk_multiarch=true
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||
|
||||
[preset.5]
|
||||
|
||||
name="mac"
|
||||
platform="macOS"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.5.options]
|
||||
|
||||
export/distribution_type=1
|
||||
binary_format/architecture="universal"
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
application/icon="uid://d22lbvlnub5a7"
|
||||
application/icon_interpolation=4
|
||||
application/bundle_identifier="org.uliwood.gymkhana"
|
||||
application/signature=""
|
||||
application/app_category="Games"
|
||||
application/short_version=""
|
||||
application/version=""
|
||||
application/copyright=""
|
||||
application/copyright_localized={}
|
||||
application/min_macos_version_x86_64="10.12"
|
||||
application/min_macos_version_arm64="11.00"
|
||||
application/export_angle=0
|
||||
display/high_res=true
|
||||
shader_baker/enabled=true
|
||||
application/additional_plist_content=""
|
||||
xcode/platform_build="14C18"
|
||||
xcode/sdk_version="13.1"
|
||||
xcode/sdk_build="22C55"
|
||||
xcode/sdk_name="macosx13.1"
|
||||
xcode/xcode_version="1420"
|
||||
xcode/xcode_build="14C18"
|
||||
codesign/codesign=0
|
||||
codesign/installer_identity=""
|
||||
codesign/apple_team_id=""
|
||||
codesign/identity=""
|
||||
codesign/entitlements/custom_file=""
|
||||
codesign/entitlements/allow_jit_code_execution=false
|
||||
codesign/entitlements/allow_unsigned_executable_memory=false
|
||||
codesign/entitlements/allow_dyld_environment_variables=false
|
||||
codesign/entitlements/disable_library_validation=false
|
||||
codesign/entitlements/audio_input=false
|
||||
codesign/entitlements/camera=false
|
||||
codesign/entitlements/location=false
|
||||
codesign/entitlements/address_book=false
|
||||
codesign/entitlements/calendars=false
|
||||
codesign/entitlements/photos_library=false
|
||||
codesign/entitlements/apple_events=false
|
||||
codesign/entitlements/debugging=false
|
||||
codesign/entitlements/app_sandbox/enabled=false
|
||||
codesign/entitlements/app_sandbox/network_server=false
|
||||
codesign/entitlements/app_sandbox/network_client=false
|
||||
codesign/entitlements/app_sandbox/device_usb=false
|
||||
codesign/entitlements/app_sandbox/device_bluetooth=false
|
||||
codesign/entitlements/app_sandbox/files_downloads=0
|
||||
codesign/entitlements/app_sandbox/files_pictures=0
|
||||
codesign/entitlements/app_sandbox/files_music=0
|
||||
codesign/entitlements/app_sandbox/files_movies=0
|
||||
codesign/entitlements/app_sandbox/files_user_selected=0
|
||||
codesign/entitlements/app_sandbox/helper_executables=[]
|
||||
codesign/entitlements/additional=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
notarization/notarization=0
|
||||
privacy/microphone_usage_description=""
|
||||
privacy/microphone_usage_description_localized={}
|
||||
privacy/camera_usage_description=""
|
||||
privacy/camera_usage_description_localized={}
|
||||
privacy/location_usage_description=""
|
||||
privacy/location_usage_description_localized={}
|
||||
privacy/address_book_usage_description=""
|
||||
privacy/address_book_usage_description_localized={}
|
||||
privacy/calendar_usage_description=""
|
||||
privacy/calendar_usage_description_localized={}
|
||||
privacy/photos_library_usage_description=""
|
||||
privacy/photos_library_usage_description_localized={}
|
||||
privacy/desktop_folder_usage_description=""
|
||||
privacy/desktop_folder_usage_description_localized={}
|
||||
privacy/documents_folder_usage_description=""
|
||||
privacy/documents_folder_usage_description_localized={}
|
||||
privacy/downloads_folder_usage_description=""
|
||||
privacy/downloads_folder_usage_description_localized={}
|
||||
privacy/network_volumes_usage_description=""
|
||||
privacy/network_volumes_usage_description_localized={}
|
||||
privacy/removable_volumes_usage_description=""
|
||||
privacy/removable_volumes_usage_description_localized={}
|
||||
privacy/tracking_enabled=false
|
||||
privacy/tracking_domains=PackedStringArray()
|
||||
privacy/collected_data/name/collected=false
|
||||
privacy/collected_data/name/linked_to_user=false
|
||||
privacy/collected_data/name/used_for_tracking=false
|
||||
privacy/collected_data/name/collection_purposes=0
|
||||
privacy/collected_data/email_address/collected=false
|
||||
privacy/collected_data/email_address/linked_to_user=false
|
||||
privacy/collected_data/email_address/used_for_tracking=false
|
||||
privacy/collected_data/email_address/collection_purposes=0
|
||||
privacy/collected_data/phone_number/collected=false
|
||||
privacy/collected_data/phone_number/linked_to_user=false
|
||||
privacy/collected_data/phone_number/used_for_tracking=false
|
||||
privacy/collected_data/phone_number/collection_purposes=0
|
||||
privacy/collected_data/physical_address/collected=false
|
||||
privacy/collected_data/physical_address/linked_to_user=false
|
||||
privacy/collected_data/physical_address/used_for_tracking=false
|
||||
privacy/collected_data/physical_address/collection_purposes=0
|
||||
privacy/collected_data/other_contact_info/collected=false
|
||||
privacy/collected_data/other_contact_info/linked_to_user=false
|
||||
privacy/collected_data/other_contact_info/used_for_tracking=false
|
||||
privacy/collected_data/other_contact_info/collection_purposes=0
|
||||
privacy/collected_data/health/collected=false
|
||||
privacy/collected_data/health/linked_to_user=false
|
||||
privacy/collected_data/health/used_for_tracking=false
|
||||
privacy/collected_data/health/collection_purposes=0
|
||||
privacy/collected_data/fitness/collected=false
|
||||
privacy/collected_data/fitness/linked_to_user=false
|
||||
privacy/collected_data/fitness/used_for_tracking=false
|
||||
privacy/collected_data/fitness/collection_purposes=0
|
||||
privacy/collected_data/payment_info/collected=false
|
||||
privacy/collected_data/payment_info/linked_to_user=false
|
||||
privacy/collected_data/payment_info/used_for_tracking=false
|
||||
privacy/collected_data/payment_info/collection_purposes=0
|
||||
privacy/collected_data/credit_info/collected=false
|
||||
privacy/collected_data/credit_info/linked_to_user=false
|
||||
privacy/collected_data/credit_info/used_for_tracking=false
|
||||
privacy/collected_data/credit_info/collection_purposes=0
|
||||
privacy/collected_data/other_financial_info/collected=false
|
||||
privacy/collected_data/other_financial_info/linked_to_user=false
|
||||
privacy/collected_data/other_financial_info/used_for_tracking=false
|
||||
privacy/collected_data/other_financial_info/collection_purposes=0
|
||||
privacy/collected_data/precise_location/collected=false
|
||||
privacy/collected_data/precise_location/linked_to_user=false
|
||||
privacy/collected_data/precise_location/used_for_tracking=false
|
||||
privacy/collected_data/precise_location/collection_purposes=0
|
||||
privacy/collected_data/coarse_location/collected=false
|
||||
privacy/collected_data/coarse_location/linked_to_user=false
|
||||
privacy/collected_data/coarse_location/used_for_tracking=false
|
||||
privacy/collected_data/coarse_location/collection_purposes=0
|
||||
privacy/collected_data/sensitive_info/collected=false
|
||||
privacy/collected_data/sensitive_info/linked_to_user=false
|
||||
privacy/collected_data/sensitive_info/used_for_tracking=false
|
||||
privacy/collected_data/sensitive_info/collection_purposes=0
|
||||
privacy/collected_data/contacts/collected=false
|
||||
privacy/collected_data/contacts/linked_to_user=false
|
||||
privacy/collected_data/contacts/used_for_tracking=false
|
||||
privacy/collected_data/contacts/collection_purposes=0
|
||||
privacy/collected_data/emails_or_text_messages/collected=false
|
||||
privacy/collected_data/emails_or_text_messages/linked_to_user=false
|
||||
privacy/collected_data/emails_or_text_messages/used_for_tracking=false
|
||||
privacy/collected_data/emails_or_text_messages/collection_purposes=0
|
||||
privacy/collected_data/photos_or_videos/collected=false
|
||||
privacy/collected_data/photos_or_videos/linked_to_user=false
|
||||
privacy/collected_data/photos_or_videos/used_for_tracking=false
|
||||
privacy/collected_data/photos_or_videos/collection_purposes=0
|
||||
privacy/collected_data/audio_data/collected=false
|
||||
privacy/collected_data/audio_data/linked_to_user=false
|
||||
privacy/collected_data/audio_data/used_for_tracking=false
|
||||
privacy/collected_data/audio_data/collection_purposes=0
|
||||
privacy/collected_data/gameplay_content/collected=false
|
||||
privacy/collected_data/gameplay_content/linked_to_user=false
|
||||
privacy/collected_data/gameplay_content/used_for_tracking=false
|
||||
privacy/collected_data/gameplay_content/collection_purposes=0
|
||||
privacy/collected_data/customer_support/collected=false
|
||||
privacy/collected_data/customer_support/linked_to_user=false
|
||||
privacy/collected_data/customer_support/used_for_tracking=false
|
||||
privacy/collected_data/customer_support/collection_purposes=0
|
||||
privacy/collected_data/other_user_content/collected=false
|
||||
privacy/collected_data/other_user_content/linked_to_user=false
|
||||
privacy/collected_data/other_user_content/used_for_tracking=false
|
||||
privacy/collected_data/other_user_content/collection_purposes=0
|
||||
privacy/collected_data/browsing_history/collected=false
|
||||
privacy/collected_data/browsing_history/linked_to_user=false
|
||||
privacy/collected_data/browsing_history/used_for_tracking=false
|
||||
privacy/collected_data/browsing_history/collection_purposes=0
|
||||
privacy/collected_data/search_hhistory/collected=false
|
||||
privacy/collected_data/search_hhistory/linked_to_user=false
|
||||
privacy/collected_data/search_hhistory/used_for_tracking=false
|
||||
privacy/collected_data/search_hhistory/collection_purposes=0
|
||||
privacy/collected_data/user_id/collected=false
|
||||
privacy/collected_data/user_id/linked_to_user=false
|
||||
privacy/collected_data/user_id/used_for_tracking=false
|
||||
privacy/collected_data/user_id/collection_purposes=0
|
||||
privacy/collected_data/device_id/collected=false
|
||||
privacy/collected_data/device_id/linked_to_user=false
|
||||
privacy/collected_data/device_id/used_for_tracking=false
|
||||
privacy/collected_data/device_id/collection_purposes=0
|
||||
privacy/collected_data/purchase_history/collected=false
|
||||
privacy/collected_data/purchase_history/linked_to_user=false
|
||||
privacy/collected_data/purchase_history/used_for_tracking=false
|
||||
privacy/collected_data/purchase_history/collection_purposes=0
|
||||
privacy/collected_data/product_interaction/collected=false
|
||||
privacy/collected_data/product_interaction/linked_to_user=false
|
||||
privacy/collected_data/product_interaction/used_for_tracking=false
|
||||
privacy/collected_data/product_interaction/collection_purposes=0
|
||||
privacy/collected_data/advertising_data/collected=false
|
||||
privacy/collected_data/advertising_data/linked_to_user=false
|
||||
privacy/collected_data/advertising_data/used_for_tracking=false
|
||||
privacy/collected_data/advertising_data/collection_purposes=0
|
||||
privacy/collected_data/other_usage_data/collected=false
|
||||
privacy/collected_data/other_usage_data/linked_to_user=false
|
||||
privacy/collected_data/other_usage_data/used_for_tracking=false
|
||||
privacy/collected_data/other_usage_data/collection_purposes=0
|
||||
privacy/collected_data/crash_data/collected=false
|
||||
privacy/collected_data/crash_data/linked_to_user=false
|
||||
privacy/collected_data/crash_data/used_for_tracking=false
|
||||
privacy/collected_data/crash_data/collection_purposes=0
|
||||
privacy/collected_data/performance_data/collected=false
|
||||
privacy/collected_data/performance_data/linked_to_user=false
|
||||
privacy/collected_data/performance_data/used_for_tracking=false
|
||||
privacy/collected_data/performance_data/collection_purposes=0
|
||||
privacy/collected_data/other_diagnostic_data/collected=false
|
||||
privacy/collected_data/other_diagnostic_data/linked_to_user=false
|
||||
privacy/collected_data/other_diagnostic_data/used_for_tracking=false
|
||||
privacy/collected_data/other_diagnostic_data/collection_purposes=0
|
||||
privacy/collected_data/environment_scanning/collected=false
|
||||
privacy/collected_data/environment_scanning/linked_to_user=false
|
||||
privacy/collected_data/environment_scanning/used_for_tracking=false
|
||||
privacy/collected_data/environment_scanning/collection_purposes=0
|
||||
privacy/collected_data/hands/collected=false
|
||||
privacy/collected_data/hands/linked_to_user=false
|
||||
privacy/collected_data/hands/used_for_tracking=false
|
||||
privacy/collected_data/hands/collection_purposes=0
|
||||
privacy/collected_data/head/collected=false
|
||||
privacy/collected_data/head/linked_to_user=false
|
||||
privacy/collected_data/head/used_for_tracking=false
|
||||
privacy/collected_data/head/collection_purposes=0
|
||||
privacy/collected_data/other_data_types/collected=false
|
||||
privacy/collected_data/other_data_types/linked_to_user=false
|
||||
privacy/collected_data/other_data_types/used_for_tracking=false
|
||||
privacy/collected_data/other_data_types/collection_purposes=0
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
||||
|
||||
BIN
gymkhana-logo-itch.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
@@ -384,6 +384,7 @@
|
||||
- "cocina_delante_eneko_action2_dialog_option7:Agur"
|
||||
say($current_player, "Agur yogur!", "cocina_delante_eneko_action2_dialog_end")
|
||||
done
|
||||
#!include:
|
||||
|
||||
:action3 "turno_cocina_frontal"
|
||||
if turno_cocina_frontal_debajo_sofa:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_resource type="Resource" script_class="ESCAnimationResource" load_steps=7 format=3 uid="uid://c4lhcwvjqx5ty"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://sksvt0n8gle2" path="res://addons/escoria-core/game/core-scripts/resources/esc_animationresource.gd" id="1"]
|
||||
[ext_resource type="Script" uid="uid://bxc3dll30x8tl" path="res://addons/escoria-core/game/core-scripts/resources/esc_directionangle.gd" id="2"]
|
||||
[ext_resource type="Script" uid="uid://clixil1u5exq7" path="res://addons/escoria-core/game/core-scripts/resources/esc_animationname.gd" id="3"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/resources/esc_directionangle.gd" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/resources/esc_animationname.gd" id="3"]
|
||||
|
||||
[sub_resource type="Resource" id="1"]
|
||||
script = ExtResource("2")
|
||||
@@ -18,7 +18,7 @@ animation = "speak"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1")
|
||||
dir_angles = [SubResource("1")]
|
||||
directions = [SubResource("2")]
|
||||
idles = [SubResource("2")]
|
||||
speaks = [SubResource("3")]
|
||||
dir_angles = Array[ExtResource("2")]([SubResource("1")])
|
||||
directions = Array[ExtResource("3")]([SubResource("2")])
|
||||
idles = Array[ExtResource("3")]([SubResource("2")])
|
||||
speaks = Array[ExtResource("3")]([SubResource("3")])
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_resource type="Resource" script_class="ESCAnimationResource" load_steps=36 format=3 uid="uid://cyjo7aq0e4hbe"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://sksvt0n8gle2" path="res://addons/escoria-core/game/core-scripts/resources/esc_animationresource.gd" id="1"]
|
||||
[ext_resource type="Script" uid="uid://bxc3dll30x8tl" path="res://addons/escoria-core/game/core-scripts/resources/esc_directionangle.gd" id="2"]
|
||||
[ext_resource type="Script" uid="uid://clixil1u5exq7" path="res://addons/escoria-core/game/core-scripts/resources/esc_animationname.gd" id="3"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/resources/esc_directionangle.gd" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/resources/esc_animationname.gd" id="3"]
|
||||
|
||||
[sub_resource type="Resource" id="1"]
|
||||
script = ExtResource("2")
|
||||
@@ -145,7 +145,7 @@ animation = "idle_up"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1")
|
||||
dir_angles = [SubResource("1"), SubResource("2"), SubResource("3"), SubResource("4"), SubResource("5"), SubResource("6"), SubResource("7"), SubResource("8")]
|
||||
directions = [SubResource("9"), SubResource("10"), SubResource("11"), SubResource("12"), SubResource("13"), SubResource("14"), SubResource("15"), SubResource("16")]
|
||||
idles = [SubResource("17"), SubResource("18"), SubResource("19"), SubResource("20"), SubResource("21"), SubResource("22"), SubResource("23"), SubResource("24")]
|
||||
speaks = [SubResource("25"), SubResource("26"), SubResource("27"), SubResource("28"), SubResource("29"), SubResource("30"), SubResource("31"), SubResource("32")]
|
||||
dir_angles = Array[ExtResource("2")]([SubResource("1"), SubResource("2"), SubResource("3"), SubResource("4"), SubResource("5"), SubResource("6"), SubResource("7"), SubResource("8")])
|
||||
directions = Array[ExtResource("3")]([SubResource("9"), SubResource("10"), SubResource("11"), SubResource("12"), SubResource("13"), SubResource("14"), SubResource("15"), SubResource("16")])
|
||||
idles = Array[ExtResource("3")]([SubResource("17"), SubResource("18"), SubResource("19"), SubResource("20"), SubResource("21"), SubResource("22"), SubResource("23"), SubResource("24")])
|
||||
speaks = Array[ExtResource("3")]([SubResource("25"), SubResource("26"), SubResource("27"), SubResource("28"), SubResource("29"), SubResource("30"), SubResource("31"), SubResource("32")])
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
:ready
|
||||
global achievement_hambrientas
|
||||
|
||||
:action1
|
||||
say($player, "El cuerno de Uli, la llamada para comer.", "cocina_cuerno_action1_say")
|
||||
|
||||
@@ -29,5 +32,8 @@
|
||||
stop
|
||||
play_video("res://gymkhana/videos/turno_cocina/cuerno_antes_de_tiempo.ogv")
|
||||
accept_input("ALL")
|
||||
if not achievement_hambrientas:
|
||||
unlock_achievement("hambrientas")
|
||||
set_global("achievement_hambrientas", true)
|
||||
stop
|
||||
say($player, "Si lo toco aquí no me va a oir la gente que esté en la huerta, debería buscar un sitio mejor.","cocina_cuerno_action4_say")
|
||||
|
||||
@@ -41,8 +41,3 @@
|
||||
say($player, "4 patatas medianas", "cocina_libro_de_cocina_action3_3")
|
||||
say($player, "1 kilo exacto de lentejas", "cocina_libro_de_cocina_action3_4")
|
||||
say($player, "Una cabeza de ajo.", "cocina_libro_de_cocina_action3_5")
|
||||
inc_global("turno_cocina_libro_leido_count")
|
||||
if turno_cocina_libro_leido_count == 4:
|
||||
set_global("turno_cocina_hint_romero", true)
|
||||
say($player, "Tambien hay un dibujo de una hierba con la palabra ROMERO.","cocina_libro_de_cocina_action3_romero")
|
||||
set_global("turno_cocina_libro_leido_count", 0)
|
||||
|
||||
@@ -2,12 +2,7 @@
|
||||
say($player, "Hay muchas hierbas.", "cocina_detras_romero_action1_say")
|
||||
|
||||
:action2
|
||||
if !turno_cocina_hint_romero:
|
||||
say($player, "No sabría cual coger. ¿Y si alguna es venenosa?", "cocina_detras_romero_action2_unknown_say")
|
||||
else:
|
||||
say($player, "¡Esta parece romero, si lo echo a las lentejas estarán bien ricas!", "cocina_detras_romero_action2_known_say")
|
||||
inventory_add($turno_cocina_romero)
|
||||
set_active($turno_cocina_romero,false)
|
||||
say($player, "No sabría cual coger. ¿Y si alguna es venenosa?", "cocina_detras_romero_action2_unknown_say")
|
||||
|
||||
:action3
|
||||
say($player, "Romero, el ingrediente secreto para unas lentejas de rechupete.", "cocina_detras_romero_action3_say")
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[gd_scene load_steps=28 format=3 uid="uid://dowbdjo7ka0sq"]
|
||||
[gd_scene load_steps=29 format=3 uid="uid://dowbdjo7ka0sq"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
|
||||
[ext_resource type="Script" uid="uid://c7fcpp72w3dnj" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjmsexhyhi4vs" path="res://gymkhana/characters/oier/oier.tscn" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://c8ytapkbj5t4p" path="res://gymkhana/rooms/turno_cocina/cocina/assets/cocina_interior_vista_completa.jpg" id="3_ccj1t"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" id="4"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_location.gd" id="5"]
|
||||
[ext_resource type="Script" uid="uid://5pbcieq7gpdo" path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" id="4"]
|
||||
[ext_resource type="Script" uid="uid://beh3ds4eapldu" path="res://addons/escoria-core/game/core-scripts/esc_location.gd" id="5"]
|
||||
[ext_resource type="Script" uid="uid://ceym82rf2qnxu" path="res://addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd" id="6"]
|
||||
[ext_resource type="Texture2D" uid="uid://2mw8y41yha5" path="res://gymkhana/rooms/turno_cocina/cocina/assets/depth.png" id="7"]
|
||||
[ext_resource type="Texture2D" uid="uid://hfsy8yh5msgu" path="res://gymkhana/rooms/turno_cocina/cocina/assets/foreground-mesa.png" id="8"]
|
||||
@@ -25,6 +25,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://bthshk88n0ida" path="res://gymkhana/rooms/turno_cocina/cocina/jarra.tscn" id="22"]
|
||||
[ext_resource type="PackedScene" uid="uid://byfyg5p0h02br" path="res://gymkhana/rooms/turno_cocina/cocina/jarra_volcada.tscn" id="25"]
|
||||
[ext_resource type="Script" uid="uid://oaq45tntm70n" path="res://gymkhana/rooms/turno_cocina/cocina/cocina_gas.gd" id="26"]
|
||||
[ext_resource type="Script" uid="uid://85bledusisk1" path="res://addons/escoria-core/game/core-scripts/esc_dialog_location.gd" id="26_5b7i4"]
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="3"]
|
||||
vertices = PackedVector2Array(2398, 485, 2442, 499, 2446, 617, 2409, 597, 2283, 493, 144, 568, 3, 570, -56, 524, 111, 445, 162, 471, 229, 445, 200, 465, 252, 478, 305, 524, 273, 570, 2287, 687, 2062, 635, 2113, 565, 696, 737, 512, 591, 703, 699, 1269, 739, 1241, 699, 1502, 646, 1409, 752, 1345, 667, 1489, 627, 1347, 563, 1480, 587, 1466, 514, 1345, 505, 1382, 439, 2109, 424, 2238, 386, 1788, 325, 2018, 419, 1787, 383, 1466, 412, 1493, 479, 1305.5, 467, 1337.5, 449, 1306.5, 498)
|
||||
@@ -506,6 +507,11 @@ metadata/_custom_type_script = "uid://ceym82rf2qnxu"
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="turno_cocina_bandera_palestina"]
|
||||
polygon = PackedVector2Array(-49, -28, -48, -12, -48, 11, -48, 21, -25, 22, 2, 24, 32, 24, 47, 23, 50, -27, 14, -27, 2, -27, -9, -28, -28, -28, -47, -29)
|
||||
|
||||
[node name="ESCDialogLocation" type="Marker2D" parent="turno_cocina_bandera_palestina"]
|
||||
position = Vector2(0, 123)
|
||||
script = ExtResource("26_5b7i4")
|
||||
metadata/_custom_type_script = "uid://85bledusisk1"
|
||||
|
||||
[node name="ESCLocation" type="Marker2D" parent="turno_cocina_bandera_palestina"]
|
||||
position = Vector2(-136, 274)
|
||||
script = ExtResource("5")
|
||||
|
||||
@@ -2,18 +2,14 @@
|
||||
global achievement_palestina
|
||||
|
||||
:action1
|
||||
play_palestina_music()
|
||||
say_to_camera($player, "Mientras un pueblo está sufriendo un genocidio, no existe neutralidad, tienes que decidir de que lado estas.", "turno_cocina_bandera_palestina_action1_say")
|
||||
say_to_camera($player, "Mientras un pueblo está sufriendo un genocidio, no existe la neutralidad, tienes que decidir de que lado estas.", "turno_cocina_bandera_palestina_action1_say")
|
||||
|
||||
:action2
|
||||
play_palestina_music()
|
||||
accept_input("SKIP")
|
||||
say_to_camera($player, "La ocupación de Palestina no empezó el 7 de octubre de 2023 si no con la proclamación del Estado de Israel en 1948.", "turno_cocina_bandera_palestina_action2_say_1")
|
||||
say_to_camera($player, "Desde los ataques del 7 de octubre de 2023, Israel ha llevado a cabo una ofensiva militar que según Amnistía Internacional y otras organizaciones, reúne los elementos del crimen de genocidio contra la población palestina de Gaza.", "turno_cocina_bandera_palestina_action2_say_2")
|
||||
walk_block($player, $turno_cocina_bandera_palestina_second, false)
|
||||
say_to_camera($player, "Las acciones deliberadas –asesinatos masivos, desplazamientos forzados, bloqueo del acceso a alimentos, agua y medicinas– y la retórica deshumanizadora de las autoridades israelíes demuestran una intención de destruir total o parcialmente al pueblo palestino.", "turno_cocina_bandera_palestina_action2_say_3")
|
||||
say_to_camera($player, "La impunidad de Israel frente a las resoluciones internacionales perpetúa la ocupación, el apartheid y el genocidio contra la población palestina.", "turno_cocina_bandera_palestina_action2_say_4")
|
||||
accept_input("ALL")
|
||||
say($turno_cocina_bandera_palestina, "La ocupación de Palestina no empezó el 7 de octubre de 2023 si no con la proclamación del Estado de Israel en 1948.", "turno_cocina_bandera_palestina_action2_say_1")
|
||||
say($turno_cocina_bandera_palestina, "Desde los ataques del 7 de octubre de 2023, Israel ha llevado a cabo una ofensiva militar que según Amnistía Internacional y otras organizaciones, reúne los elementos del crimen de genocidio contra la población palestina de Gaza.", "turno_cocina_bandera_palestina_action2_say_2")
|
||||
say($turno_cocina_bandera_palestina, "Las acciones deliberadas –asesinatos masivos, desplazamientos forzados, bloqueo del acceso a alimentos, agua y medicinas– y la retórica deshumanizadora de las autoridades israelíes demuestran una intención de destruir total o parcialmente al pueblo palestino.", "turno_cocina_bandera_palestina_action2_say_3")
|
||||
say($turno_cocina_bandera_palestina, "La impunidad de Israel frente a las resoluciones internacionales perpetúa la ocupación, el apartheid y el genocidio contra la población palestina.", "turno_cocina_bandera_palestina_action2_say_4")
|
||||
if not achievement_palestina:
|
||||
unlock_achievement("palestina")
|
||||
set_global("achievement_palestina", true)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
set_active($cocina_fregadero_der, false)
|
||||
set_active($cocina_puerta_delante, false)
|
||||
set_active($cocina_puerta_detras, false)
|
||||
set_active($turno_cocina_cuerno, false)
|
||||
set_interactive($turno_cocina_cuerno, false)
|
||||
set_interactive($cocina_patata, false)
|
||||
set_active($cocina_debajo_sofa, false)
|
||||
set_active($turno_cocina_jarra, false)
|
||||
@@ -57,8 +57,8 @@
|
||||
set_active($cocina_fregadero_der, true)
|
||||
set_active($cocina_puerta_delante, true)
|
||||
set_active($cocina_puerta_detras, true)
|
||||
set_active($turno_cocina_cuerno, true)
|
||||
set_active($cocina_patata, true)
|
||||
set_interactive($turno_cocina_cuerno, true)
|
||||
set_interactive($cocina_patata, true)
|
||||
set_active($cocina_debajo_sofa, true)
|
||||
|
||||
if turno_cocina_mikel_playing:
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://dwvu5kn7qr35s"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
|
||||
[ext_resource type="Script" uid="uid://c7fcpp72w3dnj" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjmsexhyhi4vs" path="res://gymkhana/characters/oier/oier.tscn" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://b8re6n31thdb" path="res://gymkhana/rooms/turno_cocina/cocina_delante/assets/delante_cocina_full.jpg" id="3_us6ip"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" id="4"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_location.gd" id="5"]
|
||||
[ext_resource type="Script" uid="uid://5pbcieq7gpdo" path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" id="4"]
|
||||
[ext_resource type="Script" uid="uid://beh3ds4eapldu" path="res://addons/escoria-core/game/core-scripts/esc_location.gd" id="5"]
|
||||
[ext_resource type="Script" uid="uid://ceym82rf2qnxu" path="res://addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd" id="6"]
|
||||
[ext_resource type="Texture2D" uid="uid://dhj8k3ro2vayg" path="res://gymkhana/rooms/turno_cocina/cocina_delante/assets/light.png" id="6_ugqpr"]
|
||||
[ext_resource type="Texture2D" uid="uid://js3u7hbljn2x" path="res://gymkhana/rooms/turno_cocina/cocina_delante/assets/depth.png" id="7"]
|
||||
|
||||
@@ -51,6 +51,12 @@ func _on_show_credits_button_up() -> void:
|
||||
. set_trans(Tween.TRANS_SINE)
|
||||
. connect("finished", _on_summary_hide_finish)
|
||||
)
|
||||
(
|
||||
create_tween()
|
||||
. tween_property(%Credits, "modulate:a", 0.0, 0.8)
|
||||
. from(1.0)
|
||||
. set_trans(Tween.TRANS_SINE)
|
||||
)
|
||||
var script = escoria.esc_compiler.load_esc_file(
|
||||
"res://gymkhana/rooms/turno_cocina/creditos/esc/creditos.esc", "creditos"
|
||||
)
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
[gd_scene load_steps=21 format=3 uid="uid://csb7hwb1v016e"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c7fcpp72w3dnj" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjmsexhyhi4vs" path="res://gymkhana/characters/oier/oier.tscn" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://dc7j1xq3x7gwp" path="res://gymkhana/rooms/turno_cocina/creditos/assets/background.png" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://dvofjrubnnone" path="res://gymkhana/rooms/turno_cocina/creditos/assets/background.png" id="3"]
|
||||
[ext_resource type="PackedScene" uid="uid://fgwob47tewuf" path="res://gymkhana/rooms/turno_cocina/creditos/ScrollingText.tscn" id="4"]
|
||||
[ext_resource type="PackedScene" uid="uid://bgiskd55j17fc" path="res://gymkhana/rooms/turno_cocina/creditos/EnekoDancing.tscn" id="5"]
|
||||
[ext_resource type="Texture2D" uid="uid://budal8dqwrifr" path="res://gymkhana/logo-small.png" id="6"]
|
||||
[ext_resource type="Texture2D" uid="uid://bgfi7t6khinjw" path="res://gymkhana/logo-small.png" id="6"]
|
||||
[ext_resource type="Script" uid="uid://ib2j5oleakyb" path="res://gymkhana/rooms/turno_cocina/creditos/SceneHandler.gd" id="7"]
|
||||
[ext_resource type="PackedScene" uid="uid://dg3q322t7b34f" path="res://gymkhana/rooms/turno_cocina/creditos/OierDancing.tscn" id="9"]
|
||||
[ext_resource type="PackedScene" uid="uid://ch5d4emoxq6t4" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary.tscn" id="9_oudlg"]
|
||||
[ext_resource type="Script" uid="uid://elqkwjm0r5c7" path="res://addons/escoria-ui-return-monkey-island/menus/rtmi_menu_button.gd" id="10_f1tcv"]
|
||||
[ext_resource type="Script" uid="uid://ceym82rf2qnxu" path="res://addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd" id="11_f1tcv"]
|
||||
[ext_resource type="Script" uid="uid://85bledusisk1" path="res://addons/escoria-core/game/core-scripts/esc_dialog_location.gd" id="12_ys4o4"]
|
||||
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_dialog_location.gd" id="12_ys4o4"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ys4o4"]
|
||||
|
||||
@@ -88,6 +88,7 @@ unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Credits" type="Button" parent="Summary/CenterContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 8
|
||||
theme_override_font_sizes/font_size = 10
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
set_global("turno_cocina_credits_dancers_visible", true)
|
||||
accept_input("SKIP")
|
||||
if turno_cocina_perfect_score:
|
||||
say($oier_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_oier")
|
||||
say($eneko_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_eneko")
|
||||
say($oier_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_oier")
|
||||
say($eneko_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_eneko")
|
||||
say($oier_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_oier")
|
||||
say($eneko_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_eneko")
|
||||
say($oier_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_oier_1")
|
||||
say($eneko_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_eneko_1")
|
||||
say($oier_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_oier_2")
|
||||
say($eneko_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_eneko_2")
|
||||
say($oier_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_oier_3")
|
||||
say($eneko_dancing, "Perfect!", "turno_cocina_creditos_perfect_score_eneko_3")
|
||||
else:
|
||||
say($oier_dancing, "Enhorabuena! Guarda tu puntuación, para que todo el mundo la vea.", "turno_cocina_creditos_score_1")
|
||||
say($eneko_dancing, "Si consigues todos los logros entrarás en la lista de puntuaciones perfectas.", "turno_cocina_creditos_score_2")
|
||||
|
||||
@@ -42,8 +42,8 @@ navigation_polygon = SubResource("60")
|
||||
process_mode = 1
|
||||
position = Vector2(863, 175)
|
||||
script = ExtResource("6")
|
||||
global_id = "turno_cocina_despensa_puerta_exterior"
|
||||
custom_cursor = "east"
|
||||
global_id = "turno_cocina_despensa_puerta_exterior"
|
||||
esc_script = "res://gymkhana/rooms/turno_cocina/despensa/esc/puerta_exterior.esc"
|
||||
combine_when_selected_action_is_in = PackedStringArray()
|
||||
is_exit = true
|
||||
|
||||