Godot: `Class_name` рдХреЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдЪрдХреНрд░реАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдЕрдЧре░ 2018  ┬╖  69рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: godotengine/godot

рд╡рд┐рдВрдбреЛрдЬ 10 64-рдмрд┐рдЯ - рдЧреЙрдбреЛрдЯ 3.1 рдЕрд▓реНрдлрд╛

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ - рдЪрдХреНрд░реАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╖реНрдХреГрдд рдореБрджреНрджрд╛ред

class_name рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЪрдХреНрд░реАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА-рдХрднреА рджрд┐рдП рдЧрдП рдПрдХрд▓ рдХреЗ рдмрд╛рд╣рд░ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреНрд▓рд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ is рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЯреВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХрдИ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдХрд░ рдореБрдЭреЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

godot master_2018-08-27_00-47-02

bug 3.2 confirmed high priority gdscript

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЬрд┐рд╕ рдлрд┐рдХреНрд╕ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рдЕрднреА рднреА WIP рд╣реИ рдФрд░ рдХреНрд░реИрд╢ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмреАрдЯрд╛ рд╕реНрдЯреЗрдЬ рдореЗрдВ рдЗрд╕реЗ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ 3.2.x рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд╕рднреА 69 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдЖрдк рдЖрдзрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ class_name рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд░реЗрдЦрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо (https://github.com/godotengine/godot/blob/master/modules/gdscript/gdscript_parser.cpp#L4947) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рднреА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рднреА рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдирд╣реАрдВ рдЖрддреА рд╣реИ рдПрдХ рдмрд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рд╣реИ)

@ PetePete1984 рдХреВрд▓, рдзрдиреНрдпрд╡рд╛рдж рдкреАрдЯред рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ?

рдЗрд╕рдХреА рджреЛрд╣рд░реА рдЬрд╛рдБрдЪ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдореИрдВ get_class() рдкрджреНрдзрддрд┐ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рдерд╛, рдФрд░ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ Node2D рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? is CustomClass рд╣рд┐рд╕реНрд╕рд╛ _true_ рд▓реМрдЯ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░ is_class("CustomClass") _false_ рд╣реИред

CC @reduz @vnen @willnationsdev

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрднрд┐рдкреНрд░реЗрд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдЬреЛ рдЪрдХреНрд░реАрдп рд╕рдорд╛рд╡реЗрд╢рди рдХрд╛ рдЕрд░реНрде рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред
get_class() рдФрд░ is_class() рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕реНрд░реЛрдд рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдЙрд╕ рд░рд╣рд╕реНрдп рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ is рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред

@ рдЬреЗрд╡рди рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

@ PetePete1984 рд╣рд╛рдБ, is 3.1 рдореЗрдВ рдЕрдм рдПрдХ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдмрд╛рдд рд╣реЛ рдЧрдИ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдЬрд╣рд╛рдБ рдореИрдВ рдирдП match рдЬреИрд╕реЗ match custom_thing.get_class() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рдерд╛ рдФрд░ рдХрдИ рддрд╛рд░реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд░реНрдл рдПрдХ рдкрдардиреАрдпрддрд╛ рдФрд░ рдХрдо рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЪреАрдЬред

@avencherus рдЖрдк рдХреЗ рд╕рд╛рде рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

match custom_thing.get_script():
    <typename>: stuff # script classes
    <typename>: stuff
    _: match custom_thing.get_class():
        "Node": stuff # engine classes

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рджреЗ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред

@willnationsdev рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ get_script() рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдореЗрд░реЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рд╣реИ, рдпрд╣ GDScript рдСрдмреНрдЬреЗрдХреНрдЯ [GDScript:1057] рд▓реМрдЯрд╛рддрд╛ рд╣реИред

@ рдЬреЗрд╡рди рдзрдиреНрдпрд╡рд╛рдж vnenред рдПрдХреНрд╕) рдХреБрдЫ рдЕрдиреНрдп рдЕрдЬреАрдм рдЪреАрдЬреЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИрдВ, рдЬрдм рдореИрдВ рдЗрди рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЧрдпрд╛, рддреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рдмреЗрд╣рддрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рд╛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЯрдХрд░рд╛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@avencherus рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ "рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо" рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИрдВ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП...

class_name CustomType
match get_script():
    CustomType:
        print("I am a CustomType!") # should print

@willnationsdev рдУрд╣

@ рдЬреЗрд╡рди рд╣рд╛рдБ, рдХрд╣рд╛рдиреА рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭреБрд░реНрд░рд┐рдпрд╛рдБред рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЛ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреАрдЯ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдПрдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ class_name рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ class_name CustomBase рдЬреЛ рдореИрдВрдиреЗ рдЬреЛрдбрд╝рд╛ рд╣реИ, рд╡рд╣ рдЖрдзрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдиреЛрдбреНрд╕ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдпрд╣ рдиреЛрдб рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди is рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдХреЛрдИ рдЕрдЬреАрдм рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВред

рдлрд┐рд░ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ base2.gd -> custom2.gd рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдпрд╛ред рдлрд┐рд░ рдЕрдВрджрд░ custom.gd class_name CustomClass2 , рд▓реЗрдХрд┐рди рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдордХрд░рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рд╕рд╛рдордиреЗ рдЖрдпрд╛ред рдиреЛрдб рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд┐рд╕рдиреЗ рдХрд╣рд╛ рдХрд┐ "рддреНрд░реБрдЯрд┐"

godot master_2018-08-27_20-01-26

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рд╡реЗ рджреЛрдиреЛрдВ class_name ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдЕрдЬреАрдм рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗред

рдиреЛрдб рд╕реВрдЪреА рдореЗрдВ рд╕рдм рдХреБрдЫ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ is рдХреАрд╡рд░реНрдб рдХреЗрд╡рд▓ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡рд╛рдкрд╕ рдЖрдПред рдпрджреНрдпрдкрд┐ рдЗрд╕ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдб рд╕реВрдЪреА CustomClass2 рдХреЛ рдкрд╣рдЪрд╛рдирддреА рд╣реИ, рдлрд┐рд░ рднреА рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреЗ рдХреЛрдб рдореЗрдВ, is CustomClass2 рдЭреВрдареЗ рд▓реМрдЯ рд░рд╣реЗ рд╣реИрдВред

