50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QGridLayout, QPushButton, QTabWidget, QLabel
|
|
from editortool.map.chunkpanel import ChunkPanel
|
|
from editortool.map.entitypanel import EntityPanel
|
|
|
|
class MapLeftPanel(QWidget):
|
|
def __init__(self, parent):
|
|
super().__init__(parent)
|
|
self.parent = parent
|
|
layout = QVBoxLayout(self)
|
|
self.setLayout(layout)
|
|
|
|
# Nav buttons
|
|
self.chunkInfoLabel = QLabel("Tile Information")
|
|
layout.addWidget(self.chunkInfoLabel)
|
|
grid = QGridLayout()
|
|
self.btnUp = QPushButton("U")
|
|
self.btnN = QPushButton("N")
|
|
self.btnDown = QPushButton("D")
|
|
self.btnW = QPushButton("W")
|
|
self.btnS = QPushButton("S")
|
|
self.btnE = QPushButton("E")
|
|
|
|
grid.addWidget(self.btnUp, 0, 0)
|
|
grid.addWidget(self.btnN, 0, 1)
|
|
grid.addWidget(self.btnDown, 0, 2)
|
|
grid.addWidget(self.btnW, 1, 0)
|
|
grid.addWidget(self.btnS, 1, 1)
|
|
grid.addWidget(self.btnE, 1, 2)
|
|
layout.addLayout(grid)
|
|
|
|
# Panels
|
|
self.chunkPanel = ChunkPanel(self.parent)
|
|
self.entityPanel = EntityPanel(self.parent)
|
|
|
|
# Tabs
|
|
self.tabs = QTabWidget()
|
|
self.tabs.addTab(self.chunkPanel, "Tiles")
|
|
self.tabs.addTab(self.entityPanel, "Entities")
|
|
self.tabs.addTab(None, "Triggers")
|
|
layout.addWidget(self.tabs)
|
|
|
|
|
|
# Event subscriptions
|
|
self.btnN.clicked.connect(lambda: self.parent.map.moveRelative(0, -1, 0))
|
|
self.btnS.clicked.connect(lambda: self.parent.map.moveRelative(0, 1, 0))
|
|
self.btnE.clicked.connect(lambda: self.parent.map.moveRelative(1, 0, 0))
|
|
self.btnW.clicked.connect(lambda: self.parent.map.moveRelative(-1, 0, 0))
|
|
self.btnUp.clicked.connect(lambda: self.parent.map.moveRelative(0, 0, 1))
|
|
self.btnDown.clicked.connect(lambda: self.parent.map.moveRelative(0, 0, -1))
|