add DepthButton
This commit is contained in:
		
							parent
							
								
									e758168757
								
							
						
					
					
						commit
						47234f1bc1
					
				
					 9 changed files with 304 additions and 62 deletions
				
			
		|  | @ -1,4 +1,4 @@ | |||
| [gd_resource type="Theme" load_steps=7 format=2] | ||||
| [gd_resource type="Theme" load_steps=8 format=2] | ||||
| 
 | ||||
| [ext_resource path="res://assets/fonts/Montserrat-ExtraBolt-48.tres" type="DynamicFont" id=1] | ||||
| 
 | ||||
|  | @ -9,13 +9,16 @@ bg_color = Color( 0.12549, 0.235294, 0.337255, 1 ) | |||
| bg_color = Color( 0.12549, 0.235294, 0.337255, 1 ) | ||||
| 
 | ||||
| [sub_resource type="StyleBoxFlat" id=3] | ||||
| bg_color = Color( 0.0509804, 0.168627, 0.270588, 1 ) | ||||
| bg_color = Color( 0.12549, 0.235294, 0.337255, 1 ) | ||||
| 
 | ||||
| [sub_resource type="StyleBoxFlat" id=4] | ||||
| bg_color = Color( 1, 0.831373, 0.639216, 1 ) | ||||
| bg_color = Color( 0.0509804, 0.168627, 0.270588, 1 ) | ||||
| 
 | ||||
| [sub_resource type="StyleBoxFlat" id=5] | ||||
| bg_color = Color( 1, 0.831373, 0.639216, 1 ) | ||||
| 
 | ||||
| [sub_resource type="StyleBoxFlat" id=6] | ||||
| bg_color = Color( 1, 0.831373, 0.639216, 1 ) | ||||
| border_width_left = 4 | ||||
| border_width_top = 4 | ||||
| border_width_right = 4 | ||||
|  | @ -37,9 +40,9 @@ Button/colors/font_color_pressed = Color( 1, 0.92549, 0.839216, 1 ) | |||
| Button/constants/hseparation = 2 | ||||
| Button/fonts/font = null | ||||
| Button/styles/disabled = null | ||||
| Button/styles/focus = null | ||||
| Button/styles/hover = SubResource( 1 ) | ||||
| Button/styles/normal = SubResource( 2 ) | ||||
| Button/styles/pressed = SubResource( 3 ) | ||||
| Panel/styles/panel = SubResource( 4 ) | ||||
| PopupPanel/styles/panel = SubResource( 5 ) | ||||
| Button/styles/focus = SubResource( 1 ) | ||||
| Button/styles/hover = SubResource( 2 ) | ||||
| Button/styles/normal = SubResource( 3 ) | ||||
| Button/styles/pressed = SubResource( 4 ) | ||||
| Panel/styles/panel = SubResource( 5 ) | ||||
| PopupPanel/styles/panel = SubResource( 6 ) | ||||
|  |  | |||
|  | @ -9,6 +9,11 @@ | |||
| config_version=4 | ||||
| 
 | ||||