godot master_2018-08-27_20-05-11

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдмрдВрдж рд╣реЛ рд░рд╣реА рд╣реИрдВ рдпрд╛ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╕реЗ рдЧреБрдЬрд╝рд░ рд░рд╣реА рд╣реИрдВред рдХрд╛рдлреА рд╣рдж рддрдХ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд╕реАрдорд┐рдд рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗред рдПрдХреНрд╕)

рд╕рдВрдкрд╛рджрд┐рдд рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдзреНрдпрд╛рди рди рджреЗрдВред рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ рдХрд┐ class_name 3.0 рдореЗрдВ

class_name 3.0.6 рдореЗрдВ рдЯреВрдЯ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдмрдирд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди:

image

@bfishman рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдХреНрд╖рд╛рдПрдВ 3.0.x рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред CreateDialog рдореЗрдВ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдХреНрд╖рд╛рдПрдВ рджрд┐рдЦрд╛рдИ рдЧрдИрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдареАрдХ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЧрдИрдВ, рджреГрд╢реНрдп рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛, рдЖрджрд┐ред

рдЗрд╕ рддрд░рд╣ рдПрдХ рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде:

  • рдиреЛрдб (рдмреЗрд╕.рдЬреАрдбреА)

    • рдиреЛрдб (рд╡реНрдпреБрддреНрдкрдиреНрди)

рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

# res://base.gd
extends Node
class_name BaseNode
func _ready():
    print("base")

# res://derived.gd
extends BaseNode
extends "base.gd" # I tried both of these 'extends' lines and they each worked
class_name DerivedNode # I tried with and without this line
func _ready():
    print("derived")

рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдпрд╛, рддреЛ рдпрд╣ рдЫрдкрд╛

base
derived
base

...рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рдЖрдкрдХреЗ рд╕рдВрдкрд╛рджрдХ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдпрджрд┐ рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ / рдЗрдВрдЬрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреИрд╢ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдереЗ, рддреЛ рдХрд┐рд╕реА рддрд░рд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЗрд╕реЗ рджреВрд░ рдирд╣реАрдВ рдХрд░рддреЗ)ред

@willnationsdev рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕реЗ

@avencherus рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рдпрд╛рдж рд╣реИ @Kroffel рдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЧ рдЖрдЗрдХрди рдХреЗ рд╕рд╛рдорд╛рди рдореЗрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдЬреЛрдбрд╝реЗ рдереЗред

Https://github.com/godotengine/godot/commit/1093c0ff51b980634dffdd9618eaa53061da6419 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛
рдореБрдЭреЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ "рдирдпрд╛ рдиреЛрдб рдмрдирд╛рдПрдБ" рд╕рдВрд╡рд╛рдж рдореЗрдВ рдиреЛрдб рдирд╣реАрдВ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдореВрд▓ рдкреЛрд╕реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓ рд░рд╣реА рд╣реИ (Windows x64 Godot 3.1 рдЕрд▓реНрдлрд╝рд╛):

image

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ 3 рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ class_name , рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ Node2D рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдЬрдм рддрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ is рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рддрдм рддрдХ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП if some_var is Incomer ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЬреАрдм рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдПрдХ рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреНрдп class_name рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреА рд╣реИ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЕрдЧрд░ рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ class_name рдХрд╛ рд╕рдВрджрд░реНрдн рджрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рддреЛ рдПрдХ ClassA, ClassB, ClassC рд╣реИред рдпрджрд┐ ClassC is рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде ClassA рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рддреЛ рд▓реЛрдб рд╕рдордп рдкрд░ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдпрджрд┐ ClassC ClassB рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВред рдпрджрд┐ ClassB ClassA рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВред

рдХреЛрдИ рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╣реА рджреГрд╢реНрдп рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рднреА рдиреЛрдбреНрд╕ рднрд╛рдИ рдмрд╣рди рд╣реИрдВ (рдХреЛрдИ рдкреВрд░реНрд╡рдЬ рд╕рдВрдмрдВрдз рдирд╣реАрдВ)ред

@AlexHolly рдореЗрд░реЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИред рддреНрд░реБрдЯрд┐ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд╛рдВ, рдЖрдзрд╛рд░ рд▓рд┐рдкрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдХрдХреНрд╖рд╛рдПрдВ рдиреЛрдб рдиреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдВрдЧреА, рдЬрд┐рд╕рдореЗрдВ class_name ред

рдпрд╣ рдЕрд▓реНрдлрд╛ 3.1 c320d93 рдореЗрдВ рд╣реИ

"рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ"ред рдпрджрд┐ рдЖрдк "as" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡рд╣реА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ @Oranjoose рдиреЗ рднреА рдХрд┐рдпрд╛ рдерд╛ред
cycle.zip

рдХреЛрдИ рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╣реА рджреГрд╢реНрдп рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рднреА рдиреЛрдбреНрд╕ рднрд╛рдИ рдмрд╣рди рд╣реИрдВ (рдХреЛрдИ рдкреВрд░реНрд╡рдЬ рд╕рдВрдмрдВрдз рдирд╣реАрдВ)ред

рдпрд╣ рджреГрд╢реНрдп рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЪрдХреНрд░ рд╕реНрд╡рдпрдВ рд╣реЛрддрд╛ рд╣реИред

рдЕрднреА рдХреЗ рд▓рд┐рдП is рдФрд░ as рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рд╛рдЗрдХрд┐рд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рддрд░реАрдХрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди 3.1 рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдПрдХ рдмрдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрдХреНрд░ рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ 451e5fd рдореЗрдВ рднреА рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдиреЛрдб рдмрдирд╛рдПрдБ рд╡рд┐рдВрдбреЛ tho рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛ред

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ 0dbe014 (рдирд╡реАрдирддрдо рдорд╛рд╕реНрдЯрд░ рдореИрдВрдиреЗ рдЦреАрдВрдЪреА) рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рд╣рдо рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рддрд╛рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдХреНрд╖рд╛рдПрдВ рдЕрднреА рднреА CreateDialog рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВ рдЬреЛ рдЕрднреА рднреА рдПрдХ рдмрдЧ рдерд╛ред PR рдКрдкрд░ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@willnationsdev рдзрдиреНрдпрд╡рд╛рдж рд╣реЛрдЧрд╛ред X) рдореИрдВ class_name рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдореБрджреНрджреЛрдВ рдкрд░ рдЯрдХрд░рд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдПрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХрднреА-рдХрднреА рдЕрд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЕрдкрд░рд╛рдзреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЦреЛрд▓рддреЗ рд╕рдордп рд╡реЗ рдЕрдзрд┐рдХ рдЕрд░реНрдердкреВрд░реНрдг рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдпреЗ рддрдп рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдпреЗ рдЕрдиреНрдп рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреЛрд╕реНрдЯ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдлрд┐рд░ рд╕реЗ рджрд░реНрдЬреА рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЪрдХреНрд░реАрдп рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рд╡рд┐рд╖рдо рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдорд╛рдпрд╛рд╡реА рд╣реИред рддреЛ рд╡рд╣рд╛рдБ рд╢рд╛рдпрдж рдпрд╣ рдЕрднреА рднреА рдХреБрдЫ рд╣реИ, рдореИрдВ рдЗрд╕реЗ vnen рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред

