QodotPlugin / qodot-plugin

(LEGACY) Quake .map support for Godot 3.x
MIT License
960 stars 70 forks source link

Point Entities build as QodotSpatial instead of chosen Node Class #167

Open DeerTears opened 1 year ago

DeerTears commented 1 year ago

Current behaviour

Any point class builds as a QodotSpatial node. Node Class is ignored. This is unlike Solid Classes which do read from Node Class to determine their node type.

This bug is even acknowledged in the example Light class which spawns a light child. It's a hack, rather than using the Node Class field as intended.

Expected behaviour

Just like a solid class, the node name in Node Class is what QodotMap should build to represent that entity. There's no need to spawn the correct child node if the root node is the correct type. Scripts should attach as normal, properties should fill as normal.

It would also be nice to upgrade the example light entity to work with this change once I'm done making it.

Anticipated breaking changes

Some people's point classes will change node type if there is something entered in the Node Class field. For all cases, clearing the Node Class string should fix the node type change. Point classes with scene files shouldn't be affected.

In Closing

Now I know why point classes have been so hard to document 😅 scene file still works as intended so it's been the lead workaround for this bug. Credit to @RhapsodyInGeek for finding this.