feat(studio,stacking,animations,collections): M16 ModBison Studio, object stacking, model animations, and poly collections for MVP 2
checkpoint / checkpoint (push) Successful in 6m32s

This commit is contained in:
2026-09-22 18:30:57 +00:00
parent 654c1ec6bf
commit 721dbe5ae7
37 changed files with 5202 additions and 17 deletions
+18
View File
@@ -102,6 +102,11 @@ static func _update_sound_button(btn: Button) -> void:
func _ready() -> void:
for arg in OS.get_cmdline_args():
if arg == "--studio" or arg == "-studio":
get_tree().change_scene_to_file("res://scenes/studio/studio_main.tscn")
return
var v := Label.new()
var bl := _build_label()
v.text = bl if bl.begins_with("MVP Build") or bl == "dev" else ("build %s" % bl)
@@ -235,6 +240,19 @@ func _ready() -> void:
_selling_button = $CenterContainer/VBoxContainer.get_node_or_null("SellingButton")
_quit_button = $CenterContainer/VBoxContainer/QuitButton
var studio_btn := Button.new()
studio_btn.name = "StudioButton"
studio_btn.text = "🦬 ModBison Studio"
studio_btn.add_theme_color_override("font_color", Color(1.0, 0.9, 0.35))
studio_btn.pressed.connect(func():
get_tree().change_scene_to_file("res://scenes/studio/studio_main.tscn")
)
var vb = $CenterContainer/VBoxContainer
if vb != null:
vb.add_child(studio_btn)
if _play_button != null:
vb.move_child(studio_btn, _play_button.get_index() + 1)
# Default to navigation being gated. When a token exists, the async session
# check below may take several frames (a real get_me() round-trip);
# keeping the button disabled until validation succeeds prevents a fast