@@ -10,9 +10,7 @@ This mod requires [BepInEx](https://github.com/toebeann/BepInEx.Subnautica) and
10
10
recommended.
11
11
12
12
You can download Terrain Patcher from the [ releases
13
- page] ( https://github.com/Esper89/Subnautica-TerrainPatcher/releases/latest ) (below the changelog),
14
- or from the [ Subnautica] ( https://submodica.xyz/mods/sn1/240 ) and [ Below
15
- Zero] ( https://submodica.xyz/mods/sbz/241 ) Submodica pages.
13
+ page] ( https://github.com/Esper89/Subnautica-TerrainPatcher/releases/latest ) , below the changelog.
16
14
17
15
To install Terrain Patcher, just extract the zip file and place the ` TerrainPatcher ` folder into
18
16
your ` BepInEx/plugins ` folder.
@@ -29,11 +27,25 @@ Loading patch files can be enabled/disabled from the in-game config menu if Naut
29
27
Some mods, such as [ Sea To Sea] ( https://reikakalseki.github.io/subnautica/mods/seatosea.html ) , may
30
28
require using the legacy QModManager version of Terrain Patcher instead of the current BepInEx
31
29
version. The legacy version can be downloaded from the [ releases
32
- page] ( https://github.com/Esper89/Subnautica-TerrainPatcher/releases/tag/v0.4 ) ( below the changelog) .
30
+ page] ( https://github.com/Esper89/Subnautica-TerrainPatcher/releases/tag/v0.4 ) , below the changelog.
33
31
Installation and usage instructions for the legacy version can be found [ in an older version of the
34
- repository] ( https://github.com/Esper89/Subnautica-TerrainPatcher/tree/b379c34 ) . Please do not submit
32
+ repository] ( https://github.com/Esper89/Subnautica-TerrainPatcher/tree/v0.4 ) . Please do not submit
35
33
issues for bugs encountered on an old version of Terrain Patcher.
36
34
35
+ ### Terrain Extender
36
+
37
+ As of version 1.1.0, Terrain Patcher is no longer compatible with Terrain Extender (v1.0.0). This is
38
+ because Terrain Extender relies on a private field that needed to be changed in the v1.1.0 release.
39
+ For compatibility with Terrain Extender, use the previous release of Terrain Patcher, v1.0.2. It can
40
+ be downloaded from the [ releases
41
+ page] ( https://github.com/Esper89/Subnautica-TerrainPatcher/releases/tag/v1.0.2 ) , below the
42
+ changelog. Installation and usage instructions for v1.0.2 can be found [ in an older version of the
43
+ repository] ( https://github.com/Esper89/Subnautica-TerrainPatcher/tree/v1.0.2 ) . Please do not submit
44
+ issues for bugs encountered on an old version of Terrain Patcher.
45
+
46
+ This incompatibility will likely be fixed when Terrain Extender's features are integrated into
47
+ Terrain Patcher.
48
+
37
49
## Library Usage
38
50
39
51
The following is for modders who want to use Terrain Patcher in your mod. Keep in mind that if your
@@ -57,22 +69,33 @@ var patch = asm.GetManifestResourceStream("MyModName.my-file-name.optoctreepatch
57
69
TerrainPatcher .TerrainRegistry .PatchTerrain (" my-file-name" , patch );
58
70
```
59
71
72
+ Using ` TerrainRegistry.PatchTerrain ` to load terrain patches may be deprecated in a future release.
73
+
60
74
### Dependency Registration
61
75
62
- If your mod can function without Terrain Patcher (despite including terrain patches) then you don't
63
- need to add it as a dependency, and you can skip this section .
76
+ Regardless of which method you use to load terrain patches, you'll need to add Terrain Patcher as a
77
+ dependency of your mod .
64
78
65
- Regardless of which method you use to load patches, you'll need to add Terrain Patcher as a
66
- dependency of your mod (as shown in [ ` ExampleMod.cs ` ] ( ./examples/ExampleMod.cs ) ). To do this, just
67
- add the ` [BepInDependency("Esper89.TerrainPatcher")] ` attribute to your mod's entry point, below the
68
- ` BepInPlugin ` attribute, as shown here:
79
+ If your mod ** requires** Terrain Patcher to function, add the
80
+ ` [BepInDependency("Esper89.TerrainPatcher")] ` attribute to your mod's entry point (below the
81
+ ` BepInPlugin ` attribute), as shown here:
69
82
70
83
``` cs
71
84
[BepInPlugin (" YourName.ExampleMod" , " Example Mod" , " 0.0.0" )]
72
85
[BepInDependency (" Esper89.TerrainPatcher" )]
73
86
internal class Mod : BaseUnityPlugin { /* ... */ }
74
87
```
75
88
89
+ If your mod ** does not require** Terrain Patcher but still uses it, add the
90
+ ` [BepInDependency("Esper89.TerrainPatcher", BepInDependency.DependencyFlags.SoftDependency)] `
91
+ attribute to your mod's entry point (below the ` BepInPlugin ` attribute), as shown here:
92
+
93
+ ``` cs
94
+ [BepInPlugin (" YourName.ExampleMod" , " Example Mod" , " 0.0.0" )]
95
+ [BepInDependency (" Esper89.TerrainPatcher" , BepInDependency .DependencyFlags .SoftDependency )]
96
+ internal class Mod : BaseUnityPlugin { /* ... */ }
97
+ ```
98
+
76
99
### Licensing
77
100
78
101
Terrain Patcher is licensed under the GNU AGPL, which says that derivative works must also be
@@ -81,7 +104,7 @@ referencing `TerrainPatcher.dll` and calling `TerrainPatcher.TerrainRegistry.Pat
81
104
might be considered a derivative work. To avoid any possible copyright issues, if your mod isn't
82
105
licensed under the GNU AGPL, you should avoid referencing ` TerrainPatcher.dll ` or otherwise
83
106
interacting with Terrain Patcher directly. Patches can still be loaded without referencing Terrain
84
- Patcher by distributing them alongside your mod.
107
+ Patcher by distributing them alongside your mod as separate ` .optoctreepatch ` files .
85
108
86
109
## Patch Format
87
110
@@ -92,34 +115,36 @@ for proper patching of terrain. The patch format also allows as much data as nec
92
115
in one file, for easier distribution.
93
116
94
117
An example ` optoctreepatch ` file is included at
95
- [ ` example.optoctreepatch ` ] ( ./examples/example.optoctreepatch ) .
118
+ [ ` example.optoctreepatch ` ] ( ./examples/example.optoctreepatch ) . Patches that demonstrate all valid
119
+ materials in-game can be found for Subnautica and Below Zero at
120
+ [ ` material-preview-sn.optoctreepatch ` ] ( ./examples/material-preview-sn.optoctreepatch ) and
121
+ [ ` material-preview-bz.optoctreepatch ` ] ( ./examples/material-preview-bz.optoctreepatch ) .
96
122
97
- Patch files can be generated using [ Reef Editor] ( https://github.com/eternaight/sn-terrain-edit ) , but
98
- any files conforming to the specification will work.
123
+ Patch files can be created using [ Reef Editor] ( https://github.com/eternaight/sn-terrain-edit ) . Any
124
+ files conforming to the specification will work.
99
125
100
126
Terrain Patcher places patched batches in ` CompiledOctreesCache/patches ` , using the same naming
101
- system as the game does. These patched batches can be loaded by external tools, if they wish to
102
- support terrain patches.
127
+ system as the game. These patched batches can be loaded by external tools or other mods, if they
128
+ wish to support terrain patches. Anything using this feature should make it optional, as those files
129
+ aren't removed when Terrain Patcher is disabled or uninstalled.
103
130
104
131
## Features
105
132
106
133
- Modifying the game's terrain in a modular way.
107
134
108
135
- Replacing some parts of a batch without replacing the whole batch.
109
136
110
- - As many world modifications as necessary can fit in one file.
137
+ - As many world modifications as necessary can fit in one patch file.
111
138
112
- - No actual changes to game files; uses temporary files to store patched terrain .
139
+ - No actual changes to game files.
113
140
114
- - Support for Subnautica and Below Zero.
141
+ - Support for both Subnautica and Below Zero.
115
142
116
- - Easily load patches without making a mod, or have more control by using a mod .
143
+ - Easily load patches without making a mod.
117
144
118
145
- Custom load order.
119
146
120
- - Enable and disable patch loading in-game.
121
-
122
- - Cool rocks.
147
+ - Enabling and disabling patch loading in-game.
123
148
124
149
### Planned Features
125
150
@@ -157,7 +182,7 @@ even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
157
182
General Public License for more details.
158
183
159
184
You should have received a copy of the GNU Affero General Public License along with this program.
160
- If not, see < https://www.gnu.org/licenses/ > .
185
+ If not, see < https://www.gnu.org/licenses > .
161
186
162
187
Additional permission under GNU AGPL version 3 section 7
163
188
0 commit comments