Added input mapping; Begin multiplayer work; added steam integration
This commit is contained in:
22
splunk/addons/godotsteam/godotsteam.gdextension
Normal file
22
splunk/addons/godotsteam/godotsteam.gdextension
Normal file
@@ -0,0 +1,22 @@
|
||||
[configuration]
|
||||
entry_symbol = "godotsteam_init"
|
||||
compatibility_minimum = "4.4"
|
||||
|
||||
[libraries]
|
||||
macos.debug = "res://addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework"
|
||||
macos.release = "res://addons/godotsteam/osx/libgodotsteam.macos.template_release.framework"
|
||||
windows.debug.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll"
|
||||
windows.debug.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll"
|
||||
windows.release.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll"
|
||||
windows.release.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll"
|
||||
linux.debug.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so"
|
||||
linux.debug.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so"
|
||||
linux.release.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so"
|
||||
linux.release.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so"
|
||||
|
||||
[dependencies]
|
||||
macos.universal = { "res://addons/godotsteam/osx/libsteam_api.dylib": "" }
|
||||
windows.x86_64 = { "res://addons/godotsteam/win64/steam_api64.dll": "" }
|
||||
windows.x86_32 = { "res://addons/godotsteam/win32/steam_api.dll": "" }
|
||||
linux.x86_64 = { "res://addons/godotsteam/linux64/libsteam_api.so": "" }
|
||||
linux.x86_32 = { "res://addons/godotsteam/linux32/libsteam_api.so": "" }
|
||||
1
splunk/addons/godotsteam/godotsteam.gdextension.uid
Normal file
1
splunk/addons/godotsteam/godotsteam.gdextension.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b3p0yh6q3ajpd
|
||||
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/godotsteam/linux32/libsteam_api.so
Normal file
BIN
splunk/addons/godotsteam/linux32/libsteam_api.so
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/godotsteam/linux64/libsteam_api.so
Normal file
BIN
splunk/addons/godotsteam/linux64/libsteam_api.so
Normal file
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>libgodotsteam.debug</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.godotsteam.godotsteam</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>libgodotsteam.debug</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.15</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>MacOSX</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>4.15</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.12</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>libgodotsteam</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.godotsteam.godotsteam</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>libgodotsteam</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.15</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>MacOSX</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>4.15</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.12</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/godotsteam/osx/libsteam_api.dylib
Normal file
BIN
splunk/addons/godotsteam/osx/libsteam_api.dylib
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/godotsteam/win32/steam_api.dll
Normal file
BIN
splunk/addons/godotsteam/win32/steam_api.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/godotsteam/win64/steam_api64.dll
Normal file
BIN
splunk/addons/godotsteam/win64/steam_api64.dll
Normal file
Binary file not shown.
1
splunk/addons/steam-multiplayer-peer/.gitignore
vendored
Normal file
1
splunk/addons/steam-multiplayer-peer/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
~*.dll
|
||||
21
splunk/addons/steam-multiplayer-peer/LICENSE
Normal file
21
splunk/addons/steam-multiplayer-peer/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 Expresso Bits
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
87
splunk/addons/steam-multiplayer-peer/README.md
Normal file
87
splunk/addons/steam-multiplayer-peer/README.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# <img src="https://raw.githubusercontent.com/expressobits/steam-multiplayer-peer/main/icon.png" alt= “icon” width="32" height="32"> Welcome to Expresso Steam Multiplayer Peer 👋
|
||||

