![](https://programming.dev/pictrs/image/85d00bc1-2c76-448b-9b6e-c0228beee85c.webp)
I have found that this is incredibly fast. Loading files in threads in insane. Here is a demo where Godot loads 456 files, which all together add up to 1.6 GB in size in less than four seconds https://files.catbox.moe/g28op4.webm
I’m a person who tends to program stuff in Godot and also likes to look at clouds. Sometimes they look really spicy outside.
I have found that this is incredibly fast. Loading files in threads in insane. Here is a demo where Godot loads 456 files, which all together add up to 1.6 GB in size in less than four seconds https://files.catbox.moe/g28op4.webm
Fix: Run the FileAccess.get_file_as_bytes() method in a thread. I thought a thread wouldn’t allow for loading files using FileAccess, but it seems I was mistaken. I personally just make the Thread run my _threaded_loading(file_path:String) method and then call a signal named loaded_bytes(data:PackedByteArray). The _threaded_loading method looks like this:
func _threaded_loading(path:String) -> void:
print("I am the thread and I will now load this file")
var file:FileAccess = FileAccess.open(path, FileAccess.READ)
print("i have opened the file")
var bytes:PackedByteArray = file.get_buffer(file.get_length())
print("I have the bytes of the file")
file.close()
print("I have closed the file")
call_deferred_thread_group("emit_signal", "loaded_bytes", bytes)
return
It is important to emit the signal deferred, as a Thread on its own can’t emit a signal on its own. I did print a lot in the method just to check that everything is working as intended. I hope this helps someone!
Thank you for helping me with this. It really was the file_selected signal.
Go use NewPipe! Its Foss!
Gay pirates are the best kinds of pirates 💞
That looks like a job for a Tween!
COLOR.a = step(texture(noise, UV + vec2(0.0, TIME)).r, UV.y);
Bam shader
I love the GPL and AGPL, but for all intents and purposes, MIT makes more sense for a game development setting. You don’t want people to realize too pate that your plugin is GPL so they now have to rup it out and make their own, so they don’t have to open source their project…
SOLUTION: Turns out this problem happened because I was using the Orchestrator plugin (GDExtention plugin, pretty cool visual scripting language). This was causing the crashes. After removing the folder for the orchestrator, that fixed the problem.
Yes it does still crash after that. I have even completely removed the script I have been working on and it did not change anything. Thank you for trying to help me though!
This I dotn exactly understand. Do you mean it like this
print(Input.mouse_mode = Input.MOUSE_MODE_CAPTURED)
Yeah, they always do that
Oh yeah, that makes sense. In the documentation the only actual example they give for expressions is a math equasion, so I guess the code-executing features just came naturally… So I guess I will have to write methods for everything now…
Okay this is reasonable… I should have clarified that i am the only worker (don’t own a company or anything) so i think it’ll be fine
This seems to be the exact thing I am searching for, thanks! I have run into an interesting hickup tho. One can pass self to the expression so that it uses the node as the base, but the expression doesn’t seem to have access to autoloads. The error I’m getting there looks something like this: Invalid named index ‘ExampleAutoload’ for base type Object EDIT: Turns out I need to pass these individually as arguments essentially.
This is really just an internal tool I want to build. This will not be exposed to the player,
OP is not asking for windows
I feel that floor. Would love to walk on it
Wow I really thought this was a mod… What diffusion model did you use to create this? It’s really on point!