HellSpawner

module
v0.0.0-...-165de30 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2024 License: GPL-3.0

README

HellSpawner

CircleCI Go Report Card GoDoc

Logo

Announcment

This is an Unofficial Fork of the OpenDiablo2/HellSpawner hosted under github.com/gucio321/hellspawner go import path.

It contains not merged Pull Request from the upstream repo (the repo randomly died) and other new features. Some of them are listed below

  • now it runs on giu v0.11.0 and cimgui-go v1.2.0
  • Exporting DC6 to PNG frames (useful for obtaining game textures)

About this project

HellSpawner is the toolset used for developing games on the OpenDiablo2 engine.

Getting the source

To download code use a following command:

git clone --recurse-submodules https://github.com/OpenDiablo2/hellspawner

or after pulling the source, download submodules:

git submodule update --init --recursive

Then, you need to download go's dependencies:

In root of your project run go get -d

Run project by go run .

If you're using Unix-based OS, you can build project with included building script: run ./build.sh

Windows users must have minGW compiler installed (x32 or x64 depending on processor bit capacity and Windows build version) and put path to minGW/bin folder to system PATH variable.

mingw-x64 installer: https://sourceforge.net/projects/mingw-w64/files/latest/download

mingw for x32/x64 installer: https://sourceforge.net/projects/mingw-w64/

See steps 3 and 4 of this guide.

Contributing

If you find something you'd like to fix that's obviously broken, create a branch, commit your code, and submit a pull request. If it's a new or missing feature you'd like to see, add an issue, and be descriptive!

If you'd like to help out and are not quite sure how, you can look through any open issues and tasks, or ask for tasks on our discord server.

Lint Errors

We use golangci-lint to catch lint errors, and we require all contributors to install and use it. Installation instructions can be found here.

VS Code Extensions

The following extensions are recommended for working with this project:

  • ms-vscode.go
  • defaltd.go-coverage-viewer

When you open the workspace for the first time, Visual Studio Code will automatically suggest these extensions for installation.

Alternatively you can get to it by going to settings Ctrl+,, expanding Extensions and selecting Go configuration, then clicking on Edit in settings.json. Just paste that section where appropriate.

Status

For now (start of July 2021) you can use HellSpawner to:

  • create projects
  • browse MPQ archives
  • view following file formats:
    • DC6 and DCC - animations
    • WAV - sound files
    • TXT - data tables
  • edit:
    • COF - animation data
    • TBL - font tables
    • TBL - string tables
    • TXT - text files
    • DAT - palettes
    • PL2 - palette transforms
    • DT1 - map tiles
    • DS1 - map preset
    • D2 - animation data

Much work has been made in the background, but a lot of work still has to be done for the project to be complete.

Feel free to contribute!

Screenshots

Palette map, palette transfer and DC6 editor Font and String tables editor and animation data editor DT1, WAV and DCC editors

Directories

