Our enum type ServerState has an underlying int type.
By implementing the GetStateName method, values of EServerState can be printed out or converted to strings.
If we have a value of type int, we cannot pass it to transition - the compiler will complain about type mismatch. This provides some degree of compile-time type safety for enums.
transition emulates a state transition for a server. It takes the existing state and returns a new state.
Run the TestEnum function to see the state transitions and their corresponding string representations.
To run the code, compile your UnrealScript file and execute it in the Unreal Engine environment.