Looks up or registers a type that is implemented with a particular type plugin.
If a type with name
type_name was previously registered, the Type
identifier for the type is returned, otherwise the type is newly registered, and the resulting
Type identifier returned.
When reregistering a type (typically because a module is unloaded then reloaded, and reinitialized), this and
parent_type must be the same as they were previously.
As long as any instances of the type exist, the type plugin will not be unloaded.
Since 2.56 if this is null this will call
instead. This can be used when making a static build of the module.
the type for the parent class
name for the type
type information structure
flags field providing details about the type
the new or existing type ID