qmlfrontend/Page1.qml
author unc0rr
Tue, 13 Dec 2022 21:21:55 +0100
changeset 15928 73cdc306888f
parent 15919 d52f5d8e75e6
child 16041 caba603f461f
permissions -rw-r--r--
Fix infinite loop in rendering of laser sight

import QtQuick 2.7
import Hedgewars.Engine 1.0

Page1Form {
    focus: true

    property HWEngine hwEngine
    property NetSession netSession

    Component {
        id: hwEngineComponent

        HWEngine {
            engineLibrary: "../rust/lib-hedgewars-engine/target/debug/libhedgewars_engine.so"
            dataPath: "../share/hedgewars/Data"
            previewAcceptor: PreviewAcceptor
            onPreviewImageChanged: previewImage.source = "image://preview/image"
            onPreviewIsRendering: previewImage.source = "qrc:/res/iconTime.png"
        }
    }

    Component {
        id: netSessionComponent

        NetSession {
            nickname: "test0272"
            url: "hwnet://gameserver.hedgewars.org:46632"
        }
    }

    Component.onCompleted: {
        hwEngine = hwEngineComponent.createObject()
    }

    tickButton {
        onClicked: {
            tickButton.visible = false
            gameView.tick(100)
        }
    }
    gameButton {
        visible: !gameView.engineInstance
        onClicked: {
            const engineInstance = hwEngine.runQuickGame()
            gameView.engineInstance = engineInstance
        }
    }
    button1 {
        visible: !gameView.engineInstance
        onClicked: {
            hwEngine.getPreview()
        }
    }
    netButton.onClicked: {
        netSession = netSessionComponent.createObject()
        netSession.open()
    }

    Keys.onPressed: {
        if (event.key === Qt.Key_Enter)
            gameView.engineInstance.longEvent(Engine.Attack, Engine.Set)
    }

    Keys.onReleased: {
        if (event.key === Qt.Key_Enter)
            gameView.engineInstance.longEvent(Engine.Attack, Engine.Unset)
    }
}