Interkarma / daggerfall-unity

Open source recreation of Daggerfall in the Unity engine
http://www.dfworkshop.net
MIT License
2.67k stars 326 forks source link

Improve custom door support for custom models #2644

Closed ajrb closed 1 month ago

ajrb commented 3 months ago

Improve custom door support for custom models, enabled for building exterior / interior and dungeon exterior doors. CustomDoor now creates its own StaticDoor data same as any DF model StaticDoor, allowing completely new custom models using non-classic model id's to be supported.

Retained the existing copy mechanism that uses the boxcollider to test for a hit and the copied door data. This copy mechanism has been retained for backwards compatibility, code could be simplified if it were removed. I don't think it's that useful anymore. If any published mods use CustomDoor then they should continue to work identically as long as the copy index was set.

Player placement for both entering and exiting is now correct. The exception is when replacing a classic model with all building doors disabled in favour of custom doors all copying these classic doors.

Included 2 boxcollider presets for custom doors facing X or Z with standard DF door size 1.25, 2, 0.5. They're in Assets/Editor/ because Unity insisted they went in Assets folder and that seemed the most appropriate place. Will remove from PR if requested.

Ninelan will be testing this out to check my testing didn't miss anything. Instructions added to the wiki here: https://github.com/Interkarma/daggerfall-unity/wiki/Custom-Doors

Resolves #2643

ajrb commented 3 months ago

So I've found a few issues when testing with Ninelan, am addressing them but hold off on reviewing this PR for now.

EDIT: All issues solved and PR is updated & ready for review.

KABoissonneault commented 1 month ago

For the most part, I'd like to unblock this and let ajrb figure out the feature. I just have one minor issue. Then, it should be ready to merge