|
| 1 | +# Contributing to Material Maker |
| 2 | + |
| 3 | +Thank you for your interest in contributing to Material Maker! |
| 4 | +Please take a look below before making your first contribution. |
| 5 | + |
| 6 | +## Table of Contents |
| 7 | + |
| 8 | +- [Bug reports and feature suggestions](#bug-reports-and-feature-suggestions) |
| 9 | +- [Contributing pull requests](#contributing-pull-requests) |
| 10 | +- [Translations](#translations) |
| 11 | +- [Financial contributions](#contributing-financially) |
| 12 | +- [Contacting the developer](#contacting-the-developer) |
| 13 | + |
| 14 | +## Bug reports and feature suggestions |
| 15 | + |
| 16 | +Bug reports and feature suggestions should be made [here](https://github.com/RodZill4/material-maker/issues). |
| 17 | + |
| 18 | +Before creating a new issue, check if your problem/proposal is already mentioned by using the search function to avoid creating duplicates. |
| 19 | + |
| 20 | +When reporting a bug, make sure to follow the template and provide the following(when possible/if required): |
| 21 | +- Material Maker version |
| 22 | +- System information(OS, GPU) |
| 23 | +- What is expected and what happened instead |
| 24 | +- Outputs from the terminal |
| 25 | +- A screenshot/video showing the problem |
| 26 | +- Project file(if you believe the issue relates to a specific setup) |
| 27 | + |
| 28 | +## Contributing pull requests |
| 29 | + |
| 30 | +Using AI/LLM or any form of agentic coding for your pull request is not allowed. |
| 31 | + |
| 32 | +Use your own words when writing the description. If English is a barrier, consider using a dedicated language service(i.e. [Google Translate](https://translate.google.com/), [DeepL](https://www.deepl.com/en/translator)). |
| 33 | + |
| 34 | +**Using Godot Engine** |
| 35 | + |
| 36 | +Material Maker is built using the Godot Engine using GDScript. As such, it is required to [download the software](https://godotengine.org/) in order to open/test the project. The version used for development can be seen in the [project.godot](https://github.com/RodZill4/material-maker/blob/master/project.godot) file under the `config/features` key. |
| 37 | + |
| 38 | +If you are opening the project in Godot Engine for the first time, Game Embedding must be disabled or else the app may not launch in the editor. |
| 39 | + |
| 40 | +This can be set from the editor settings: |
| 41 | + |
| 42 | +`Run > Window Placement > Game Embed Mode` and setting it to `Disabled` |
| 43 | + |
| 44 | +**Formatting** |
| 45 | + |
| 46 | +Follow the [Godot Style Guide](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_styleguide.html) when formatting your code. Consider looking at surrounding code to copy their patterns and style. |
| 47 | + |
| 48 | +Additionally, |
| 49 | +- Explictly type over inferred typing, i.e. `var my_button : Button = Button.new()` instead of `var my_button := Button.new()`. |
| 50 | + |
| 51 | +**PR Workflow** |
| 52 | +1. Fork the repository. |
| 53 | +2. Setup Git and clone the repository. |
| 54 | +2. Create a new branch: `git checkout -b feat-new-panel` |
| 55 | +3. Make your changes, and add them using `git add .` |
| 56 | +4. Commit your changes: `git commit -m "Implemented new panel"` |
| 57 | +5. Push your branch: `git push origin feat-new-panel` |
| 58 | +6. Create a new pull request and describe your changes. |
| 59 | + |
| 60 | +If your contribution resolves an existing issue, please add a [Github closing keyword](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue) in the description of your pull request (e.g. - Closes #1234). This will make linked issue(s) to close automatically if your PR is merged. |
| 61 | + |
| 62 | +## Translations |
| 63 | + |
| 64 | +Material Maker provides translation files via an [online registry](https://rodzill4.github.io/material-maker/languages.json) which users can download from within the software. |
| 65 | + |
| 66 | +To contribute to this registry, create your translation file, host it somewhere linkable(i.e. in a github repository) and contact RodZill4 directly, via [Discord](https://discord.gg/PF5V3mFwFM). |
| 67 | + |
| 68 | +Both .csv and .po format are supported. You can use [this script](https://github.com/RodZill4/material-maker/blob/master/material_maker/locale/generate_po_template.gd) to generate a po template and edit your translation using [poedit](https://poedit.com/). Also see this [README.md](https://github.com/RodZill4/material-maker/blob/master/material_maker/locale/README.md). |
| 69 | + |
| 70 | +It might also help to use an existing translation as a basis. |
| 71 | + |
| 72 | +## Contributing financially |
| 73 | + |
| 74 | +Although Material Maker is provided for free, it is still possible to contribute financially to help other costs(such as website hosting) and allow more time to be spent on developing/maintaining the software. |
| 75 | + |
| 76 | +- Joining the [Patreon](https://www.patreon.com/rodzlabs) |
| 77 | +- Donating on [Itch.io](https://rodzilla.itch.io/material-maker/purchase) |
| 78 | +- Getting a [Steam copy](https://store.steampowered.com/app/4110830/Material_Maker/) and leaving a review |
| 79 | + |
| 80 | +## Contacting the developer |
| 81 | + |
| 82 | +For casual discussion around Material Maker or about contributing, you can find RodZill4 (`@rodzlabs`) on the [Discord](https://discord.gg/PF5V3mFwFM) server. |
0 commit comments