diff --git a/project.godot b/project.godot
index d8d5585..ce910a6 100644
--- a/project.godot
+++ b/project.godot
@@ -32,7 +32,7 @@ export/convert_text_resources_to_binary=false
[editor_plugins]
-enabled=PackedStringArray("res://addons/SUI/plugin.cfg")
+enabled=PackedStringArray("res://addons/SUI/plugin.cfg", "res://addons/venus/plugin.cfg")
[filesystem]
diff --git a/scenesrc/UserInterface.tscn b/scenesrc/UserInterface.tscn
index 1deffdd..ca1fed8 100644
--- a/scenesrc/UserInterface.tscn
+++ b/scenesrc/UserInterface.tscn
@@ -1,9 +1,10 @@
-[gd_scene load_steps=10 format=3 uid="uid://cbqdxkaq5m44g"]
+[gd_scene load_steps=9 format=3 uid="uid://cbqdxkaq5m44g"]
[ext_resource type="Shader" path="res://assets/shaders/blur.gdshader" id="1_6kunn"]
[ext_resource type="Script" path="res://src/userinterface.gd" id="1_7rse1"]
[ext_resource type="Texture2D" uid="uid://485ypkeljwca" path="res://assets/images/WallpaperResized.png" id="1_kfnw8"]
[ext_resource type="Texture2D" uid="uid://b23f0o450c2xl" path="res://assets/images/IconText.png" id="3_hxo5p"]
+[ext_resource type="PackedScene" uid="uid://bnftxfwr021q6" path="res://addons/venus/assets/uielements/Splash.tscn" id="5_db03k"]
[ext_resource type="PackedScene" uid="uid://bso65vpjqc4g4" path="res://addons/SUI/scenesrc/SuiText.tscn" id="5_lpbss"]
[ext_resource type="PackedScene" uid="uid://4hi8y7pu3w0v" path="res://addons/SUI/scenesrc/SuiTextButton.tscn" id="6_xj8q1"]
@@ -13,28 +14,6 @@ shader_parameter/radius = 4.0
shader_parameter/steps = 32
shader_parameter/vertex_expand = 1.0
-[sub_resource type="Animation" id="Animation_8cqjd"]
-resource_name = "anim"
-length = 0.5
-loop_mode = 1
-tracks/0/type = "value"
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/path = NodePath(".:scale")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/keys = {
-"times": PackedFloat32Array(0, 0.3, 0.5),
-"transitions": PackedFloat32Array(3, 1, 1),
-"update": 0,
-"values": [Vector2(1, 1), Vector2(1.063, 1.063), Vector2(1, 1)]
-}
-
-[sub_resource type="AnimationLibrary" id="AnimationLibrary_hqqk1"]
-_data = {
-"anim": SubResource("Animation_8cqjd")
-}
-
[node name="UserInterface" type="NinePatchRect"]
material = SubResource("ShaderMaterial_tg5oh")
offset_right = 1440.0
@@ -54,34 +33,12 @@ offset_bottom = 260.0
grow_horizontal = 2
texture = ExtResource("3_hxo5p")
-[node name="Splash" parent="." instance=ExtResource("5_lpbss")]
-modulate = Color(1, 1, 0, 1)
-layout_mode = 1
-anchors_preset = 5
-anchor_left = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.0
-offset_left = 177.0
+[node name="SplashVenus" parent="." instance=ExtResource("5_db03k")]
+offset_left = 898.0
offset_top = 210.0
-offset_right = 619.0
+offset_right = 1340.0
offset_bottom = 300.0
-grow_vertical = 1
-rotation = -0.366519
-pivot_offset = Vector2(221, 45)
-text = "[center]Hmm... something went wrong.[/center]"
-font_size = 30
-
-[node name="AnimPlayer" type="AnimationPlayer" parent="Splash"]
-libraries = {
-"": SubResource("AnimationLibrary_hqqk1")
-}
-autoplay = "anim"
-
-[node name="Switcher" type="Button" parent="Splash"]
-self_modulate = Color(1, 1, 1, 0)
-layout_mode = 0
-offset_right = 442.0
-offset_bottom = 90.0
+splash_category = "presencode"
[node name="Buttons" type="Control" parent="."]
layout_mode = 1
diff --git a/src/loader.gd b/src/loader.gd
index fc88952..ca1504f 100644
--- a/src/loader.gd
+++ b/src/loader.gd
@@ -68,6 +68,9 @@ along with this program. If not, see .""")
core_config.logui_enabled = args["display_logui"]
core.reload_configuration(core_config)
+ # Register Venus' modules
+ VenusManager.new(core).register_modules()
+
# Initialize internals
logger.info("Initializing internals")
@@ -91,6 +94,7 @@ along with this program. If not, see .""")
# Load UserInterface.tscn
var userinterface: NinePatchRect = load("res://scenesrc/UserInterface.tscn").instantiate()
userinterface.name = "UserInterface"
+ userinterface.core = core
userinterface.core_config = core_config.duplicate()
userinterface.presenloader = presenloader
get_tree().root.add_child.call_deferred(userinterface)
diff --git a/src/userinterface.gd b/src/userinterface.gd
index f22b34a..12fe42e 100644
--- a/src/userinterface.gd
+++ b/src/userinterface.gd
@@ -17,9 +17,10 @@
extends NinePatchRect
# CORE
+var core: Core
var core_config: CoreConfiguration
-@onready var core: Core = get_node("/root/CORE")
@onready var logger: CoreLoggerInstance = core.logger.get_instance("src/userinterface.gd", self)
+var splashes: CoreBaseModule
# Internal infrastructure
var presenloader: Node
@@ -27,49 +28,27 @@ var presenloader: Node
# Variables
var shutdown: bool = false
var cleanup_hook: int
-var splashes: Array[String] = [
- "Made in Godot 4.2!",
- "Made with the CORE Framework!",
- "Awesome!",
- "Cute!",
- "Dangerous.",
- "Dangerously explosive!",
- "Made in Germany",
- ": Godot Edition",
- "this was blatantly ripped off from Minecraft",
- "Trans rights are human rights!",
- "// TODO",
- "# TODO",
- "UwU",
- "open source :)",
- "i use presencode btw",
- "i use arch btw",
- "69 haha funny number",
- "<3 neofox",
- "<3 blobfox",
- "<3",
- "Coin Score % 256 = Saved Coin Score",
- "xD",
- "Now in 2D!",
- "very bad",
- "beta and alpha males are overrated, i'm a release male",
- "uses .pcar files!",
- "licensed under the GNU AGPL v3!",
- "## @experimental",
- "Welcome!",
- "Godot 4 + [s]0.1 + 0.2[/s] 20 = Godot 4.2!"
-]
# Threads
var thread_wallpaper: Thread = Thread.new()
# +++ initialization +++
+func _enter_tree() -> void:
+ splashes = core.get_custom_module("splashes")
+ splashes.copy_splashes("default", "presencode")
+ splashes.add_splashes("presencode", [
+ "Dangerous.",
+ "i use presencode btw",
+ "Now in 2D!",
+ "very bad",
+ "uses .pcar files!"
+ ])
+
func _ready() -> void:
# Register cleanup hook
cleanup_hook = core.register_cleanup_hook(Callable(self, "cleanup"))
# Call update methods
- update_splash()
add_connections()
# Load higher quality wallpaper
@@ -132,9 +111,6 @@ func cleanup() -> void:
# Adds connections
func add_connections() -> void:
- # Splash update button
- $Splash/Switcher.connect("pressed", func() -> void: update_splash())
-
# Buttons
$Buttons/PresentZip.connect("pressed", Callable(self, "display_open_dialog").bind(false))
$Buttons/PresentDir.connect("pressed", Callable(self, "display_open_dialog").bind(true))
@@ -217,12 +193,3 @@ func handle_open_dialog_logic(path: String, file_dialog: FileDialog) -> void:
# Unload user interface
unload()
-
-# Updates the splash text
-func update_splash() -> void:
- var new_splash: String = splashes.pick_random()
- while true:
- if new_splash != $Splash.text:
- break
-
- $Splash.text = "[center]" + new_splash + "[/center]"