Fixed some stuff, procrastinating the real problem
All checks were successful
Build Dusk / build-linux (push) Successful in 47s
Build Dusk / build-psp (push) Successful in 1m6s

This commit is contained in:
2025-11-16 16:18:01 -06:00
parent 9a59c22288
commit c874e6c197
14 changed files with 161 additions and 154 deletions

View File

@@ -1,12 +1,14 @@
import os
from PyQt5.QtWidgets import QMainWindow, QWidget, QHBoxLayout, QMessageBox
from PyQt5.QtCore import Qt
from editortool.map.glwidget import GLWidget
from editortool.map.chunkpanel import ChunkPanel
from editortool.map.mapinfopanel import MapInfoPanel
from editortool.map.mapdata import MapData
from editortool.map.toolbar import MapToolbar
from editortool.map.statusbar import StatusBar
from editortool.map.map import Map
from editortool.map.mapdefs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
class MapWindow(QMainWindow):
def __init__(self):
@@ -14,6 +16,7 @@ class MapWindow(QMainWindow):
# Subclasses
self.mapData = MapData()
self.map = Map(self)
# Window setup
self.setWindowTitle("Dusk Map Editor")
@@ -28,7 +31,7 @@ class MapWindow(QMainWindow):
mainLayout = QHBoxLayout(central)
# Left panel (ChunkPanel)
self.chunkPanel = ChunkPanel()
self.chunkPanel = ChunkPanel(self)
leftWidget = QWidget()
leftWidget.setLayout(self.chunkPanel.layout())
leftWidget.setFixedWidth(200)
@@ -48,6 +51,14 @@ class MapWindow(QMainWindow):
self.statusBar = StatusBar(self)
self.setStatusBar(self.statusBar)
self.installEventFilter(self)
self._install_event_filter_recursive(self)
def _install_event_filter_recursive(self, widget):
for child in widget.findChildren(QWidget):
child.installEventFilter(self)
self._install_event_filter_recursive(child)
def generateData(self):
objOut = {}
self.fileSaving.invoke(objOut)
@@ -74,4 +85,33 @@ class MapWindow(QMainWindow):
elif reply == QMessageBox.Cancel:
event.ignore()
return
event.accept()
event.accept()
def eventFilter(self, obj, event):
if event.type() == event.KeyPress:
amtX, amtY, amtZ = 0, 0, 0
key = event.key()
if key == Qt.Key_Left:
amtX = -1
elif key == Qt.Key_Right:
amtX = 1
elif key == Qt.Key_Up:
amtY = -1
elif key == Qt.Key_Down:
amtY = 1
elif key == Qt.Key_PageUp:
amtZ = 1
elif key == Qt.Key_PageDown:
amtZ = -1
if event.modifiers() & Qt.ShiftModifier:
amtX *= int(TILE_WIDTH)
amtY *= int(TILE_HEIGHT)
amtZ *= int(TILE_DEPTH)
if amtX != 0 or amtY != 0 or amtZ != 0:
self.map.moveRelative(amtX, amtY, amtZ)
event.accept()
return True
return super().eventFilter(obj, event)