voxeltycoon-community / voxel-tycoon-open-library

Community-made open-source library of functions made for making mods for the game Voxel Tycoon
GNU Affero General Public License v3.0
3 stars 2 forks source link

The Voxel Tycoon Thinking Logo

Voxel Tycoon Open Library (VTOL)

The GitHub Downloads The GitHub License

A community-made open-source library containing functions to assist in developing mods for the game Voxel Tycoon.

Table of Contents - [Getting Started](#getting-started) - [⭐️ Using the library](#using-the-library) - [Contributing Prerequisites](#contributing-prerequisites) - [Code Editor](#code-editor) - [Voxel Tycoon (recommended)](#voxel-tycoon-recommended) - [GitHub Desktop (advised)](#github-desktop-advised) - [Installation](#installation) - [Running Tests](#running-tests) - [Unit Tests](#unit-tests) - [Integration Tests](#integration-tests) - [Mutation Tests](#mutation-tests) - [Deployment](#deployment) - [Contributing](#contributing) - [Authors](#authors) - [License](#license) - [Built with](#build-with) - [Acknowledgments](#acknowledgments)

Getting Started

⭐️ Using the library

TODO: Fill in how to use the library after our first deployment.

Contributing Prerequisites

This game has been written in C# as a mod for Voxel Tycoon (made in Unity), therefore, we expect every contributor to have C# and Voxel Tycoon installed on their device before they can continue.

Code Editor

In order to contribute to this repository, you will need an editor which supports writing code in C#. A couple of commonly used IDEs are:

However, for this project we will be using Visual Studio (Community 2019) as proposed by the Voxel Tycoon Tutorial. Using a newer version won't give problems when writing code, however, it might give problems when you try to help someone out in another version or editor.

In the installer, you will be asked to specify workloads. These are extra components to help enhance development in a variety of different branches. For this project you should select .NET desktop development. Within the list of workloads there is also an option for Game Development with Unity, however, we will not pick this one, since we will be using the Unity code provided with the Voxel Tycoon installation.

After you select this component, then you can continue following the installer and you will be done with the Visual Studio environment installation.

Voxel Tycoon (recommended)

Since this library is made as a mod for Voxel Tycoon, we do expect all contributors to have a copy of the game which they can use for testing purposes. If you do not own the game then you can buy it on Steam.

GitHub Desktop (advised)

Since you are reading this you most likely have a GitHub account already. So to help with uploading your changes we advise to make use of GitHub Desktop, a Git GUI made by GitHub.

Github Desktop Image

Installation

Once you have downloaded all the environments and required software, then you can install the project. To do this you can either use the git console or use the GitHub Desktop app. For the console approach you can follow the provided tutorial. With GitHub desktop it is as easy as clicking in the top left file and then clone repository. In this menu you can now see all the repositories which you have access to on GitHub, from here you can select the Voxel Tycoon Open Library repository and download it.

Next we need to setup a user variable to point to our Voxel Tycoon game. The reason for this variable is so that all contributors can install Steam or Voxel Tycoon in a different folder and still being able to contribute. To add the variable you need to navigate to the environmental variables. On Windows 10 this can be reached as follows:

  1. Right click on the Windows icon in the bottom left of your task bar.
  2. In this menu, select "System".
  3. Within the system info, there will be an extra menu on the right, from this menu select the "Advanced system settings" text.
  4. A new window will pop-up for the System properties, in here select the "Environment Variables..." button at the bottom.
  5. This menu will have 2 areas: User variables and System variables. The first one is only for your account and the second one for everyone using this PC. We will add our variable to the user variant in the top by pressing the "New..." button.
  6. The name of our variable will be VoxelTycoonInstallationDir and the value is the directory of your Voxel Tycoon game folder. The game folder is the one containing the VoxelTycoon.exe and the important VoxelTycoon_Data folder.
  7. When that is all set, make sure to press Ok in all windows and that will automatically save your settings.

To test if the installation was a success, you can now open Visual Studio by double click the Voxel Tycoon Open Library.sln solution inside your downloaded project folder. If no errors pop up than the installation has been successful!

From now on you can use GitHub Desktop or your favourite Git system to commit new changes which you've made to your feature specific branch on GitHub.

Running Tests

TODO: Fill in testing chapter when we have a testing library.

Unit Tests

Integration Tests

Mutation Tests

Deployment

TODO: Fill in deployment when we have the CD active.

Contributing

Interested in helping us make an amazing public library? Go ahead and fork this project so you can make a Pull Request or contact us on the Voxel Tycoon Discord Server!

Authors

⚖️ License

GNU Affero General Public License v3.0

Summary: (This is not legal advice)

Permissions of this strongest copy-left license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.

Permissions Limitations Conditions
✔️ Commercial use ❌ Liability 🔵 License and copyright notice
✔️ Modification ❌ Warranty 🔵 State changes
✔️ Distribution 🔵 Disclose source
✔️ Patent use 🔵 Network use is distribution
✔️ Private use 🔵 Same license

Built with

This project would not have been possible without the following frameworks, public packages and awesome people.

Acknowledgments