Эх сурвалжийг харах

Script updates and simplification

Aaron Franke 4 жил өмнө
parent
commit
e73af12f49

+ 48 - 58
2d/tween/main.gd

@@ -4,15 +4,13 @@ const trans_list = ["Linear", "Sine", "Quint", "Quart", "Quad", "Expo", "Elastic
 const eases_list = ["In", "Out", "InOut", "OutIn"]
 const eases_list = ["In", "Out", "InOut", "OutIn"]
 const modes_list = ["Move", "Color", "Scale", "Rotate", "Callback", "Follow", "Repeat", "Pause"]
 const modes_list = ["Move", "Color", "Scale", "Rotate", "Callback", "Follow", "Repeat", "Pause"]
 
 
-var state = {
-	trans = Tween.TRANS_LINEAR,
-	eases = Tween.EASE_IN,
-}
+var current_trans = Tween.TRANS_LINEAR
+var current_ease = Tween.EASE_IN
 
 
 onready var tween = $Tween
 onready var tween = $Tween
-onready var trans = $Controls/Transitions
-onready var eases = $Controls/Eases
-onready var modes = $Controls/Modes
+onready var trans_vbox = $Controls/Transitions
+onready var eases_vbox = $Controls/Eases
+onready var modes_vbox = $Controls/Modes
 onready var timeline = $Top/Timeline
 onready var timeline = $Top/Timeline
 onready var color_from_picker = $Controls/ColorFrom/ColorPicker
 onready var color_from_picker = $Controls/ColorFrom/ColorPicker
 onready var color_to_picker = $Controls/ColorTo/ColorPicker
 onready var color_to_picker = $Controls/ColorTo/ColorPicker
@@ -22,70 +20,59 @@ onready var follow = $Top/Area/Follow
 onready var follow_2 = $Top/Area/Follow2
 onready var follow_2 = $Top/Area/Follow2
 onready var size = $Top/Area.get_size()
 onready var size = $Top/Area.get_size()
 
 
-onready var move_mode = modes.get_node(@"Move")
-onready var color_mode = modes.get_node(@"Color")
-onready var scale_mode = modes.get_node(@"Scale")
-onready var rotate_mode = modes.get_node(@"Rotate")
-onready var callback_mode = modes.get_node(@"Callback")
-onready var follow_mode = modes.get_node(@"Follow")
-onready var repeat_mode = modes.get_node(@"Repeat")
-onready var paused_mode = modes.get_node(@"Pause")
+onready var move_mode = modes_vbox.get_node(@"Move")
+onready var color_mode = modes_vbox.get_node(@"Color")
+onready var scale_mode = modes_vbox.get_node(@"Scale")
+onready var rotate_mode = modes_vbox.get_node(@"Rotate")
+onready var callback_mode = modes_vbox.get_node(@"Callback")
+onready var follow_mode = modes_vbox.get_node(@"Follow")
+onready var repeat_mode = modes_vbox.get_node(@"Repeat")
+onready var paused_mode = modes_vbox.get_node(@"Pause")
 
 
 func _ready():
 func _ready():
 	for index in range(trans_list.size()):
 	for index in range(trans_list.size()):
-		trans.get_node(trans_list[index]).connect("pressed", self, "on_trans_changed", [trans_list[index], index])
+		trans_vbox.get_node(trans_list[index]).connect("pressed", self, "on_trans_changed", [index])
 
 
 	for index in range(eases_list.size()):
 	for index in range(eases_list.size()):
-		eases.get_node(eases_list[index]).connect("pressed", self, "on_eases_changed", [eases_list[index], index])
+		eases_vbox.get_node(eases_list[index]).connect("pressed", self, "on_eases_changed", [index])
 
 
 	for index in range(modes_list.size()):
 	for index in range(modes_list.size()):
-		modes.get_node(modes_list[index]).connect("pressed", self, "on_modes_changed", [modes_list[index]])
+		modes_vbox.get_node(modes_list[index]).connect("pressed", self, "on_modes_changed", [index])
 
 
 	color_from_picker.set_pick_color(Color.red)
 	color_from_picker.set_pick_color(Color.red)
-	color_from_picker.connect("color_changed", self, "on_color_changed")
-
 	color_to_picker.set_pick_color(Color.cyan)
 	color_to_picker.set_pick_color(Color.cyan)
-	color_to_picker.connect("color_changed", self, "on_color_changed")
 
 
-	for node in [trans, eases, modes]:
+	for node in [trans_vbox, eases_vbox, modes_vbox]:
 		node.get_child(1).set_pressed(true)
 		node.get_child(1).set_pressed(true)
-	modes.get_node(@"Repeat").set_pressed(true)
+	modes_vbox.get_node(@"Repeat").set_pressed(true)
 
 
 	reset_tween()
 	reset_tween()
 
 
 
 
-func on_trans_changed(trans_name, index):
-	for index in range(trans_list.size()):
-		var pressed = trans_list[index] == trans_name
-		var btn = trans.get_node(trans_list[index])
-
-		btn.set_pressed(pressed)
-		set_mouse_filter(Control.MOUSE_FILTER_IGNORE if pressed else Control.MOUSE_FILTER_PASS)
+func on_trans_changed(index):
+	for i in range(trans_list.size()):
+		var btn = trans_vbox.get_node(trans_list[i])
+		btn.set_pressed(i == index)
 
 
-	state.trans = index
+	current_trans = index
 	reset_tween()
 	reset_tween()
 
 
 
 
-func on_eases_changed(ease_name, index):
-	for index in range(eases_list.size()):
-		var pressed = eases_list[index] == ease_name
-		var btn = eases.get_node(eases_list[index])
-
-		btn.set_pressed(pressed)
-		set_mouse_filter(Control.MOUSE_FILTER_IGNORE if pressed else Control.MOUSE_FILTER_PASS)
+func on_eases_changed(index):
+	for i in range(eases_list.size()):
+		var btn = eases_vbox.get_node(eases_list[i])
+		btn.set_pressed(i == index)
 
 
-	state.eases = index
+	current_ease = index
 	reset_tween()
 	reset_tween()
 
 
 
 
-func on_modes_changed(mode_name):
-	if mode_name == "pause":
+func on_modes_changed(index):
+	if modes_list[index] == "Pause":
 		if paused_mode.is_pressed():
 		if paused_mode.is_pressed():
 			tween.stop_all()
 			tween.stop_all()
-			timeline.set_mouse_filter(Control.MOUSE_FILTER_PASS)
 		else:
 		else:
 			tween.resume_all()
 			tween.resume_all()
-			timeline.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
 	else:
 	else:
 		reset_tween()
 		reset_tween()
 
 
@@ -100,24 +87,30 @@ func reset_tween():
 	tween.remove_all()
 	tween.remove_all()
 
 
 	if move_mode.is_pressed():
 	if move_mode.is_pressed():
-		tween.interpolate_method(sprite, "set_position", Vector2(0, 0), Vector2(size.x, size.y), 2, state.trans, state.eases)
-		tween.interpolate_property(sprite, "position", Vector2(size.x, size.y), Vector2(0, 0), 2, state.trans, state.eases, 2)
+		# The first line moves from the top left to the bottom right, while
+		# the second line moves backwards afterwards (there is a delay of 2).
+		# These are different (_method vs _property) only for the sake of
+		# showcasing interpolation of both methods and properties.
+		# The syntax is (object, method/property name, from value, to value,
+		# duration, transition type, ease type, delay), last 3 optional.
+		tween.interpolate_method(sprite, "set_position", Vector2.ZERO, size, 2, current_trans, current_ease)
+		tween.interpolate_property(sprite, "position", size, Vector2.ZERO, 2, current_trans, current_ease, 2)
 
 
 	if color_mode.is_pressed():
 	if color_mode.is_pressed():
-		tween.interpolate_method(sprite, "set_modulate", color_from_picker.get_pick_color(), color_to_picker.get_pick_color(), 2, state.trans, state.eases)
-		tween.interpolate_property(sprite, "modulate", color_to_picker.get_pick_color(), color_from_picker.get_pick_color(), 2, state.trans, state.eases, 2)
+		tween.interpolate_method(sprite, "set_modulate", color_from_picker.get_pick_color(), color_to_picker.get_pick_color(), 2, current_trans, current_ease)
+		tween.interpolate_property(sprite, "modulate", color_to_picker.get_pick_color(), color_from_picker.get_pick_color(), 2, current_trans, current_ease, 2)
 	else:
 	else:
 		sprite.set_modulate(Color.white)
 		sprite.set_modulate(Color.white)
 
 
 	if scale_mode.is_pressed():
 	if scale_mode.is_pressed():
-		tween.interpolate_method(sprite, "set_scale", Vector2(0.5, 0.5), Vector2(1.5, 1.5), 2, state.trans, state.eases)
-		tween.interpolate_property(sprite, "scale", Vector2(1.5, 1.5), Vector2(0.5, 0.5), 2, state.trans, state.eases, 2)
+		tween.interpolate_method(sprite, "set_scale", Vector2(0.5, 0.5), Vector2(1.5, 1.5), 2, current_trans, current_ease)
+		tween.interpolate_property(sprite, "scale", Vector2(1.5, 1.5), Vector2(0.5, 0.5), 2, current_trans, current_ease, 2)
 	else:
 	else:
 		sprite.set_scale(Vector2.ONE)
 		sprite.set_scale(Vector2.ONE)
 
 
 	if rotate_mode.is_pressed():
 	if rotate_mode.is_pressed():
-		tween.interpolate_method(sprite, "set_rotation_degrees", 0, 360, 2, state.trans, state.eases)
-		tween.interpolate_property(sprite, "rotation_degrees", 360, 0, 2, state.trans, state.eases, 2)
+		tween.interpolate_method(sprite, "set_rotation_degrees", 0, 360, 2, current_trans, current_ease)
+		tween.interpolate_property(sprite, "rotation_degrees", 360, 0, 2, current_trans, current_ease, 2)
 
 
 	if callback_mode.is_pressed():
 	if callback_mode.is_pressed():
 		tween.interpolate_callback(self, 0.5, "on_callback", "0.5 seconds after")
 		tween.interpolate_callback(self, 0.5, "on_callback", "0.5 seconds after")
@@ -127,11 +120,11 @@ func reset_tween():
 		follow.show()
 		follow.show()
 		follow_2.show()
 		follow_2.show()
 
 
-		tween.follow_method(follow, "set_position", Vector2(0, size.y), sprite, "get_position", 2, state.trans, state.eases)
-		tween.targeting_method(follow, "set_position", sprite, "get_position", Vector2(0, size.y), 2, state.trans, state.eases, 2)
+		tween.follow_method(follow, "set_position", Vector2(0, size.y), sprite, "get_position", 2, current_trans, current_ease)
+		tween.targeting_method(follow, "set_position", sprite, "get_position", Vector2(0, size.y), 2, current_trans, current_ease, 2)
 
 
-		tween.targeting_property(follow_2, "position", sprite, "position", Vector2(size.x, 0), 2, state.trans, state.eases)
-		tween.follow_property(follow_2, "position", Vector2(size.x, 0), sprite, "position", 2, state.trans, state.eases, 2)
+		tween.targeting_property(follow_2, "position", sprite, "position", Vector2(size.x, 0), 2, current_trans, current_ease)
+		tween.follow_property(follow_2, "position", Vector2(size.x, 0), sprite, "position", 2, current_trans, current_ease, 2)
 	else:
 	else:
 		follow.hide()
 		follow.hide()
 		follow_2.hide()
 		follow_2.hide()
@@ -142,9 +135,6 @@ func reset_tween():
 
 
 	if paused_mode.is_pressed():
 	if paused_mode.is_pressed():
 		tween.stop_all()
 		tween.stop_all()
-		timeline.set_value(0)
-	else:
-		tween.resume_all()
 
 
 
 
 func _on_Tween_tween_step(_object, _key, elapsed, _value):
 func _on_Tween_tween_step(_object, _key, elapsed, _value):

+ 1 - 1
3d/README.md

@@ -4,4 +4,4 @@ These demos are all 3D, but otherwise do not have a common theme.
 
 
 Languages: All are GDScript
 Languages: All are GDScript
 
 
-Renderers: Truck Town and Physics Tests are GLES 2, the rest are GLES 3
+Renderers: Truck Town, Physics Tests, and Waypoints are GLES 2, the rest are GLES 3

+ 1 - 1
3d/ik/fps/example_player.gd

@@ -209,7 +209,7 @@ func process_movement(delta):
 # Mouse based camera movement
 # Mouse based camera movement
 func _input(event):
 func _input(event):
 
 
-	if event is InputEventMouseMotion && Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
+	if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
 
 
 		rotate_y(deg2rad(event.relative.x * MOUSE_SENSITIVITY * -1))
 		rotate_y(deg2rad(event.relative.x * MOUSE_SENSITIVITY * -1))
 		camera_holder.rotate_x(deg2rad(event.relative.y * MOUSE_SENSITIVITY))
 		camera_holder.rotate_x(deg2rad(event.relative.y * MOUSE_SENSITIVITY))

+ 2 - 2
loading/multiple_threads_loading/resource_queue.gd

@@ -84,7 +84,7 @@ func _wait_for_resource(res, path):
 		VisualServer.sync()
 		VisualServer.sync()
 		OS.delay_usec(16000) # Wait approximately 1 frame.
 		OS.delay_usec(16000) # Wait approximately 1 frame.
 		_lock("wait_for_resource")
 		_lock("wait_for_resource")
-		if queue.size() == 0 || queue[0] != res:
+		if queue.size() == 0 or queue[0] != res:
 			return pending[path]
 			return pending[path]
 		_unlock("wait_for_resource")
 		_unlock("wait_for_resource")
 
 
@@ -123,7 +123,7 @@ func thread_process():
 		var ret = res.poll()
 		var ret = res.poll()
 		_lock("process_check_queue")
 		_lock("process_check_queue")
 
 
-		if ret == ERR_FILE_EOF || ret != OK:
+		if ret == ERR_FILE_EOF or ret != OK:
 			var path = res.get_meta("path")
 			var path = res.get_meta("path")
 			if path in pending: # Else, it was already retrieved.
 			if path in pending: # Else, it was already retrieved.
 				pending[res.get_meta("path")] = res.get_resource()
 				pending[res.get_meta("path")] = res.get_resource()

+ 1 - 1
misc/2.5d/assets/player/player_math_25d.gd

@@ -30,7 +30,7 @@ func _horizontal_movement(delta):
 	var localX = Vector3.RIGHT
 	var localX = Vector3.RIGHT
 	var localZ = Vector3.BACK
 	var localZ = Vector3.BACK
 
 
-	if isometric_controls && is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x):
+	if isometric_controls and is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x):
 		localX = Vector3(0.70710678118, 0, -0.70710678118)
 		localX = Vector3(0.70710678118, 0, -0.70710678118)
 		localZ = Vector3(0.70710678118, 0, 0.70710678118)
 		localZ = Vector3(0.70710678118, 0, 0.70710678118)
 
 

