godot-rust starter for client

This commit is contained in:
2024-06-23 16:35:13 -04:00
Unverified
parent 35ff3670ad
commit d6a35b4c04
10 changed files with 219 additions and 2 deletions

2
Client/godot/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
# Godot 4+ specific ignores
.godot/

View File

@@ -0,0 +1,14 @@
[configuration]
entry_symbol = "gdext_rust_init"
compatibility_minimum = 4.1
reloadable = true
[libraries]
linux.debug.x86_64 = "res://../realmchat_client/target/debug/librealmchat_client.so"
linux.release.x86_64 = "res://../realmchat_client/target/release/librealmchat_client.so"
windows.debug.x86_64 = "res://../realmchat_client/target/debug/realmchat_client.dll"
windows.release.x86_64 = "res://../realmchat_client/target/release/realmchat_client.dll"
macos.debug = "res://../realmchat_client/target/debug/librealmchat_client.dylib"
macos.release = "res://../realmchat_client/target/release/librealmchat_client.dylib"
macos.debug.arm64 = "res://../realmchat_client/target/debug/librealmchat_client.dylib"
macos.release.arm64 = "res://../realmchat_client/target/release/librealmchat_client.dylib"

1
Client/godot/icon.svg Normal file
View File

@@ -0,0 +1 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z" fill="#478cbf"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

After

Width:  |  Height:  |  Size: 949 B

View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfyo2ucchmj72"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

11
Client/godot/main.gd Normal file
View File

@@ -0,0 +1,11 @@
extends Control
# Called when the node enters the scene tree for the first time.
func _ready():
OS.set_low_processor_usage_mode(true)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

108
Client/godot/main.tscn Normal file
View File

@@ -0,0 +1,108 @@
[gd_scene load_steps=2 format=3 uid="uid://csdvvecgjhecv"]
[ext_resource type="Script" path="res://main.gd" id="1_vv44s"]
[node name="Control" 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_vv44s")
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Servers" type="Panel" parent="Panel/HBoxContainer"]
clip_contents = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
[node name="Rooms" type="Panel" parent="Panel/HBoxContainer"]
clip_contents = true
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
[node name="Room View" type="Panel" parent="Panel/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/HBoxContainer/Room View"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ScrollContainer" type="ScrollContainer" parent="Panel/HBoxContainer/Room View/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
horizontal_scroll_mode = 0
[node name="Messages" type="VBoxContainer" parent="Panel/HBoxContainer/Room View/VBoxContainer/ScrollContainer"]
clip_contents = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="RichTextLabel" type="RichTextLabel" parent="Panel/HBoxContainer/Room View/VBoxContainer/ScrollContainer/Messages"]
layout_mode = 2
size_flags_vertical = 3
focus_mode = 2
text = "asdfasdfasdfqweqwerqwerqw
erq
we
rqw
er
qwer
qw
er
qwer
qw
r
qw
er
qwer
qw
errqwerqwer
qwer
qw
er
qwer
qw
erq
wer
qw
er
qw
erq
wer
qwerqwerqwer
qwer
qw
erq
wer
qwe
r"
scroll_following = true
selection_enabled = true
[node name="TextEdit" type="TextEdit" parent="Panel/HBoxContainer/Room View/VBoxContainer"]
custom_minimum_size = Vector2(0, 30)
layout_mode = 2
placeholder_text = "Write a Message"

View File

@@ -0,0 +1,24 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="RealmChat"
run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.2", "GL Compatibility")
boot_splash/show_image=false
boot_splash/fullsize=false
boot_splash/use_filter=false
config/icon="res://icon.svg"
[rendering]
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"

View File

@@ -0,0 +1,10 @@
[package]
name = "realmchat_client"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["cdylib"] # Compile this crate to a dynamic C library.
[dependencies]
godot = { git = "https://github.com/godot-rust/gdext", branch = "master" }

View File

@@ -0,0 +1,10 @@
use godot::prelude::*;
struct MyExtension;
#[gdextension]
unsafe impl ExtensionLibrary for MyExtension {}
pub fn add(left: usize, right: usize) -> usize {
left + right
}