#include "behavior.h" #include "../behavior.h" #include #include #include #include #include #include #include #include #include #include #include UF_BEHAVIOR_REGISTER_CPP(ext::PlayerModelBehavior) #define this ((uf::Scene*) &self) void ext::PlayerModelBehavior::initialize( uf::Object& self ) { } void ext::PlayerModelBehavior::tick( uf::Object& self ) { if ( this->getChildren().size() != 1 ) return; auto& metadata = this->getComponent(); if ( !metadata["track player"].as() ) return; auto& player = this->getParent().as(); auto& model = this->getChildren().front()->as(); auto& transform = model.getComponent>(); transform = player.getComponent>(); transform.scale = this->getComponent>().scale; // transform.scale.x = metadata["system"]["transform"]["scale"][0].as(); // transform.scale.y = metadata["system"]["transform"]["scale"][1].as(); // transform.scale.z = metadata["system"]["transform"]["scale"][2].as(); } void ext::PlayerModelBehavior::render( uf::Object& self ){ if ( this->getChildren().size() != 1 ) return; auto& metadata = this->getComponent(); if ( !metadata["hide player model"].as() ) return; auto& scene = uf::scene::getCurrentScene(); auto& controller = scene.getController(); auto& player = this->getParent().as(); auto& model = this->getChildren().front()->as(); auto& transform = model.getComponent>(); if ( player.getUid() == controller.getUid() ) { transform.scale = { 0, 0, 0 }; } else { transform.scale = this->getComponent>().scale; // transform.scale = { 0.07, 0.07, 0.07 }; // transform.scale.x = metadata["system"]["transform"]["scale"][0].as(); // transform.scale.y = metadata["system"]["transform"]["scale"][1].as(); // transform.scale.z = metadata["system"]["transform"]["scale"][2].as(); } } void ext::PlayerModelBehavior::destroy( uf::Object& self ){ } #undef this