Working on a modifier property set for merging

This commit is contained in:
Nitsud Yarg 2024-06-29 10:03:48 -07:00
parent 47bdf1728c
commit 38696b9398
3 changed files with 44 additions and 5 deletions

View File

@ -44,6 +44,11 @@ _global_script_classes=[ {
"language": "GDScript",
"path": "res://src/Level.gd"
}, {
"base": "Reference",
"class": "ModifierProperties",
"language": "GDScript",
"path": "res://src/state_modifier_properties.gd"
}, {
"base": "Node",
"class": "MovementComponent",
"language": "GDScript",
@ -87,6 +92,7 @@ _global_script_class_icons={
"Interactable": "",
"Interactable_Receiver": "",
"Level": "",
"ModifierProperties": "",
"MovementComponent": "",
"State": "",
"StateAnimatedActor": "",

View File

@ -14,10 +14,15 @@ enum TYPE {NONE,EXIT_ANIMATION, ANIMATION_SUFFIX, REPLACE_ANIMATION}
var debug_state: bool = false
## These should be the original properties set when the modifier is created.
# property changes can be applied over time but these are the instantiated values.
var modifier_properties: ModifierProperties
## Animation modifier variables
## The name of the animation that could be applied and starting frame
var animation_name: String
var starting_frame: int = 0
##TODO: Animation speed
## Modification Type
## if an animation is specified, the default behavior will be just to override
@ -64,13 +69,21 @@ var state_call_function: FuncRef
#
# return StateModifier.new()
#
#func merge_modifier(merging_mod: StateModifier) -> StateModifier:
# var new_modifier = StateModifier.new()
# new_modifier.ready(animation_name, modifier_type, timeout_seconds)
#
# return StateModifier.new()
func merge_modifier(merging_mod: ModifierProperties):
if merging_mod.modifier_type != TYPE.NONE:
print("Warning Merging modifier types that aren't set to 'none' is not supported!")
return
# Can't support timeouts or animation stuff right now.
#timeout_seconds = merging_mod.timeout_seconds
move_speed = merging_mod.move_speed
gravity = merging_mod.gravity
move_speed_modifier = merging_mod.move_speed_modifier
move_speed_modifier_decay = merging_mod.move_speed_modifier_decay
func get_modifier_properties() -> ModifierProperties:
return ModifierProperties.new( move_speed, gravity, move_speed_modifier, move_speed_modifier_decay)
func ready(modifier_name:String, anim_name:String = '', type = TYPE.NONE, timeout : float = 0, parent:Node = null, function_name : String = "") -> Timer:
# If somebody forgot to specify the type
if anim_name != '' and type == TYPE.NONE:
@ -79,6 +92,9 @@ func ready(modifier_name:String, anim_name:String = '', type = TYPE.NONE, timeou
modifier_type = type
# if parent != null and function_name != "":
# state_call_function = funcref(parent, function_name)
modifier_properties = ModifierProperties.new(0,0,0,0)
if timeout > 0:
state_timeout = Timer.new()
state_timeout.wait_time = timeout
@ -86,6 +102,7 @@ func ready(modifier_name:String, anim_name:String = '', type = TYPE.NONE, timeou
state_timeout.autostart = false
return state_timeout
#add_child(state_timeout)
#ModifierProperties.new()
return null

View File

@ -0,0 +1,16 @@
class_name ModifierProperties
extends Reference
var modifier_type: int = 0
#var timeout_seconds: float = 0.0
var move_speed: float = 0.0
var gravity:int = 0
var move_speed_modifier: float = 0.0
var move_speed_modifier_decay: float = 0.0
func _init( p_move_speed:float, p_gravity:int , p_move_speed_modifier:float, p_move_speed_modifier_decay:float):
#timeout_seconds = p_timeout_seconds
move_speed = p_move_speed
gravity = p_gravity
move_speed_modifier = p_move_speed_modifier
move_speed_modifier_decay = p_move_speed_modifier_decay