mirror of
https://github.com/LucasDower/ObjToSchematic.git
synced 2025-01-12 10:54:24 +08:00
Merge branch 'refactor' of https://github.com/LucasDower/ObjToSchematic into refactor
This commit is contained in:
commit
32068d55af
13
README.md
13
README.md
@ -48,8 +48,8 @@ You can either download the [latest release](https://github.com/LucasDower/ObjTo
|
|||||||
|
|
||||||
0.5
|
0.5
|
||||||
* ⚪ Support for simplifying complex meshes
|
* ⚪ Support for simplifying complex meshes
|
||||||
* 🟡 Load custom block palettes and texture atlases
|
* 🟢 **Load custom block palettes and texture atlases**
|
||||||
* 🟢 Optimise construction of voxel mesh vertex buffers
|
* 🟢 **Optimise construction of voxel mesh vertex buffers**
|
||||||
* 🟡 Web workers (see [web-workers](https://github.com/LucasDower/ObjToSchematic/tree/web-workers))
|
* 🟡 Web workers (see [web-workers](https://github.com/LucasDower/ObjToSchematic/tree/web-workers))
|
||||||
* Progress bar
|
* Progress bar
|
||||||
* Prevent UI hanging
|
* Prevent UI hanging
|
||||||
@ -75,5 +75,12 @@ This is an non-commercial **unofficial** tool that is neither approved, endorsed
|
|||||||
|
|
||||||
![MinecraftPreview](/resources/minecraft.png)
|
![MinecraftPreview](/resources/minecraft.png)
|
||||||
|
|
||||||
# Debugging
|
# Contributing
|
||||||
|
Any contributions are welcome, just fork and submit a PR! Just make sure the code style follows the rulings in the `.eslintrc.json` and pass the CI build task.
|
||||||
|
|
||||||
|
Currently there's not much docs but if you're looking for where to get started, look at `app_context.ts` and follow `_import()`, `_simplify()`, `_voxelise()`, `_palette()`, and `_export()`. If you're looking to add elements to the UI, look at `ui/layout.ts`, I'm not using a UI framework because I'm a nutter. If you have any questions or need help getting started then feel free to message me.
|
||||||
|
|
||||||
|
Adding more file formats to import from and export to would be nice. Adding new default block palettes would be great also.
|
||||||
|
|
||||||
|
### Debugging
|
||||||
To allow for your favourite debugging tools like breakpoints and call stacks, I've included launch options for debugging in VSCode. Use `Ctrl+Shift+D`, and run "*Debug Main Process*" and once the Electron window has initialised, run "*Attach to Render Process*".
|
To allow for your favourite debugging tools like breakpoints and call stacks, I've included launch options for debugging in VSCode. Use `Ctrl+Shift+D`, and run "*Debug Main Process*" and once the Electron window has initialised, run "*Attach to Render Process*".
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"atlasSize": 17,
|
"atlasSize": 17,
|
||||||
"atlasTexture": "C:\\Users\\lucas\\ObjToSchematic\\resources\\atlases\\vanilla.png",
|
|
||||||
"blocks": [
|
"blocks": [
|
||||||
{
|
{
|
||||||
"name": "acacia_log",
|
"name": "acacia_log",
|
||||||
|
@ -46,7 +46,7 @@ export class BlockAtlas {
|
|||||||
private _atlasSize: number;
|
private _atlasSize: number;
|
||||||
private _atlasLoaded: boolean;
|
private _atlasLoaded: boolean;
|
||||||
private _paletteLoaded: boolean;
|
private _paletteLoaded: boolean;
|
||||||
private _atlasTexturePath?: string;
|
private _atlasTextureID?: string;
|
||||||
|
|
||||||
private static _instance: BlockAtlas;
|
private static _instance: BlockAtlas;
|
||||||
public static get Get() {
|
public static get Get() {
|
||||||
@ -77,7 +77,7 @@ export class BlockAtlas {
|
|||||||
|
|
||||||
const json = JSON.parse(blocksString);
|
const json = JSON.parse(blocksString);
|
||||||
this._atlasSize = json.atlasSize;
|
this._atlasSize = json.atlasSize;
|
||||||
this._atlasTexturePath = json.atlasTexture;
|
this._atlasTextureID = atlasID;
|
||||||
this._blocks = json.blocks;
|
this._blocks = json.blocks;
|
||||||
for (const block of this._blocks) {
|
for (const block of this._blocks) {
|
||||||
block.colour = new RGB(
|
block.colour = new RGB(
|
||||||
@ -138,7 +138,7 @@ export class BlockAtlas {
|
|||||||
|
|
||||||
public getAtlasTexturePath() {
|
public getAtlasTexturePath() {
|
||||||
ASSERT(this._atlasLoaded, 'No atlas texture available');
|
ASSERT(this._atlasLoaded, 'No atlas texture available');
|
||||||
ASSERT(this._atlasTexturePath, 'No atlas texture path available');
|
ASSERT(this._atlasTextureID, 'No atlas texture ID available');
|
||||||
return this._atlasTexturePath;
|
return path.join(__dirname, '../resources/atlases', this._atlasTextureID + '.png');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -342,7 +342,6 @@ async function buildAtlas() {
|
|||||||
log(LogStyle.Success, `${atlasName}.png exported to /resources/atlases/`);
|
log(LogStyle.Success, `${atlasName}.png exported to /resources/atlases/`);
|
||||||
const outputJSON = {
|
const outputJSON = {
|
||||||
atlasSize: atlasSize,
|
atlasSize: atlasSize,
|
||||||
atlasTexture: atlasDir,
|
|
||||||
blocks: allModels,
|
blocks: allModels,
|
||||||
};
|
};
|
||||||
fs.writeFileSync(path.join(__dirname, `../resources/atlases/${atlasName}.atlas`), JSON.stringify(outputJSON, null, 4));
|
fs.writeFileSync(path.join(__dirname, `../resources/atlases/${atlasName}.atlas`), JSON.stringify(outputJSON, null, 4));
|
||||||
|
Loading…
Reference in New Issue
Block a user