13 : Component(HighlightState::IgnoresMouse)
14 , enginePtr(nullptr) {}
16 void EditMapComponent::setVisible(
bool visible) { sprite.setHidden(!visible); }
18 void EditMapComponent::onElementUpdated() {
19 EditMap& owner = getOwnerAs<EditMap>();
20 if (renderTexture->getCurrentScene() != owner.
scene) {
21 if (renderTexture->sceneCount() > 0) { renderTexture->popScene(); }
22 renderTexture->pushScene(owner.
scene);
26 void EditMapComponent::onRenderSettingChange() {
30 bl::ecs::Entity EditMapComponent::getEntity()
const {
return sprite.entity(); }
32 void EditMapComponent::doCreate(bl::engine::Engine& engine, bl::gui::rdr::Renderer&) {
34 auto& owner = getOwnerAs<EditMap>();
36 renderTexture = engine.renderer().createRenderTexture(
38 sprite.create(engine, renderTexture->getTexture());
41 void EditMapComponent::doSceneAdd(bl::rc::Overlay* overlay) {
42 sprite.addToScene(overlay, bl::rc::UpdateSpeed::Static);
45 void EditMapComponent::doSceneRemove() { sprite.removeFromScene(); }
47 void EditMapComponent::handleAcquisition() {
48 EditMap& owner = getOwnerAs<EditMap>();
51 const glm::u32vec2 acq(owner.getAcquisition().width, owner.getAcquisition().height);
52 if (acq.x > 0 && acq.x < 5000 && acq.y > 0 && acq.y < 5000) {
53 if (acq != renderTexture->getSize()) {
54 renderTexture->resize(acq);
55 sprite.scaleToSize(acq);
61 void EditMapComponent::handleMove() {
62 EditMap& owner = getOwnerAs<EditMap>();
63 sprite.getTransform().setPosition(owner.getLocalPosition().x, owner.getLocalPosition().y);
All classes and functionality used for implementing the game editor.
static int WindowHeight()
Wrapper over the core::Map class that is directly usable in a bl::gui::GUI.
EditMapComponent()
Creates the component.