Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented initial stages on BZ integration #2052

Draft
wants to merge 88 commits into
base: bz-experimental
Choose a base branch
from

Conversation

Coding-Hen
Copy link
Collaborator

Missing lots and still a lot of work but should give a start for us allowing BZ compatibility

This really needs to be moved out into its seperate components and not with the compiler flags but that can be done in due time.

Happy to make any changes before this goes in if people would prefer

@Rosentti
Copy link
Contributor

I tried porting Nitrox to Below Zero last year (before the 2.0 update was announced, started it around August), and a lot of the issues I faced were related to the major changes in Subnautica 2.0 (BZ has had 2.0 for a long time now)

This a writeup of the issues I encountered and at the end a way I think we could add BZ support cleanly.

Most of the problem spots were:

  • Sync functions being removed and being forced to use coroutines for things that were synchronous before
  • Different asset paths
  • Switch to prefab system
  • TextMeshPro being used instead of the old unity system

BZ related bugs:

  • Bug: Main menu's multiplayer button didn't show up

    • Issue: Wrong asset paths and color picker didn't exist in the same place in BZ
    • Patchwork Solution: Load color picker prototype with Addressables.LoadAssetAsync<GameObject> (I can provide full code if needed)
    • Long-term solution: Create a UI Framework/uGUI wrapper. Would also help mod devs in the future who want to mod Nitrox when mod support comes.
  • Bug: Entities not spawning at all

    • Issue: NitroxServer loads Subnautica assets instead of BZ assets
    • Solution: In NitroxServer get the current game's path through AutoFac. In game-specific servers, provide the correct game path through AutoFac.
  • Bug: Entities don't spawn near the player when they join in

    • Issue: ???
    • Patchwork Solution: Walk away from your spawn area and walk back
  • Bug: Building doesn't work

    • Issue: Nitrox doesn't yet support the 2.0 update's building systems.
    • Solution: Wait for building support
  • Bug: Tiny black cubes floating about

    • Issue: The models fail to load and are replaced with a placeholder lootcube
    • Solution: ????
  • Bug: PDA doesn't save anything and player tab broken

    • Issue: ?????
    • Solution: ?????

Lots of these might already work with little to no effort due to the immense amount of work poured into adding 2.0 support to Nitrox.