@avencherus рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред рд╡реИрд╕реЗ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдВрддрддрдГ рдпрд╣ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдПрдХреНрд╕рдбреА

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЧреЙрдб-рдиреЗрдХреНрд╕реНрдЯ рд╡рд░реНрдХ рдореЗрдВ рд╣реБрдИ рдХреБрдЫ рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрдн рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдВ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдХрд┐ рдореИрдВ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд░реНрдЧ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрдЧ рдирд╛рдо рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдмрд╛рдж рдореЗрдВ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП), рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрдЧреА рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреБрди: рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЬреЛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╡рд╣ load(get_script().resource_path).new() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рдПрдХ рдХреМрд░, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдбреЗрдЯрд╛ рдХрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдФрд░ рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЯрд╛рдЗрдкрдиреЗрдо рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рджреЗрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗрд╡рд▓ RUNTIME рдкрд░ рдЯрд╛рдЗрдк рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдВ рдЬрдм рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рд╣реЛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдЗрд╕реЗ рдЫреЗрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ред рдХрд╛рд╢ рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рдорджрдж рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЧрд╣рди рдЬреНрдЮрд╛рди рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдФрд░ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рднрд╛рдЧ рд▓реЗрдВред рдореИрдВ рджрд╛рдВрд╡ рд▓рдЧрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдкрдиреА рдЬрдЧрд╣реЗрдВ рдХрд╣рд╛рдБ рд╕реЗрдЯ рдХрд░рдиреА рд╣реИрдВред

рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рд╛рд░рд╛рдВрд╢ (рдореИрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╣рдлреНрддреЛрдВ рдореЗрдВ рдЗрдиреНрд╣реЗрдВ рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛):

  1. obj is MyClass рдореБрдЭреЗ рдпреЗ рдЪрдХреНрд░реАрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реЗрдВрдЧреА рдФрд░ рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрдмрдВрдз рдпрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рджреГрд╢реНрдп рдкреЗрдбрд╝ рдХреЛ рд╕реНрдХреИрди рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд┐рди рд░рд╣рд╛ рд╣реИред
  2. рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдИ рдЧрдИ рдЕрд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рднреА рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реИред рдХрд╛рд╢ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд / рджреЗрд╢реА рд╡рд░реНрдЧ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдЖрдк рдЗрд╕ рдЕрдВрддрд┐рдо рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рдпрд╣ рд╕рдм рдареАрдХ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдПрдХ рд╣реИрдХ / рд╡рд░реНрдХ-рдЕрд░рд╛рдЙрдВрдб / рдкреБрд░рд╛рдиреА рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рддрдм рдХреНрдпрд╛ рдерд╛ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдЕрдЧрд░ рдХреНрд░рд┐рдпрд╛ рдкрде рдирд╛рдореЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ?
  3. рдореИрдВ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рддреНрд░реБрдЯрд┐-рдореБрдХреНрдд рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ рдФрд░ рдЯреЗрд╕реНрдЯ рд░рди рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдл-рд╕реБрдерд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдЧреЗрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рд╡рд┐рдлрд▓рддрд╛рдПрдВ рд╣реИрдВред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИ) class_name рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдб рдореЗрдВ рдЙрдирдХреЗ рдЖрдЗрдХрди рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛, рд▓реЗрдХрд┐рди рд╕рдВрдкрд╛рджрдХ рд╕реЗ рд░рди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

gtc_2018-10-12_13-21-35

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ class_name рд╕рд╛рде рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд▓рдЧрднрдЧ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд, рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рд╕рдордЭрд╛рдиреЗ, рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рджреИрдирд┐рдХ рдореБрдарднреЗрдбрд╝ рд░рд╣реЗ рд╣реИрдВред рдмрд╣реБрдд рд╕рд╛рд░рд╛ рд╕рдордп рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдирд╛рдЪрддреЗ рд╣реБрдП рдмрд░реНрдмрд╛рдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛, рдФрд░ рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рдкрдардиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд┐рдВрдЧ рдХрд░реЗрдВрдЧреЗред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдордп рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╢рд╛рдпрдж 4.0 рдореЗрдВред рдПрдХреНрд╕)

рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрде рдХреЗ рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЗ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдмрд╕ рдХрд┐рд╕реА рднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ class_name рдЖрд╢реНрдЪрд░реНрдп рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореЗрд░реА рдЕрдкрдиреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЧреАред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛, class_name рд╕рд╛рде рд╕рд╛рдЗрдХрд┐рд▓ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм is рдФрд░ as ред рдпрд╣ рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдХрдо рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рднреА рдЯрдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ GDScript рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рдирд╣реАрдВ рд╡рд╛рдпрд░реНрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрд╕рд╛рдзрди рд▓реЛрдбрд┐рдВрдЧ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрди рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдФрд░ рд╕реАрдзреЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЙрдерд▓реЗ рдкрд╛рд░реЗ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛), рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдХреЗ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рдВрднрд╡рддрдГ рдпрд╣ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдареАрдХ рд╕реЗ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред class_name рдЕрдм рдХреЗ рд▓рд┐рдП рдПрдХ "рдХрдо рд╕реБрд╡рд┐рдзрд╛" рд╣реЛрдЧреАред рдЖрдк рдЕрднреА рднреА рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред

@ рд╣реЗрд╡реЗрди рд╣реЗред рд╡рд╛рдкрд╕реА рдкрд░ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдПрдХреНрд╕)

