import QtQuick import Hedgewars 1.0 Page1Form { property HWEngine hwEngine property NetSession netSession focus: true Component.onCompleted: { hwEngine = hwEngineComponent.createObject(); } netButton.onClicked: { netSession = netSessionComponent.createObject(); netSession.open(); } Component { id: hwEngineComponent HWEngine { dataPath: "../share/hedgewars/Data" engineLibrary: "../rust/lib-hedgewars-engine/target/debug/libhedgewars_engine.so" 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" } } tickButton { onClicked: { tickButton.visible = false; } } Timer { id: advancingTimer interval: 100 repeat: true running: !tickButton.visible onTriggered: { gameView.tick(100); gameView.update(); } } gameButton { visible: !gameView.engineInstance onClicked: { const engineInstance = hwEngine.runQuickGame(); gameView.engineInstance = engineInstance; } } button1 { visible: !gameView.engineInstance onClicked: { hwEngine.getPreview(); } } preview { visible: !gameView.engineInstance } gameMouseArea { onPositionChanged: event => { gameView.engineInstance.moveCamera(Qt.point(event.x - gameMouseArea.lastPoint.x, event.y - gameMouseArea.lastPoint.y)); gameMouseArea.lastPoint = Qt.point(event.x, event.y); } onPressed: event => { gameMouseArea.lastPoint = Qt.point(event.x, event.y); } } }