Results 70 comments of TEDERIs

> > I think function `setElementDataSilence(element, key, silent)`(suggest the better name) can be added for blocking element data events. Because in most of the cases those events are not needed...

Although this PR is fully functional I'm forced to admit that most of the new suggestions cannot be addressed without the C++20 support (see the discussion in comments above). A...

> Am i correct that we can save a lot of performance if we just delete all "onClientElementDataChange" event handlers in all running scripts? I use this event a lot...

> This is only concept @tederis . PR isn't ready for review. Сode quality is very low at this point and things don't work correctly. Anyway. Thanks you for some...

I think Euler angles should be used instead of quaternions. Quaternions are less intuitive and will be a nightmare for the most of beginners. Or maybe there should be an...

**createBuilding** function must check if **modelId** argument is actually a building model. It can be done by looking at **usDynamicIndex** field: `auto modelInfo = pGame->GetModelInfo(modelId); if (modelInfo->GetInterface()->usDynamicIndex != 0xffff) return...

I also noticed that shadows and grass are still on the map even after a resource restart. But they disappear after the respawn(I guess shadows and grass are spawned once...

There also a problem with the rotation. When you spawn an object and a building with the same coordinates and the same rotation, their actual transformation differs. ![mta-screen_2023-12-25_16-05-51](https://github.com/multitheftauto/mtasa-blue/assets/12121551/6309ee7f-1669-4bdf-869d-75aeb1a54c27)

> > also noticed that shadows and grass are still on the map even after a resource restart. But they disappear after the respawn(I guess shadows and grass are spawned...

> > > also noticed that shadows and grass are still on the map even after a resource restart. But they disappear after the respawn(I guess shadows and grass are...