рдЙрддреНрддрд░ рдФрд░ рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╣рд╛рдВ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рд╢реЗрд▓реНрдл рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЗрддрдиреА рдЪрд┐рдХрдиреА, рдлрд┐рдЯрд┐рдВрдЧ рдпрд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдПрдХреАрдХрд░рдг рдирд╣реАрдВ рдерд╛ред (рдЬрдм рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рджреЗрдЦреА, рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рдиреЗ рдХреА рддрд░рд╣ рдереЗред)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ "рдХрдо" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЧрдВрднреАрд░ рд▓рд╛рдн рд╣реЛрдВрдЧреЗ рдпрджрд┐ рдЭреБрд░реНрд░рд┐рдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ GDScript рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдорд╛рд░реНрдЧ рд╣реИред

рдПрдХ рдмрдбрд╝реА рдЪреАрдЬ рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ рд╡рд╣ рд╣реИ рд╕рдВрдХреЗрдд рдкрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬрдм рдПрдХ рдХрд╕реНрдЯрдо рд╡рд░реНрдЧ рдЖрдкрдХреЗ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реЛрддрд╛ рд╣реИред var thing : NewThing

рдЬрдм рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рджрд┐рдиреЛрдВ рдмрд╛рдж рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ 100% рд╣рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рдпрд╛рдж рдирд╣реАрдВ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпреЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╣реИред рдореИрдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░рд╣рдиреЗ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрджреНрджреЗ рдХрд╛ рдореВрд▓ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рдЖрд╕рд╛рди рдЪрдХреНрд░, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЕрдиреБрднрд╡ рдпрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╕рд╣реА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред рдЕрдм рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рд╣реЛ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд╣рд╛рдБ рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдХреНрд▓рд╛рд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рджрд┐рдиреЛрдВ рддрдХ рд╕рдм рдареАрдХ рд░рд╣рд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдХреБрдЫ рдФрд░ рдХреЛрдб рд▓рд┐рдЦреЗ рдЬреЛ рдЙрд╕ рдХрд╕реНрдЯрдо рдХреНрд▓рд╛рд╕ рдХреЛ рдХрд╣рддреЗ рдереЗ, рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдореБрдЭреЗ рдЪрдХреНрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрдиреЗ рд▓рдЧреАрдВред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдпрд╣ рдмрддрд╛рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рдереАрдВ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХрд╣рд╛рдБ рд╣реБрдИ рдереАред рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рддрдм рддрдХ рд╢рд┐рдХрд╛рд░ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЬрдм рддрдХ рддреНрд░реБрдЯрд┐ рдмрдВрдж рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА рддрдм рддрдХ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рд╕рднреА рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреА рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдиреЗ рдмрд╣реБрдд рдХреБрдЫ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ 30,000 рд▓рд╛рдЗрдиреЛрдВ рдХреА рддрд░рд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╕реНрдкрд╛рд░реНрдХрд┐рдВрдЧ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдПрдХ рдШрдЯрдирд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЗрди рд╕рдм рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛, рд╡рд╣ рдереА рдЬрд╣рд╛рдБ рдЪрдХреНрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреЗрд╡рд▓ рдирд┐рд░реНрдпрд╛рдд рдмрд┐рд▓реНрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рдереАрдВ, рдФрд░ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХ рд░рд╣реА рдереАрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХрд╣ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЖрдЗрдХрди рдмрдирд╛рд╡рдЯ рдирд╣реАрдВ рдкрд╛рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛, рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдХреБрдЫ class_name рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рдЦреЛ рджрд┐рдпрд╛, рддреЛ рдпрд╣ рд╕рд╛рдл рд╣реЛ рдЧрдпрд╛ред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ class_name рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рдерд╛, рдФрд░ рддреНрд░реБрдЯрд┐ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдкрд░ рдЖ рд░рд╣реА рдереАред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрднреА-рдХрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рд░реЗрдЦрд╛ рдХреЗ рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рдХрд╛рд░рдг рд╕реЗ рд╣реЛ рд░рд╣реА рд╣реИред

рдЗрди рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рдФрд░ рдореЗрд░реЗ рд╢реВрдиреНрдп рдЬреНрдЮрд╛рди рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рд╣реИред рдЗрд╕рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдмрд╕ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╣реИ, рдФрд░ рдореИрдВ рдЖрднрд╛рд░реА рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред

3.1 рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЕрд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛рдПрдВ рд╣реБрдИ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕реНрд╡рдпрдВ рдЪреАрдЬрд╝ рд╣реИ, рдпрд╛ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдореБрдЭреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЖрд╢рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдорджрджрдЧрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдВрдХреАрд░реНрдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдХрд┐рд╕реА рднреА рддрд░рд╣ рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдирд╣реАрдВ рдХрд░ рдЪрдХреНрд░реАрдп рд╕рдорд╛рд╡реЗрд╢рди рдХрд╛ рд╕рдорд╛рдзрд╛рди ...
project.godot рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рд▓реЙрдиреНрдЪрд┐рдВрдЧ рдПрдбрд┐рдЯрд░ рдкрд░ рд╡реИрд╕реЗ рднреА рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

@vnen рдпрд╛ @avencherus рдУрдкреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдмрдЧ рдЖрдЦрд┐рд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмреА рдЪрд░реНрдЪрд╛ рд╣реИред

@ akien-mga рдореИрдВ рдЕрдм рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрдирд╛ рд╣реИред

рдЕрдЧрд░ рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВред рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ GDScript рдХреА рд╕реАрдорд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЪрдХреНрд░реАрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рдФрд░ рдлрд┐рд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рдФрд░ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ (рдХрднреА-рдХрднреА рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдХрд╛рд░рдг)ред

рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреНрд░рдЧрддрд┐ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдпрд╣рд╛рдВ рдФрд░ рдЗрд╕ рд╕рдордп рд╕реЗ рддрдп рд╣реЛ рдЧрдИ рд╣реИрдВред

рдЗрди рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдмрд╛рдд GDScript рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИред 3.2 рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рдеред рдпрджрд┐ рд╡рд╣ рдпреЛрдЬрдирд╛ рд╣реИ, рддреЛ 3.1 рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХреЗ рдиреАрдЪреЗ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпрд╣ рдмрдВрдж рдХрд░рдирд╛ рд╢рд╛рдпрдж рдареАрдХ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ vnen рдмрд╣реАрдЦрд╛рддрд╛ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЧрд╛рдореА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрдм 3.1.0 рд╕реНрдерд┐рд░ рднреВрдорд┐ред

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдПрдХ рдкреНрд░рдпреЛрдЬреНрдп рдЬреАрдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ 3.2 рдореЗрдВ рдЗрд╕рдХреА рдкреБрди: рд╕рдореАрдХреНрд╖рд╛ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рдЦреИрд░ рдпрд╣ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд╣реАрдВ, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреА рд╕рд░рд╛рд╕рд░ рд░рд╛рд╢рд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ :)

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬреЛ рдореБрдЭреЗ 3.0 рд╕реЗ 3.1 рддрдХ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИред рдкрд╣рд▓реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛рдо рдХрд░рддреЗ рдереЗ:

