#include "fiko/sahne/grup_nesne.hpp" namespace fiko { // ---- GrupNesnesi ---- std::string GrupNesnesi::ad() const { const AdBilesen* a = dunya_->bul(kimlik_); return a ? a->ad : std::string(); } void GrupNesnesi::adAyarla(const std::string& yeni) { dunya_->ekle(kimlik_, AdBilesen{yeni}); } OzellikSeti GrupNesnesi::ozellikler(Dunya& dunya) { OzellikSeti s; const Varlik k = kimlik_; s.push_back(Ozellik::metin( "Ad", [&dunya, k] { const AdBilesen* a = dunya.bul(k); return a ? a->ad : std::string(); }, [&dunya, k](const std::string& v) { dunya.ekle(k, AdBilesen{v}); })); s.push_back(Ozellik::bayrak( "Görünür", [&dunya, k] { const GorunurBilesen* g = dunya.bul(k); return g ? g->gorunur : true; }, [&dunya, k](bool v) { dunya.ekle(k, GorunurBilesen{v}); })); return s; } // ---- GrupGorunum ---- const char* GrupGorunum::agacSimgesi() const { // Grup kendi ikonunu override edebilir (SimgeBilesen) — ör. STP import kökü STP // simgesi. Bileşen ECS'te yaşar → c_str() kare boyu geçerli. Yoksa klasör "▤". const SimgeBilesen* s = dunya_->bul(kimlik_); return (s && !s->glif.empty()) ? s->glif.c_str() : "▤"; } bool GrupGorunum::agacRengiVar() const { return dunya_->var(kimlik_); } Vec3f GrupGorunum::agacRengi() const { const GrupRenkBilesen* r = dunya_->bul(kimlik_); return r ? r->renk : Vec3f{0.55f, 0.65f, 0.8f}; } bool GrupGorunum::gorunur() const { const GorunurBilesen* g = dunya_->bul(kimlik_); return g ? g->gorunur : true; } void GrupGorunum::gorunurAyarla(bool g) { dunya_->ekle(kimlik_, GorunurBilesen{g}); } } // namespace fiko