This is CoderSea revision 210712. ---------------------------------------------------------------------- Introduction ------------
Welcome to CoderSea The ocean for you and me CoderSea, see, is the MT sea CoderSea, it's Lua and not 'C' This is the sea that in your world needs to beCoderSea is a replacement for "sea" 0.4.2 with a number of fixes and improvements. Partial list of features: * Works with seas that already exist ("sea" 0.4.2 doesn't) * Drop-in replacement for "sea" (some items are omitted) * Adds starfish and other sprite characters * Sea-plants provide optional and adjustable illumination * Much-simplified ABM code * Much-simplified seaglass, seastone, etc., code * Sea-glass stairs and slabs illumination can be turned off and on * Solves the usual air-bubble problem * Air-bubble solution doesn't require "plantlike_rooted" feature * Air-bubble solution is superior to "plantlike_rooted" approach * Seastone and related nodes are optional * Adds fish, jellyfish, sharks, and other mobs (optional) * New Copperband Butterfly fish * Reversible - CoderSea can revert some of its effects * Drowning is optional * Flexible spelling for some options * Includes Ethereal sea-plants * Sea-grass supports optional waving Required: The only required mods are default, dye, and stairs. Not required: Ethereal is supported, but optional. StairsShine is no longer required or used. CoderSea includes its own internal, and improved, stairs illumination code. Mobs are implemented using an internal copy of the Mobs Redo API. Mobs Redo itself isn't required. Technical note: This document alludes dolidrosaurus and octupus. These mobs aren't included in the current version of this mod. They've been removed in the interests of a lightweight implementation. They may be restored in a future heavier version of the mod. ---------------------------------------------------------------------- Credits ------- If you belong on the list, and are missing, excuse the oversight and advise the current maintainer. For related information, see the "LICENSE" file that comes with the mod source code. * Hardbone Hone - Copperband Butterfly fish. * TenPlus1 - Mobs Redo. Ethereal plants. * Topywo - Sea 0.4.2. CoderSea is a fork of that mod. Some modules have been rewritten entirely, but others are only slightly rewritten versions. * blert2112 - "mobs_water" modpack. * npx - "nssm" mod. * Kahrl - Stairs code. * Celeron55 - Minetest. * OldCoder - Rewrite of several modules. Addition of a few features such as illuminated plants, new sprites, and imported mobs. ---------------------------------------------------------------------- Configuration files ------------------- This document often refers to files named "minetest.conf" or "codersea.conf" or to "conf-file settings". If you'd like to tune CoderSea, you'll need to read this section. Otherwise, you can skip it. "minetest.conf" is a Minetest world configuration file that contains settings of the form: lunch = salad where **lunch** is a Minetest parameter name and **salad** is a value that the parameter is to be set to. One example of an actual setting is: name = magician which sets the name of the owner, or superuser, account for a Minetest world to "magician". The exact location of "minetest.conf" will depend on how a world is set up. Note: Client systems have their own "minetest.conf" files. These are separate and unrelated to files on the server side. In some setups, "minetest.conf" may be called something else. For example, in the Minebest framework, the filename "world.conf" may be used. The CoderSea supports a number of settings that can be used to change its behavior. These settings may be added to a world's "minetest.conf" file or to a separate configuration file named "codersea.conf". "codersea.conf" works much the same way as "minetest.conf" but is located in the mod directory. "codersea.conf" can be used to produce tailored copies of the "codersea" mod. For example, if you'd like to distribute a copy of the mod in which dolidrosaurs are aggressive by default, you can simply add the following setting to the copy's version of "codersea.conf": codersea_monster_dolidro = true A "conf-file setting" is simply a setting in "minetest.conf" or "codersea.conf" or (where applicable) "world.conf". ---------------------------------------------------------------------- Installation quick-start ------------------------ If you'd like simply to add CoderSea to an MT world and try it, here are some quick-start instructions. The instructions assume that you know the basics of MT servers and mod installation. * Stop the MT world. * Back-up the MT world. * If the "sea" mod is installed, remove it. * Copy the "codersea" folder, i.e., the folder that contains "seaglass.lua", into your world's mods folder. The location of the mods folder will depend on your exact setup. Depending on how you obtained "codersea", the "codersea" folder may have a different name; for example, "codersea-master". If this is the case, rename the folder to "codersea". * Edit the world's "world.mt" file and add the following line: load_mod_codersea = true For some types of MT installations, this may be optional. * Optional: Edit your world's "minetest.conf" file and add settings mentioned in this document that you'd like to use. For example, the following setting will disable sharks: codersea_disable_sharks = true Note: If you're running a Minebest world, the "minetest.conf" file may have been renamed to "world.conf". If so, edit the latter file instead. * Optional: Edit the file "codersea.conf" in the "codersea" mod directory. If you see any settings you'd like to use and/or modify, uncomment them and set the values as desired. Note: The "minetest.conf" and "codersea.conf" steps are similar. Some people prefer to use the first file and others prefer to use the second one. * Start the world. ---------------------------------------------------------------------- Features in detail ------------------ ### S1. Existing worlds. You can add CoderSea to an existing world. Unlike "sea" 0.4.2, CoderSea doesn't need to be present at "mapgen" time in order for sea-life to appear. ---------------------------------------------------------------------- ### S2. CoderSea replaces Sea. If an existing world has "sea" 0.4.2, you can replace the mod with CoderSea. If you do so, CoderSea will automatically remove or replace many of the old mod's items. For example: * "Sea" 0.4.2 plants will be removed * "Sea" 0.4.2 shipwrecks will remain Some old items may show up as unknown nodes. ---------------------------------------------------------------------- ### S3. CoderSea is reversible. CoderSea is largely reversible. The following "conf"-file setting can be used to make most plants, mobs, sprites, and special nodes added by CoderSea disappear: codersea_reset = true Note: Shipwrecks are an exception. They'll remain whether or not CoderSea is reset. ---------------------------------------------------------------------- ### S4. Solution to air-bubble problem. Historically, if MT nodes that aren't full cubes are placed underwater, they've looked completely wrong. For example, in some cases, non-cube items have been surrounded by a dark blue region that moves up and down. In other cases, they've seemed to be embedded in air bubbles. "sea" 0.4.2 addressed the problem for sea-plants by wrapping them in a layer of special nodes. CoderSea uses a similar approach. Specifically, it replaces default water, around certain objects, with coderwater. This is done both for sea-plants and for stairs made out of CoderSea materials. Technical notes: (a) When coderwater is no longer needed, it reverts to default water. "sea" 0.4.2 did something similar. (b) For technical reasons, replacing default water entirely isn't a viable solution to the visual problem. (c) The approach used is superior, for technical reasons, to one proposed by upstream developers; specifically, the feature known as "plantlike_rooted". It's backwards compatible as well; "plantlike_rooted" is not. ---------------------------------------------------------------------- ### S5. Air-bubble solution is reusable. Other mods can take advantage of the wrapwater feature. If you're a modder and you'd like some of your nodes to be wrapped in coderwater when necessary, proceed as follows: * Add the following line to the "depends.txt" for the mods which you wish to use coderwater: codersea? * Add wrapwater=1 to the groups definitions that you provide for the nodes in question. ---------------------------------------------------------------------- ### S6. Plants Glow is Quite a Show. CoderSea can make sea-plants glow so as to illuminate the underwater world. This feature helps to make the seafloor more inhabitable and interesting, but is optional. It's enabled by default. To disable it, add the following setting to your "minetest.conf" file: codersea_light = 1 Alternatively, you can set codersea_light to any integer from 1 to 14. Lower integers will make seaplants produce less light. Higher integers will make them produce more light. Warning: If you set or change "codersea_light" after CoderSea is in- stalled and running, you may need to use the MT "mapfix" mod to get the desired results. ---------------------------------------------------------------------- ### S7. Other sea-plant features. * If Ethereal isn't installed, CoderSea adds its own versions of Ethereal's coral and seaweed. If Ethereal is installed, CoderSea is compatible with Ethereal's seaplants. Specifically, CoderSea's version of the old "noairblocks" code handles seaplants of this type. * CoderSea provides two types of sea-grass plants. By default, the sea-grass plants wave slightly in the water. For this feature to work, waving must enabled in the Settings tab on the client side. To disable waving on the server side, add this setting to a world's "minetest.conf" or "codersea.conf" file: codersea_disable_waving = true To disable waving on the client side, turn off waving in the Settings tab. CoderSea replaces "sea's" complex set of "noairblocks" ABMs with simpler and faster code. "sea's" seaplant growth ABMs have also been rewritten. CoderSea fixes visual glitches that occur with "sea" in newer releases of Minetest and/or minetest_game. CoderSea adds starfish and a few other stationary, though slightly active, sprites. Damaged sea-plants, those with pieces missing from their middle, will usually grow back as long as the damage isn't too severe. ---------------------------------------------------------------------- ### S8. Delete Entities feature. CoderSea adds a chat command "/deleteentsea" that can be used to delete nearby CoderSea entities. The command requires a related privilege named "seaadmin". In other words, for a player to be able to use the command, the world owner or an admin must execute a command similar to the following first: /grant Sally seaadmin "Sally" should be replaced with the player's actual nick. ---------------------------------------------------------------------- ### S9. Try CoderSea Stairs This I Dares. CoderSea adds two groups of slabs and stairs: * Regular slabs and stairs made out of seastone and related materials. Complete list: seabrick, seacobble, seagravel, seastone. * Illuminated slabs and stairs made out seaglass. These are similar to "stairsshine" slabs and stairs, but they add a new feature: You can turn seaglass slabs and stairs illumination off or on by punching the nodes. To disable both groups of slabs and stairs, use the following conf-file setting: codersea_disable_stairs = true To disable seaglass (i.e., illuminated) slabs and stairs, but keep the regular type, use the following setting instead: codersea_disable_shine = true ---------------------------------------------------------------------- ### S10. Item frequencies. You can specify the frequencies of some types of objects using conf-file settings similar to the following:
codersea_decipercent_algae = 10 codersea_decipercent_glass = 10 codersea_decipercent_plant = 10 codersea_decipercent_stone = 10The *decipercent* settings affect the items indicated below:
codersea_decipercent_algae -- Sea-sprites codersea_decipercent_glass -- Sea-glass codersea_decipercent_plant -- Sea-plants codersea_decipercent_stone -- Sea-stoneThe *decipercent* settings are integers. The recommended range is 5 to 15. The supported range is zero to 100. Higher numbers will lead to more items of the associated types. Lower numbers will lead to fewer items. ---------------------------------------------------------------------- ### S10. Item frequencies. You can specify the ABM chance and interval settings for some of "codersea's ABMs using "conf"-file settings. The settings aren't docu- mented yet, but here's a list:
codersea_abm01_chance codersea_abm01_interval codersea_abm02_chance codersea_abm02_interval codersea_abm03_chance codersea_abm03_interval---------------------------------------------------------------------- ### S10. Miscellaneous settings. * If CoderSea is used, drowning is optional. It's disabled by default. To enable drowning, add the following conf-file setting: codersea_drowning = true * Shipwrecks are enabled by default, but can be disabled. To disable them, add the following conf-file setting: codersea_disable_shipwrecks = true ---------------------------------------------------------------------- CoderSea Mobs ------------- ### S11.1 CoderSea mobs overview. CoderSea provides its own optional versions of these water mobs (i.e., animals): carp, clownfish, dolidrosaurus, jellyfish, lobster, seahorse, shark, octopus, tropical fish, trout, and turtle Note: This list doesn't include sprite-based characters, as those aren't true mobs. ---------------------------------------------------------------------- ### S11.2. Mob sources. These five mobs are adapted from blert2112's "mobs_water" modpack: clownfish, jellyfish, shark, tropical fish, turtle These two mobs are omitted from the standard light version of CoderSea. If they're present, they're adapted from npx's "nssm" mod: dolidrosaurus, octopus CoderSea can be installed alongside mobs_water and nssm, but it doesn't use those mods. Instead, if they're installed, CoderSea mobs supersede the original versions. Note: CoderSea provides the sea turtle from "mobs_water", but omits the land turtle from that modpack. One reason for this is that the land turtle doesn't work correctly. Another is that CoderSea focuses on sea-life. ---------------------------------------------------------------------- ### S11.3. Disable mobs. To disable all CoderSea mobs, add the following conf-file setting: codersea_disable_mobs = true To disable one or more specific mob types, add the appropriate conf-file settings from the following list:
codersea_disable_dolidro = true codersea_disable_fish = true codersea_disable_jellyfish = true codersea_disable_lobster = true codersea_disable_octopus = true codersea_disable_seahorse = true codersea_disable_shark = true codersea_disable_turtle = true---------------------------------------------------------------------- ### S11.4. Mobs spawn rates. To adjust spawn rates for the mobs, use conf-file settings similar to these:
codersea_chance_dolidro = 30000 codersea_chance_fish = 1000 codersea_chance_jellyfish = 3000 codersea_chance_lobster = 5000 codersea_chance_octopus = 30000 codersea_chance_seahorse = 3000 codersea_chance_shark = 95000 codersea_chance_turtle = 4000Higher numbers will produce fewer mobs. Lower numbers will produce more. Note: There are two types of regular fish (not counting sharks or jellyfish). "codersea_chance_fish" applies to the two types independently. Similarly, there are three types of sharks and "codersea_chance_shark" applies to the three types independently. So, decreases to these settings may add proportionately more mobs than decreases to other "chance" settings. ---------------------------------------------------------------------- ### S11.6. Mob AOC parameters. If you're familiar with the Mobs Redo API and would like to adjust the AOC (Active Object Count) values that CoderSea sets for its mobs, you can use conf-file settings similar to the following:
codersea_aoc_dolidro = 1 codersea_aoc_fish = 4 codersea_aoc_jellyfish = 4 codersea_aoc_lobster = 1 codersea_aoc_octopus = 1 codersea_aoc_seahorse = 4 codersea_aoc_shark = 1 codersea_aoc_turtle = 1To adjust the maximum density of CoderSea mobs, you can use settings similar to the following: codersea_aoc = 4 Higher numbers will mean higher densities. Lower numbers will mean lower ones. The default setting is 4. If you're familiar with the Mobs Redo API, this setting sets the default "aoc" parameter used for CoderSea mobs. ---------------------------------------------------------------------- ### S11.5. Mob attacks. These three CoderSea mobs are potentially hostile to players, but this is disabled by default: dolidrosaurus, octopus, shark If you'd like one or more of these mobs to be more aggressive, use the corresponding conf-file settings from the following list:
codersea_monster_dolidro = true codersea_monster_jellyfish = true codersea_monster_octopus = true codersea_monster_shark = true---------------------------------------------------------------------- ### S12. Flexible option spellings. CoderSea supports multiple spellings for many of its "minetest.conf" options. For example, the following settings are equivalent. Any of them can be used to disable the octopus mob:
codersea_disable_octopus codersea_disable_octopuses codersea_disable_octopiSimilarly, all of the following are equivalent:
codersea_chance_dolidro codersea_chance_dolidrosaurus codersea_chance_dolidrosauri codersea_chance_dolidrosaurusesSpellings in the mod-specific configuration file "codersea.conf" are not flexible. Only the spellings documented in that file are supported. ---------------------------------------------------------------------- Caveats ------- CoderSea has these caveats or drawbacks: C1. It doesn't support some "sea"-mod building materials. C2. Like "sea", it won't add seawrecks to seas that were mapgenned before it was added. C3. CoderSea gradually transforms underwater dirt and sand into CoderSea equivalents. This makes it easier to generate objects correctly and efficiently at run-time as opposed to mapgen time. The drawback, in this case, is that, if you use CoderSea, you may need to tweak other mods, such as fish-mob mods, in order for them to work as expected with the new nodes. (end of document)