|
|
|
|
; Engine configuration file.
|
|
|
|
|
; It's best edited using the editor UI and not directly,
|
|
|
|
|
; since the parameters that go here are not all obvious.
|
|
|
|
|
;
|
|
|
|
|
; Format:
|
|
|
|
|
; [section] ; section goes between []
|
|
|
|
|
; param=value ; assign values to parameters
|
|
|
|
|
|
|
|
|
|
config_version=5
|
|
|
|
|
|
|
|
|
|
[application]
|
|
|
|
|
|
|
|
|
|
config/name="TemplateOnlineMultiplayer"
|
|
|
|
|
config/description="This is a foundational template for a 3D multiplayer game, developed in Godot Engine."
|
|
|
|
|
config/tags=PackedStringArray("3d", "network")
|
|
|
|
|
run/main_scene="res://level/scenes/level.tscn"
|
|
|
|
|
config/features=PackedStringArray("4.5", "Forward Plus")
|
|
|
|
|
config/icon="res://icon.png"
|
|
|
|
|
|
|
|
|
|
[autoload]
|
|
|
|
|
|
|
|
|
|
Network="*res://level/scripts/network.gd"
|
Add comprehensive UI system with action bar, unit frame, and character sheet
- Created UI system in level/ui/ folder
- Action bar with 12 ability slots (Attack, Block, Dash, Jump + 8 expansion slots)
- Unit frame showing player portrait with health bar
- Character sheet/spellbook (toggle with Tab) displaying stats, weapons, and abilities
- Tab hint indicator showing how to open character sheet
- Custom theme with golden borders and dark backgrounds
- UI Components:
- HUD Manager autoload handles all UI initialization and player connections
- Ability buttons with cooldown overlay and keybind display
- Real-time health and cooldown tracking via signals
- Scrollable character sheet with two-page layout
- Player Integration:
- Added UI signals: dash_cooldown_updated, attack_cooldown_updated, weapon_equipped_changed
- Mouse capture system (Escape to toggle, click to recapture)
- Synced attack cooldown from weapons to player for UI tracking
- Updated level.gd to connect local player to HUD Manager
- Updated CLAUDE.md with git commit guidelines
3 weeks ago
|
|
|
HUD="*res://level/ui/scripts/hud_manager.gd"
|
|
|
|
|
|
|
|
|
|
[display]
|
|
|
|
|
|
|
|
|
|
window/size/viewport_width=1280
|
|
|
|
|
window/size/viewport_height=720
|
|
|
|
|
|
|
|
|
|
[input]
|
|
|
|
|
|
|
|
|
|
move_left={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
move_right={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
move_forward={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
move_backward={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
jump={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
shift={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
quit={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
toggle_chat={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
attack={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
dash={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
pickup={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
block={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
Add comprehensive UI system with action bar, unit frame, and character sheet
- Created UI system in level/ui/ folder
- Action bar with 12 ability slots (Attack, Block, Dash, Jump + 8 expansion slots)
- Unit frame showing player portrait with health bar
- Character sheet/spellbook (toggle with Tab) displaying stats, weapons, and abilities
- Tab hint indicator showing how to open character sheet
- Custom theme with golden borders and dark backgrounds
- UI Components:
- HUD Manager autoload handles all UI initialization and player connections
- Ability buttons with cooldown overlay and keybind display
- Real-time health and cooldown tracking via signals
- Scrollable character sheet with two-page layout
- Player Integration:
- Added UI signals: dash_cooldown_updated, attack_cooldown_updated, weapon_equipped_changed
- Mouse capture system (Escape to toggle, click to recapture)
- Synced attack cooldown from weapons to player for UI tracking
- Updated level.gd to connect local player to HUD Manager
- Updated CLAUDE.md with git commit guidelines
3 weeks ago
|
|
|
toggle_character_sheet={
|
|
|
|
|
"deadzone": 0.5,
|
|
|
|
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[layer_names]
|
|
|
|
|
|
|
|
|
|
3d_physics/layer_1="player"
|
|
|
|
|
3d_physics/layer_2="world"
|
|
|
|
|
3d_physics/layer_3="weapon"
|
|
|
|
|
3d_physics/layer_4="hitbox"
|
|
|
|
|
3d_physics/layer_5="hurtbox"
|