|
||||
[](todo-doc)
|
||||
[](MIT)
|
||||
|
||||
See demos in:
|
||||
Github: [Branch demos](https://github.com/expressobits/steam-multiplayer-peer/tree/demos)
|
||||
Godot Asset Lib: https://godotengine.org/asset-library/asset/2258
|
||||
|
||||
## Tutorial and Learnings (How to use)
|
||||
|
||||
See post of Michael Macha
|
||||
https://michaelmacha.wordpress.com/2024/04/08/godotsteam-and-steammultiplayerpeer/
|
||||
|
||||
See too on youtube videos
|
||||
https://www.youtube.com/playlist?list=PLg_8mgEWE2p8ZA-AqUUJ3CYEtrRVFhl_v
|
||||
|
||||
Thank you Michael!
|
||||
|
||||
## Features
|
||||
|
||||
✔️ Change easy Enet peer to Steam Peer
|
||||
|
||||
✔️ Use Steam Sockets (Low level like enet).
|
||||
|
||||
✔️ GDExtension (Easy to add your project)
|
||||
|
||||
✔️ No dependency with GodotSteam, but demo use GodotSteam to handle connections with lobbies (See lobbies tutorial in Godot Steam [here](https://godotsteam.com/tutorials/lobbies/)).
|
||||
|
||||
|
||||
## GodotSteam SteamMultiplayerPeer Differences
|
||||
|
||||
| Differences | This SteamMultiplayerPeer | GodotSteam SteamMultiplayerPeer |
|
||||
|---|---|---|
|
||||
| Lib Type | GDExtension, add on your project libs to use easy. | C++ module, you need to use the precompiled <br>ones from godotsteam or compile it yourself |
|
||||
| Steam Connection | Steam Sockets [Steam Docs](https://partner.steamgames.com/doc/api/ISteamNetworkingSockets)<br>Steam's lowest connection level,<br>manages a connection <br>(It's very close to Enet, <br>that's why I chose this approach for the plugin) | Steam Messages [Steam Docs](https://partner.steamgames.com/doc/api/ISteamNetworkingMessages)<br>Without a connection idea,<br>the connection is managed by the lobby,<br>Need Steam lobbies. |
|
||||
| TODO | | |
|
||||
|
||||
## Known issues
|
||||
|
||||
⚠️ Features No channel support currently
|
||||
At some point I intend to integrate channels to be used in rpcs commands, but currently it is only necessary to use channel 0 or the default rpcs.
|
||||
|
||||
## In Progress
|
||||
|
||||
🔨 Bugs fixes
|
||||
|
||||
## Planneds
|
||||
|
||||
📅 No planned features.
|
||||
|
||||
<!-- ## Install
|
||||
See in [Wiki](https://github.com/ExpressoBits/inventory-system/wiki) -->
|
||||
|
||||
## Authors
|
||||
|
||||
👤 **Rafael Correa**
|
||||
* Twitter: [@ScriptsEngineer](https://twitter.com/ScriptsEngineer)
|
||||
* Github: [@scriptsengineer](https://github.com/scriptsengineer)
|
||||
|
||||
👤 **Zennyth**
|
||||
* Github: [@Zennyth](https://github.com/Zennyth)
|
||||
|
||||
👤 **greenfox1505**
|
||||
* Github: [@greenfox1505](https://github.com/greenfox1505)
|
||||
|
||||
👤 **MichaelMacha**
|
||||
* Github: [@MichaelMacha](https://github.com/MichaelMacha)
|
||||
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Contributions, issues and feature requests are welcome!
|
||||
|
||||
Feel free to check [issues page](https://github.com/ExpressoBits/steam-multiplayer-peer/issues).
|
||||
|
||||
To suggest or discuss some project structure, feel free here [discussions page](https://github.com/expressobits/steam-multiplayer-peer/discussions)
|
||||
|
||||
|
||||
## Show your support
|
||||
|
||||
Give a ⭐️ if this project helped you!
|
||||
|
||||
|
||||
## 📝 License
|
||||
|
||||
This project is [MIT](MIT) licensed.
|
||||
0
splunk/addons/steam-multiplayer-peer/linux/.gitkeep
Normal file
0
splunk/addons/steam-multiplayer-peer/linux/.gitkeep
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/steam-multiplayer-peer/linux/libsteam_api.so
Normal file
BIN
splunk/addons/steam-multiplayer-peer/linux/libsteam_api.so
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/steam-multiplayer-peer/macos/libsteam_api.dylib
Normal file
BIN
splunk/addons/steam-multiplayer-peer/macos/libsteam_api.dylib
Normal file
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
[configuration]
|
||||
entry_symbol = "steam_multiplayer_peer_init"
|
||||
compatibility_minimum = 4.2
|
||||
|
||||
[libraries]
|
||||
linux.debug.x86_64 = "./linux/libsteam-multiplayer-peer.linux.template_debug.x86_64.so"
|
||||
linux.release.x86_64 = "./linux/libsteam-multiplayer-peer.linux.template_release.x86_64.so"
|
||||
linux.debug.arm64 = "./linux/libsteam-multiplayer-peer.linux.template_debug.arm64.so"
|
||||
linux.release.arm64 = "./linux/libsteam-multiplayer-peer.linux.template_release.arm64.so"
|
||||
linux.debug.rv64 = "./linux/libsteam-multiplayer-peer.linux.template_debug.rv64.so"
|
||||
linux.release.rv64 = "./linux/libsteam-multiplayer-peer.linux.template_release.rv64.so"
|
||||
macos.debug = "./macos/libsteam-multiplayer-peer.macos.template_debug.universal.dylib"
|
||||
macos.release = "./macos/libsteam-multiplayer-peer.macos.template_release.universal.dylib"
|
||||
windows.debug.x86_32 = "./windows/steam-multiplayer-peer.windows.template_debug.x86_32.dll"
|
||||
windows.release.x86_32 = "./windows/steam-multiplayer-peer.windows.template_release.x86_32.dll"
|
||||
windows.debug.x86_64 = "./windows/steam-multiplayer-peer.windows.template_debug.x86_64.dll"
|
||||
windows.release.x86_64 = "./windows/steam-multiplayer-peer.windows.template_release.x86_64.dll"
|
||||
|
||||
[dependencies]
|
||||
linux.x86_64 = { "linux/libsteam_api.so": "" }
|
||||
linux.arm64 = { "linux/libsteam_api.so": "" }
|
||||
linux.rv64 = { "linux/libsteam_api.so": "" }
|
||||
macos.universal = { "macos/libsteam_api.dylib": "" }
|
||||
windows.x86_64 = { "windows/steam_api64.dll": "" }
|
||||
windows.x86_32 = { "windows/steam_api.dll": "" }
|
||||
@@ -0,0 +1 @@
|
||||
uid://bift3vevfew3v
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
splunk/addons/steam-multiplayer-peer/windows/steam_api.dll
Normal file
BIN
splunk/addons/steam-multiplayer-peer/windows/steam_api.dll
Normal file
Binary file not shown.
BIN
splunk/addons/steam-multiplayer-peer/windows/steam_api64.dll
Normal file
BIN
splunk/addons/steam-multiplayer-peer/windows/steam_api64.dll
Normal file
Binary file not shown.
39
splunk/networking/steam-manager.gd
Normal file
39
splunk/networking/steam-manager.gd
Normal file
@@ -0,0 +1,39 @@
|
||||
extends Node
|
||||
|
||||
var is_owned: bool = false
|
||||
var steam_app_id: int = 480
|
||||
var steam_id: int = 0
|
||||
var steam_username: String = ""
|
||||
|
||||
var lobby_id = 0
|
||||
var lobby_max_members = 4
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
OS.set_environment("SteamAppId", str(steam_app_id))
|
||||
OS.set_environment("SteamGameId", str(steam_app_id))
|
||||
int_steam()
|
||||
|
||||
|
||||
func _process(delta):
|
||||
Steam.run_callbacks()
|
||||
|
||||
|
||||
func int_steam():
|
||||
var response: Dictionary = Steam.steamInitEx()
|
||||
print("Steam init response: %s " % response)
|
||||
|
||||
if response['status'] > 0:
|
||||
print("Failed to init steam! Shutting down... Code: %s " % response)
|
||||
get_tree().quit()
|
||||
|
||||
is_owned = Steam.isSubscribed()
|
||||
steam_id = Steam.getSteamID()
|
||||
steam_username = Steam.getPersonaName()
|
||||
|
||||
print("Steam ID: %s " % steam_id)
|
||||
|
||||
if !is_owned:
|
||||
print("Yo, you don't own this on steam")
|
||||
get_tree().quit()
|
||||
|
||||
1
splunk/networking/steam-manager.gd.uid
Normal file
1
splunk/networking/steam-manager.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bhsxbic5qkkmg
|
||||
@@ -1,6 +1,7 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://csmfxg011xisf"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://csmfxg011xisf"]
|
||||
|
||||
[ext_resource type="Script" path="res://player/player.gd" id="1_ulp21"]
|
||||
[ext_resource type="Script" uid="uid://dopyfulbw2mx5" path="res://player/player.gd" id="1_ulp21"]
|
||||
[ext_resource type="PackedScene" uid="uid://8phs2e161db1" path="res://ui/multiplayer-debug-ui/multiplayer-debug-ui.tscn" id="2_3c3w1"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ehsmr"]
|
||||
|
||||
@@ -20,6 +21,9 @@ properties/0/replication_mode = 2
|
||||
properties/1/path = NodePath(".:rotation")
|
||||
properties/1/spawn = true
|
||||
properties/1/replication_mode = 2
|
||||
properties/2/path = NodePath("Label3D:text")
|
||||
properties/2/spawn = true
|
||||
properties/2/replication_mode = 1
|
||||
|
||||
[node name="Player" type="CharacterBody3D"]
|
||||
collision_layer = 2
|
||||
@@ -68,3 +72,7 @@ replication_config = SubResource("SceneReplicationConfig_ulp21")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.887858, 0)
|
||||
billboard = 1
|
||||
text = "Username"
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="Multiplayer-debug-ui" parent="CanvasLayer" instance=ExtResource("2_3c3w1")]
|
||||
|
||||
@@ -11,6 +11,8 @@ func _ready():
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
camera_node = $Camera3D # Assuming Camera3D is a direct child
|
||||
|
||||
$Label3D.text = SteamManager.steam_username
|
||||
|
||||
func _physics_process(delta):
|
||||
# Apply gravity
|
||||
if not is_on_floor():
|
||||
@@ -53,3 +55,6 @@ func _input(event):
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||
else:
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
|
||||
if event.is_action_pressed("toggle_watch"):
|
||||
$"CanvasLayer/Multiplayer-debug-ui".visible = !$"CanvasLayer/Multiplayer-debug-ui".visible
|
||||
|
||||
@@ -15,6 +15,10 @@ run/main_scene="uid://bj52j4ew2lfr6"
|
||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[autoload]
|
||||
|
||||
SteamManager="*res://networking/steam-manager.gd"
|
||||
|
||||
[editor_plugins]
|
||||
|
||||
enabled=PackedStringArray("res://addons/freecam_3D/plugin.cfg")
|
||||
@@ -24,6 +28,7 @@ enabled=PackedStringArray("res://addons/freecam_3D/plugin.cfg")
|
||||
folder_colors={
|
||||
"res://items/": "yellow",
|
||||
"res://levels/": "green",
|
||||
"res://networking/": "teal",
|
||||
"res://player/": "purple",
|
||||
"res://tools/": "gray",
|
||||
"res://ui/": "red"
|
||||
@@ -56,6 +61,41 @@ jump={
|
||||
"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)
|
||||
]
|
||||
}
|
||||
toggle_watch={
|
||||
"deadzone": 0.2,
|
||||
"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)
|
||||
]
|
||||
}
|
||||
interact={
|
||||
"deadzone": 0.2,
|
||||
"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)
|
||||
]
|
||||
}
|
||||
toggle_bag={
|
||||
"deadzone": 0.2,
|
||||
"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":66,"key_label":0,"unicode":98,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
inv_slot_1={
|
||||
"deadzone": 0.2,
|
||||
"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":49,"key_label":0,"unicode":49,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
inv_slot_2={
|
||||
"deadzone": 0.2,
|
||||
"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":50,"key_label":0,"unicode":50,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
inv_slot_3={
|
||||
"deadzone": 0.2,
|
||||
"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":51,"key_label":0,"unicode":51,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
inv_slot_4={
|
||||
"deadzone": 0.2,
|
||||
"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":52,"key_label":0,"unicode":52,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[layer_names]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user