Topic was automatically imported from the old Question2Answer platform.
Asked By
Megatt4
I’ve been trying to make this code work for the past couple of days, but i can’t pinpoint exactly why it’s not working:
extends LineEdit
var GridSize_Range = range(1,99)
var NT = 1
onready var GridGenerator_Script = load("res://Scripts/Grid_Size_UI.gd")
func _on_LineEdit_text_entered(new_text):
if new_text.is_valid_integer():
NT = str(new_text)
for i in GridSize_Range:
var i2 = str(i)
if NT == i2:
GridGenerator_Script.ValidGridSize == true
self.clear()
else:
GridGenerator_Script.ValidGridSize == false
self.clear()
The Boolean (on another script):
var ValidGridSize = false
This is supposed to make so that the boolean ends up being true or false depending on user input.
but when i test it by writing something it gives me this error:
Invalid Get Index 'ValidGridSize' (on base: 'GDScript).
Why are you using double equals in this situation? When you write: GridGenerator_Script.ValidGridSize == true
this simply returns a True or a False value, and you seem to do nothing with it…
To affect a value, you would simply use the equal sign (=). GridGenerator_Script.ValidGridSize = true
But anyway, once you loaded your script, it needs to be instantiated in order to use it dynamically. When you use the load function, the object is not the script itself… It’s a packed class. So skysphr is right, you need to instantiate it with the .new() method.
Then, do not forget to change your double equals for equals, and everything should work!
PS: If you didn’t want to instantiate the script in order to use it like a global script, you should really read about Singletons. This way, the script is instantiated once (for all the game) and you still can play with its values.
Math
I’ll make sure to read about them
Also, thanks for reminding me about the (==), i left them in there accidentally because i was testing how to make the code work, if you hadn’t pointed this out i’d probably still be scratching my head looking for a way to make this script work, so thanks a lot for the answer