My idea for adding BZ support without spaghetti (take with multiple grains of salt, I'm not a very experienced Nitrox dev):

  1. Split (Nitrox Project)-Subnautica:s into (Nitrox Project)-All (for both games, can be compiled with either of the games) and (Nitrox Project)-Subnautica for SN only.
  2. Create BZ versions of (Nitrox Project)s
  3. Edit MSBuild scripts so that:
    • Support for a game is built if the user has that game
    • Projects can check for Subnautica/BZ through MSBuild properties
    • Launcher will only support the games the dev has, shouldn't be an issue since CI probably does have both games
  4. Edit all references to GamePath replacing it with some other solution appropriate for that usecase:
    • Multiple variables
    • Function to get game path for SN/BZ
    • Employing AutoFac on Client/Server/Launcher code
  5. Add UI support
    • Implement the Library tab inside the launcher (it's atleast partially implemented currently)
    • -or-
    • Add a second "Game" tab and rename them Subnautica and Subnautica: Below Zero if both games exist at build time

This API tests that the IP address points to the same machine that is executing the code (localhost).
Previously this only worked for 127.x.x.x range IPs but now also works for LAN ipv4 and ipv6 IPs.
@dartasen dartasen changed the title Implemented initial stages on BZ intergration Implemented initial stages on BZ integration Jul 3, 2023
i-Moony and others added 25 commits July 7, 2023 19:58
Change Pastbin into Pastebin
Change Operation System to Operating System

Change "How did it happened?" to "How did it happen?"
* Splitted InGame logging with translation

* Added missing ingame translations

* Reverted OnlyInGame() to InGame()

* Fixed bug where missing keys would not use fallback language

* PR review changes

Co-authored-by: Meas <measuring.infinity@gmail.com>

* Fix bug where sensitive logging wouldn't replace keys

---------

Co-authored-by: Meas <measuring.infinity@gmail.com>
…caNitrox#1908)

* QoL: Commenting out unused patch

* QoL: Removing redundant code

* QoL: Merge Bench code into one inline method

* QoL: Validate.cs Use CallerArgumentExpression

* QoL: Fix NREs in PlayerPreferencesInitialSyncProcessor

* Update NitroxEntity GetId() to better reflect behavior

* Simple GetId() to RequireIdFrom() replacement

* Replacing GetId() with more safe catching

* Generate NitroxIds for new Vehicles

* Generate NitroxIds for new Batteries

* Changed QuickSlotsBindingIds from Array to OptionalArray

* Made getting NitroxId in patches safe with logging

* Simplify BuilderTool_HandleInput_Patch

* De-verbose TryGetIdOrWarn()

* Small bug fixes

* Added Obsolete warning to new OptionalEmpty() ctor

The constructor should not be used directly. Instead, Optional.Empty should be used.

* Made getting NitroxId in the rest safe with logging

* Always handle IEnumerator with yield

* Moved NitroxEntity.cs TryGetId APIs into extension methods

Removed redundant null checks on GameObject as they are done in the TryGetId APIs.

* Minor review changes

* Check for null id in NitroxEntity.RemoveFrom()

* Use CoroutineUtils.YieldSafe instead of own code

* Use GenerateNewId instead of SetNewId

* Rename GetOptionalId to GetId

* Move id getting before Metadata extraction

* Moved Obsolete attr on OptionalEmpty ctor to OptionalEmpty

default(OptionalEmpty) was still possible without a warning, which shouldn't happen outside Optional.cs

* Address pr changes

---------

Co-authored-by: Measurity <measuring.infinity@gmail.com>
This generator also optimizes how MethodInfos are retrieved during patching.
Language:  (German)

Translated using Weblate (Finnish)

Currently translated at 100.0% (84 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fi/

Translated using Weblate (Portuguese)

Currently translated at 83.3% (70 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt/

Translated using Weblate (Italian)

Currently translated at 94.0% (79 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/it/

Translated using Weblate (Danish)

Currently translated at 94.0% (79 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/da/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 86.9% (73 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt_BR/

Translated using Weblate (Lithuanian)

Currently translated at 82.1% (69 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/lt/

Translated using Weblate (Irish)

Currently translated at 17.8% (15 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ga/

Translated using Weblate (Turkish)

Currently translated at 78.5% (66 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/tr/

Translated using Weblate (Spanish)

Currently translated at 83.3% (70 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/es/

Translated using Weblate (Portuguese)

Currently translated at 83.3% (70 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt/

Translated using Weblate (Polish)

Currently translated at 86.9% (73 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pl/

Translated using Weblate (French)

Currently translated at 90.4% (76 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fr/

Translated using Weblate (Finnish)

Currently translated at 86.9% (73 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fi/

Translated using Weblate (French)

Currently translated at 90.4% (76 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fr/

Translated using Weblate (English)

Currently translated at 100.0% (84 of 84 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/en/

Translated using Weblate (English)

Currently translated at 100.0% (81 of 81 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/en/

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Spanish)

Currently translated at 95.8% (70 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/es/

Translated using Weblate (Finnish)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fi/

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Dutch)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nl/

Translated using Weblate (Romanian)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ro/

Translated using Weblate (Finnish)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fi/

Translated using Weblate (Russian)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ru/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 97.2% (71 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Polish)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pl/

Translated using Weblate (Italian)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/it/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/hu/

Translated using Weblate (German)

Currently translated at 98.6% (72 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/de/

Translated using Weblate (French)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fr/

Translated using Weblate (Croatian)

Currently translated at 100.0% (73 of 73 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/hr/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Dutch)

Currently translated at 95.6% (66 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nl/

Translated using Weblate (Danish)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/da/

Translated using Weblate (Danish)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/da/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Polish)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pl/

Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/lt/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt/

Translated using Weblate (Dutch)

Currently translated at 88.4% (61 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nl/

Translated using Weblate (Dutch)

Currently translated at 88.4% (61 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nl/

Translated using Weblate (Danish)

Currently translated at 94.2% (65 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/da/

Translated using Weblate (Serbian)

Currently translated at 18.8% (13 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sr/

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/vi/

Translated using Weblate (Korean)

Currently translated at 69.5% (48 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ko/

Translated using Weblate (Thai)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/th/

Translated using Weblate (Latvian)

Currently translated at 4.3% (3 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/lv/

Translated using Weblate (Swedish)

Currently translated at 98.5% (68 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sv/

Translated using Weblate (Swedish)

Currently translated at 98.5% (68 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sv/

Translated using Weblate (Greek)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/el/

Translated using Weblate (Russian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ru/

Translated using Weblate (German)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/de/

Translated using Weblate (Finnish)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fi/

Translated using Weblate (Czech)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/cs/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt/

Translated using Weblate (Finnish)

Currently translated at 75.3% (52 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fi/

Translated using Weblate (Finnish)

Currently translated at 75.3% (52 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fi/

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/zh_Hant/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/zh_Hans/

Translated using Weblate (Italian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/it/

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Romanian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ro/

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Spanish)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/es/

Translated using Weblate (French)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fr/

Translated using Weblate (Slovak)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sk/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/hu/

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/uk/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/zh_Hans/

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/bg/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/lt/

Translated using Weblate (Latvian)

Currently translated at 2.8% (2 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/lv/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt/

Translated using Weblate (Croatian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/hr/

Translated using Weblate (Romanian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ro/

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Russian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ru/

Translated using Weblate (Italian)

Currently translated at 100.0% (69 of 69 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/it/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Lithuanian)

Currently translated at 28.3% (19 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/lt/

Translated using Weblate (Swedish)

Currently translated at 89.5% (60 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sv/

Added translation using Weblate (Chinese (Traditional))

Added translation using Weblate (Serbian (cyrillic))

Added translation using Weblate (Catalan)

Translated using Weblate (Slovenian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sl/

Translated using Weblate (Japanese)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ja/

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt_BR/

Translated using Weblate (Greek)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/el/

Translated using Weblate (Turkish)

Currently translated at 92.5% (62 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/tr/

Translated using Weblate (Dutch)

Currently translated at 88.0% (59 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nl/

Translated using Weblate (Swedish)

Currently translated at 77.6% (52 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sv/

Translated using Weblate (Vietnamese)

Currently translated at 92.5% (62 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/vi/

Translated using Weblate (Slovak)

Currently translated at 98.5% (66 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sk/

Translated using Weblate (Slovak)

Currently translated at 62.6% (42 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/sk/

Translated using Weblate (Romanian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ro/

Translated using Weblate (Spanish (Latin America))

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/es_419/

Translated using Weblate (Thai)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/th/

Translated using Weblate (Spanish)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/es/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/zh_Hans/

Translated using Weblate (Croatian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/hr/

Translated using Weblate (Norwegian Bokmål)

Currently translated at 65.6% (44 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nb_NO/

Translated using Weblate (Romanian)

Currently translated at 98.5% (66 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ro/

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ru/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pt/

Translated using Weblate (Danish)

Currently translated at 76.1% (51 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/da/

Translated using Weblate (Czech)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/cs/

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/bg/

Translated using Weblate (Czech)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/cs/

Translated using Weblate (Dutch)

Currently translated at 83.5% (56 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/nl/

Translated using Weblate (Romanian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ro/

Translated using Weblate (Hungarian)

Currently translated at 98.5% (66 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/hu/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/uk/

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/uk/

Translated using Weblate (Russian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ru/

Translated using Weblate (Polish)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/pl/

Translated using Weblate (German)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/de/

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Italian)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/it/

Translated using Weblate (French)

Currently translated at 100.0% (67 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/fr/

Translated using Weblate (Danish)

Currently translated at 71.6% (48 of 67 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/da/

Merge remote-tracking branch 'origin/master'

Merge remote-tracking branch 'origin/master'

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (66 of 66 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/zh_Hans/

Translated using Weblate (Japanese)

Currently translated at 100.0% (66 of 66 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/ja/

Translated using Weblate (Greek)

Currently translated at 100.0% (66 of 66 strings)

Translation: SubnauticaNitrox/IngameSubnautica
Translate-URL: https://hosted.weblate.org/projects/subnauticanitrox/ingamesubnautica/el/
* Disable patches for legacy building

* Created virtual objects for every possible building (and ghosts)

* Add a singleplayer tester for the alternative building system

* Fix transpiler pattern matching not adding instructions at the end of the pattern, and not reading the latest instruction in a method

* Adapted all of the code to work in simple peer-2-peer

* Add a first implementation (unfinished and unclean) of the server-side saving/relaying part.

* Added a BuildPieceIdentifier to be able to identify objects under BaseCells (on client-side)

* Fix a null exception during RestoreGhost()

* Completed the server-side managing of the build packets (still a bug left)

* Refactored save data in PersistedWorldData

* Added the required ProtoBufNet attributes to the new data classes

* Added building restore process to initial sync

* Fix modules not being correctly handled on server-side

* Try improving build piece identifying.

* On the way to deprecate client force-updating bases when it's not valid, and to have cooldown on base building when another interacts with it.

* Replace every ProtoContract/ProtoMember to DataContract/DataMember

* Fix BuildPieceIdentifier being wrongly created for destructed pieces

* Fixed cooldowns, and added cooldown cleanup for when they're finished

* Made the building queue use safely yielded coroutines

* Added NitroxId to interior pieces and NitroxEntity to IBaseModules accordingly (WaterPark still to fix)

* Fix WaterParks NitroxEntity setting

* Fix being able to deconstruct buildings with remote players inside

* Add NitroxEntity to VehicleDockingBay of moonpools

* First shot at moving buildings to the entity system (a lot to correct still)

* Removed ExistsInGlobalRoot and WaterParkId fields from WorldEntity (replaced by GlobalRootEntity)

* Moved the whole building system to the entity system (incomplete but working)

* Fix MapRooms not getting a NitroxEntity attached to their functionality object, and added back destroying overlapping entities (e.g vines) and safety when deleting a base with player inside (shouldn't be possible anyway)

* Reparent player children of a removed entity to GlobalRoot

* Add sync/persistence for base pieces (not for alien containments tho), added EntityPostSpawner (for bench), fixed some issues with base updating, improved the entity implementation of bases, moved Resolve to a global using in NitroxPatcher and NitroxClient

* Fix moonpool not spawning vehicle, recursive search for players causing stackoverflow, built InteriorPieces not being assigned to the right type (in server processor), add a throttle for ModifyConstructedPacket, removed a false error logging

* Add MapRooms as children for bases, that will get their nitrox ids saved and restored

* Fix ghost visual glitch

* Fixed several edge-cases issues for WaterParks and finished its basic inventory/fishes sync/restore for larger water parks. Split PostSpawnProcessors into for Constructables and Modules.

* Fixed vehicles not being correctly docked to moonpools and constructables not being correctly lighted on reconnect

* Refactoring (for build-related entities) positions to localpositions and implemented building in cyclops

* Added a resync buildings procedure (with a button in the settings) and a delete GameObject button to the scene debugger

* Add a safe building mode for both client and server. Also fix the operation count of client-side. Clients now know when they're desynced from a base building

* First steps of entity batch spawning applied to item spawning, fixed a bug on placing modules

* Introduced data compression for SavedBase data (drastically reduced the loadout weight), save InteriorPiece already included children, add a temporary energy refill to power sources on spawn

Co-authored-by: Jannify <23176718+Jannify@users.noreply.github.com>

* Deprecated legacy building system.

* Mass refactoring (cleaning up the project), moving classes in their own files, now recreate a player entity when it couldn't be found

* Fix an issue in batch spawning (about ignored exceptions), and vehicle docking/undocking, use cache for ghost/interior piece/module prefab querying

* Some cleaning

* Replace NitroxEntity.TryGetIdFrom by the implementation from SubnauticaNitrox#1908

* Some refactoring + fix operation tracker breaking bug

* Resolved merge conflicts, fixed an issue with metadata update spamming when hovering a plant with planter open, fixed wrong parenting to WaterPark (for big room)

* Some more mass refactoring to avoid having too many util static classes

* fixed BaseDeconstructable prefab loading issue with multiple clients locally, updated some transpilers, set safe building to true by default (client-side)

* More corrections for SubnauticaNitrox#2063 rebase

* Fixed PacketSerializationTest failing

Added [Serializable] in new packets
Changed field to property in new packets
Removed ToString() override of new packets
Enhanced NitroxAutoFaker to set backing fields if property is read- only

* Refactored SerializationHelper

Moved Base related methods to BaseSerializationHelper
Fixed overflow bug in CompressStream() and added tests for verification
Removed unused code in SerializationHelper

* Fixed Packet and Processor tests

Resoled cases where abstract class in between concrete processor and ClientPacketProcessor/Authen.../... would result in failure
Deleted unused and lost packets

* Missed changes to BaseSerializationHelper

* Fixing various issues with serialization

* Fixes to Jannify's previous fixes, and some refactoring

* Simplify building post spawning (deletions and refactoring), add an analyzer for wrong usage of DI
Co-authored-by: Measurity <measuring.infnity@gmail.com>

* Refactor Resolve<T> and improved DI analyzer performance

Removed "Resolve" check in analyzer and instead limited Resolve API to types where it is allowed to be used (NitroxPatch and UnityEngine.Object types).

* Moved rules of DependencyInjectionMisuseAnalyzer into private Rules type

Removed autofac naming in DependencyInjectionMisuseAnalyzer.

* Fix null coroutine execution

* Address Jannify's review, remove ParentedDrawer (replaced by DI use), separated GhostMetadata retrieving and applying in two static classes

* Fixed DependencyInjectionMisuseAnalyzer reporting on wrong symbol

Fixed the analyzer to report on any member access of NitroxServiceLocator.
Suppressed the analyzer message on "main" types like Program.cs which setup the DI container.

* Introduce lock objects in WorldEntityManager

* Added translation to building

* Improve player entity search in recursive search through hierarchy

* Repair ghost spawning (visual glitch), improve the code here and there, change all DateTimeOffset.Now to UtcNow

Co-authored-by: Measurity <measuring.infnity@gmail.com>
Co-authored-by: Jannify <23176718+Jannify@users.noreply.github.com>

* Set TryGetComponentInParent includeInactive parameter to false by default and updated its occurences accordingly (except for FMOD_Patches to avoid merge conflicts for Jannify's PR).
And some more refactoring
TODO: Add explanation for this in the docs

* Greatly improve entity spawning time (depends on FPS, the more = the faster), changed recursive spawning to iterative spawning in Entities.cs and PlaceholderGroupWorldEntitySpawner.cs

* Introduce a major solution: ignore exceptions in Coroutines to avoid them getting stuck without us notifying anything

* Improved entity spawn queue to use a List

* Fix ghost spawning regression

* Added some comments and a TODO for NitroxTransform's fix. Changed spawn queue Coroutine starter

* Moved SpawnEntitiesProcessor logic to Entities.cs

* Fixed resync regression, removed debug logs

* Reversed functionality of EntitiesToSpawn for SpawnBatchAsync to have a lesser time complexity

* Re-enable previously disabled cinematic patches, changed delta time calculations to use TimeSpan, and fix AGAIN the ghost visual glitch

---------

Co-authored-by: Jannify <23176718+Jannify@users.noreply.github.com>
Co-authored-by: Measurity <measuring.infnity@gmail.com>
Co-authored-by: dartasen <cleeeemove@gmail.com>
tornac1234 and others added 24 commits February 16, 2024 22:14
* Fix "spawn" command and sync "sub" command
* Sync "spawn" command for all entities and restrict "sub" and "spawn" to at least moderator perms
* Moved soundWhitelist to NitroxModel to access it on the Server

* Added MultiplePacketsSuppressor to suppress multiple types at once

Generally suppress sound packets from client processors

* Added drawer for FMODAsset

* Handle 2D Looping sounds and QOL changes

 Co-authored-by: tornac1234 <tortornac@gmail.com>

* Better NRE catching in PlayerCinematicController

* Fix exosuit step and jet sounds

Co-authored-by: tornac1234 <tortornac@gmail.com>

* Fix seamoth sound packet echoing

* Small refactor for ExosuitModuleEvent

* Don't sync player focused sound

The player object has no NitroxId and therefor can't have synced sounds

* Remove isGlobal from IsWhitelisted()

* Added UnityObjectExtensions from 3a7f50

Co-authored-by: Measurity <measuring.infnity@gmail.com>

* Added fallback logic for late register of FMODEmitterController

* Small QoL for sound debugger

* Properly sync sound for ToggleLights

* Sync remote player sounds

Co-authored-by: tornac1234 <tortornac@gmail.com>

* Small QOL changes

Co-authored-by: tornac1234 <tortornac@gmail.com>

* Fixed rebase regression in NitroxUser

* Improved suppressing multiple packets

* Split FMODSystem, FMODWhitelist and CalculateVolume()

* Address requested changes

* Fix server not finding launcherPath

* Remove welder and player freedive_splash from whitelist

* Address requested changes

* Fixed bug where LauncherPath could not be found when running tests

---------

Co-authored-by: tornac1234 <tortornac@gmail.com>
Co-authored-by: Measurity <measuring.infnity@gmail.com>
* Modified namespace to be file-scoped by default in editorconfig

* Reworked installation finders

* Refactored GameFinders to use GameFinderResult

* Added NotFound/Ok result to GameFinderResult type

* Added GetUniqueNonCombinatoryFlags extension for Enums

---------

Co-authored-by: Measurity <measuring.infinity@gmail.com>
…trox#2136)

Co-authored-by: tornac1234 <24827220+tornac1234@users.noreply.github.com>
Coding-Hen and others added 3 commits August 16, 2024 18:59
Co-authored-by: Jannify <23176718+Jannify@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: dev Related to development environment
Projects
None yet
Development

Successfully merging this pull request may close these issues.