diff --git a/BuildMenu.gd b/BuildMenu.gd index 799386b..152daa1 100644 --- a/BuildMenu.gd +++ b/BuildMenu.gd @@ -3,7 +3,6 @@ extends Control @onready var local_player_insects = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/LocalPlayerInsects @onready var remote_player_insects = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/RemotePlayerInsects - const INSECT_BUTTON = preload("res://UI/insect_button.tscn") const default_insects = { @@ -17,22 +16,29 @@ const default_insects = { #preload("res://Tile/Prefabs/Pillbug.tres"): 1 } +@onready var local_bee_button: InsectButton = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/LocalPlayerInsects/BeeButton +@onready var remote_bee_button: InsectButton = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/RemotePlayerInsects/BeeButton + + # Called when the node enters the scene tree for the first time. func _ready(): #var unique_array = default_insects.duplicate().map() + local_bee_button.update_color(GameData.is_player_black) + remote_bee_button.update_color(!GameData.is_player_black) + for key in default_insects.keys(): - print(default_insects[key]) + #print(default_insects[key]) var btn = INSECT_BUTTON.instantiate() btn.insect_resource = key btn.tile_count = default_insects[key] - btn.is_black = false + btn.is_black = GameData.is_player_black local_player_insects.add_child(btn) for key in default_insects.keys(): var btn = INSECT_BUTTON.instantiate() btn.insect_resource = key btn.tile_count = default_insects[key] - btn.is_black = true + btn.is_black = !GameData.is_player_black remote_player_insects.add_child(btn) remote_player_insects.move_child(btn, 0) @@ -42,8 +48,3 @@ func _process(delta): GameEvents.insect_placement_cancelled.emit() pass pass - - -func _on_bee_button_pressed(): - print("bsss") - pass # Replace with function body. diff --git a/Globals/GameData.gd b/Globals/GameData.gd index 8559c99..e468f07 100644 --- a/Globals/GameData.gd +++ b/Globals/GameData.gd @@ -1,5 +1,5 @@ extends Node -var is_player_black: bool = false +var is_player_black: bool = true var debug: bool = true var allow_selecting_in_stack: bool = false diff --git a/HexGrid3D/HexGrid3D.gd b/HexGrid3D/HexGrid3D.gd index ba4c215..f4443e5 100644 --- a/HexGrid3D/HexGrid3D.gd +++ b/HexGrid3D/HexGrid3D.gd @@ -115,15 +115,15 @@ func get_empty_neighbours(coords: Vector4i) -> Array[Vector4i]: func get_highest_in_stack(coords: Vector4i) -> Vector4i: if not used_cells.has(coords): - print("ground") + #print("ground") return coords var top: InsectTile = used_cells[coords] while top.hat != null: top = top.hat - print("found top") - print(top.coordinates) + #print("found top") + #print(top.coordinates) return top.coordinates func get_neighbours(coords: Vector4i, ground_layer: bool = false) -> Array[Vector4i]: @@ -178,7 +178,7 @@ func get_placeable_positions(button: InsectButton) -> Array[Vector4i]: if not used_cells.has(neighbour): continue - if used_cells[neighbour].is_black != button.is_black: + if used_cells[get_highest_in_stack(neighbour)].is_black != button.is_black: eligible = false break @@ -229,7 +229,7 @@ func can_reach(start: Vector4i, target: Vector4i, exclude: Array[Vector4i] = []) var right_coord = Vector4i(right.x + start.x, right.y + start.y, right.z + start.z, start.w) if left_coord in exclude or right_coord in exclude: - print("excluded?") + #print("excluded?") return true @@ -336,7 +336,7 @@ func _on_insect_placed(resource: TileResource, is_black: bool, pos: Vector4i) -> tile_copy.resource = resource tile_copy.is_black = is_black tile_copy.coordinates = pos - print(pos) + #print(pos) tile_copy.map_reference = self var target_pos = Vector3(hex_pos.x, 0.0, hex_pos.y) @@ -356,7 +356,7 @@ func _on_insect_tile_selected(tile: InsectTile) -> void: return if tile.resource.movement_behaviour == null: - print("no movement behaviour") + #print("no movement behaviour") return #if tile.resource.action_behaviour != null: @@ -396,7 +396,7 @@ func _on_insect_tile_selected(tile: InsectTile) -> void: while temp_tile.hat != null: layer += 1 temp_tile = temp_tile.hat - print(layer) + #print(layer) space.w = layer @@ -464,17 +464,21 @@ func is_position_on_hive(pos: Vector4i) -> bool: func can_hive_exist_without_tile(tile: InsectTile) -> bool: if tile.coordinates.w != 0: + print("w") return true # TODO: BFS-Search from random cell to see if all other cells could still be reached when this # tile would be empty space if get_empty_neighbours(tile.coordinates).size() == 5: # we only have one real neighbour, so can't break anything + print("neighbours") return true # DO BFS var tiles_reached: Array = [] var tiles_available: Array = used_cells.keys().filter(func(coords): return coords != tile.coordinates).filter(func(coords): return coords.w == 0) + #print(tiles_available) + if tiles_available.size() <= 1: # If we only have 1 or 2 total tiles, we can always move # 1 tile should never happen @@ -496,7 +500,7 @@ func can_hive_exist_without_tile(tile: InsectTile) -> bool: tiles_reached.push_back(neighbour) queue.push_back(neighbour) - return tiles_reached.size() == used_cells.size() - 1 + return tiles_reached.size() == tiles_available.size() func _ready() -> void: GameEvents.insect_selected.connect(_on_insect_selected) diff --git a/HexOutline.gd b/HexOutline.gd index 0e43021..6216ec3 100644 --- a/HexOutline.gd +++ b/HexOutline.gd @@ -19,7 +19,7 @@ const BUILD_GHOST = preload("res://InsectTiles/BuildGhost.tscn") # Called when the node enters the scene tree for the first time. func _ready(): if insect_resource == null: - print("Should not happen!") + #print("Should not happen!") return if is_moving: diff --git a/InsectButton.gd b/InsectButton.gd index 740e0b3..8e032fd 100644 --- a/InsectButton.gd +++ b/InsectButton.gd @@ -4,8 +4,8 @@ class_name InsectButton @onready var hex = $Hex @onready var tile_count_label = $Hex/TileCountLabel @onready var insect_icon = $Hex/InsectIcon - -@export var insect_resource: TileResource = preload("res://Tile/Prefabs/Bee.tres") +const BEE = preload("res://Tile/Prefabs/Bee.tres") +@export var insect_resource: TileResource = BEE const HEX_BLACK = preload("res://InsectTiles/Assets/UI/hex_black.svg") const HEX_WHITE = preload("res://InsectTiles/Assets/UI/hex_white.svg") @@ -18,6 +18,20 @@ var selected: bool = false var hovered: bool = false var deactivated: bool = false +func update_color(_is_black: bool) -> void: + is_black = _is_black + if is_black: + hex.texture = HEX_BLACK + else: + hex.texture = HEX_WHITE + + update_tile_count_display() + insect_icon.texture = insect_resource.ui_texture + + if is_black != GameData.is_player_black and not GameData.debug: + disabled = true + return + func is_empty() -> bool: return tile_count <= 0 @@ -67,15 +81,7 @@ func refresh_state() -> void: # Called when the node enters the scene tree for the first time. func _ready() -> void: - if is_black: - hex.texture = HEX_BLACK - - update_tile_count_display() - insect_icon.texture = insect_resource.ui_texture - - if is_black != GameData.is_player_black and not GameData.debug: - disabled = true - return + update_color(is_black) GameEvents.insect_selected.connect(_on_insect_selected) GameEvents.insect_placement_cancelled.connect(_on_placement_cancelled) diff --git a/MovementBehaviour/Prefabs/MovementBehaviourBee.gd b/MovementBehaviour/Prefabs/MovementBehaviourBee.gd index 7401d9e..7553b75 100644 --- a/MovementBehaviour/Prefabs/MovementBehaviourBee.gd +++ b/MovementBehaviour/Prefabs/MovementBehaviourBee.gd @@ -4,7 +4,7 @@ class_name MovementBehaviourBee func get_available_spaces(pos: Vector4i, map: HexGrid) -> Array[Vector4i]: var potential_spaces = map.get_empty_neighbours(pos) - print(potential_spaces) + #print(potential_spaces) var target_spaces: Array[Vector4i] = [] diff --git a/MovementBehaviour/Prefabs/MovementBehaviourSpider.gd b/MovementBehaviour/Prefabs/MovementBehaviourSpider.gd index 84334fe..adeb714 100644 --- a/MovementBehaviour/Prefabs/MovementBehaviourSpider.gd +++ b/MovementBehaviour/Prefabs/MovementBehaviourSpider.gd @@ -7,7 +7,7 @@ func simulate_move_recursive(start: Vector4i, max_num: int, exclude: Array[Vecto var visited = visited_cells.duplicate() var possible: Array[Vector4i] = [] - visited.append(start) + #visited.append(start) if max_num < 1: return [start] @@ -20,16 +20,19 @@ func simulate_move_recursive(start: Vector4i, max_num: int, exclude: Array[Vecto continue var same_neighbours = map.get_same_neighbours(start, neighbour) - #for e in exclude: - # same_neighbours.erase(e) + for e in exclude: + same_neighbours.erase(e) if same_neighbours.size() > 0: visited.append(neighbour) + #map.debug_label(neighbour,str(max_movement_reach - (max_num - 1))) possible.append_array(simulate_move_recursive(neighbour, max_num - 1, exclude, map, visited)) return possible func get_available_spaces(pos: Vector4i, map: HexGrid) -> Array[Vector4i]: + #map.clear_debug_labels() + var possible_places: Array[Vector4i] = [] possible_places = simulate_move_recursive(pos, max_movement_reach, [pos], map) diff --git a/Networking/WSClient/multiplayer_client.gd b/Networking/WSClient/multiplayer_client.gd new file mode 100644 index 0000000..549ed6a --- /dev/null +++ b/Networking/WSClient/multiplayer_client.gd @@ -0,0 +1,107 @@ +extends "ws_webrtc_client.gd" + +var rtc_mp: WebRTCMultiplayerPeer = WebRTCMultiplayerPeer.new() +var sealed := false + +func _init(): + connected.connect(self._connected) + disconnected.connect(self._disconnected) + + offer_received.connect(self._offer_received) + answer_received.connect(self._answer_received) + candidate_received.connect(self._candidate_received) + + lobby_joined.connect(self._lobby_joined) + lobby_sealed.connect(self._lobby_sealed) + peer_connected.connect(self._peer_connected) + peer_disconnected.connect(self._peer_disconnected) + + +func start(url, _lobby = "", _mesh:=true): + stop() + sealed = false + self.mesh = _mesh + self.lobby = _lobby + connect_to_url(url) + + +func stop(): + multiplayer.multiplayer_peer = null + rtc_mp.close() + close() + +func _create_peer(id): + var peer: WebRTCPeerConnection = WebRTCPeerConnection.new() + peer.initialize({ + "iceServers": [ { "urls": ["stun:stun.l.google.com:19302"] } ] + }) + peer.session_description_created.connect(self._offer_created.bind(id)) + peer.ice_candidate_created.connect(self._new_ice_candidate.bind(id)) + rtc_mp.add_peer(peer, id) + if id < rtc_mp.get_unique_id(): # So lobby creator never creates offers. + peer.create_offer() + return peer + + +func _new_ice_candidate(mid_name, index_name, sdp_name, id): + send_candidate(id, mid_name, index_name, sdp_name) + + +func _offer_created(type, data, id): + if not rtc_mp.has_peer(id): + return + print("created", type) + rtc_mp.get_peer(id).connection.set_local_description(type, data) + if type == "offer": send_offer(id, data) + else: send_answer(id, data) + + +func _connected(id, use_mesh): + print("Connected %d, mesh: %s" % [id, use_mesh]) + if use_mesh: + rtc_mp.create_mesh(id) + elif id == 1: + rtc_mp.create_server() + else: + rtc_mp.create_client(id) + multiplayer.multiplayer_peer = rtc_mp + + +func _lobby_joined(_lobby): + self.lobby = _lobby + + +func _lobby_sealed(): + sealed = true + + +func _disconnected(): + print("Disconnected: %d: %s" % [code, reason]) + if not sealed: + stop() # Unexpected disconnect + + +func _peer_connected(id): + print("Peer connected %d" % id) + _create_peer(id) + + +func _peer_disconnected(id): + if rtc_mp.has_peer(id): rtc_mp.remove_peer(id) + + +func _offer_received(id, offer): + print("Got offer: %d" % id) + if rtc_mp.has_peer(id): + rtc_mp.get_peer(id).connection.set_remote_description("offer", offer) + + +func _answer_received(id, answer): + print("Got answer: %d" % id) + if rtc_mp.has_peer(id): + rtc_mp.get_peer(id).connection.set_remote_description("answer", answer) + + +func _candidate_received(id, mid, index, sdp): + if rtc_mp.has_peer(id): + rtc_mp.get_peer(id).connection.add_ice_candidate(mid, index, sdp) diff --git a/Networking/WSClient/ws_webrtc_client.gd b/Networking/WSClient/ws_webrtc_client.gd new file mode 100644 index 0000000..0a093ca --- /dev/null +++ b/Networking/WSClient/ws_webrtc_client.gd @@ -0,0 +1,121 @@ +extends Node + +enum Message {JOIN, ID, PEER_CONNECT, PEER_DISCONNECT, OFFER, ANSWER, CANDIDATE, SEAL} + +@export var autojoin := true +@export var lobby := "" # Will create a new lobby if empty. +@export var mesh := true # Will use the lobby host as relay otherwise. + +var ws: WebSocketPeer = WebSocketPeer.new() +var code = 1000 +var reason = "Unknown" + +signal lobby_joined(lobby) +signal connected(id, use_mesh) +signal disconnected() +signal peer_connected(id) +signal peer_disconnected(id) +signal offer_received(id, offer) +signal answer_received(id, answer) +signal candidate_received(id, mid, index, sdp) +signal lobby_sealed() + + +func connect_to_url(url): + close() + code = 1000 + reason = "Unknown" + ws.connect_to_url(url) + + +func close(): + ws.close() + + +func _process(delta): + var old_state: int = ws.get_ready_state() + if old_state == WebSocketPeer.STATE_CLOSED: + return + ws.poll() + var state = ws.get_ready_state() + if state != old_state and state == WebSocketPeer.STATE_OPEN and autojoin: + join_lobby(lobby) + while state == WebSocketPeer.STATE_OPEN and ws.get_available_packet_count(): + if not _parse_msg(): + print("Error parsing message from server.") + if state == WebSocketPeer.STATE_CLOSED: + code = ws.get_close_code() + reason = ws.get_close_reason() + disconnected.emit() + + +func _parse_msg(): + var parsed = JSON.parse_string(ws.get_packet().get_string_from_utf8()) + if typeof(parsed) != TYPE_DICTIONARY or not parsed.has("type") or not parsed.has("id") or \ + typeof(parsed.get("data")) != TYPE_STRING: + return false + + var msg := parsed as Dictionary + if not str(msg.type).is_valid_int() or not str(msg.id).is_valid_int(): + return false + + var type := str(msg.type).to_int() + var src_id := str(msg.id).to_int() + + if type == Message.ID: + connected.emit(src_id, msg.data == "true") + elif type == Message.JOIN: + lobby_joined.emit(msg.data) + elif type == Message.SEAL: + lobby_sealed.emit() + elif type == Message.PEER_CONNECT: + # Client connected + peer_connected.emit(src_id) + elif type == Message.PEER_DISCONNECT: + # Client connected + peer_disconnected.emit(src_id) + elif type == Message.OFFER: + # Offer received + offer_received.emit(src_id, msg.data) + elif type == Message.ANSWER: + # Answer received + answer_received.emit(src_id, msg.data) + elif type == Message.CANDIDATE: + # Candidate received + var candidate: PackedStringArray = msg.data.split("\n", false) + if candidate.size() != 3: + return false + if not candidate[1].is_valid_int(): + return false + candidate_received.emit(src_id, candidate[0], candidate[1].to_int(), candidate[2]) + else: + return false + return true # Parsed + + +func join_lobby(_lobby: String): + return _send_msg(Message.JOIN, 0 if mesh else 1, lobby) + + +func seal_lobby(): + return _send_msg(Message.SEAL, 0) + + +func send_candidate(id, mid, index, sdp) -> int: + return _send_msg(Message.CANDIDATE, id, "\n%s\n%d\n%s" % [mid, index, sdp]) + + +func send_offer(id, offer) -> int: + return _send_msg(Message.OFFER, id, offer) + + +func send_answer(id, answer) -> int: + return _send_msg(Message.ANSWER, id, answer) + + +func _send_msg(type: int, id: int, data:="") -> int: + return ws.send_text(JSON.stringify({ + "type": type, + "id": id, + "data": data + })) diff --git a/Networking/ws_client.tscn b/Networking/ws_client.tscn new file mode 100644 index 0000000..178b4b5 --- /dev/null +++ b/Networking/ws_client.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://dfxg65sfuvegd"] + +[ext_resource type="Script" path="res://Networking/WSClient/multiplayer_client.gd" id="1_djurk"] + +[node name="WSClient" type="Node"] +script = ExtResource("1_djurk") diff --git a/Tile/Tile.gd b/Tile/Tile.gd index 7ad9d91..b547ae7 100644 --- a/Tile/Tile.gd +++ b/Tile/Tile.gd @@ -58,7 +58,6 @@ func _ready() -> void: func _on_tiles_selected_for_action(source_pos: Vector4i, targets: Array[InsectTile]) -> void: if self in targets: selected_for_action = true - print("meme") mat.next_pass = ACTION_SHADER return diff --git a/UI/insect_button.tscn b/UI/insect_button.tscn index f7d91c0..3fc9e94 100644 --- a/UI/insect_button.tscn +++ b/UI/insect_button.tscn @@ -12,6 +12,7 @@ custom_minimum_size = Vector2(64, 64) ignore_texture_size = true stretch_mode = 0 script = ExtResource("1_scd5m") +is_black = null [node name="Hex" type="TextureRect" parent="."] texture_filter = 6 diff --git a/main_menu.gd b/main_menu.gd new file mode 100644 index 0000000..206b4e7 --- /dev/null +++ b/main_menu.gd @@ -0,0 +1,44 @@ +extends Control + +const WEBSOCKET_ENDPOINT: String = "wss://dev.bytesandpieces.xyz:9088" + +const insect_resources = [ + preload("res://Tile/Prefabs/Ant.tres"), + preload("res://Tile/Prefabs/Bee.tres"), + preload("res://Tile/Prefabs/Beetle.tres"), + preload("res://Tile/Prefabs/Grasshopper.tres"), + preload("res://Tile/Prefabs/Ladybug.tres"), + preload("res://Tile/Prefabs/Mosquito.tres"), + preload("res://Tile/Prefabs/Pillbug.tres"), + preload("res://Tile/Prefabs/Spider.tres") +] + +var insect_data = { + +} + +func prepare_insect_data() -> void: + var c: int = 65 + + #for i in insect_resources: + #for k in 2: + #print(String.chr(c)) + #c = c + 1 + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + prepare_insect_data() + + WSClient.lobby_joined.connect(_on_lobby_joined) + +func _on_lobby_joined(lobby: String) -> void: + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + + +func _on_button_pressed() -> void: + WSClient.start(WEBSOCKET_ENDPOINT, "", false) + pass # Replace with function body. diff --git a/main_menu.tscn b/main_menu.tscn new file mode 100644 index 0000000..b49ac77 --- /dev/null +++ b/main_menu.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=2 format=3 uid="uid://dogu37xma5vsp"] + +[ext_resource type="Script" path="res://main_menu.gd" id="1_q3q3u"] + +[node name="MainMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_q3q3u") + +[node name="Button" type="Button" parent="."] +layout_mode = 0 +offset_right = 8.0 +offset_bottom = 8.0 +text = "Test WebRTC" + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_top = 56.0 +offset_right = 40.0 +offset_bottom = 96.0 + +[connection signal="pressed" from="Button" to="." method="_on_button_pressed"] diff --git a/node_3d.tscn b/node_3d.tscn index e0b63e7..8f41630 100644 --- a/node_3d.tscn +++ b/node_3d.tscn @@ -1,10 +1,9 @@ -[gd_scene load_steps=19 format=3 uid="uid://bx0bbrwdr0h40"] +[gd_scene load_steps=18 format=3 uid="uid://bx0bbrwdr0h40"] [ext_resource type="Script" path="res://HexGrid3D/HexGrid3D.gd" id="2_xcbqy"] [ext_resource type="Script" path="res://WebLightChecker.gd" id="6_uu0ab"] [ext_resource type="Texture2D" uid="uid://cilgpyanfb3a8" path="res://Testbed/textures/wood_table_001_diff_4k.jpg" id="6_x76sf"] [ext_resource type="Texture2D" uid="uid://diamo44e2x4if" path="res://Testbed/textures/wood_table_001_disp_4k.png" id="7_xr322"] -[ext_resource type="Script" path="res://PlayerInventory.gd" id="8_kqchc"] [ext_resource type="Script" path="res://BuildMenu.gd" id="8_lxt1e"] [ext_resource type="Texture2D" uid="uid://b6ejmikbfrprs" path="res://Testbed/textures/wood_table_001_rough_4k.jpg" id="8_wvt2u"] [ext_resource type="PackedScene" uid="uid://bo8hgq66dbbb6" path="res://UI/insect_button.tscn" id="11_pmmaq"] @@ -60,7 +59,7 @@ texture = SubResource("GradientTexture2D_tjcjh") axis_stretch_vertical = 2 modulate_color = Color(1, 1, 1, 0.639216) -[node name="Node3D" type="Node3D"] +[node name="Game" type="Node3D"] [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 0, 6, 5) @@ -123,21 +122,25 @@ layout_mode = 2 mouse_filter = 2 [node name="HBoxContainer" type="HBoxContainer" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer"] +custom_minimum_size = Vector2(0, 40) layout_mode = 2 mouse_filter = 2 [node name="Label" type="Label" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 +size_flags_vertical = 0 text = "You" [node name="PanelContainer" type="PanelContainer" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] self_modulate = Color(1, 1, 1, 0) layout_mode = 2 size_flags_horizontal = 3 +size_flags_vertical = 0 mouse_filter = 2 [node name="Label2" type="Label" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 +size_flags_vertical = 0 text = "Enemy" horizontal_alignment = 2 @@ -149,9 +152,8 @@ alignment = 1 [node name="LocalPlayerInsects" type="HBoxContainer" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2"] layout_mode = 2 mouse_filter = 0 -script = ExtResource("8_kqchc") -[node name="InsectButton" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/LocalPlayerInsects" instance=ExtResource("11_pmmaq")] +[node name="BeeButton" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/LocalPlayerInsects" instance=ExtResource("11_pmmaq")] layout_mode = 2 [node name="VSeparator" type="VSeparator" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/LocalPlayerInsects"] @@ -170,6 +172,6 @@ mouse_filter = 0 [node name="VSeparator" type="VSeparator" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/RemotePlayerInsects"] layout_mode = 2 -[node name="InsectButton2" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/RemotePlayerInsects" instance=ExtResource("11_pmmaq")] +[node name="BeeButton" parent="BuildMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/RemotePlayerInsects" instance=ExtResource("11_pmmaq")] layout_mode = 2 is_black = true diff --git a/project.godot b/project.godot index 73af4f7..23fe9ae 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Swarm" -run/main_scene="res://node_3d.tscn" +run/main_scene="res://main_menu.tscn" config/features=PackedStringArray("4.2", "Mobile") config/icon="res://icon.svg" @@ -20,6 +20,7 @@ config/icon="res://icon.svg" GameEvents="*res://Globals/GameEvents.gd" GameData="*res://Globals/GameData.gd" DebugMenu="*res://addons/debug_menu/debug_menu.tscn" +WSClient="*res://Networking/ws_client.tscn" [editor_plugins] diff --git a/webrtc/LICENSE.json b/webrtc/LICENSE.json new file mode 100644 index 0000000..1c1f7a6 --- /dev/null +++ b/webrtc/LICENSE.json @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013-2022 Niels Lohmann + +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. diff --git a/webrtc/LICENSE.libdatachannel b/webrtc/LICENSE.libdatachannel new file mode 100644 index 0000000..14e2f77 --- /dev/null +++ b/webrtc/LICENSE.libdatachannel @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/webrtc/LICENSE.libjuice b/webrtc/LICENSE.libjuice new file mode 100644 index 0000000..14e2f77 --- /dev/null +++ b/webrtc/LICENSE.libjuice @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/webrtc/LICENSE.libsrtp b/webrtc/LICENSE.libsrtp new file mode 100644 index 0000000..af0a2ac --- /dev/null +++ b/webrtc/LICENSE.libsrtp @@ -0,0 +1,35 @@ +/* + * + * Copyright (c) 2001-2017 Cisco Systems, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * Neither the name of the Cisco Systems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ diff --git a/webrtc/LICENSE.openssl b/webrtc/LICENSE.openssl new file mode 100644 index 0000000..49cc83d --- /dev/null +++ b/webrtc/LICENSE.openssl @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/webrtc/LICENSE.plog b/webrtc/LICENSE.plog new file mode 100644 index 0000000..8a91a0a --- /dev/null +++ b/webrtc/LICENSE.plog @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Sergey Podobry + +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. diff --git a/webrtc/LICENSE.usrsctp b/webrtc/LICENSE.usrsctp new file mode 100644 index 0000000..a2d1f98 --- /dev/null +++ b/webrtc/LICENSE.usrsctp @@ -0,0 +1,27 @@ +Copyright (c) 2015, Randall Stewart and Michael Tuexen +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of usrsctp nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/webrtc/LICENSE.webrtc-native b/webrtc/LICENSE.webrtc-native new file mode 100644 index 0000000..ec92632 --- /dev/null +++ b/webrtc/LICENSE.webrtc-native @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Godot Engine + +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. diff --git a/webrtc/lib/libwebrtc_native.android.template_debug.arm64.so b/webrtc/lib/libwebrtc_native.android.template_debug.arm64.so new file mode 100644 index 0000000..fc45b56 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.android.template_debug.arm64.so differ diff --git a/webrtc/lib/libwebrtc_native.android.template_debug.x86_64.so b/webrtc/lib/libwebrtc_native.android.template_debug.x86_64.so new file mode 100644 index 0000000..081fe35 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.android.template_debug.x86_64.so differ diff --git a/webrtc/lib/libwebrtc_native.android.template_release.arm64.so b/webrtc/lib/libwebrtc_native.android.template_release.arm64.so new file mode 100644 index 0000000..e438270 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.android.template_release.arm64.so differ diff --git a/webrtc/lib/libwebrtc_native.android.template_release.x86_64.so b/webrtc/lib/libwebrtc_native.android.template_release.x86_64.so new file mode 100644 index 0000000..e5bdcc1 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.android.template_release.x86_64.so differ diff --git a/webrtc/lib/libwebrtc_native.ios.template_debug.arm64.dylib b/webrtc/lib/libwebrtc_native.ios.template_debug.arm64.dylib new file mode 100644 index 0000000..bdf5e35 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.ios.template_debug.arm64.dylib differ diff --git a/webrtc/lib/libwebrtc_native.ios.template_debug.x86_64.simulator.dylib b/webrtc/lib/libwebrtc_native.ios.template_debug.x86_64.simulator.dylib new file mode 100644 index 0000000..2d8db21 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.ios.template_debug.x86_64.simulator.dylib differ diff --git a/webrtc/lib/libwebrtc_native.ios.template_release.arm64.dylib b/webrtc/lib/libwebrtc_native.ios.template_release.arm64.dylib new file mode 100644 index 0000000..9389e03 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.ios.template_release.arm64.dylib differ diff --git a/webrtc/lib/libwebrtc_native.ios.template_release.x86_64.simulator.dylib b/webrtc/lib/libwebrtc_native.ios.template_release.x86_64.simulator.dylib new file mode 100644 index 0000000..f1cbbfb Binary files /dev/null and b/webrtc/lib/libwebrtc_native.ios.template_release.x86_64.simulator.dylib differ diff --git a/webrtc/lib/libwebrtc_native.linux.template_debug.x86_32.so b/webrtc/lib/libwebrtc_native.linux.template_debug.x86_32.so new file mode 100644 index 0000000..67988b9 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.linux.template_debug.x86_32.so differ diff --git a/webrtc/lib/libwebrtc_native.linux.template_debug.x86_64.so b/webrtc/lib/libwebrtc_native.linux.template_debug.x86_64.so new file mode 100644 index 0000000..9d647fc Binary files /dev/null and b/webrtc/lib/libwebrtc_native.linux.template_debug.x86_64.so differ diff --git a/webrtc/lib/libwebrtc_native.linux.template_release.x86_32.so b/webrtc/lib/libwebrtc_native.linux.template_release.x86_32.so new file mode 100644 index 0000000..19d34d4 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.linux.template_release.x86_32.so differ diff --git a/webrtc/lib/libwebrtc_native.linux.template_release.x86_64.so b/webrtc/lib/libwebrtc_native.linux.template_release.x86_64.so new file mode 100644 index 0000000..686252c Binary files /dev/null and b/webrtc/lib/libwebrtc_native.linux.template_release.x86_64.so differ diff --git a/webrtc/lib/libwebrtc_native.macos.template_debug.universal.framework/Resources/Info.plist b/webrtc/lib/libwebrtc_native.macos.template_debug.universal.framework/Resources/Info.plist new file mode 100644 index 0000000..f4d8e8a --- /dev/null +++ b/webrtc/lib/libwebrtc_native.macos.template_debug.universal.framework/Resources/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleExecutable + libwebrtc_native.macos.template_debug.universal.dylib + CFBundleIdentifier + org.godotengine.webrtc-native + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDisplayName + libwebrtc_native.macos.template_debug.universal + CFBundleName + webrtc_native + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1.0.0 + LSMinimumSystemVersion + 11.0 + + diff --git a/webrtc/lib/libwebrtc_native.macos.template_debug.universal.framework/libwebrtc_native.macos.template_debug.universal.dylib b/webrtc/lib/libwebrtc_native.macos.template_debug.universal.framework/libwebrtc_native.macos.template_debug.universal.dylib new file mode 100644 index 0000000..de690a0 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.macos.template_debug.universal.framework/libwebrtc_native.macos.template_debug.universal.dylib differ diff --git a/webrtc/lib/libwebrtc_native.macos.template_release.universal.framework/Resources/Info.plist b/webrtc/lib/libwebrtc_native.macos.template_release.universal.framework/Resources/Info.plist new file mode 100644 index 0000000..a0219e7 --- /dev/null +++ b/webrtc/lib/libwebrtc_native.macos.template_release.universal.framework/Resources/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleExecutable + libwebrtc_native.macos.template_release.universal.dylib + CFBundleIdentifier + org.godotengine.webrtc-native + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDisplayName + libwebrtc_native.macos.template_release.universal + CFBundleName + webrtc_native + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1.0.0 + LSMinimumSystemVersion + 11.0 + + diff --git a/webrtc/lib/libwebrtc_native.macos.template_release.universal.framework/libwebrtc_native.macos.template_release.universal.dylib b/webrtc/lib/libwebrtc_native.macos.template_release.universal.framework/libwebrtc_native.macos.template_release.universal.dylib new file mode 100644 index 0000000..b425616 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.macos.template_release.universal.framework/libwebrtc_native.macos.template_release.universal.dylib differ diff --git a/webrtc/lib/libwebrtc_native.windows.template_debug.x86_32.dll b/webrtc/lib/libwebrtc_native.windows.template_debug.x86_32.dll new file mode 100644 index 0000000..003d9d2 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.windows.template_debug.x86_32.dll differ diff --git a/webrtc/lib/libwebrtc_native.windows.template_debug.x86_64.dll b/webrtc/lib/libwebrtc_native.windows.template_debug.x86_64.dll new file mode 100644 index 0000000..a4b2697 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.windows.template_debug.x86_64.dll differ diff --git a/webrtc/lib/libwebrtc_native.windows.template_release.x86_32.dll b/webrtc/lib/libwebrtc_native.windows.template_release.x86_32.dll new file mode 100644 index 0000000..451baf0 Binary files /dev/null and b/webrtc/lib/libwebrtc_native.windows.template_release.x86_32.dll differ diff --git a/webrtc/lib/libwebrtc_native.windows.template_release.x86_64.dll b/webrtc/lib/libwebrtc_native.windows.template_release.x86_64.dll new file mode 100644 index 0000000..bc62c5d Binary files /dev/null and b/webrtc/lib/libwebrtc_native.windows.template_release.x86_64.dll differ diff --git a/webrtc/webrtc.gdextension b/webrtc/webrtc.gdextension new file mode 100644 index 0000000..a112463 --- /dev/null +++ b/webrtc/webrtc.gdextension @@ -0,0 +1,30 @@ +[configuration] + +entry_symbol = "webrtc_extension_init" +compatibility_minimum = 4.1 + +[libraries] + +linux.debug.x86_64 = "lib/libwebrtc_native.linux.template_debug.x86_64.so" +linux.debug.x86_32 = "lib/libwebrtc_native.linux.template_debug.x86_32.so" +linux.debug.arm64 = "lib/libwebrtc_native.linux.template_debug.arm64.so" +linux.debug.arm32 = "lib/libwebrtc_native.linux.template_debug.arm32.so" +macos.debug = "lib/libwebrtc_native.macos.template_debug.universal.framework" +windows.debug.x86_64 = "lib/libwebrtc_native.windows.template_debug.x86_64.dll" +windows.debug.x86_32 = "lib/libwebrtc_native.windows.template_debug.x86_32.dll" +android.debug.arm64 = "lib/libwebrtc_native.android.template_debug.arm64.so" +android.debug.x86_64 = "lib/libwebrtc_native.android.template_debug.x86_64.so" +ios.debug.arm64 = "lib/libwebrtc_native.ios.template_debug.arm64.dylib" +ios.debug.x86_64 = "lib/libwebrtc_native.ios.template_debug.x86_64.simulator.dylib" + +linux.release.x86_64 = "lib/libwebrtc_native.linux.template_release.x86_64.so" +linux.release.x86_32 = "lib/libwebrtc_native.linux.template_release.x86_32.so" +linux.release.arm64 = "lib/libwebrtc_native.linux.template_release.arm64.so" +linux.release.arm32 = "lib/libwebrtc_native.linux.template_release.arm32.so" +macos.release = "lib/libwebrtc_native.macos.template_release.universal.framework" +windows.release.x86_64 = "lib/libwebrtc_native.windows.template_release.x86_64.dll" +windows.release.x86_32 = "lib/libwebrtc_native.windows.template_release.x86_32.dll" +android.release.arm64 = "lib/libwebrtc_native.android.template_release.arm64.so" +android.release.x86_64 = "lib/libwebrtc_native.android.template_release.x86_64.so" +ios.release.arm64 = "lib/libwebrtc_native.ios.template_release.arm64.dylib" +ios.release.x86_64 = "lib/libwebrtc_native.ios.template_release.x86_64.simulator.dylib"