Converting vehicle and building workflow to blender2ogre

This commit is contained in:
2025-09-20 05:52:24 +03:00
parent 62e14cf075
commit e967844558
143 changed files with 12687 additions and 51 deletions

View File

@@ -10,12 +10,15 @@ namespace ECS
{
CharacterModule::CharacterModule(flecs::world &ecs)
{
struct TriggerPhysicsChange {};
ecs.module<CharacterModule>();
ecs.component<Character>();
ecs.component<Player>();
ecs.component<CharacterBase>();
ecs.component<CharacterVelocity>();
ecs.component<CharacterBody>();
ecs.component<CharacterDisablePhysics>();
ecs.component<CharacterUpdatePhysicsState>();
ecs.system<EngineData, CharacterBase>("UpdateTimer")
.kind(flecs::OnUpdate)
.each([this](EngineData &eng, CharacterBase &ch) {
@@ -207,6 +210,7 @@ CharacterModule::CharacterModule(flecs::world &ecs)
.with<TerrainReady>()
.with<WaterReady>()
.with<InWater>()
.without<CharacterDisablePhysics>()
.each([this](flecs::entity e, const EngineData &eng,
const CharacterBase &ch, CharacterVelocity &gr) {
Ogre::Vector3 gravity(0, -9.8f, 0);
@@ -245,6 +249,7 @@ CharacterModule::CharacterModule(flecs::world &ecs)
.with<WaterReady>()
.without<InWater>()
.with<CharacterGravity>()
.without<CharacterDisablePhysics>()
.each([this](flecs::entity e, const EngineData &eng,
const CharacterBase &ch, CharacterVelocity &gr) {
Ogre::Vector3 gravity(0, -9.8f, 0);
@@ -728,6 +733,21 @@ CharacterModule::CharacterModule(flecs::world &ecs)
<< "\n";
});
#endif
ecs.system<const EngineData, const CharacterBody>("UpdatePhysics")
.kind(flecs::OnUpdate)
.with<CharacterUpdatePhysicsState>()
.write<CharacterUpdatePhysicsState>()
.each([](flecs::entity e, const EngineData &eng,
const CharacterBody &body) {
if (e.has<CharacterDisablePhysics>()) {
eng.mWorld->getBtWorld()->removeAction(
body.mController);
} else {
eng.mWorld->getBtWorld()->addAction(
body.mController);
}
e.remove<CharacterUpdatePhysicsState>();
});
}
void CharacterModule::setAnimation(AnimationControl &anim)