extends Node2D
export(String, FILE, "*.gd") var _class_name = "res://Test.gd"
onready var SomeClass = load(_class_name)

func foo():
    for c in get_children() :
        if c is SomeClass : 
            do_stuff()

рдЬрдм рдореИрдВ рдХреЛрдб рдмрджрд▓реВрдВ:

extends Node2D
class_name SomeClass

func foo():
    for c in get_children() :
        if c is SomeClass : 
            pass

рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

рдкрд╛рд░реНрд╕ рддреНрд░реБрдЯрд┐: рдХрдХреНрд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ (рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИ)

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдореИрдВ рдЗрд╕ рдХрдХреНрд╖рд╛ рд╕реЗ рд╕рднреА рд╡рд┐рд░рд╛рд╕рдд рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдиреНрдп рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЧ рдХреЗ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред

@ рдбрд╛рдпрд╕реНрдкрдЯрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ if c is SomeClass if c is get_script() ред рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдПрдХ рд░рдирдЯрд╛рдЗрдо рдЬрд╛рдВрдЪ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди SomeClass рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдкрд╛рджрдХ-рд╕рдордп рдкрд░ рд▓реЛрдб рдХрд░реЗрдВ (рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрдн) рдЬрдмрдХрд┐ get_script() рдкрджреНрдзрддрд┐ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рд╕рдВрдкрд╛рджрдХ рд╕рдордпред

@willnationsdev рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдХрд┐ рдПрдХ рд╡реИрдз рд╕рдорд╛рдзрд╛рди рд╣реИ (рдпрд╛ рдореЗрд░реЗ рдореБрджреНрджреЗ рдкрд░ рд╕рдорд╛рдзрд╛рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЕрдЧрд░ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдареАрдХ рд╕реЗ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдореБрдЭреЗ рднреА рд▓рдЧрд╛ред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

DummySomeClass.gd
extends Node2D
class_name DummySomeClass

func foo():
    pass


SomeClass.gd
extends DummySomeClass
class_name SomeClass

func foo():
    for c in get_children() : 
        if c is DummySomeClass: 
            pass

рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рджреЗ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдорд╛рдзрд╛рди рдпрд╛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдмрдЧ рдЬрд┐рд╕реЗ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рддрдп рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдереЛрдбрд╝реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрдкрдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рдпреБрдЧреНрдорд┐рдд рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЪрдХреНрд░реАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди / рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдПрдХ рднреЛрд▓рд╛ рд╕рд╡рд╛рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдЧреИрд░-рдЪрдХреНрд░реАрдп рдкреНрд░рддрд┐рдмрдВрдз рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдирд╣реАрдВ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдЬреИрд╕реЗ рдЬрд╛рд╡рд╛, рд╕реА #, рд╕реА ++, рдЖрджрд┐ ... рдмрд┐рдирд╛ рдореБрджреНрджреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВ ...

@harraps рдЬреЛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдереНрд░реЗрдб рдореЗрдВ рдХреБрдЫ рдмрд╛рд░ рдХрд╣рд╛ рдерд╛), рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рдореВрд▓рднреВрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ GDScript рд╡рд╛рдпрд░реНрдб рд╣реИред рдореИрдВ рдЕрдм рдЗрд╕реЗ рдирд╣реАрдВ рдЫреВрдКрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд░рд┐рд▓реАрдЬ рдХреЗ рдХрд░реАрдм рд╣реИрдВ рдФрд░ рдЗрд╕ рдмрджрд▓рд╛рд╡ рд╕реЗ рдЕрдиреБрдХреВрд▓рддрд╛ рдЯреВрдЯрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ "рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрдн" рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдерд┐рд░ рдлрд╝реИрдХреНрдЯрд░реА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд░рд┐рдЯрд░реНрди рдорд╛рди рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрдкрд╛рджрдХ рдХреЗ рднреАрддрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рд╕рдВрдкрд╛рджрдХ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдорд┐рд▓реЗрдЧреА рд╡рд╣ рд╕рдВрд╕рд╛рдзрди рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

extends Reference
class_name MyClass

static func make() -> MyClass:
    # can't even use get_script() for static funcs, but that's a separate issue
    var c = load("res://my_class.gd").new()
    return c

рдлрд┐рд░ рдЖрдкрдХреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

ERROR: SelfList<class GDScriptFunction>::List::~List: Condition ' _first != 0 ' is true.
   At: .......\godot\core/self_list.h:111
ERROR: SelfList<class GDScript>::List::~List: Condition ' _first != 0 ' is true.
   At: .......\godot\core/self_list.h:111
WARNING: ObjectDB::cleanup: ObjectDB Instances still exist!
     At: core\object.cpp:2093
Leaked instance: GDScript:17060 - Resource name:  Path: res://my_class.gd
Leaked instance: GDScriptNativeClass:1058
ERROR: ResourceCache::clear: Resources Still in use at Exit!
   At: core\resource.cpp:425

# 944 рд╕реЗ рд░рд┐рдкреЙрд╕реНрдЯрд┐рдВрдЧ,

рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЪрдХреНрд░реАрдп рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рднреА рджреМрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд┐рдирд╛ рдЬреАрдбреАрдПрд╕рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реВрдБ:

  1. рдореЗрд░реЗ рдкрд╛рддреНрд░ рдПрдХ ActorController рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ Move s (рдЬреИрд╕реЗ рдХрд┐рд╕реА рд░рд╛рдЬреНрдп рдХреА рдорд╢реАрди рдореЗрдВ рд░рд╛рдЬреНрдпреЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред ActorController рдлреЙрд░рд╡рд░реНрдб _physics_process() рдФрд░ рдРрд╕реЗ рд╕рдХреНрд░рд┐рдп Move ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдХрджрдо ActorController рдХреЛ рдПрдХ рдФрд░ Move рдпрд╛ рдПрдХреНрд╕реЗрд╕ рдкреНрд░реЙрдкрд░реНрдЯреА (рдЬреИрд╕реЗ рдЬрдВрдк рд╣рд╛рдЗрдЯ, рд░рдирд┐рдВрдЧ рд╕реНрдкреАрдб, рдЖрджрд┐) рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред

  2. рдореЗрд░реЗ MoveRepository рд╕рд╛рде рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ - рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реНрдЯреЛрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп Move s рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА Move s рдХреЛ рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп Move рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЕрдкрдиреЗ ActorController рдореЗрдВ рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП

actor-framework

рдпрд╣ C # рдпрд╛ C ++ рдореЗрдВ рдПрдХ рдЧреИрд░-рдЗрд╢реНрдпреВ рд╣реИ, рд▓реЗрдХрд┐рди GDscript (рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдЯреИрдЯрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде) рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡реЗрд░рд┐рдПрдВрдЯ (рдбрд╛рдпрдирд╛рдорд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ) рдкрд░ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдпрд╛ рдШрдЯрдирд╛рдУрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реЗрдЯрдЕрдк рд╣реИ рдЬреЛ рд╕рдорд╛рди рд╣реИ рд▓реЗрдХрд┐рди рд╕рд░рд▓ рд╣реИред
рдХрдХреНрд╖рд╛ TurnManager рдХрд╛ рдкреНрд░рдХрд╛рд░ Actor рдХрд╛ рдЪрд░ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ Actor рдХрд╛ TurnManager рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрджрд░реНрдн рд╣реИред
рдореИрдВ is рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рд╕рдЪрдореБрдЪ рдХреЗрд╡рд▓ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рд╣реИрдВ рдФрд░ рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рднрдбрд╝рдХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд▓рд┐рдирдХреНрд╕ 64-рдмрд┐рдЯ рдкрд░ рдирдП рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 3.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

image

рдмрд╕ рдЗрд╕реА рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

image

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИред

image

рдореБрдЭреЗ рднреА рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдзрд┐рдХрддрд░ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереА? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЖрдзрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд░реНрдЧ рд╣реИ, рдЬреЛ рдиреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рд╛рдЗрдорд░реА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдФрд░ рд╕реЗрдХреЗрдВрдбрд░реА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдЗрд╕реЗ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ 12 рдкреНрд░рд╛рдЗрдорд░реА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдиреЛрдбреНрд╕ рдФрд░ рдПрдХ рд╕реЗрдХреЗрдВрдбрд░реА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдиреЛрдбред рд╕рдВрдкрд╛рджрдХ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдореИрдВ рдЗрд╕реЗ рдЦреЗрд▓рддрд╛ рд╣реВрдВ рддреЛ рдЦреЗрд▓ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ, рдореИрдВрдиреЗ class_names рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдкрдереЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдФрд░ рдореБрдЭреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рдЧрднрдЧ 5 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдареАрдХ рд▓рдЧрд╛ред : /

рд╣рдореНрдоред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЪреАрдЬреЗрдВ рднрд░реА рд╣реБрдИ рд╣реИрдВ? рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рддреЛ, рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдкрд░реЗрд╢рд╛рдиреА рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред : /

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдлрд╛рдЗрд▓реЗрдВ рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рдлрд╛рдЗрд▓реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЦреБрд▓реА рд╣реИрдВред рдЬрдм рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡реЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рддрдХ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдмрджрд▓реВрдВрдЧрд╛, рдФрд░ рддрдм рд╕рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рджрд┐рдЦреЗрдВрдЧреАред : /

@ рдХреЛрдгреАрдп-рдПрдиреНрдЬрд┐рд▓ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдореИрдВ рдХрд╕реНрдЯрдо рдХреНрд▓рд╛рд╕реЗрд╕ / рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЧреЛрдбреЛрдЯ рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдмрд┐рдирд╛ рд╡рд┐рдЪрд┐рддреНрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкреЙрдкрдЕрдк рдХреЗ рдмрд┐рдирд╛ред

"рдкреНрд░реЛрдЬреЗрдЯ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ / рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реИред" Shift + Ctrl + Q (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реВрдЪреА рдкрд░ рдЬрд╛рдПрдВ), рд╢реАрдШреНрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ, рдлрд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рджреЛрдмрд╛рд░рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░ рднреА рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрджрдд рдкрдбрд╝ рдЬрд╛рддреА рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдареАрдХ рди рд╣реЛ рдЬрд╛рдП)ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢ рднреА рд╣реВрдВ, рдФрд░ рдЬрдм рд╕реЗ рдЖрдк рд▓реЛрдЧ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рдореИрдВрдиреЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред

рдорд╛рдирд╛ред рдпрд╣ рдЕрдкрдиреЗ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрджрдд рдмрди рдЧрдИред рд╢рд╛рдпрдж рджреЗрдЦреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ рд╡рд░реНрдХрдЕрд╡реЗрдЕрд░ рдкрд▓ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред (рдЧреЛрдбреЛрдЯреНрдЯ рд╡реНрд░рдд рд╢реБрд░реВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛) 16 рдордИ, 2019 8:27 рдкреВрд░реНрд╡рд╛рд╣реНрди, рд░рд┐рдХрд╛рд░реНрдбреЛ рдЕрд▓реНрдХрд╛рдирддрд╛рд░рд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛: рдХреНрд╖рдорд╛ рдХрд░реЗрдВ , рд▓реЗрдХрд┐рди рдореИрдВ рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢ рднреА рд╣реВрдВ, рдФрд░ рдЬрдм рд╕реЗ рдЖрдк рд▓реЛрдЧ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдЙрд╕ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛ , рдореИрдВрдиреЗ рдЬрд╛рддреЗ рд╕рдордп рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред

тАФрдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред рд╕реАрдзреЗ рдЗрд╕ рдИрдореЗрд▓ рдкрд░ рдЬрд╛рдПрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдЧреЛрдбреЛрдЯ 3.1.1 (рдореЛрдиреЛ рдирд╣реАрдВ)
Stack.zip

рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рдЙрджрд╛рд╣рд░рдг

https://cdn.discordapp.com/attachments/477544613511692358/584811385838632977/unknown.png

_please_ рдХреЛрдИ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

image

