Skip to content

Commit b053db3

Browse files
committed
Updated readme.
1 parent d5e6fae commit b053db3

File tree

2 files changed

+55
-30
lines changed

2 files changed

+55
-30
lines changed

README.md

+50-25
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ This mod requires [BepInEx](https://github.com/toebeann/BepInEx.Subnautica) and
1010
recommended.
1111

1212
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.
1614

1715
To install Terrain Patcher, just extract the zip file and place the `TerrainPatcher` folder into
1816
your `BepInEx/plugins` folder.
@@ -29,11 +27,25 @@ Loading patch files can be enabled/disabled from the in-game config menu if Naut
2927
Some mods, such as [Sea To Sea](https://reikakalseki.github.io/subnautica/mods/seatosea.html), may
3028
require using the legacy QModManager version of Terrain Patcher instead of the current BepInEx
3129
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.
3331
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
3533
issues for bugs encountered on an old version of Terrain Patcher.
3634

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+
3749
## Library Usage
3850

3951
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
5769
TerrainPatcher.TerrainRegistry.PatchTerrain("my-file-name", patch);
5870
```
5971

72+
Using `TerrainRegistry.PatchTerrain` to load terrain patches may be deprecated in a future release.
73+
6074
### Dependency Registration
6175

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.
6478

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:
6982

7083
```cs
7184
[BepInPlugin("YourName.ExampleMod", "Example Mod", "0.0.0")]
7285
[BepInDependency("Esper89.TerrainPatcher")]
7386
internal class Mod : BaseUnityPlugin { /* ... */ }
7487
```
7588

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+
7699
### Licensing
77100

78101
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
81104
might be considered a derivative work. To avoid any possible copyright issues, if your mod isn't
82105
licensed under the GNU AGPL, you should avoid referencing `TerrainPatcher.dll` or otherwise
83106
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.
85108

86109
## Patch Format
87110

@@ -92,34 +115,36 @@ for proper patching of terrain. The patch format also allows as much data as nec
92115
in one file, for easier distribution.
93116

94117
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).
96122

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.
99125

100126
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.
103130

104131
## Features
105132

106133
- Modifying the game's terrain in a modular way.
107134

108135
- Replacing some parts of a batch without replacing the whole batch.
109136

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.
111138

112-
- No actual changes to game files; uses temporary files to store patched terrain.
139+
- No actual changes to game files.
113140

114-
- Support for Subnautica and Below Zero.
141+
- Support for both Subnautica and Below Zero.
115142

116-
- Easily load patches without making a mod, or have more control by using a mod.
143+
- Easily load patches without making a mod.
117144

118145
- Custom load order.
119146

120-
- Enable and disable patch loading in-game.
121-
122-
- Cool rocks.
147+
- Enabling and disabling patch loading in-game.
123148

124149
### Planned Features
125150

@@ -157,7 +182,7 @@ even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
157182
General Public License for more details.
158183

159184
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>.
161186

162187
Additional permission under GNU AGPL version 3 section 7
163188

dist-readme.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ the game's terrain.
77

88
Patch load order can be configured in `load-order.txt`. Each line should be the name of the patch to
99
reorder. Load order can only be configured for patches loaded from the filesystem; to configure the
10-
load order of patches provided by other mods, change the BepInEx load order of those mods.
10+
load order of patches provided directly by other mods, change the BepInEx load order of those mods.
1111

12-
## Repo
12+
## Repository
1313

14-
Terrain Patcher's source code and documentation can be found on the [GitHub
15-
repo](https://github.com/Esper89/Subnautica-TerrainPatcher).
14+
Terrain Patcher's source code and documentation can be found in its [GitHub
15+
repository](https://github.com/Esper89/Subnautica-TerrainPatcher).
1616

1717
## License
1818

@@ -26,7 +26,7 @@ even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
2626
General Public License for more details.
2727

2828
You should have received a copy of the GNU Affero General Public License along with this program.
29-
If not, see <https://www.gnu.org/licenses/>.
29+
If not, see <https://www.gnu.org/licenses>.
3030

3131
Additional permission under GNU AGPL version 3 section 7
3232

0 commit comments

Comments
 (0)