jak-project/goalc/make/Tools.h
Hat Kid 62ef9fe49d
[wip] build actor tool (#3266)
This does a couple of things:

- The `custom_levels` folder was renamed to `custom_assets` and contains
`levels`, `models` and `texture_replacements` folders for Jak 1, 2 and 3
in order to keep everything regarding custom stuff in one place.
- With this, texture replacements now use separate folders for all games
- A build actor tool was added that generates art groups for custom
actors
- Custom levels can now specify what custom models from the `models`
folder they want to import, this will add them to the level's FR3.
- A `test-zone-obs.gc` file was added, containing a `test-actor` process
that uses a custom model as an example.

The build actor tool is still very WIP, the joints and the default
animation are hardcoded, but it allows for importing any GLB file as a
merc model.
2024-05-18 18:18:25 +02:00

102 lines
2.6 KiB
C++

#pragma once
#include "common/goos/Reader.h"
#include "goalc/make/Tool.h"
class Compiler;
class CompilerTool : public Tool {
public:
CompilerTool(Compiler* compiler);
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
private:
Compiler* m_compiler = nullptr;
};
class DgoTool : public Tool {
public:
DgoTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
std::vector<std::string> get_additional_dependencies(const ToolInput&,
const PathMap& path_map) override;
private:
goos::Reader m_reader;
};
class TpageDirTool : public Tool {
public:
TpageDirTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
};
class CopyTool : public Tool {
public:
CopyTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
};
class GameCntTool : public Tool {
public:
GameCntTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
};
class TextTool : public Tool {
public:
TextTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
};
class GroupTool : public Tool {
public:
GroupTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
};
class SubtitleTool : public Tool {
public:
SubtitleTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
};
class SubtitleV2Tool : public Tool {
public:
SubtitleV2Tool();
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
};
class BuildLevelTool : public Tool {
public:
BuildLevelTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
};
class BuildLevel2Tool : public Tool {
public:
BuildLevel2Tool();
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
};
class BuildLevel3Tool : public Tool {
public:
BuildLevel3Tool();
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
};
class BuildActorTool : public Tool {
public:
BuildActorTool();
bool run(const ToolInput& task, const PathMap& path_map) override;
bool needs_run(const ToolInput& task, const PathMap& path_map) override;
};