Browse Source

Merge pull request #7386 from Piralein/enum-stuff

Max Hilbrunner 2 years ago
parent
commit
e254433411
1 changed files with 20 additions and 8 deletions
  1. 20 8
      tutorials/scripting/gdscript/gdscript_basics.rst

+ 20 - 8
tutorials/scripting/gdscript/gdscript_basics.rst

@@ -908,26 +908,38 @@ Enums
 Enums are basically a shorthand for constants, and are pretty useful if you
 want to assign consecutive integers to some constant.
 
-If you pass a name to the enum, it will put all the keys inside a constant
-dictionary of that name.
-
-.. important:: In Godot 3.1 and later, keys in a named enum are not registered
-               as global constants. They should be accessed prefixed by the
-               enum's name (``Name.KEY``); see an example below.
-
 ::
 
     enum {TILE_BRICK, TILE_FLOOR, TILE_SPIKE, TILE_TELEPORT}
+    
     # Is the same as:
     const TILE_BRICK = 0
     const TILE_FLOOR = 1
     const TILE_SPIKE = 2
     const TILE_TELEPORT = 3
 
+
+If you pass a name to the enum, it will put all the keys inside a constant
+:ref:`Dictionary <class_Dictionary>` of that name. This means all constant methods of
+a dictionary can also be used with a named enum.
+
+.. important:: Keys in a named enum are not registered
+               as global constants. They should be accessed prefixed
+               by the enum's name (``Name.KEY``).
+
+::
+
     enum State {STATE_IDLE, STATE_JUMP = 5, STATE_SHOOT}
+    
     # Is the same as:
     const State = {STATE_IDLE = 0, STATE_JUMP = 5, STATE_SHOOT = 6}
-    # Access values with State.STATE_IDLE, etc.
+    
+    func _ready():
+        # Access values with Name.KEY, prints '5'
+        print(State.STATE_JUMP)
+        # Use constant dictionary functions
+        # prints '["STATE_IDLE", "STATE_JUMP", "STATE_SHOOT"]'
+        print(State.keys())
 
 
 Functions