+ 1 - 1
misc/2.5d/assets/player/player_sprite.gd

@@ -102,7 +102,7 @@ func _check_movement() -> bool:
 
 
 	# Check for isometric controls and add more to movement accordingly.
 	# Check for isometric controls and add more to movement accordingly.
 	# For efficiency, only check the X axis since this X axis value isn't used anywhere else.
 	# For efficiency, only check the X axis since this X axis value isn't used anywhere else.
-	if !_parent_math.isometric_controls && is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x):
+	if !_parent_math.isometric_controls and is_equal_approx(Node25D.SCALE * 0.86602540378, _parent_node25d.get_basis()[0].x):
 		if Input.is_action_pressed("move_right"):
 		if Input.is_action_pressed("move_right"):
 			z += 1
 			z += 1
 		if Input.is_action_pressed("move_left"):
 		if Input.is_action_pressed("move_left"):

+ 3 - 3
mobile/multitouch_cubes/GestureArea.gd

@@ -24,8 +24,8 @@ func _ready():
 
 
 func _gui_input(event):
 func _gui_input(event):
 	# We must start touching inside, but we can drag or unpress outside.
 	# We must start touching inside, but we can drag or unpress outside.
-#	if !(event is InputEventScreenDrag ||
-#		(event is InputEventScreenTouch && (!event.pressed || get_global_rect().has_point(event.position)))):
+#	if !(event is InputEventScreenDrag or
+#		(event is InputEventScreenTouch and (!event.pressed or get_global_rect().has_point(event.position)))):
 #		return
 #		return
 
 
 	var finger_count = base_state.size()
 	var finger_count = base_state.size()
@@ -75,7 +75,7 @@ func _gui_input(event):
 		# Two fingers => To pinch-zoom and rotate around Z.
 		# Two fingers => To pinch-zoom and rotate around Z.
 		# Accept unpress or drag.
 		# Accept unpress or drag.
 		if event is InputEventScreenTouch:
 		if event is InputEventScreenTouch:
-			if !event.pressed && base_state.has(event.index):
+			if !event.pressed and base_state.has(event.index):
 				# Some known touching finger released.
 				# Some known touching finger released.
 
 
 				# Remove released finger from the base state.
 				# Remove released finger from the base state.