qmlfrontend/Page1.qml
author unc0rr
Sat, 11 May 2019 22:39:55 +0200
changeset 14920 a3ad06ac390e
parent 14859 aed75d439027
child 15222 b32c52c76977
permissions -rw-r--r--
Proof of concept for new net game client
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     1
import QtQuick 2.7
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
     2
import Hedgewars.Engine 1.0
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     3
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     4
Page1Form {
14859
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
     5
  focus: true
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
     6
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
     7
  property HWEngine hwEngine
14920
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
     8
  property NetSession netSession
14376
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
     9
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    10
  Component {
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    11
    id: hwEngineComponent
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    12
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    13
    HWEngine {
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14376
diff changeset
    14
      engineLibrary: "./libhedgewars_engine.so"
14376
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    15
      previewAcceptor: PreviewAcceptor
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    16
      onPreviewImageChanged: previewImage.source = "image://preview/image"
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    17
      onPreviewIsRendering: previewImage.source = "qrc:/res/iconTime.png"
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    18
    }
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    19
  }
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    20
14920
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    21
  Component {
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    22
    id: netSessionComponent
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    23
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    24
    NetSession {
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    25
      nickname: "test0272"
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    26
      url: "hwnet://gameserver.hedgewars.org:46632"
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    27
    }
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    28
  }
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    29
14376
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    30
  Component.onCompleted: {
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    31
    hwEngine = hwEngineComponent.createObject()
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    32
  }
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14303
diff changeset
    33
14859
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    34
  tickButton {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    35
    onClicked: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    36
      tickButton.visible = false
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    37
      gameView.tick(100)
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    38
    }
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    39
  }
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    40
  gameButton {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    41
    visible: !gameView.engineInstance
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    42
    onClicked: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    43
      var engineInstance = hwEngine.runQuickGame()
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    44
      gameView.engineInstance = engineInstance
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    45
    }
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
    46
  }
14859
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    47
  button1 {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    48
    visible: !gameView.engineInstance
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    49
    onClicked: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    50
      hwEngine.getPreview()
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    51
    }
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
    52
  }
14920
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    53
  netButton.onClicked: {
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    54
    netSession = netSessionComponent.createObject()
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    55
    netSession.open()
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14859
diff changeset
    56
  }
14859
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    57
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    58
  Keys.onPressed: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    59
    if (event.key === Qt.Key_Enter)
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    60
      gameView.engineInstance.longEvent(EngineInstance.Attack,
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    61
                                        EngineInstance.Set)
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    62
  }
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    63
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    64
  Keys.onReleased: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    65
    if (event.key === Qt.Key_Enter)
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    66
      gameView.engineInstance.longEvent(EngineInstance.Attack,
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14377
diff changeset
    67
                                        EngineInstance.Unset)
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    68
  }
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    69
}