рд▓реЛрдбрд┐рдВрдЧ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ StackList.gd рдореЗрдВ рдПрдХ рдЕрдирдХреИрдкреНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рд╢рдмреНрджрдХреЛрд╢ рдХреБрдВрдЬреА рдШреЛрд╖рдгрд╛ рдореЗрдВ рдПрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдмрд╕ рдПрдХ рдиреЛрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдЖрдЬ рднреА "class_name рдмрдЧ" рд╣рд┐рдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ className рд╣реИ, рддреЛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрдЬрд╛рдп object.has_method ("рдирд╛рдо") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ

рдореИрдВ рдЗрд╕реЗ 3.1.1 рдореЗрдВ рдПрдХ рдмрд╛рд░ рдорд╛рд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдкреНрд╕ рд╕реЗ рдХреВрдж рд░рд╣рд╛ рд╣реВрдВред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ 3.2 рдореЗрдВ рддрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛!

рдореИрдВ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдореБрджреНрджреЛрдВ рдХреЛ рди рдЫреЗрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗред

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ @JavaryGames рдкрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ 3.2 рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рд╣реИ (рдХреБрдЫ рд╣рдж рддрдХ рдХреИрд╕реЗ GDScript рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╣рдо рд░рд┐рд▓реАрдЬ рдХреЗ рдХрд░реАрдм рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣рдо 3.2.1 рдпрд╛ рдХреБрдЫ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 4.0 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЬрд┐рд╕ рдлрд┐рдХреНрд╕ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рдЕрднреА рднреА WIP рд╣реИ рдФрд░ рдХреНрд░реИрд╢ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмреАрдЯрд╛ рд╕реНрдЯреЗрдЬ рдореЗрдВ рдЗрд╕реЗ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ 3.2.x рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

@ рдЗрд╡рди рдЗрд╕ рдмрдЧ рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдорджрдж рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╡рд░реНрдЧ рдХреЗ class_name рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдмрджрд▓рдирд╛ рдПрдХ

рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рдПрдХ рдРрд╕реА рд░реЗрдЦрд╛ рдкрд░ рд╣реБрдЖ рдЬрд╣рд╛рдВ рдореИрдВ рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рддрд░реАрдХреЗ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж as рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдп рдХреЛ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЪрд░ рдХреЛ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХреВрдВред рдлрд┐рд░ рд╡рд┐рдзрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд▓рд╛рдЗрди рдпрд╣ рддреНрд░реБрдЯрд┐ рджреЗрддреА рд░рд╣реА, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд░реБрдХрд╛ рдЬрдм рдореИрдВрдиреЗ рдЕрдВрдд рдореЗрдВ рдХрд╛рд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рдХреБрдЫ рдФрд░ рдмрджрд▓ рджрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдмрджрд▓ рджрд┐рдпрд╛ред

@ рдЗрд╡рди рдЗрд╕ рдмрдЧ рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдВ, рдореЗрд░реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдпрд╣ рд╣реИ: https://github.com/vnen/godot/commits/gdscript-no-cycles

рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдорджрдж рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╡рд░реНрдЧ рдХреЗ class_name рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдмрджрд▓рдирд╛ рдПрдХ

рдЖрдк рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХреБрдЫ рдХреИрд╢рд┐рдВрдЧ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣рд░ рд╕рдордп рд╕рдм рдХреБрдЫ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЗрд╕реЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рддреНрд░реБрдЯрд┐-рдореБрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рддрдм рднреА рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

https://github.com/godotengine/godot/issues/38265 рдХреБрдЫ рдкреНрд░рдЬрдирди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдПрдХ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред

рдпрд╣ рдлрд┐рдХреНрд╕ рдореЗрди рд▓рд╛рдЗрди рдореЗрдВ рдХрдм рдЖрдПрдЧрд╛?
рдпрд╣ рд╕реБрдкрд░ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЯрд╛рдЗрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдмрд╣реБрдд рдмрд╛рд░ рднрд╛рдЧрддрд╛ рд╣реВрдВред
рдЖрдЬ рдореИрдВ рдПрдХрд╛рдВрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВред

extends Resource
class_name WfcSlotHistory

func _init(slot:WfcSlot):
    pass
extends Resource
class_name WfcSlot

function saveHistory():
   var history:WfcSlotHistory = WfcSlotHistory.new(self)
   ...

res: //assets/wfc/WfcSlotHistory.gd : 5 - рдкрд╛рд░реНрд╕ рддреНрд░реБрдЯрд┐: рд╡рд░реНрдЧ "WfcSlot" рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛)ред
рдореЙрдбреНрдпреВрд▓ / gdscript / gdscriptред cpp: 576 - рд╡рд┐рдзрд┐ рд╡рд┐рдлрд▓ рд░рд╣реАред рд▓реМрдЯрдХрд░: ERR_PARSE_ERROR

@ рдорд╛рдпрдХреЗрд╕реНрдХреБрд▓реЗрдЬрд╝ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдореБрджреНрджрд╛ рд╣реИ: WfcSlot рд╢рд╛рдпрдж WfcSlotHistory рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдПред save рдХреНрд░рд┐рдпрд╛ рд╕рдВрднрд╡рддрдГ рдмрд╛рдж рдХреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

(рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ / рдмрдЧ _is_ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдЧрд▓рдд рдирд╣реАрдВ рд▓рдЧрддрд╛ред)

@ Jeto143 рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ SlotHistory рдореЗрдВ рд╕рднреА рд╕реНрд▓реЙрдЯ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдореИрдиреБрдЕрд▓ рдХреЙрдкреА рдХрд░рдХреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреАред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧ рд╕реБрд▓рдЭ рдЬрд╛рдПрдЧрд╛

рд╣рд╛рдп рджреЗрд╡реЛрдВ рдЬрдм рдпрд╣ рд▓рдВрдмрд╛ ... рд▓рдВрдмрд╛ рдмрдЧ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛?

рдкрд╣рд▓реЗ рдореБрдЭреЗ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ?
рджреВрд╕рд░реА рдХреЛрд╢рд┐рд╢ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдереИрддрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рддрд░рд╣ рдПрдХ рд╡рд░реНрдЧ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдЙрджрд╛рд╣рд░рдг)
`` ``
рд╕рдВрд╕рд╛рдзрди рдмрдврд╝рд╛рддрд╛ рд╣реИ
class_name рдХреНрд▓рд╛рд╕ рдП

_init (valueA: int, valueB: int):
рдкреНрд░рд┐рдВрдЯ (valueA, valueB)

рд╕реНрдерд┐рд░ рдХрд╡рдХ (рдореВрд▓реНрдп: int) -> рд╡рд░реНрдЧ:
рд╡рд╛рдкрд╕реА ClassA.new (рдореВрд▓реНрдп, рдореВрд▓реНрдп)
`` ``

