[FTE] [SOLVED] Tracebox for collisions on meshes
Posted: Tue Nov 07, 2017 2:52 pm
Hi guys, I'm trying to create for craFTEr a system to permit player to collide with static meshes. Take for example this simple mesh, like a rudimentary passage
I use tracebox (and then trace_fraction) to read if player is in front of one of the pillars or he's in the middle of the 2 pillars and so, into void space.
1. If I set .solid to SOLID_NOT and then use tracebox with MOVE_HITMODEL, tracebox can't see the mesh, even with MOVE_EVERYTHING. But FTE defs say thatWhich isn't true, since meshes with SOLID_NOT won't be seen
2. If I set .solid to SOLID_BBOX and then use tracebox with MOVE_HITMODEL, trace fraction works, so trace sees mesh, but engine by default will block any collision with entities with .solid set to SOLID_BBOX or SOLID_SLIDEBOX or SOLID_BSP. So, even I create a super cool code to manage collision, it simply work the way the engine wants, not my way!
My question is, there's the possibility to disable collisions on the engine so developers can set them via tracebox, or is it possible to understand why tracebox with MOVE_EVERYTHING can't trace non solid entities? Is it a only-CSQC game problem? Or is it the same with SSQC?
Thanks to anyone that has an intuition!
I use tracebox (and then trace_fraction) to read if player is in front of one of the pillars or he's in the middle of the 2 pillars and so, into void space.
1. If I set .solid to SOLID_NOT and then use tracebox with MOVE_HITMODEL, tracebox can't see the mesh, even with MOVE_EVERYTHING. But FTE defs say that
Code: Select all
const float MOVE_EVERYTHING = 32; /* This type of trace will hit solids and triggers alike. Even non-solid entities. */
2. If I set .solid to SOLID_BBOX and then use tracebox with MOVE_HITMODEL, trace fraction works, so trace sees mesh, but engine by default will block any collision with entities with .solid set to SOLID_BBOX or SOLID_SLIDEBOX or SOLID_BSP. So, even I create a super cool code to manage collision, it simply work the way the engine wants, not my way!
My question is, there's the possibility to disable collisions on the engine so developers can set them via tracebox, or is it possible to understand why tracebox with MOVE_EVERYTHING can't trace non solid entities? Is it a only-CSQC game problem? Or is it the same with SSQC?
Thanks to anyone that has an intuition!