0 votes

Is it possible to change which enumerator is used in an export based on a value provided by another export?

Eg.

enum Classes { FIGHTER, RANGER, WIZARD}

enum FighterSubclasses {KNIGHT, BRAWLER, DUELYST}
enum RangerSubclasses {SHARPSHOOTER, HUNTER, ARBALEST}
enum WizardSubclasses {EVOKER, DRUID, NECROMANCER}

var SubclassLookup= [FighterSubclasses, RangerSubclasses, WizardSubclasses]

export (Classes) var Class
export ( SubclassLookup[Class] ) var Subclass <~~~~ This is what I'm hoping to achieve

I get the error constant expression expected, is there a way to make that second export change its dropdown list based on the first?

Godot version 3.3.1
in Engine by (15 points)

1 Answer

+1 vote
Best answer

Unfortunately this is not possible. The data type has to be fixed at compile time (i.e. before any value is assigned to a variable). But you could make your script a tool-script and then check in the setter-method whether the assigned subclass fits the class that was selected and otherwise not accept the change.

by (330 points)
selected by
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.