`` ``
var o: ClassA = ClassA.new (1,2) # рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

var o2: ClassA = ClassA.of (2) # рддреНрд░реБрдЯрд┐ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ

`` ``

рд╕реНрдереИрддрд┐рдХ рдХрд╡рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред
"рдкрд╛рд░реНрд╕рд░ рддреНрд░реБрдЯрд┐: рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ (рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИ)"

рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореБрдЭреЗ рдХрдИ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рд╣реИрдХреА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
`` `
рд╕реНрдерд┐рд░ рдХрд╡рдХ (рдореВрд▓реНрдп: int) -> рд╡рд░реНрдЧ:
var clazz = load ("res: //..//ClassA.gd")
рд╡рд╛рдкрд╕реА clazz.new (рдореВрд▓реНрдп, рдореВрд▓реНрдп)
`` ``

рд╕рд╛рджрд░
рдорд╛рдЗрдХ

рд╣рд╛рдп рджреЗрд╡реЛрдВ рдЬрдм рдпрд╣ рд▓рдВрдмрд╛ ... рд▓рдВрдмрд╛ рдмрдЧ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛?

рдЗрд╕реЗ 4.0 рдореЗрдВ GDScript рд░реАрд░рд╛рдЗрдЯ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рд╕реНрдереИрддрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдареАрдХ рд╣реЛрдЧрд╛?

class_name Cls

static func f():
    print(Cls)

@ рддреЛ рд╣рдо 3.2.X рд░рд┐рд▓реАрдЬ рдкрд░ рд╣реИрдВ, рдХреНрдпрд╛ рд╣рдо рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рд╕реБрдзрд╛рд░ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ Ploppy3 рдпреЗ рд╕реБрдзрд╛рд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ рдЬреЛ GDScript рдХреЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╡рдд: рдЙрдиреНрд╣реЗрдВ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 4.0 рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдпрд╣рд╛рдВ рдореЗрд░реА рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рднреА рд╣реИрдВред

class_name Entity extends Area2D

export var resource : Resource

onready var sprite   = get_node("sprite")
onready var collider = get_node("collider")

func _process(delta: float) -> void:
    if sprite   == null: sprite   = get_node("sprite")
    if collider == null: collider = get_node("collider")
    if resource is EntityConfig:
        sprite.frame = wrapf(sprite.frame+resource.gfx_speed, resource.gfx_start, resource.gfx_start+resource.gfx_count)
class_name EntityConfig extends Resource

export var gfx_image   := ""
export var gfx_start   := 0
export var gfx_speed   := 1.0
export var gfx_count   := 0
export var gfx_xoffset := 0.0
export var gfx_yoffset := 0.0
export var gfx_xsize   := 16.0
export var gfx_ysize   := 16.0
export var hit_xoffset := 0.0
export var hit_yoffset := 0.0
export var hit_xsize   := 16.0
export var hit_ysize   := 16.0

func new()->Area2D:
    var entity = Entity.new()
    entity.sprite            = Content.load_texture(gfx_image)
    if entity.sprite != null:
        entity.sprite.frame      = gfx_start
        entity.sprite.position.x = gfx_xoffset
        entity.sprite.position.y = gfx_yoffset
        entity.sprite.hframes    = entity.sprite.texture.get_width () / gfx_xsize
        entity.sprite.vframes    = entity.sprite.texture.get_height() / gfx_ysize

    entity.collider.position.x      = hit_xoffset
    entity.collider.position.y      = hit_yoffset
    entity.collider.shape.extents.x = hit_xsize / 2
    entity.collider.shape.extents.y = hit_ysize / 2
    return entity

рдореИрдВрдиреЗ рдЧреЛрдбреЛрдЯ 3.2.3 рдореЗрдВ рдЕрдкрдиреЗ рдХреИрдкрд╕реНрдЯреЛрди рд╕рдореВрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред рд╣рдорд╛рд░реА рдЯрдХреНрдХрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:

extends Area2D

func _on_Throwable_body_entered(body: Node) -> void:
    if body is Player:
        if body.pick_up():
            queue_free()

рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреНрд▓реЗрдпрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ if body is Player рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, Player рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ, рдЪрд╛рд╣реЗ class_name рдпрд╛ preload -ed рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдпрд╣ рддрдм рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм Player рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрддрд╛ рд░рд╣реЗ рд╣реЛрдВред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ Player Area2D рдЯрдХреНрдХрд░ рдХреЗ рдореБрдЦреМрдЯреЗ рдореЗрдВ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИ рдФрд░ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рднреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдо if body.name == "player" рдЪреЗрдХ рдХрд░ рд░рд╣реЗ рдереЗред

рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реЛ, рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╕рдм рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдореБрджреНрджрд╛ рдерд╛ рдЬрдм рдореБрдЭреЗ рдПрдХ рд╕реНрдерд┐рд░ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рд▓реНрдбрд░ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЧрдпрд╛ рдерд╛:

class_name MyClass

static func build() -> MyClass:
  var new_instance  = MyClass.new()
  ...
  return new_instance

рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкрде рд╕реЗ рдХрдХреНрд╖рд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рдзрд╛рди рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЗрд╕ рддрд░рдХреАрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдореЗрдВ рднреА рдХрд░рддрд╛ рд╣реВрдБ (рдЬрд┐рд╕рдореЗрдВ get_script () рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ):

static func build() :
    var new_instance = load(GodotExt.current_script_path()).new()
    ...
    return new_instance

рд╕рд╛рде рдореЗрдВ

class_name GodotExt

static func current_script_path():
    return get_stack()[1].source    <- return usable script path

рдХрд░рдВрдЯ рдХреНрд▓рд╛рд╕ рд▓реЗрдиреЗ рдХреА рдпрд╣ рдЯреНрд░рд┐рдХ рдХрд╣реАрдВ рд╕реЗ рднреА рдХрд╛рдо рд▓рдЧрддреА рд╣реИред
рдпрд╣ рдХрдЪреНрдЪрд╛ рд╣реИ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рдореБрджреНрджреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдп @AliBouarab рдЕрдЪреНрдЫреА рдЪрд╛рд▓

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Spooner picture Spooner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mooseyfaith picture mooseyfaith  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ivanskodje picture ivanskodje  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

testman42 picture testman42  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rgrams picture rgrams  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