Path Synopsis
cmd
HellSpawner command
pkg
abysswrapper
Package abysswrapper connects HellSpawner to AbyssEngine
Package abysswrapper connects HellSpawner to AbyssEngine
app
Package app contains HellSpawner's high-level application logic
Package app contains HellSpawner's high-level application logic
app/assets
Package assets contains project assets embeds
Package assets contains project assets embeds
app/config
Package config provides the Hellspawner application config file implementation.
Package config provides the Hellspawner application config file implementation.
app/state
Package state contains structs that describe the state of the application.
Package state contains structs that describe the state of the application.
common
Package common provides common stuff for all of the other high-level packages in the codebase
Package common provides common stuff for all of the other high-level packages in the codebase
common/enum
Package enum provides enumerations used throughout the HellSpawner codebase.
Package enum provides enumerations used throughout the HellSpawner codebase.
common/hsfiletypes
Package hsfiletypes provides utilities for determining the type of a file.
Package hsfiletypes provides utilities for determining the type of a file.
common/hsfiletypes/hsfont
Package hsfont contains data for font file types
Package hsfont contains data for font file types
common/hsnode
Package hsnode contains an implementation of a node graph, as parent and child nodes.
Package hsnode contains an implementation of a node graph, as parent and child nodes.
common/hsproject
Package hsproject contains Hellspawner's Project implementation
Package hsproject contains Hellspawner's Project implementation
common/hsutil
Package hsutil holds utility and helper functions
Package hsutil holds utility and helper functions
widgets
Package widgets contains a generic editor widget implementation, along with with concrete editor implementations.
Package widgets contains a generic editor widget implementation, along with with concrete editor implementations.
widgets/animdatawidget
Package animdatawidget provides data necessary for viewing and editing d2animdata.AnimationData structure
Package animdatawidget provides data necessary for viewing and editing d2animdata.AnimationData structure
widgets/cofwidget
Package cofwidget provides a giu.Widget implementation for viewing and editing the COF data structure.
Package cofwidget provides a giu.Widget implementation for viewing and editing the COF data structure.
widgets/dc6widget
Package dc6widget provides a giu.Widget implementation for viewing and editing the DC6 data structure.
Package dc6widget provides a giu.Widget implementation for viewing and editing the DC6 data structure.
widgets/dccwidget
Package dccwidget contains stuff responsible for viewing and editing the DCC data structure
Package dccwidget contains stuff responsible for viewing and editing the DCC data structure
widgets/ds1widget
Package ds1widget provides a giu.Widget for viewing and editing the DS1 data structure.
Package ds1widget provides a giu.Widget for viewing and editing the DS1 data structure.
widgets/dt1widget
Package dt1widget contains a giu widget implementation for viewing and editing the dt1 data structure
Package dt1widget contains a giu widget implementation for viewing and editing the dt1 data structure
widgets/dt1widget/tiletypeimage
Package tiletypeimage provides tile type image builder used for building a small previews of tiles.
Package tiletypeimage provides tile type image builder used for building a small previews of tiles.
widgets/fonttablewidget
Package fonttablewidget contains a giu widget implementation for viewing and editing the font table (tbl) data structure.
Package fonttablewidget contains a giu widget implementation for viewing and editing the font table (tbl) data structure.
widgets/palettegrideditorwidget
Package palettegrideditorwidget provides a giu widget implementation of a palette editor, for viewing and editing a palette.
Package palettegrideditorwidget provides a giu widget implementation of a palette editor, for viewing and editing a palette.
widgets/palettegridwidget
Package palettegridwidget provides data for viewing and editing 256-colors palettes
Package palettegridwidget provides data for viewing and editing 256-colors palettes
widgets/palettemapwidget
Package palettemapwidget provides a giu widget implementation of an editor for the PL2 palette transform data structure.
Package palettemapwidget provides a giu widget implementation of an editor for the PL2 palette transform data structure.
widgets/selectpalettewidget
Package selectpalettewidget contains palette select widget used in dcc, dc6 and dt1 editors
Package selectpalettewidget contains palette select widget used in dcc, dc6 and dt1 editors
widgets/stringtablewidget
Package stringtablewidget provides methods for editing and viewing TextDictionary (map[string]string) used in string tables
Package stringtablewidget provides methods for editing and viewing TextDictionary (map[string]string) used in string tables
window
Package window contains project's windows
Package window contains project's windows
window/editor
Package editor provides editors for the various file types.
Package editor provides editors for the various file types.
window/editor/animdata
Package animdata contains D2 editor's data
Package animdata contains D2 editor's data
window/editor/cof
Package cof contains cof editor's data
Package cof contains cof editor's data
window/editor/dc6
Package dc6 represents a dc6 editor window
Package dc6 represents a dc6 editor window
window/editor/dcc
Package dcc contains dcc editor's data
Package dcc contains dcc editor's data
window/editor/ds1
Package ds1 contains ds1 editor's data
Package ds1 contains ds1 editor's data
window/editor/dt1
Package dt1 contains dt1 editor's data
Package dt1 contains dt1 editor's data
window/editor/font
Package font contains font editor's data
Package font contains font editor's data
window/editor/fonttable
Package fonttable represents fontTableEditor's window
Package fonttable represents fontTableEditor's window
window/editor/palette
Package palette contains palette editor's data
Package palette contains palette editor's data
window/editor/palettemap
Package palettemap contains palette map editor's data
Package palettemap contains palette map editor's data
window/editor/sound
Package sound represents a soundEditor's window
Package sound represents a soundEditor's window
window/editor/stringtable
Package stringtable contains string tables editor's data
Package stringtable contains string tables editor's data
window/editor/text
Package text contains text editor's data
Package text contains text editor's data
window/popup
Package popup contains project's dialogs
Package popup contains project's dialogs
window/popup/aboutdialog
Package aboutdialog provides the "About" window implementation, which shows information about hellspawner.
Package aboutdialog provides the "About" window implementation, which shows information about hellspawner.
window/popup/preferences
Package preferences contains preferences dialog data
Package preferences contains preferences dialog data
window/popup/projectproperties
Package projectproperties contains project properties dialog's data
Package projectproperties contains project properties dialog's data
window/toolwindow
Package toolwindow contains game tool-windows' data
Package toolwindow contains game tool-windows' data
window/toolwindow/console
Package console provides a graphical console for logging output while the app is running.
Package console provides a graphical console for logging output while the app is running.
window/toolwindow/mpqexplorer
Package mpqexplorer contains an implementation of a MPQ archive explorer, which displays the archive contents as a tree.
Package mpqexplorer contains an implementation of a MPQ archive explorer, which displays the archive contents as a tree.
window/toolwindow/projectexplorer
Package projectexplorer provides a project explorer, for viewing project directories as trees.
Package projectexplorer provides a project explorer, for viewing project directories as trees.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL