qmlfrontend/Page1.qml
author Wuzzy <Wuzzy2@mail.ru>
Mon, 16 Sep 2019 17:33:49 +0200
changeset 15410 8504fee3b601
parent 15217 b32c52c76977
child 15891 d52f5d8e75e6
permissions -rw-r--r--
Racer: Fix weird water splashes after waypoint placement Does not affect official racer, as only waypoint placement is touched. The reason was that the air attack gear sometimes was not deleted fast enough so it might occassionally drop some air bombs (these are deleted now). Also, the airplane position was set to water level, which caused another water splash.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     1
import QtQuick 2.7
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
     2
import Hedgewars.Engine 1.0
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     3
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     4
Page1Form {
14854
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
     5
  focus: true
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
     6
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
     7
  property HWEngine hwEngine
14915
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
     8
  property NetSession netSession
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
     9
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    10
  Component {
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    11
    id: hwEngineComponent
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    12
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    13
    HWEngine {
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14371
diff changeset
    14
      engineLibrary: "./libhedgewars_engine.so"
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    15
      previewAcceptor: PreviewAcceptor
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    16
      onPreviewImageChanged: previewImage.source = "image://preview/image"
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
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: 14298
diff changeset
    18
    }
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    19
  }
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    20
14915
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    21
  Component {
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    22
    id: netSessionComponent
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    23
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    24
    NetSession {
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    25
      nickname: "test0272"
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    26
      url: "hwnet://gameserver.hedgewars.org:46632"
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    27
    }
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    28
  }
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    29
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    30
  Component.onCompleted: {
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    31
    hwEngine = hwEngineComponent.createObject()
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    32
  }
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14298
diff changeset
    33
14854
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    34
  tickButton {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    35
    onClicked: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    36
      tickButton.visible = false
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    37
      gameView.tick(100)
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    38
    }
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    39
  }
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    40
  gameButton {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    41
    visible: !gameView.engineInstance
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    42
    onClicked: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    43
      var engineInstance = hwEngine.runQuickGame()
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    44
      gameView.engineInstance = engineInstance
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    45
    }
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    46
  }
14854
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    47
  button1 {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    48
    visible: !gameView.engineInstance
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    49
    onClicked: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    50
      hwEngine.getPreview()
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    51
    }
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    52
  }
14915
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    53
  netButton.onClicked: {
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    54
    netSession = netSessionComponent.createObject()
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    55
    netSession.open()
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    56
  }
14854
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    57
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    58
  Keys.onPressed: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    59
    if (event.key === Qt.Key_Enter)
15217
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    60
      gameView.engineInstance.longEvent(Engine.Attack, Engine.Set)
14854
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    61
  }
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    62
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    63
  Keys.onReleased: {
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    64
    if (event.key === Qt.Key_Enter)
15217
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    65
      gameView.engineInstance.longEvent(Engine.Attack, Engine.Unset)
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    66
  }
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    67
}