Starting refactor of tools, thank gosh
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
add_subdirectory(run_python)
|
||||
|
||||
# Function that adds an asset to be compiled
|
||||
function(add_asset ASSET_TYPE ASSET_PATH)
|
||||
set(FULL_ASSET_PATH "${CMAKE_CURRENT_LIST_DIR}/${ASSET_PATH}")
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import sys, os
|
||||
from assetstool.args import args
|
||||
from assetstool.processasset import processAsset
|
||||
from assetstool.processpalette import processPaletteList
|
||||
from assetstool.processtileset import processTilesetList
|
||||
from assetstool.processlanguage import processLanguageList
|
||||
from assetstool.assethelpers import getBuiltAssetsRelativePath
|
||||
from tools.assetstool.args import args
|
||||
from tools.assetstool.processasset import processAsset
|
||||
from tools.assetstool.processpalette import processPaletteList
|
||||
from tools.assetstool.processtileset import processTilesetList
|
||||
from tools.assetstool.processlanguage import processLanguageList
|
||||
from tools.assetstool.assethelpers import getBuiltAssetsRelativePath
|
||||
import zipfile
|
||||
|
||||
# Parse input file args.
|
||||
@@ -1,5 +1,5 @@
|
||||
import os
|
||||
from assetstool.args import args
|
||||
from tools.assetstool.args import args
|
||||
|
||||
def getAssetRelativePath(fullPath):
|
||||
# Get the relative path to the asset
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import sys
|
||||
# from processtileset import processTileset
|
||||
from assetstool.processimage import processImage
|
||||
from assetstool.processpalette import processPalette
|
||||
from assetstool.processtileset import processTileset
|
||||
from assetstool.processmap import processMap
|
||||
from assetstool.processlanguage import processLanguage
|
||||
from assetstool.processscript import processScript
|
||||
from tools.assetstool.processimage import processImage
|
||||
from tools.assetstool.processpalette import processPalette
|
||||
from tools.assetstool.processtileset import processTileset
|
||||
from tools.assetstool.processmap import processMap
|
||||
from tools.assetstool.processlanguage import processLanguage
|
||||
from tools.assetstool.processscript import processScript
|
||||
|
||||
processedAssets = []
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import os
|
||||
import sys
|
||||
from PIL import Image
|
||||
from assetstool.processpalette import extractPaletteFromImage, palettes
|
||||
from assetstool.args import args
|
||||
from assetstool.assethelpers import getAssetRelativePath
|
||||
from assetstool.assetcache import assetGetCache, assetCache
|
||||
from tools.assetstool.processpalette import extractPaletteFromImage, palettes
|
||||
from tools.assetstool.args import args
|
||||
from tools.assetstool.assethelpers import getAssetRelativePath
|
||||
from tools.assetstool.assetcache import assetGetCache, assetCache
|
||||
|
||||
images = []
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import sys
|
||||
import os
|
||||
from assetstool.args import args
|
||||
from assetstool.assetcache import assetCache, assetGetCache
|
||||
from assetstool.assethelpers import getAssetRelativePath
|
||||
from dusk.defs import defs
|
||||
from tools.assetstool.args import args
|
||||
from tools.assetstool.assetcache import assetCache, assetGetCache
|
||||
from tools.assetstool.assethelpers import getAssetRelativePath
|
||||
from tools.dusk.defs import defs
|
||||
import polib
|
||||
import re
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ import struct
|
||||
import sys
|
||||
import os
|
||||
import json
|
||||
from assetstool.args import args
|
||||
from assetstool.assetcache import assetCache, assetGetCache
|
||||
from assetstool.assethelpers import getAssetRelativePath
|
||||
from dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH, CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, CHUNK_TILE_COUNT
|
||||
from dusk.map import Map
|
||||
from dusk.chunk import Chunk
|
||||
from tools.assetstool.args import args
|
||||
from tools.assetstool.assetcache import assetCache, assetGetCache
|
||||
from tools.assetstool.assethelpers import getAssetRelativePath
|
||||
from tools.dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH, CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, CHUNK_TILE_COUNT
|
||||
from tools.dusk.map import Map
|
||||
from tools.dusk.chunk import Chunk
|
||||
|
||||
def convertModelData(modelData):
|
||||
# TLDR; Model data stores things efficiently with indices, but we buffer it
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import os
|
||||
from PIL import Image
|
||||
import datetime
|
||||
from assetstool.args import args
|
||||
from assetstool.assetcache import assetCache, assetGetCache
|
||||
from tools.assetstool.args import args
|
||||
from tools.assetstool.assetcache import assetCache, assetGetCache
|
||||
|
||||
palettes = []
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import sys
|
||||
import os
|
||||
from assetstool.args import args
|
||||
from assetstool.assetcache import assetCache, assetGetCache
|
||||
from assetstool.assethelpers import getAssetRelativePath
|
||||
from dusk.defs import fileDefs
|
||||
from tools.assetstool.args import args
|
||||
from tools.assetstool.assetcache import assetCache, assetGetCache
|
||||
from tools.assetstool.assethelpers import getAssetRelativePath
|
||||
from tools.dusk.defs import fileDefs
|
||||
|
||||
def processScript(asset):
|
||||
cache = assetGetCache(asset['path'])
|
||||
|
||||
@@ -3,10 +3,10 @@ import sys
|
||||
import os
|
||||
import datetime
|
||||
from xml.etree import ElementTree
|
||||
from assetstool.processimage import processImage
|
||||
from assetstool.assethelpers import getAssetRelativePath
|
||||
from assetstool.args import args
|
||||
from assetstool.assetcache import assetGetCache, assetCache
|
||||
from tools.assetstool.processimage import processImage
|
||||
from tools.assetstool.assethelpers import getAssetRelativePath
|
||||
from tools.assetstool.args import args
|
||||
from tools.assetstool.assetcache import assetGetCache, assetCache
|
||||
|
||||
tilesets = []
|
||||
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
csvtoenum.py: Generate a C enum header from a CSV file.
|
||||
Usage:
|
||||
python csvtoenum.py <csv_file> <out_header> <c_type> <take_column> <prefix_column>
|
||||
"""
|
||||
import sys
|
||||
import csv
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 6:
|
||||
print("Usage: csvtoenum.py <csv_file> <out_header> <c_type> <take_column> <prefix_column>", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
csv_file, out_header, c_type, take_column, prefix_column = sys.argv[1:6]
|
||||
|
||||
with open(csv_file, newline='') as f:
|
||||
reader = csv.DictReader(f)
|
||||
if take_column not in reader.fieldnames:
|
||||
print(f"TAKE_COLUMN '{take_column}' not found in CSV header", file=sys.stderr)
|
||||
sys.exit(2)
|
||||
if prefix_column not in reader.fieldnames:
|
||||
print(f"PREFIX_COLUMN '{prefix_column}' not found in CSV header", file=sys.stderr)
|
||||
sys.exit(2)
|
||||
entries = []
|
||||
for row in reader:
|
||||
entry = row[take_column].strip()
|
||||
prefix = row[prefix_column].strip()
|
||||
if entry:
|
||||
entries.append(f" {prefix}{entry},")
|
||||
|
||||
# Compose enum
|
||||
enum_entries = [f" {prefix_column}NULL,"]
|
||||
enum_entries.extend(entries)
|
||||
enum_entries.append(f" {prefix_column}COUNT,")
|
||||
enum_body = "\n".join(enum_entries)
|
||||
header = f"""/**
|
||||
* Auto-generated by csvtoenum.py
|
||||
* Source: {csv_file}
|
||||
*/
|
||||
|
||||
typedef enum {{
|
||||
{enum_body}
|
||||
}} {c_type};
|
||||
"""
|
||||
with open(out_header, 'w') as f:
|
||||
f.write(header)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,11 +1,11 @@
|
||||
import json
|
||||
import os
|
||||
from dusk.event import Event
|
||||
from dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, CHUNK_VERTEX_COUNT_MAX, TILE_SHAPE_NULL
|
||||
from dusk.tile import Tile
|
||||
from dusk.entity import Entity
|
||||
from dusk.region import Region
|
||||
from editortool.map.vertexbuffer import VertexBuffer
|
||||
from tools.dusk.event import Event
|
||||
from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, CHUNK_VERTEX_COUNT_MAX, TILE_SHAPE_NULL
|
||||
from tools.dusk.tile import Tile
|
||||
from tools.dusk.entity import Entity
|
||||
from tools.dusk.region import Region
|
||||
from tools.editortool.map.vertexbuffer import VertexBuffer
|
||||
from OpenGL.GL import *
|
||||
|
||||
class Chunk:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from dusk.defs import ENTITY_TYPE_NULL, ENTITY_TYPE_NPC, CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
from editortool.map.vertexbuffer import VertexBuffer
|
||||
from tools.dusk.defs import ENTITY_TYPE_NULL, ENTITY_TYPE_NPC, CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
from tools.editortool.map.vertexbuffer import VertexBuffer
|
||||
|
||||
class Entity:
|
||||
def __init__(self, chunk, localX=0, localY=0, localZ=0):
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import json
|
||||
import sys
|
||||
from dusk.event import Event
|
||||
from tools.dusk.event import Event
|
||||
from PyQt5.QtWidgets import QFileDialog, QMessageBox
|
||||
from PyQt5.QtCore import QTimer
|
||||
import os
|
||||
from dusk.chunk import Chunk
|
||||
from dusk.defs import MAP_WIDTH, MAP_HEIGHT, MAP_DEPTH, CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH
|
||||
from tools.dusk.chunk import Chunk
|
||||
from tools.dusk.defs import MAP_WIDTH, MAP_HEIGHT, MAP_DEPTH, CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH
|
||||
import traceback
|
||||
|
||||
MAP_DEFAULT_PATH = os.path.join(os.path.dirname(__file__), '../../assets/map/')
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
from editortool.map.vertexbuffer import VertexBuffer
|
||||
from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
from tools.editortool.map.vertexbuffer import VertexBuffer
|
||||
from OpenGL.GL import *
|
||||
from OpenGL.GLU import *
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from OpenGL.GL import *
|
||||
from dusk.defs import (
|
||||
from tools.dusk.defs import (
|
||||
TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH,
|
||||
CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH,
|
||||
TILE_SHAPE_NULL, TILE_SHAPE_FLOOR,
|
||||
|
||||
@@ -6,9 +6,9 @@ from PyQt5.QtWidgets import (
|
||||
)
|
||||
from OpenGL.GL import *
|
||||
from OpenGL.GLU import *
|
||||
from editortool.maptool import MapWindow
|
||||
from editortool.langtool import LangToolWindow
|
||||
from editortool.cutscenetool import CutsceneToolWindow
|
||||
from tools.editortool.maptool import MapWindow
|
||||
from tools.editortool.langtool import LangToolWindow
|
||||
from tools.editortool.cutscenetool import CutsceneToolWindow
|
||||
|
||||
DEFAULT_TOOL = None
|
||||
DEFAULT_TOOL = "map"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QListWidget, QListWidgetItem, QMenuBar, QAction, QFileDialog, QMessageBox
|
||||
from PyQt5.QtGui import QKeySequence
|
||||
from editortool.cutscene.cutsceneitemeditor import CutsceneItemEditor
|
||||
from editortool.cutscene.cutscenemenubar import CutsceneMenuBar
|
||||
from tools.editortool.cutscene.cutsceneitemeditor import CutsceneItemEditor
|
||||
from tools.editortool.cutscene.cutscenemenubar import CutsceneMenuBar
|
||||
import sys
|
||||
|
||||
class CutsceneToolWindow(QMainWindow):
|
||||
|
||||
@@ -2,7 +2,7 @@ import math
|
||||
import time
|
||||
from OpenGL.GL import *
|
||||
from OpenGL.GLU import *
|
||||
from dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH, RPG_CAMERA_PIXELS_PER_UNIT, RPG_CAMERA_Z_OFFSET, RPG_CAMERA_FOV
|
||||
from tools.dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH, RPG_CAMERA_PIXELS_PER_UNIT, RPG_CAMERA_Z_OFFSET, RPG_CAMERA_FOV
|
||||
|
||||
class Camera:
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QGridLayout, QTreeWidget, QTreeWidgetItem, QComboBox
|
||||
from dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_SHAPES
|
||||
from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_SHAPES
|
||||
|
||||
class ChunkPanel(QWidget):
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QComboBox, QHBoxLayout, QPushButton, QLineEdit, QListWidget, QListWidgetItem
|
||||
from PyQt5.QtCore import Qt
|
||||
from dusk.entity import Entity
|
||||
from dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, ENTITY_TYPES, ENTITY_TYPE_NULL
|
||||
from tools.dusk.entity import Entity
|
||||
from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, ENTITY_TYPES, ENTITY_TYPE_NULL
|
||||
|
||||
class EntityPanel(QWidget):
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from OpenGL.GL import *
|
||||
from dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
from tools.dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
|
||||
class Grid:
|
||||
def __init__(self, lines=1000):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QHBoxLayout, QMessageBox
|
||||
from dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH
|
||||
from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH
|
||||
|
||||
class MapInfoPanel(QWidget):
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QGridLayout, QPushButton, QTabWidget, QLabel
|
||||
from editortool.map.chunkpanel import ChunkPanel
|
||||
from editortool.map.entitypanel import EntityPanel
|
||||
from editortool.map.regionpanel import RegionPanel
|
||||
from tools.editortool.map.chunkpanel import ChunkPanel
|
||||
from tools.editortool.map.entitypanel import EntityPanel
|
||||
from tools.editortool.map.regionpanel import RegionPanel
|
||||
|
||||
class MapLeftPanel(QWidget):
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
from PyQt5.QtWidgets import QAction, QMenuBar, QFileDialog
|
||||
from PyQt5.QtGui import QKeySequence
|
||||
from dusk.map import MAP_DEFAULT_PATH
|
||||
from tools.dusk.map import MAP_DEFAULT_PATH
|
||||
|
||||
class MapMenubar:
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QComboBox, QHBoxLayout, QPushButton, QLineEdit, QListWidget, QListWidgetItem
|
||||
from PyQt5.QtCore import Qt
|
||||
from dusk.entity import Entity
|
||||
from dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, ENTITY_TYPES, ENTITY_TYPE_NULL
|
||||
from tools.dusk.entity import Entity
|
||||
from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, ENTITY_TYPES, ENTITY_TYPE_NULL
|
||||
|
||||
class RegionPanel(QWidget):
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import OpenGL.GL as gl
|
||||
from dusk.defs import defs
|
||||
from tools.dusk.defs import defs
|
||||
import colorsys
|
||||
from dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
from tools.dusk.defs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
|
||||
class SelectBox:
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import os
|
||||
from PyQt5.QtWidgets import QMainWindow, QWidget, QHBoxLayout, QMessageBox
|
||||
from PyQt5.QtCore import Qt
|
||||
from editortool.map.glwidget import GLWidget
|
||||
from editortool.map.mapleftpanel import MapLeftPanel
|
||||
from editortool.map.mapinfopanel import MapInfoPanel
|
||||
from editortool.map.menubar import MapMenubar
|
||||
from editortool.map.statusbar import StatusBar
|
||||
from dusk.map import Map
|
||||
from dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_SHAPE_NULL, TILE_SHAPE_FLOOR
|
||||
from editortool.map.selectbox import SelectBox
|
||||
from editortool.map.camera import Camera
|
||||
from editortool.map.grid import Grid
|
||||
from tools.editortool.map.glwidget import GLWidget
|
||||
from tools.editortool.map.mapleftpanel import MapLeftPanel
|
||||
from tools.editortool.map.mapinfopanel import MapInfoPanel
|
||||
from tools.editortool.map.menubar import MapMenubar
|
||||
from tools.editortool.map.statusbar import StatusBar
|
||||
from tools.dusk.map import Map
|
||||
from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_SHAPE_NULL, TILE_SHAPE_FLOOR
|
||||
from tools.editortool.map.selectbox import SelectBox
|
||||
from tools.editortool.map.camera import Camera
|
||||
from tools.editortool.map.grid import Grid
|
||||
|
||||
class MapWindow(QMainWindow):
|
||||
def __init__(self):
|
||||
|
||||
19
tools/run_python/CMakeLists.txt
Normal file
19
tools/run_python/CMakeLists.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
# Copyright (c) 2026 Dominic Masters
|
||||
#
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
# Copyright (c) 2026 Dominic Masters
|
||||
#
|
||||
# This software is released under the MIT License.
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
function(dusk_run_python CMAKE_TARGET_NAME PYTHON_MODULE)
|
||||
find_package(Python3 COMPONENTS Interpreter REQUIRED)
|
||||
|
||||
add_custom_target(${CMAKE_TARGET_NAME} ALL
|
||||
WORKING_DIRECTORY ${DUSK_ROOT_DIR}
|
||||
COMMAND
|
||||
${Python3_EXECUTABLE} -m ${PYTHON_MODULE} ${ARGN}
|
||||
)
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user