What this means is we are all using the same code base. Changes to your code will be pulled into the work-in-progress branch, which in turn will eventually be rolled into the stable master branch.
I will add the latest versions I have of your work into the work-in-progress branch. These will be positioned in the Assets/Daggerfall Unity/Game/Addons folder. I will add enhancements one at a time and we can focus on any fixes needed for them as required.
Once your enhancement is checked in by myself, below will be the collaborative workflow moving forwards.
- In your github account, fork my work-in-progress build.
- When you are ready to make changes to your code, create a new branch from your fork. This allows you to experiment without affecting anything else. You can switch between branches in your git client.
- Make any changes you need to your code. If changes are required to elsewhere in the library, make those as well. Don't forget to put your name in the // contributors comment line near the top.
- Once you're happy with the changes, merge them back into your fork of my work-in-progress branch.
- Send me a pull request of your changes. I will review and if no problems will accept pull request back into the work-in-progress branch.
- Your code must build from the Unity Editor with zero errors and zero warnings. Even warnings like "variable foo was assigned but never used" must be resolved.
- Don't change anything unrelated to your required code changes. If you need to experiment, that's OK, but do it in a safe branch or offline copy (or revert files back to how they were before checking in).
- Use the standard code header in each file, naming yourself as the original author for your files, or as a contributor if you change another person's code.
- It's OK to have your own code/formatting style, but when editing another person's code please try to keep the style consistent with theirs. This applies to me as well if I need to edit your code.
- If your enhancement requires input, do not use Input.KeyDown or similar. Please create an action in the InputManager and assign a default key to that action. The InputManager is our central point for all game input moving forward. For non-game input (e.g. a debug console), it's OK to use the usual Unity Input namespace directly.
For new mod creators that aren't in the Game/Addons folder yet, please just send me a .assetpackage of your work to start with, keeping in mind the guidelines above. I'll do a review, let you know my comments, and hopefully can get you into the core code before long.