| _global_script_classes=[ { | ||||
| "base": "Control", | ||||
| "class": "DepthButton", | ||||
| "language": "GDScript", | ||||
| "path": "res://src/DepthButton.gd" | ||||
| }, { | ||||
| "base": "PopupPanel", | ||||
| "class": "NewGamePanel", | ||||
| "language": "GDScript", | ||||
|  | @ -25,6 +30,7 @@ _global_script_classes=[ { | |||
| "path": "res://src/Taquin.gd" | ||||
| } ] | ||||
| _global_script_class_icons={ | ||||
| "DepthButton": "", | ||||
| "NewGamePanel": "", | ||||
| "Piece": "", | ||||
| "Taquin": "" | ||||
|  | @ -37,15 +43,29 @@ run/main_scene="res://src/Main.tscn" | |||
| config/icon="res://icon.png" | ||||
| run/main_scene.mobile="res://src/MainMobile.tscn" | ||||
| 
 | ||||
| [autoload] | ||||
| 
 | ||||
| Styles="*res://src/Styles.gd" | ||||
| 
 | ||||
| [display] | ||||
| 
 | ||||
| window/size/resizable=false | ||||
| window/handheld/orientation.mobile="portrait" | ||||
| window/dpi/allow_hidpi=true | ||||
| window/handheld/orientation="portrait" | ||||
| window/size/width.mobile=600 | ||||
| window/size/height.mobile=1200 | ||||
| window/stretch/mode.mobile="2d" | ||||
| window/stretch/aspect.mobile="expand" | ||||
| 
 | ||||
| [filesystem] | ||||
| 
 | ||||
| import/open_asset_import/use_fbx=false | ||||
| 
 | ||||
| [gui] | ||||
| 
 | ||||
| theme/use_hidpi=true | ||||
| theme/custom="res://assets/taqin_theme.tres" | ||||
| 
 | ||||
| [input_devices] | ||||
| 
 | ||||
| pointing/emulate_touch_from_mouse=true | ||||
|  |  | |||
							
								
								
									
										110
									
								
								src/DepthButton.gd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								src/DepthButton.gd
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,110 @@ | |||
| tool | ||||
| class_name DepthButton | ||||
| extends Control | ||||
| 
 | ||||
| signal pressed() | ||||
| signal button_down() | ||||
| signal button_up() | ||||
| 
 | ||||
| export var text := "" | ||||
| export(Styles.CornerType) var corner_type = Styles.CornerType.SINGLE | ||||
| export var corner_radius := 10 | ||||
| export var depth := 10 | ||||
| export var toggle_mode := false | ||||
| export var group: ButtonGroup | ||||
| 
 | ||||
| var pressed setget set_pressed, is_pressed | ||||
| 
 | ||||
| var _pressed_depth := 4 | ||||
| var _toggled := false | ||||
| var _toggled_depth := _pressed_depth + 3 | ||||
| 
 | ||||
| onready var background := $Background | ||||
| onready var button: Button = $Button | ||||
| 
 | ||||
| func _ready(): | ||||
| 	assert(_toggled_depth > _pressed_depth) | ||||
| 	 | ||||
| 	button.text = text | ||||
| 	button.margin_bottom = -depth | ||||
| 	button.toggle_mode = toggle_mode | ||||
| 	button.group = group | ||||
| 	button.rect_size.y = rect_size.y - depth | ||||
| 
 | ||||
| 	# | ||||
| 	# Styles | ||||
| 	# | ||||
| 	var background_style := Styles.get_stylebox_flat(background.get_stylebox("panel", "panel"), "button_background", corner_type) | ||||
| 	background_style.set_bg_color(Color(1, 1, 1)) | ||||
| 	background.set('custom_styles/panel', background_style) | ||||
| 	match corner_type: | ||||
| 		Styles.CornerType.SINGLE: | ||||
| 			background_style.corner_radius_bottom_left = corner_radius | ||||
| 			background_style.corner_radius_bottom_right = corner_radius | ||||
| 		Styles.CornerType.LEFT: | ||||
| 			background_style.corner_radius_bottom_left = corner_radius | ||||
| 			background_style.corner_radius_bottom_right = 0 | ||||
| 		Styles.CornerType.MIDDLE: | ||||
| 			background_style.corner_radius_bottom_left = 0 | ||||
| 			background_style.corner_radius_bottom_right = 0 | ||||
| 		Styles.CornerType.RIGHT: | ||||
| 			background_style.corner_radius_bottom_left = 0 | ||||
| 			background_style.corner_radius_bottom_right = corner_radius | ||||
| 
 | ||||
| 
 | ||||
| 	for style_name in ["normal", "hover", "focus", "pressed"]: | ||||
| 		var original_style = button.get_stylebox(style_name) | ||||
| #		print_debug("style for ", style_name, ": ", original_style) | ||||
| 		var stylebox := Styles.get_stylebox_flat(original_style, style_name, corner_type) | ||||
| 		button.set("custom_styles/%s" % style_name, stylebox) | ||||
| 
 | ||||
| 		match corner_type: | ||||
| 			Styles.CornerType.SINGLE: | ||||
| 				stylebox.corner_radius_top_left = corner_radius | ||||
| 				stylebox.corner_radius_bottom_left = corner_radius | ||||
| 				stylebox.corner_radius_top_right = corner_radius | ||||
| 				stylebox.corner_radius_bottom_right = corner_radius | ||||
| 			Styles.CornerType.LEFT: | ||||
| 				stylebox.corner_radius_top_left = corner_radius | ||||
| 				stylebox.corner_radius_bottom_left = corner_radius | ||||
| 				stylebox.corner_radius_top_right = 0 | ||||
| 				stylebox.corner_radius_bottom_right = 0 | ||||
| 			Styles.CornerType.MIDDLE: | ||||
| 				stylebox.corner_radius_top_left = 0 | ||||
| 				stylebox.corner_radius_bottom_left = 0 | ||||
| 				stylebox.corner_radius_top_right = 0 | ||||
| 				stylebox.corner_radius_bottom_right = 0 | ||||
| 			Styles.CornerType.RIGHT: | ||||
| 				stylebox.corner_radius_top_left = 0 | ||||
| 				stylebox.corner_radius_bottom_left = 0 | ||||
| 				stylebox.corner_radius_top_right = corner_radius | ||||
| 				stylebox.corner_radius_bottom_right = corner_radius | ||||
| 
 | ||||
| func is_pressed() -> bool: | ||||
| 	return button.is_pressed() | ||||
| 
 | ||||
| func set_pressed(value: bool) -> void: | ||||
| 	button.set_pressed(value) | ||||
| 
 | ||||
| # | ||||
| # Signals | ||||
| # | ||||
| func _on_Button_button_down(): | ||||
| 	button.rect_position.y += depth - _pressed_depth | ||||
| 	emit_signal("button_down") | ||||
| 
 | ||||
| func _on_Button_button_up(): | ||||
| 	button.rect_position.y -= depth - _pressed_depth | ||||
| 	emit_signal("button_up") | ||||
| 
 | ||||
| func _on_Button_toggled(button_pressed): | ||||
| 	var delta = depth - _toggled_depth | ||||
| 	if button_pressed: # off -> on | ||||
| 		button.rect_position.y += depth - _toggled_depth | ||||
| 	else: # on -> off | ||||
| 		button.rect_position.y -= depth - _toggled_depth | ||||
| 
 | ||||
| 	_toggled = button_pressed | ||||
| 
 | ||||
| func _on_Button_pressed(): | ||||
| 	emit_signal("pressed") | ||||
							
								
								
									
										34
									
								
								src/DepthButton.tscn
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/DepthButton.tscn
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| [gd_scene load_steps=3 format=2] | ||||
| 
 | ||||
| [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=1] | ||||
| [ext_resource path="res://src/DepthButton.gd" type="Script" id=2] | ||||
| 
 | ||||
| [node name="DepthButton" type="Control"] | ||||
| anchor_right = 1.0 | ||||
| anchor_bottom = 1.0 | ||||
| margin_right = -734.0 | ||||
| margin_bottom = -464.0 | ||||
| theme = ExtResource( 1 ) | ||||
| script = ExtResource( 2 ) | ||||
| __meta__ = { | ||||
| "_edit_use_anchors_": false | ||||
| } | ||||
| text = "Press Me" | ||||
| 
 | ||||
| [node name="Background" type="Panel" parent="."] | ||||
| anchor_top = 0.5 | ||||
| anchor_right = 1.0 | ||||
| anchor_bottom = 1.0 | ||||
| 
 | ||||
| [node name="Button" type="Button" parent="."] | ||||
| anchor_right = 1.0 | ||||
| anchor_bottom = 1.0 | ||||
| margin_bottom = -10.0 | ||||
| text = "Press Me" | ||||
| __meta__ = { | ||||
| "_edit_use_anchors_": false | ||||
| } | ||||
| [connection signal="button_down" from="Button" to="." method="_on_Button_button_down"] | ||||
| [connection signal="button_up" from="Button" to="." method="_on_Button_button_up"] | ||||
| [connection signal="pressed" from="Button" to="." method="_on_Button_pressed"] | ||||
| [connection signal="toggled" from="Button" to="." method="_on_Button_toggled"] | ||||
|  | @ -65,7 +65,7 @@ func _on_New_game_pressed(): | |||
| 	$NewGamePanel.popup_centered_ratio($NewGamePanel.window_scale_factor) | ||||
| 
 | ||||
| func _on_NewGamePanel_about_to_show(): | ||||
| 	$HSplitContainer/Taquin.set_process_input(false) | ||||
| 	taquin.set_process_input(false) | ||||
| 
 | ||||
| func _on_NewGamePanel_popup_hide(): | ||||
| 	$HSplitContainer/Taquin.set_process_input(true) | ||||
| 	taquin.set_process_input(true) | ||||
|  |  | |||
|  | @ -1,8 +1,9 @@ | |||
| [gd_scene load_steps=5 format=2] | ||||
| [gd_scene load_steps=6 format=2] | ||||
| 
 | ||||
| [ext_resource path="res://src/Main.gd" type="Script" id=1] | ||||
| [ext_resource path="res://src/Taquin.tscn" type="PackedScene" id=2] | ||||
| [ext_resource path="res://src/NewGamePanel.tscn" type="PackedScene" id=3] | ||||
| [ext_resource path="res://src/DepthButton.tscn" type="PackedScene" id=4] | ||||
| [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=5] | ||||
| 
 | ||||
| [node name="Main" type="Control"] | ||||
|  | @ -42,30 +43,35 @@ anchor_bottom = 0.0 | |||
| margin_right = 540.0 | ||||
| margin_bottom = 560.0 | ||||
| 
 | ||||
| [node name="VSplitContainer" type="VBoxContainer" parent="HSplitContainer"] | ||||
| margin_left = 548.0 | ||||
| [node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"] | ||||
| margin_left = 556.0 | ||||
| margin_right = 984.0 | ||||
| margin_bottom = 560.0 | ||||
| alignment = 1 | ||||
| 
 | ||||
| [node name="New game" type="Button" parent="HSplitContainer/VSplitContainer"] | ||||
| margin_top = 233.0 | ||||
| margin_right = 436.0 | ||||
| margin_bottom = 278.0 | ||||
| text = "NEW GAME" | ||||
| [node name="New Game" parent="HSplitContainer/VBoxContainer" instance=ExtResource( 4 )] | ||||
| anchor_right = 0.0 | ||||
| anchor_bottom = 0.0 | ||||
| margin_top = 206.0 | ||||
| margin_right = 428.0 | ||||
| margin_bottom = 276.0 | ||||
| rect_min_size = Vector2( 0, 70 ) | ||||
| text = "New Game" | ||||
| 
 | ||||
| [node name="Hints" type="Button" parent="HSplitContainer/VSplitContainer"] | ||||
| margin_top = 282.0 | ||||
| margin_right = 436.0 | ||||
| margin_bottom = 327.0 | ||||
| text = "HINTS" | ||||
| [node name="Hints" parent="HSplitContainer/VBoxContainer" instance=ExtResource( 4 )] | ||||
| anchor_right = 0.0 | ||||
| anchor_bottom = 0.0 | ||||
| margin_top = 284.0 | ||||
| margin_right = 428.0 | ||||
| margin_bottom = 354.0 | ||||
| rect_min_size = Vector2( 0, 70 ) | ||||
| text = "Hints" | ||||
| 
 | ||||
| [node name="NewGamePanel" parent="." instance=ExtResource( 3 )] | ||||
| window_scale_factor = 0.9 | ||||
| [connection signal="state_changed" from="HSplitContainer/Taquin" to="." method="_on_Taquin_state_changed"] | ||||
| [connection signal="pressed" from="HSplitContainer/VSplitContainer/New game" to="." method="_on_New_game_pressed"] | ||||
| [connection signal="button_down" from="HSplitContainer/VSplitContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_down"] | ||||
| [connection signal="button_up" from="HSplitContainer/VSplitContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_up"] | ||||
| [connection signal="pressed" from="HSplitContainer/VBoxContainer/New Game" to="." method="_on_New_game_pressed"] | ||||
| [connection signal="button_down" from="HSplitContainer/VBoxContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_down"] | ||||
| [connection signal="button_up" from="HSplitContainer/VBoxContainer/Hints" to="HSplitContainer/Taquin" method="_on_Hints_button_up"] | ||||
| [connection signal="about_to_show" from="NewGamePanel" to="." method="_on_NewGamePanel_about_to_show"] | ||||
| [connection signal="popup_hide" from="NewGamePanel" to="." method="_on_NewGamePanel_popup_hide"] | ||||
| [connection signal="start_triggered" from="NewGamePanel" to="HSplitContainer/Taquin" method="_on_NewGamePanel_start_triggered"] | ||||
|  |  | |||
|  | @ -15,6 +15,9 @@ var fade_scale_factor = 0.9 | |||
| onready var popup = $"." | ||||
| onready var panel = $Panel | ||||
| onready var tween = $Tween | ||||
| onready var easy_button = $Panel/Difficulty/Easy | ||||
| onready var normal_button = $Panel/Difficulty/Normal | ||||
| onready var hard_button = $Panel/Difficulty/Hard | ||||
| 
 | ||||
| func _init(): | ||||
| 	var err = preferences.load(pref_path) | ||||
|  | @ -45,11 +48,11 @@ func _on_Cancel_pressed(): | |||
| 	fade_out() | ||||
| 
 | ||||
| func _on_Start_pressed(): | ||||
| 	if $Panel/HBoxContainer/Easy.pressed: | ||||
| 	if easy_button.pressed: | ||||
| 		preferences.set_value("game", "difficulty", "easy") | ||||
| 	if $Panel/HBoxContainer/Normal.pressed: | ||||
| 	if normal_button.pressed: | ||||
| 		preferences.set_value("game", "difficulty", "normal") | ||||
| 	if $Panel/HBoxContainer/Hard.pressed: | ||||
| 	if hard_button.pressed: | ||||
| 		preferences.set_value("game", "difficulty", "hard") | ||||
| 
 | ||||
| 	preferences.save(pref_path) | ||||
|  | @ -58,21 +61,10 @@ func _on_Start_pressed(): | |||
| 	fade_out() | ||||
| 
 | ||||
| func _on_NewGamePanel_about_to_show(): | ||||
| 	$Panel/HBoxContainer/Easy.pressed = false | ||||
| 	$Panel/HBoxContainer/Normal.pressed = false | ||||
| 	$Panel/HBoxContainer/Hard.pressed = false | ||||
| 
 | ||||
| 	var difficulty = preferences.get_value("game", "difficulty", "normal") | ||||
| 	match difficulty: | ||||
| 		"easy": | ||||
| 			$Panel/HBoxContainer/Easy.pressed = true | ||||
| 		"normal": | ||||
| 			$Panel/HBoxContainer/Normal.pressed = true | ||||
| 		"hard": | ||||
| 			$Panel/HBoxContainer/Hard.pressed = true | ||||
| 		_: | ||||
| 			assert("Invalid value") | ||||
| 			$Panel/HBoxContainer/Normal.pressed = true | ||||
| 	easy_button.pressed = difficulty == "easy" | ||||
| 	normal_button.pressed = difficulty == "normal" | ||||
| 	hard_button.pressed = difficulty == "hard" | ||||
| 
 | ||||
| 	$Panel/Start.grab_focus() | ||||
| 
 | ||||
|  | @ -83,4 +75,3 @@ func _on_NewGamePanel_about_to_show(): | |||
| 	tween.interpolate_property(self, "rect_position", scaled_center_position, original_position, fade_duration, Tween.TRANS_LINEAR, Tween.EASE_IN) | ||||
| 	tween.interpolate_property(self, "modulate:a", 0.0, 1.0, fade_duration, Tween.TRANS_LINEAR, Tween.EASE_IN) | ||||
| 	tween.start() | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,8 +1,16 @@ | |||
| [gd_scene load_steps=4 format=2] | ||||
| [gd_scene load_steps=6 format=2] | ||||
| 
 | ||||
| [ext_resource path="res://assets/taqin_theme.tres" type="Theme" id=1] | ||||
| [ext_resource path="res://src/difficulty_buttongroup.tres" type="ButtonGroup" id=2] | ||||
| [ext_resource path="res://src/NewGamePanel.gd" type="Script" id=3] | ||||
| [ext_resource path="res://src/DepthButton.tscn" type="PackedScene" id=4] | ||||
| 
 | ||||
| [sub_resource type="StyleBoxFlat" id=1] | ||||
| bg_color = Color( 1, 0.831373, 0.639216, 1 ) | ||||
| corner_radius_top_left = 20 | ||||
| corner_radius_top_right = 20 | ||||
| corner_radius_bottom_right = 20 | ||||
| corner_radius_bottom_left = 20 | ||||
| 
 | ||||
| [node name="NewGamePanel" type="PopupPanel"] | ||||
| anchor_right = 1.0 | ||||
|  | @ -21,11 +29,13 @@ margin_left = 4.0 | |||
| margin_top = 4.0 | ||||
| margin_right = -4.0 | ||||
| margin_bottom = -4.0 | ||||
| custom_styles/panel = SubResource( 1 ) | ||||
| __meta__ = { | ||||
| "_edit_use_anchors_": false | ||||
| } | ||||
| 
 | ||||
| [node name="HBoxContainer" type="HBoxContainer" parent="Panel"] | ||||
| visible = false | ||||
| anchor_left = 0.5 | ||||
| anchor_right = 0.5 | ||||
| margin_left = -304.0 | ||||
|  | @ -46,8 +56,8 @@ group = ExtResource( 2 ) | |||
| text = "Easy" | ||||
| 
 | ||||
| [node name="Normal" type="Button" parent="Panel/HBoxContainer"] | ||||
| margin_left = 204.0 | ||||
| margin_right = 404.0 | ||||
| margin_left = 208.0 | ||||
| margin_right = 408.0 | ||||
| margin_bottom = 70.0 | ||||
| rect_min_size = Vector2( 200, 70 ) | ||||
| toggle_mode = true | ||||
|  | @ -55,29 +65,68 @@ group = ExtResource( 2 ) | |||
| text = "Normal" | ||||
| 
 | ||||
| [node name="Hard" type="Button" parent="Panel/HBoxContainer"] | ||||
| margin_left = 408.0 | ||||
| margin_right = 608.0 | ||||
| margin_left = 416.0 | ||||
| margin_right = 616.0 | ||||
| margin_bottom = 70.0 | ||||
| rect_min_size = Vector2( 200, 70 ) | ||||
| toggle_mode = true | ||||
| group = ExtResource( 2 ) | ||||
| text = "Hard" | ||||
| 
 | ||||
| [node name="Start" type="Button" parent="Panel"] | ||||
| anchor_left = 1.0 | ||||
| anchor_top = 1.0 | ||||
| [node name="Difficulty" type="HBoxContainer" parent="Panel"] | ||||
| anchor_right = 1.0 | ||||
| anchor_bottom = 1.0 | ||||
| margin_left = -220.0 | ||||
| margin_top = -90.0 | ||||
| margin_right = -20.0 | ||||
| margin_bottom = -20.0 | ||||
| rect_min_size = Vector2( 200, 70 ) | ||||
| text = "Start" | ||||
| margin_top = 20.0 | ||||
| rect_min_size = Vector2( 0, 70 ) | ||||
| alignment = 1 | ||||
| __meta__ = { | ||||
| "_edit_use_anchors_": false | ||||
| } | ||||
| 
 | ||||
| [node name="Easy" parent="Panel/Difficulty" instance=ExtResource( 4 )] | ||||
| anchor_right = 0.0 | ||||
| anchor_bottom = 0.0 | ||||
| margin_left = 200.0 | ||||
| margin_right = 400.0 | ||||
| margin_bottom = 80.0 | ||||
| rect_min_size = Vector2( 200, 80 ) | ||||
| text = "Easy" | ||||
| corner_type = 1 | ||||
| toggle_mode = true | ||||
| group = ExtResource( 2 ) | ||||
| 
 | ||||
| [node name="Normal" parent="Panel/Difficulty" instance=ExtResource( 4 )] | ||||
| anchor_right = 0.0 | ||||
| anchor_bottom = 0.0 | ||||
| margin_left = 408.0 | ||||
| margin_right = 608.0 | ||||
| margin_bottom = 80.0 | ||||
| rect_min_size = Vector2( 200, 80 ) | ||||
| text = "Normal" | ||||
| corner_type = 2 | ||||
| toggle_mode = true | ||||
| group = ExtResource( 2 ) | ||||
| 
 | ||||
| [node name="Hard" parent="Panel/Difficulty" instance=ExtResource( 4 )] | ||||
| anchor_right = 0.0 | ||||
| anchor_bottom = 0.0 | ||||
| margin_left = 616.0 | ||||
| margin_right = 816.0 | ||||
| margin_bottom = 80.0 | ||||
| rect_min_size = Vector2( 200, 80 ) | ||||
| text = "Hard" | ||||
| corner_type = 3 | ||||
| toggle_mode = true | ||||
| group = ExtResource( 2 ) | ||||
| 
 | ||||
| [node name="Start" parent="Panel" instance=ExtResource( 4 )] | ||||
| anchor_left = 1.0 | ||||
| anchor_top = 1.0 | ||||
| margin_left = -235.0 | ||||
| margin_top = -138.0 | ||||
| margin_right = -20.0 | ||||
| margin_bottom = -20.0 | ||||
| text = "Start" | ||||
| 
 | ||||
| [node name="Cancel" type="Button" parent="Panel"] | ||||
| anchor_top = 1.0 | ||||
| anchor_bottom = 1.0 | ||||
|  | @ -88,6 +137,9 @@ margin_bottom = -20.0 | |||
| rect_min_size = Vector2( 200, 70 ) | ||||
| text = "Cancel" | ||||
| flat = true | ||||
| __meta__ = { | ||||
| "_edit_use_anchors_": false | ||||
| } | ||||
| 
 | ||||
| [node name="Tween" type="Tween" parent="."] | ||||
| [connection signal="about_to_show" from="." to="." method="_on_NewGamePanel_about_to_show"] | ||||
|  |  | |||
							
								
								
									
										26
									
								
								src/Styles.gd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/Styles.gd
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| extends Node | ||||
| 
 | ||||
| enum CornerType { | ||||
| 	SINGLE, | ||||
| 	LEFT, | ||||
| 	MIDDLE, | ||||
| 	RIGHT | ||||
| } | ||||
| 
 | ||||
| var _rounded_styles = {} | ||||
| 
 | ||||
| func _ready(): | ||||
| 	pass # Replace with function body. | ||||
| 
 | ||||
| func get_key(name: String, corner_type) -> String: | ||||
| 	return "%s_%s" % [name, CornerType.keys()[corner_type]] | ||||
| 
 | ||||
| func get_stylebox_flat(original: StyleBoxFlat, name: String, corner_type) -> StyleBoxFlat: | ||||
| 	var key = get_key(name, corner_type) | ||||
| 	if _rounded_styles.has(key): | ||||
| 		return _rounded_styles[key] | ||||
| 
 | ||||
| 	if original != null: | ||||
| 		return original.duplicate() as StyleBoxFlat | ||||
| 
 | ||||
| 	return StyleBoxFlat.new() | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue