dynamic menu and menu music
This commit is contained in:
parent
1f13716d42
commit
a9efa66b09
18 changed files with 386 additions and 41 deletions
88
Scripts/DynamicBackground.gd
Normal file
88
Scripts/DynamicBackground.gd
Normal file
|
@ -0,0 +1,88 @@
|
|||
extends Control
|
||||
|
||||
var currentStage: String
|
||||
var playing = false
|
||||
var index = 0
|
||||
var cam_index = 1
|
||||
var loaded_frames = []
|
||||
var in_flows = []
|
||||
var out_flows = []
|
||||
var prev_frame_held = []
|
||||
var animatables_handles = []
|
||||
|
||||
var rotationStages = [
|
||||
"Balcony Stage",
|
||||
"C-Stage",
|
||||
"Prototype Road Stage",
|
||||
"Mini Unit 1-Stage",
|
||||
"1-Stage w 2-Stage Props",
|
||||
"1-Stage",
|
||||
"Turntable 1-Stage",
|
||||
"2-Stage",
|
||||
"Cyberamic 3-Stage",
|
||||
]
|
||||
|
||||
func _ready() -> void:
|
||||
if (GlobalVariables.title_dynamic == 1):
|
||||
currentStage = rotationStages[randi() % rotationStages.size()]
|
||||
$SubViewport.add_child(load(Stages.stages_info[currentStage]["scene"]).instantiate())
|
||||
for curtain in Stages.stages_info[currentStage]["curtains"]:
|
||||
for curtain_movement in Stages.stages_info[currentStage]["curtains"][curtain]:
|
||||
get_node(Stages.stages_info[currentStage]["scene_ref_base"] + curtain)._movement_in(curtain_movement + " Up", 100000)
|
||||
|
||||
var cosmetics_count = 0
|
||||
for cosmetic_subtable in Stages.stages_info[currentStage]["cosmetics"]:
|
||||
for cosmetic in cosmetic_subtable:
|
||||
var cosmetic_adjustment = load("res://Scenes/GUI/Controls/CosmeticAdjustment.tscn").instantiate()
|
||||
cosmetic_adjustment.vis_name = cosmetic
|
||||
cosmetic_adjustment.options = cosmetic_subtable[cosmetic]
|
||||
cosmetic_adjustment.scene_handle = "../../" + Stages.stages_info[currentStage]["scene_ref_base"]
|
||||
cosmetic_adjustment.drop_index = Stages.stages_info[currentStage]["cosmetic_defaults"][cosmetics_count]
|
||||
cosmetics_count += 1
|
||||
$SuperSecretInvisibleZone.add_child(cosmetic_adjustment)
|
||||
|
||||
for bit_number in Stages.stages_info[currentStage]["bit_mapping"]:
|
||||
var bot = Stages.stages_info[currentStage]["bit_mapping"][bit_number]["bot"]
|
||||
var in_flow = Stages.stages_info[currentStage]["bit_mapping"][bit_number]["flow_in"]
|
||||
var out_flow = Stages.stages_info[currentStage]["bit_mapping"][bit_number]["flow_out"]
|
||||
|
||||
animatables_handles.push_back(get_node(Stages.stages_info[currentStage]["scene_ref_base"] + bot))
|
||||
in_flows.push_back(in_flow)
|
||||
out_flows.push_back(out_flow)
|
||||
prev_frame_held.push_back(false)
|
||||
|
||||
var file = FileAccess.open("res://UI/CybersMenuRandom.txt", FileAccess.READ)
|
||||
var content = file.get_as_text()
|
||||
loaded_frames = []
|
||||
for frame_string in content.split(","):
|
||||
if (frame_string == ""): continue
|
||||
var check_frame_split = frame_string.split()
|
||||
check_frame_split.reverse()
|
||||
var unpacked_frame = []
|
||||
for i in Stages.stages_info[currentStage]["bit_mapping"]:
|
||||
if ((check_frame_split[(i - 1) / 4].hex_to_int() & int(pow(2, ((i - 1) % 4)))) == int(pow(2, ((i - 1) % 4)))):
|
||||
unpacked_frame.push_back(true)
|
||||
else: unpacked_frame.push_back(false)
|
||||
loaded_frames.push_back(unpacked_frame)
|
||||
playing = true
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
if (playing):
|
||||
if (index >= loaded_frames.size()):
|
||||
index = 0
|
||||
return
|
||||
var j = 0
|
||||
for i in Stages.stages_info[currentStage]["bit_mapping"]:
|
||||
if (loaded_frames[index][j]):
|
||||
if (!prev_frame_held[j]):
|
||||
animatables_handles[j]._movement_in(Stages.stages_info[currentStage]["bit_mapping"][i]["movement"], in_flows[j])
|
||||
prev_frame_held[j] = true
|
||||
else:
|
||||
if (prev_frame_held[j]):
|
||||
animatables_handles[j]._movement_out(Stages.stages_info[currentStage]["bit_mapping"][i]["movement"], in_flows[j])
|
||||
prev_frame_held[j] = false
|
||||
j+=1
|
||||
index += 1
|
||||
if (index % 1800 == 0):
|
||||
cam_index += 1
|
||||
get_node(Stages.stages_info[currentStage]["scene_ref_base"] + "Angle " + str((cam_index % Stages.stages_info[currentStage]["camera_count"])+1)).current = true
|
Loading…
Add table
Add a link
Reference in a new issue