Here is a list of APIs used to access Action Game Maker classes in GDScript.
ObjectVariable/Switch and ProjectVariable/Switch APIs
Access Object Variables(VariableSettings Node)
Get variable data: $VariableSettings.get_value("VariableDataName")
Set variable data: $VaribleSettings.set_value(“VariableName”, Value)
Check for the existence of variables data: $VariableSettings.has_value("VariableDataName")
Get VariableSettings node:$GameObject.get_variable_settings()
Access Object Switches(SwitchSettings Node)
Get switch data: $SwitchSettings.get_value("SwitchDataName")
Set switch data: $SwitchSettings.set_value(“SwitchName”, True / False)
Check for the existence of switch data: $SwitchSettings.has_value(“SwitchDataName”)
Get SwitchSettings node: $GameObject.get_switch_settings()
Read only Object variables/switches
The following ACTION GAME MAKER variables/switches are read-only values and cannot be modified via methods.
Switches:
is_locked, is_touching_portal
Variables:
object_id, stayed_area_id, visible_direction, x_speed, y_speed, player_id, controller_id, taken_damage
Access Project Variables
Get Project Variable: AGMakerManager.get_project_database_variable(“record_name”)
Get Project Variable by record index: get_project_database_variable_by_idx
Set Project Database variable: AGMakerManager.update_project_database_variable(“VariableName”, variable)
Set Project Variables by record index: AGMakerManager.update_project_database_variable_by_idx
Get Project Variables Record Count: AGMakerManager.get_project_database_variable_record_max
AccesProject Switches
Get Project Switch: AGMakerManager.get_project_database_switch(“record_name”)
Set Project Database Switch: AGMakerManager.update_project_database_switch(“SwitchName”, True / False)
Get Project Switch by record Index: AGMakerManager.get_project_database_switch_by_idx
Set Project Switch by record Index: AGMakerManager.update_project_database_switch_by_idx
Get Project Switches Record Count: AGMakerManager.get_project_database_switch_record_max
Database APIs
Access User Database
Get User Database: AGMakerManager.get_project_database_plain(“database_name”, “record_name”, “column_name”)
Get User Database by Record Index : get_project_database_plain_by_idx
Set User Database variables: AGMakerManager.update_project_database_plain(“DatabaseName”, “RecordName”, “CplumnName”, variable)
Set User Database variables by Record Index: AGMakerManager.update_project_database_plain_by_idx
Get User Database Record Count: AGMakerManager.get_project_database_plain_record_max
Access Other Database
Get Sound Database: AGMakerManager.get_project_database_sound(“record_name”, “column_name”)
Methods to Get Data by Record Index
Equipment Type: AGMakerManager.get_project_database_equipment_type_by_idx
Attribute Type: AGMakerManager.get_project_database_attribute_type_by_idx
User Made Type: AGMakerManager.get_project_database_custom_type_by_idx
Audio Database: AGMakerManager.get_project_database_sound_by_idx
Methods to Get Record Count
Equipment Type: AGMakerManager.get_project_database_equipment_type_record_max
Attribute Type: AGMakerManager.get_project_database_attribute_type_record_max
User Made Type: AGMakerManager.get_project_database_custom_type_record_max
Audio Database: AGMakerManager.get_project_database_sound_record_max
Camera APIs
Generate CameraTargetSettings
var camera_target_settings = CameraTargetSettings.new()
camera_target_settings.\_target_id = “Any ID”
camera_target_settings.\_is_active_target = true
camera_target_settings.\_visible_size = Vector2(100, 100)
add_child(camera_target_settings)
camera_target_settings.position = Vector2( 100, 100)
register CameraTargetSettings to ZoomCamera2D
$ZoomCamera2D.regist_target(camera_target_settings.get_instance_id())
unregister CameraTargetSettings from ZoomCamera2D
$ZoomCamera2D.unregist_target(camera_target_settings.get_instance_id())
FaceDirectionSettings APIs
set_face_direction(angle, flip_flag): First argument: face direction angle, Second argument: whether to flipget_face_direction(): Returns the current face direction angle
Other AGMakerManager Methods
Register Game Object generated by GDScript to AGMakerManager
AGMakerManager.regist_game_object(“TargetNode”)
- AGMakerManager is a system that manages various aspects of ACTION GAME MAKER. Since it is also responsible for tracking the lifecycle of GameObjects, any objects created outside of AGMakerManager must be registered with it manually.
Scene transitions
get_current_game_scene()
- Returns the currently running GameScene. The return type is GameScene.
Sample Code:
func _ready() -> void:
var game_scene = AGMakerManager.get_current_game_scene()
print("*** get current scene = ", game_scene.name)
pass
Signals
This section lists the signals emitted during various operations in ACTION GAME MAKER.
GameObject
Save/Load Signals
When a save is performed: on_saved(int slot, Object object)
When a load is performed: on_loaded(int slot, Object object)
AGMakerManager
Save/Load Signals
When a save is performed: on_saved(int slot)
When a load is performed: on_loaded(int slot)
Scene Transition Related Signals
game_scene_about_to_change(current: Object)
This signal is emitted right before a scene transition is executed.
The parameter current receives the GameScene before the transition.
game_scene_changed(current: Object)
This signal is emitted after the scene transition has completed.
The parameter current receives the GameScene after the transition.
Note: The parameter type is Object due to Godot’s specification.
Please cast it to GameScene or Node2D on the user side when using it.
Sample Code:
func _ready() -> void:
# Connect to the signal emitted before the scene transition
AGMakerManager.game_scene_about_to_change.connect(_on_before_change_scene)
# Connect to the signal emitted after the scene transition
AGMakerManager.game_scene_changed.connect(_on_after_change_scene)
pass
func _on_before_change_scene(current_scene: GameScene):
print("*** on before change scene = ", current_scene.name)
pass
func _on_after_change_scene(current_scene: GameScene):
print("*** on after change scene = ", current_scene.name)
pass