Compare commits

...

26 Commits

Author SHA1 Message Date
648f03722e morlendor autoconfiguration level, inside the limits, almost 320 levels
* morlendor must be inside the limits, but not almost the limit of the world
* morlendor are just 220 block but let enought for layers, so reserved 320
* check for nether level or just guess to -11000, error if overlaping
* check if the world is enought to fit the morlendor layers
* close https://notabug.org/TenPlus1/nssb/issues/7
* close https://codeberg.org/minenux/minetest-mod-nssb/issues/7
2022-08-23 16:52:57 -04:00
2bb4b8a5ce complete mod information and support in README and mod identification
* add description of mod
* finish the README and provide wiki link about gameplay
2022-07-29 15:01:32 -04:00
81ce4f857a update changelog 2022-07-29 14:57:07 -04:00
ead0cb3337 fix typos and 0.4.x support with checks and mapgen tweaks of TenPlus1
* eb93e4535f fix typos close https://notabug.org/TenPlus1/nssb/issues/5
  for morlamp the craft "nssb:morelentir_dust" not defined
  and fix morenrir to morentir
* eb93e4535f fix typos close https://codeberg.org/minenux/minetest-mod-nssb/issues/2
  for morlamp the craft "nssb:morelentir_dust" not defined
  also fix https://codeberg.org/minenux/minetest-mod-nssb/issues/4
  about fix morenrir to morentir
* sync branch 'master' of https://notabug.org/TenPlus1/nssb into main
  update readme
* too inconsistent, incompatible backguard issue
  closes https://codeberg.org/minenux/minetest-mod-nssb/issues/3
  closes https://notabug.org/TenPlus1/nssb/issues/2
2022-07-28 12:21:11 -04:00
tenplus1
eb93e4535f fix typos 2022-07-28 08:33:26 +01:00
tenplus1
852d72fba8 update readme (thanks mckaygerhard) 2022-07-28 08:29:28 +01:00
tenplus1
aae830cca9 add back 0.4.x support with checks and mapgen tweaks 2022-07-27 10:08:10 +01:00
d4f5fafd08 Merge README update 'master-improved-readme' into main
* the mod only provides spawn automaticlly based on biomes,
  this responds so manyu questios about spawn and eggs
* the mod provides specil structures for the bosses of
  some mobs, not fully documented
* the mod add new "biome" named morlendor that are only
  very deep and its configurable
2022-07-27 01:34:04 -04:00
f1615312a0 Update README and info about NSSB as building and spawer
* the mod only provides spawn automaticlly based on biomes,
  this responds so manyu questios about spawn and eggs
* the mod provides specil structures for the bosses of
  some mobs, not fully documented
* the mod add new "biome" named morlendor that are only
  very deep and its configurable
2022-07-27 01:30:29 -04:00
8a3420f2ed fix morlamp crafting guide for older and newer engfines
* closes https://codeberg.org/minenux/minetest-mod-nssb/issues/2
* @mckayshirou said its Because was defined wrongly at nssb and should be nssm
2022-07-26 22:13:33 -04:00
2ff910fd38 fix mispelled fix morenrir to morentir at spawn monsters
* closes https://codeberg.org/minenux/minetest-mod-nssb/issues/4
* fixed and close https://github.com/NPXcoot/nssb/pull/3/files
2022-07-26 21:41:20 -04:00
f3270cdbc3 Add 'compatibility' of https://notabug.org/minenux/minetest-mod-nssb for layer map
* add compatibilty backguard for minetest older engines 0.4.15+ to 4.0.X
* also detect loop optimization on newer ones to future reduce of lag
  so we can leave the older list of minerals be into a some pile of nodes
* fixed part of https://notabug.org/TenPlus1/nssb/issues/2
  a complete fix will need a configuration flag to let some ore on generation
* reason: optimized ore generation by removing iterations and using stratum feature
  as note this feature are only from 5.0 as documented and check in
  9f6d90aa81
  this was a good move by tenplus cos works as a unique plain layer due
  creates single undulating ore stratum that is continuous across mapchunk
  borders and horizontally spans the world, as a layer..
  the ore type its used only on the generation of the space of the 7 layers
  that defines the morlendor space, before and after there are indestructible ones
* then: make a loop for but if a 5.0 engine its detected break and
  do not loop innecesary, only loop and do scatter ore type for older engine
  so if newer one break loop and do stratum ore type generation for layers
* fix and close https://codeberg.org/minenux/minetest-mod-nssb/issues/3
* fix and close https://notabug.org/TenPlus1/nssb/issues/2
2022-07-26 21:25:02 -04:00
be9daac2f2 Sync tenplus1 'master'/https://notabug.org/TenPlus1/nssb for newer functions and ores
* optimized ore generation by removing iterations and using stratum feature
  as note this feature are only from 5.0 as documented and check in
  9f6d90aa81
  this was a good move by tenplus cos works as a unique plain layer cos
  creates single undulating ore stratum that is continuous across mapchunk
  borders and horizontally spans the world, as a layer..
  the ore type its used only on the generation of the space of the 7 layers
  that defines the morlendor space, before and after there are indestructible ones
* this is a merge of two optimizations commits:
  the commit 26c8022cc97bd75d8627306e5f6920f50a47735f
  and commit f728f41c36059359225cf5ad5631906261013367
  later i added a next commit with a compatibility hack for 0.4 engines
* merge the initial "optimization" that only removed more of the
  generation of ore nodes in the morlendor space  that is
  a merge of commit f728f41c36059359225cf5ad5631906261013367
  with cosmetics changes that just difficult the comparison of code forks
* adde configuration of the level of the morlendor layer,
  make it compatible with other mods like cavereamls and nether
  TODO: added a detection of those levels to auto configure morlendor
* use newer funcions of commit ee84ab559ea16a09053c26f3d46fc61e90819e3b
  change `minetest.env:get_node` by `minetest.get_node` so 0.4.15 its minimal
  change `tile_images` of `minetest.register_node` by `tile`
  change `alpha = 650` of `minetest.register_node` by `use_texture_alpha = "blend",`
  change `obj:setpos` by `obj:set_pos` of previous commit
* add changelog updated and cosmetic changes by tenplus1
2022-07-26 19:18:23 -04:00
faecc39299 add compatibilty bnackguar for minetest older engines
* also detect loop optimization on newer ones to future reduce of lag
  so we can leave the older list of minerals be into a some pile of nodes
* fixed part of https://notabug.org/TenPlus1/nssb/issues/2
  a complete fix will need a configuration flag to let some ore on generation
2022-07-26 18:25:32 -04:00
tenplus1
d8f8f53ce5 update changelog 2022-02-04 11:04:29 +00:00
tenplus1
26c8022cc9 optimized ore generation by removing iterations and using stratum feature 2022-02-04 11:01:39 +00:00
tenplus1
f728f41c36 initial optimization (limit ore generation passes) 2022-02-04 09:25:08 +00:00
tenplus1
b6024973ab add mckaygerhard changes 2022-02-03 19:56:25 +00:00
tenplus1
7afe6fdd73 code tidy 2022-02-03 19:51:24 +00:00
tenplus1
ee84ab559e switch functions to newer, add configurable level 2022-02-03 17:53:37 +00:00
tenplus1
b9281f225e use newer functions 2022-02-03 17:10:55 +00:00
mckaygerhard
015884c201 upload the screenshot 2022-01-17 19:24:18 +01:00
mckaygerhard
52f13c0ab9 Improve the readme due this mod added some nodes and need technicals information
* added list of nodes featured
* improve technical information
2022-01-17 19:23:38 +01:00
63764309e2 fix wrong typed nodes of mantis claw and spider web
* backported  16e58fbddc
* fix nssm:nssm:mantis_claw to nssm:mantis_claw
* fix nssm:web missing quotes
2022-01-13 15:35:57 -05:00
48c3d3f5bb replace deprecatedexplotion with tnt.boom
* use tnt.boom for explotion with specific definition
* added depends on tnt due the change!
2022-01-13 15:13:23 -05:00
80d04890a1 change deprecated updatenode with minetest.check_for_falling
* take and noted from b72e8b8b61
2022-01-13 15:13:08 -05:00
13 changed files with 1584 additions and 1025 deletions

225
README.md
View File

@ -1,16 +1,223 @@
# NSSB - Not So Simple Buildings # minetest mod nssb
Mod to use with [NSSM - Not So Simple Mobs](https://github.com/taikedz-mt/nssm) BIOME integration for nssm, the not so simple buildings
It adds buildings with monsters spawners around the world and the Morlendor dimension which can be reached by portals that spawns like the other buildings. ## information
This is a continuation of NPX Team's mod. A MAPGEN mod for Not so simple mobs (NSSM mod) that add spanners and new BIOME underground
It **add [buildings](#buildings) with monsters spanners around the world**, also
as feature **the [Morlendor](#mordenlor) dimension which can be reached by portals that spawns**
like the other buildings.
***From the portal, you have to follow the same direction of travelling from the Shire to Mordor!
Good luck!***
For usage information regarding gameplay a wiki is brewing at https://codeberg.org/minenux/minetest-mod-nssb/wiki
![screenshot.png](screenshot.png)
#### Morlendor
This is a new BIOME apart of the NSSM ones, it has a central temple where you appears,
the mobs there will be so hostile and the nodes will be pretty rare and hard to pick.
There are many minerals (around ten new ones) and many new enemies (around six new ones).
![screenshot-large.png](screenshot-large.png)
#### Buildings
This mod provides new forms of structures for living NSSM mobs, by example will provide
a new BIOME for each mob boos like kind event just the simple BIOME from NSSM.
There are many new structures (around 20 new) inclusive inside the already provides by the NSSM.
## Technical information
This is a **continuation of NPX Team's mod** and currently provides bugfixeds and user contributions.
**the original repo from NPXcoot and the fork from taikedz are deprecated and discontinued.**
This mod is strongly linked to the NSSM mod, and this file is minimal documentation.
No new features are developed yet! Any new contribution please mantains most backguard compatibility.
#### dependences:
* nssm
* tnt
* mobs
#### configurations
This mod adds a dimension in the depths of the map, the [Morlendor](#mordenlor), **configurable**
using the `nssb.morlendor_level` parameter as negative integer:
* If `nssb.morlendor_level` is outside of `mapgen_limit`, the mod will try to autoset best setting.
* If `nssb.morlendor_level` it overlap `nether_depth_ymax`, of nether mod, an error will raise.
The morlendor level must be at least 320 layers of blocks over the limit,
and 1000 layers of blocks below the nether deep floor.
### New buildings
This mod automatically puts in map some special structures based on enemies and biomes:
| Name game | Name internal map | build description biome | frecuency | biome |
| ------------------- | ------------------- | -------------------------- | ------------ | ----- |
| Morlendor temple | portal | Portal center temple | only one | mordenlor |
| | spiaggiagranchius | | often | sand |
| | acquagranchius | struture for some marine | often | |
| | ooteca | | often | |
| | minuscolaooteca | | often | grass |
| | piccolaooteca | | often | grass |
| | arcate | | often | sand |
| Grant piramide | grandepiramide | | often | dirt |
| | collina | | often | grass |
| | megaformicaio | | often | grass |
| Ant Queen Hil | antqueenhill | antqueen trone inside ants | often | grass |
| | rovine1 | | often | grass |
| | rovine2 | | common | stone |
| | rovine3 | | common | grass |
| | rovine4 | | common | grass |
| | rovine5 | | common | grass |
| | rovine6 | | common | grass |
| | rovine7 | | common | grass |
| | rovine8 | | common | grass |
| | rovine9 | | common | grass |
| | rovine10 | | common | grass |
| | bozzoli | | common | grass |
| | picco | | often | sand |
| | piccoghiaccio | | often | snow |
| | icehall | | often | ice |
| | piccomoonheron | | often | snow |
| | doppiopiccoghiaccio | | often | snow |
| | doppiopiccosabbia | | often | sand |
| | piccoscrausics | | often | sand |
| | fossasand | | often | sand |
| | blocohouse | | common | stone |
| | bigblocohouse | | common | stone |
| | blocobiggesthouse | | common | stone |
### Nodes definitions
This mod uses all the nodes defined in NSSM mod, the new ones are justimproved versions
for specific things around the new biomes and new structures:
| Name Game | Name internal | notes |
| -------------------- | ------------------------- | ------------------ |
| Morlendor Portal | nssb:portal | Rare, give you a way to visit Portal Morlendor center Temple |
| Portal home | nssb:portalhome | The liquit that powered the Portal center temple |
| Memoryone | nssb:memoryone | Non naturally generated ·Unbreakable |
| Mossy Stone Brick | nssb:mossy_stone_brick | Same as Stone Brick except texture |
| Stone Brick | nssb:stone_brick | Default Stone Brick |
| Very Mossy Stone Brick | nssb:very_mossy_stone_brick | Same as Mossy Stone Brick except texture |
| Mossy Stone Column | nssb:mossy_stone_column | Same as Stone Brick except texture ·Screwdivable |
| Stone Column | nssb:stone_column | Same as Mossy Stone Column except texture |
| Seastone | nssb:marine_stone | Generated in oceans · Hard beetwen stone and bricks |
| Seastone Brick | nssb:marine_brick | Same as Seastone except texture |
| Sea Meselamp | nssb:marine_meselamp | Hard as Obsidian Glass ·Emits light level 15 |
| Morlamp | nssb:morlamp | Same as Sea Meselamp except texture |
| Mantis Clay | nssb:mantis_clay | Same as Default Stone except texture |
| Hardened Mantis Clay | nssb:hardened_mantis_clay | Hard as diamond ore ·Same except texture |
| Ant Stone | nssb:ant_stone | Same as Hardened Mantis Clay except texture |
| Vine | nssb:vine | Climbable ·Flamable · slab,Can be placed only on solid walls |
| Liana | nssb:Liana | Same as Default Ladder except texture |
| Web Cocoon | nssb:web_cocoon | Flamable, intrincate |
| Vertical web | nssb:vertical_web | Flamable, Very light web, almost liquit type|
| Web cone up | nssb:web_cone_up | Flamable, Very light web, almost liquit type |
| Web cone down | nssb:web_cone_down | Flamable, Very light web, almost liquit type |
| Dark Stone | nssb:morentir | Complete black, confuse and intimidate |
| Exploding Dark Stone | nssb:boum_morentir | When mine will explodes and harm you |
| Falling Dark Stone | nssb:fall_morentir | Fall over you or when close |
| Dark Indistructible Stone | nssb:indistructible_morentir | The last layer .. indestructible and inperceptible |
| Dark Starred Stone | nssb:morelentir | Dust from the drops of DArk related nodes |
| Dark Dirt | nssb:morkemen | Decorative |
| Dark air | nssb:morvilya | Decorative, harms you no cares if there a player effect mod |
| Black Flame | nssb:mornar | Decorative fire black flame |
| Black Water | nssb:mornen | Decorative water, harms you |
| Flowing Dark Water | nssb:mornen_flowing | The source of dark water |
| Morlote | nssb:morlote | Part of morlendor biome |
| Moranga Ore | nssb:moranga | Ore of morlendor biome |
| Life Energy Ore | nssb:life_energy_ore | Ore of morlendor biome |
| Moranga Lump | nssb:moranga_lump | Lump of moranga ore |
| Moranga Ingot | nssb:moranga_ingot | Igot of maranga ore |
| Disactivated Morvalar Block | nssb:dis_morvalar_block | Indestructible Last layer of block, but not usage posible |
| Morvalar Block | nssb:morvalar_block | Indestructible Last layer of block |
### Eggs definitions
This mod defines eggs for some new mosnters and few big bosses:
| Name game | Name internal | Produces | notes |
| ------------ | ---------------------- | ----------------- | ------------- |
| Ant Worker | nssb:ant_worker_eggs | nssb:ant_worker | |
| Ant Soldier | nssb:ant_soldier_eggs | nssb:ant_soldier | |
| Larva | nssb:larva_eggs | nssb:larva | |
| Crab | nssb:crab_eggs | nssb:crab | |
| Black Widow | nssb:black_widow_eggs | nssb:black_widow | |
| Uloboros | nssb:uloboros_eggs | nssb:uloboros | |
| Daddy Long Legs | nssb:daddy_long_legs_eggs | nssb:daddy_long_legs | |
| Xgaloctopus | nssb:xgaloctopus_eggs | nssb:xgaloctopus | |
| Bloco | nssb:bloco_eggs | nssb:bloco | |
| Icesnake | nssb:icesnake_eggs | nssb:icesnake | |
| Snowbiter | nssb:snow_biter_eggs | nssb:snow_biter | |
| Scrausics | nssb:scrausics_eggs | nssb:scrausics | |
| Moonheron | nssb:moonheron_eggs | nssb:moonheron | |
| Phoenix | nssb:phoenix_eggs | nssb:phoenix | Flying boss |
| Tarantula | nssb:tarantula_eggs | nssb:tarantula | Spider boss |
| Night Master | nssb:night_master_eggs | nssb:night_master | Dark creature boss |
| Ant Queen | nssb:ant_queen_eggs | nssb:ant_queen | Ant Qeen boss |
| Icelamander | nssb:icelamander_eggs | nssb:icelamander | Salamander boss |
| Giant Sandworm Egg | nssb:giant_sandworm_eggs | nssb:giant_sandworm | **The final boos egg** |
### Spawn definitions
This mod automatically will spawms some specific enemies over the map:
| monster | nodes under | nodes around | moment where | level where spawn |
| ------------ | -------------- | --------------- | ------------- | -------------------- |
| nssm:morvy | nssb:morentir | nssb:morentir | day and night | mordenlor/underground|
| nssm:morbat1 | air | nssb:morelentir | day and night | mordenlor |
| nssm:morbat2 | air | nssb:morelentir | day and night | mordenlor/underground|
| nssm:morbat3 | air | nssb:morelentir | day and night | mordenlor |
| nssm:morlu | nssb:morentir | nssb:mornen | day and night | mordenlor |
| nssm:morde | nssb:morentir | nssb:mornar | day and night | mordenlor |
| nssm:mordain | nssb:morentir | nssb:morentir | day and night | mordenlor/underground|
| nssm:morgut | nssb:morentir | nssb:morentir | day and night | mordenlor/underground|
### Crafting definitions
* Sea Meseamp (`nssb:marine_meselamp`)
```
{"default:glass", "bucket:bucket_water", "default:glass"},
{"default:glass", "default:mese_crystal", "default:glass"},
{"default:glass", "bucket:bucket_water", "default:glass"}
```
* Morlamp (`nssb:morlamp`)
```
{"nssm:morelentir_dust","nssm:morelentir_dust","nssm:morelentir_dust"},
{"nssm:morelentir_dust","nssm:morelentir_dust","nssm:morelentir_dust"},
{"nssm:morelentir_dust","nssm:morelentir_dust","nssm:morelentir_dust"}
```
* Moranga Ingot (`nssb:moranga_ingot`), must be cooking
```
nssb:moranga_lump",
```
# LICENSE
* License: LGPLv2.1 or later * License: LGPLv2.1 or later
* Copyright NPX Team and Contributors * Copyright 2016-2018 NPX Team and Contributors
* Copyright 2017-2019 taikedz
* Copyright 2021-2022 tenplus1
* Copyright 2021-2022 PICCORO Lenz McKAY @mckaygerhard
* License for media: CC-BY-SA 4.0 * License for media: CC-BY-SA 4.0
* Copyright 2016-2018 NPX Team and Contributors
# Conflicts Check [LICENSE.txt](LICENSE.txt)
This mod adds a dimension in the depths of the map ; as such it is incompaitble with other mapgen mods that add underground worlds such as `nether`, `fun_caves` or `caverealms`

View File

@ -1,7 +1,18 @@
v2.2 - 29-07-22
- Fix morlamp craft "nssb:morelentir_dust" not defined https://github.com/NPXcoot/nssb/issues/2
- Fix fix morenrir to morentir https://github.com/NPXcoot/nssb/pull/3/files
- Optimize morlendor map generation on newer engines using stratum ore type to generate layers
v2.1 - 3rd Feb 2022 (Edited by TenPlus1)
- Switch to new functions
- Add configurable level in settings (nssb.morlendor_level)
- Replace registered_ore iterations with "stratum" feature for speed increase
- Fix any errors
v2.0 - 22-11-16 v2.0 - 22-11-16
- added the Morlendor dimension and all its materials; - added the Morlendor dimension and all its materials;
- added the compatibility with the mapgen v7 and valleys (and also fractal and flat); - added the compatibility with the mapgen v7 and valleys (and also fractal and flat);
- added the portals to go to Morlendor and come back. - added the portals to go to Morlendor and come back.
v1.0 - 22-03-16 v1.0 - 22-03-16
First stable release First stable release

View File

@ -1,2 +1,3 @@
nssm nssm
default default
tnt

1
description.txt Normal file
View File

@ -0,0 +1 @@
BIOME integration for NSSM, the not so simple buildings

View File

@ -1,6 +1,9 @@
--Nssb nssb = {}
nssb = {}
local path = minetest.get_modpath("nssb") local path = minetest.get_modpath("nssb")
dofile(path.."/nodes.lua")
dofile(path.."/mapgen.lua") nssb.is_50 = minetest.has_feature("object_use_texture_alpha") or nil
dofile(path.."/spawn.lua")
dofile(path .. "/nodes.lua")
dofile(path .. "/mapgen.lua")
dofile(path .. "/spawn.lua")

1789
mapgen.lua

File diff suppressed because it is too large Load Diff

View File

@ -1 +1,6 @@
name = nssb name = nssb
title = Not So Simple Mobs
depends = default, nssm, tnt
description = BIOME integration for NSSM, the not so simple buildings
license = GPL
min_minetest_version = 0.4

525
nodes.lua
View File

@ -1,147 +1,150 @@
--Materials -- Materials
minetest.register_node("nssb:memoryone", { minetest.register_node("nssb:memoryone", {
description = "Memoryone", description = "Memoryone",
tiles = {"very_mossy_stone_brick.png"}, tiles = {"very_mossy_stone_brick.png"},
is_ground_content = false, is_ground_content = false,
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:mossy_stone_brick", { minetest.register_node("nssb:mossy_stone_brick", {
description = "Mossy Stone Brick", description = "Mossy Stone Brick",
tiles = {"mossy_stone_brick.png"}, tiles = {"mossy_stone_brick.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=2, stone=2}, groups = {cracky = 2, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:stone_brick", { minetest.register_node("nssb:stone_brick", {
description = "Stone Brick", description = "Stone Brick",
tiles = {"default_stone_brick.png"}, tiles = {"default_stone_brick.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=2, stone=2}, groups = {cracky = 2, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:very_mossy_stone_brick", { minetest.register_node("nssb:very_mossy_stone_brick", {
description = "Very Mossy Stone Brick", description = "Very Mossy Stone Brick",
tiles = {"very_mossy_stone_brick.png"}, tiles = {"very_mossy_stone_brick.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=2, stone=2}, groups = {cracky = 2, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:mossy_stone_column", { minetest.register_node("nssb:mossy_stone_column", {
description = "Mossy Stone Column", description = "Mossy Stone Column",
tiles = {"mossy_stone_column.png"}, tiles = {"mossy_stone_column.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=2, stone=2}, groups = {cracky = 2, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:stone_column", { minetest.register_node("nssb:stone_column", {
description = "Stone Column", description = "Stone Column",
tiles = {"stone_column.png"}, tiles = {"stone_column.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=2, stone=2}, groups = {cracky = 2, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:marine_stone", { minetest.register_node("nssb:marine_stone", {
description = "Seastone", description = "Seastone",
tiles = {"marine_stone.png"}, tiles = {"marine_stone.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=1, stone=2}, groups = {cracky = 1, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:marine_brick", { minetest.register_node("nssb:marine_brick", {
description = "Seastone Brick", description = "Seastone Brick",
tiles = {"marine_brick.png"}, tiles = {"marine_brick.png"},
is_ground_content = false, is_ground_content = false,
groups = {stone=2}, groups = {stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:marine_meselamp", { minetest.register_node("nssb:marine_meselamp", {
description = "Sea Meselamp", description = "Sea Meselamp",
tiles = {"marine_meselamp.png"}, tiles = {"marine_meselamp.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=3}, groups = {cracky = 3},
light_source = 15, drop = "",
sounds = default.node_sound_glass_defaults(), light_source = 14,
sounds = default.node_sound_glass_defaults()
}) })
minetest.register_node("nssb:morlamp", { minetest.register_node("nssb:morlamp", {
description = "Morlamp", description = "Morlamp",
tiles = {"morlamp.png"}, tiles = {"morlamp.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=3}, groups = {cracky = 3},
light_source = 15, drop = "",
sounds = default.node_sound_glass_defaults(), light_source = 14,
sounds = default.node_sound_glass_defaults()
}) })
minetest.register_node("nssb:mantis_clay", { minetest.register_node("nssb:mantis_clay", {
description = "Mantis Clay", description = "Mantis Clay",
tiles = {"mantis_clay.png"}, tiles = {"mantis_clay.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=2}, groups = {cracky = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:hardened_mantis_clay", { minetest.register_node("nssb:hardened_mantis_clay", {
description = "Hardened Mantis Clay", description = "Hardened Mantis Clay",
tiles = {"hard_mantis_clay.png"}, tiles = {"hard_mantis_clay.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=1}, groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:ant_stone", { minetest.register_node("nssb:ant_stone", {
description = "Ant Stone", description = "Ant Stone",
tiles = {"ant_stone.png"}, tiles = {"ant_stone.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky=1, stone=1}, groups = {cracky = 1, stone = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:vine", { minetest.register_node("nssb:vine", {
description = "Vine", description = "Vine",
drawtype = "signlike", drawtype = "signlike",
tiles = {"climbing_plant.png"}, tiles = {"climbing_plant.png"},
inventory_image = {"vine.png"}, inventory_image = "climbing_plant.png",
walkable = false, walkable = false,
climbable = true, climbable = true,
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
selection_box = {type="wallmounted"}, selection_box = {type = "wallmounted"},
legacy_wallmounted = true, legacy_wallmounted = true,
groups = {flammable=3, snappy = 3}, groups = {flammable = 3, snappy = 3},
sounds = default.node_sound_leaves_defaults() sounds = default.node_sound_leaves_defaults()
}) })
minetest.register_node("nssb:liana", { minetest.register_node("nssb:liana", {
description = "Liana", description = "Liana",
drawtype = "plantlike", drawtype = "plantlike",
inventory_image = {"liana.png"}, inventory_image = "liana.png",
tiles = {"liana.png"}, tiles = {"liana.png"},
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
climbable = true, climbable = true,
groups = {flammable=3, snappy = 3}, groups = {flammable = 3, snappy = 3},
sounds = default.node_sound_leaves_defaults() sounds = default.node_sound_leaves_defaults()
}) })
minetest.register_node("nssb:vertical_web", { minetest.register_node("nssb:vertical_web", {
description = "Vertical Web", description = "Vertical Web",
inventory_image = "vertical_web.png", inventory_image = "vertical_web.png",
tile_images = {"vertical_web.png"} , tile = {"vertical_web.png"} ,
drawtype = "plantlike", drawtype = "plantlike",
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
pointable = true, pointable = true,
@ -155,14 +158,14 @@ minetest.register_node("nssb:vertical_web", {
liquid_alternative_flowing = "nssb:vertical_web", liquid_alternative_flowing = "nssb:vertical_web",
liquid_alternative_source = "nssb:vertical_web", liquid_alternative_source = "nssb:vertical_web",
liquid_viscosity = 20, liquid_viscosity = 20,
groups = {flammable=2, snappy=1, liquid=1}, groups = {flammable = 2, snappy = 1, liquid = 1}
}) })
minetest.register_node("nssb:web_cone_up", { minetest.register_node("nssb:web_cone_up", {
description = "Web Cone Up", description = "Web Cone Up",
inventory_image = "web_cone_up.png", inventory_image = "web_cone_up.png",
tile_images = {"web_cone_up.png"} , tile = {"web_cone_up.png"} ,
drawtype = "plantlike", drawtype = "plantlike",
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
pointable = true, pointable = true,
@ -176,14 +179,14 @@ minetest.register_node("nssb:web_cone_up", {
liquid_alternative_flowing = "nssb:web_cone_up", liquid_alternative_flowing = "nssb:web_cone_up",
liquid_alternative_source = "nssb:web_cone_up", liquid_alternative_source = "nssb:web_cone_up",
liquid_viscosity = 20, liquid_viscosity = 20,
groups = {flammable=2, snappy=1, liquid=1}, groups = {flammable = 2, snappy = 1, liquid = 1}
}) })
minetest.register_node("nssb:web_cone_down", { minetest.register_node("nssb:web_cone_down", {
description = "Web Cone Down", description = "Web Cone Down",
inventory_image = "web_cone_down.png", inventory_image = "web_cone_down.png",
tile_images = {"web_cone_down.png"} , tile = {"web_cone_down.png"} ,
drawtype = "plantlike", drawtype = "plantlike",
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
pointable = true, pointable = true,
@ -197,24 +200,24 @@ minetest.register_node("nssb:web_cone_down", {
liquid_alternative_flowing = "nssb:web_cone_down", liquid_alternative_flowing = "nssb:web_cone_down",
liquid_alternative_source = "nssb:web_cone_down", liquid_alternative_source = "nssb:web_cone_down",
liquid_viscosity = 20, liquid_viscosity = 20,
groups = {flammable=2, snappy=1, liquid=1}, groups = {flammable = 2, snappy = 1, liquid = 1}
}) })
minetest.register_craft({ minetest.register_craft({
output = 'nssb:marine_meselamp', output = "nssb:marine_meselamp",
recipe = { recipe = {
{'default:glass', 'bucket:bucket_water', 'default:glass'}, {"default:glass", "bucket:bucket_water", "default:glass"},
{'default:glass', 'default:mese_crystal', 'default:glass'}, {"default:glass", "default:mese_crystal", "default:glass"},
{'default:glass', 'bucket:bucket_water', 'default:glass'}, {"default:glass", "bucket:bucket_water", "default:glass"}
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'nssb:morlamp', output = "nssb:morlamp",
recipe = { recipe = {
{'nssb:morelentir_dust','nssb:morelentir_dust','nssb:morelentir_dust',}, {"nssm:morelentir_dust","nssm:morelentir_dust","nssm:morelentir_dust"},
{'nssb:morelentir_dust','nssb:morelentir_dust','nssb:morelentir_dust',}, {"nssm:morelentir_dust","nssm:morelentir_dust","nssm:morelentir_dust"},
{'nssb:morelentir_dust','nssb:morelentir_dust','nssb:morelentir_dust',}, {"nssm:morelentir_dust","nssm:morelentir_dust","nssm:morelentir_dust"}
} }
}) })
@ -222,278 +225,240 @@ minetest.register_node("nssb:web_cocoon", {
description = "Web Cocoon", description = "Web Cocoon",
tiles = {"web_cocoon.png"}, tiles = {"web_cocoon.png"},
drop = { drop = {
max_items = 1, max_items = 1,
items = { items = {
{ {items = {"nssm:spider_leg 2"}, rarity = 4},
items = {'node "nssm:spider_leg" 2'}, {items = {"nssm:web 1"}, rarity = 4},
rarity = 4 {items = {"nssm:ant_sword 1"}, rarity = 20},
}, {items = {"nssm:sun_sword 1"}, rarity = 100},
{ {items = {"nssm:night_sword 1"}, rarity = 100},
items = {'node "nssm:web 1'}, {items = {"nssm:spear_ant 1"}, rarity = 20},
rarity = 4 {items = {"nssm:spear_mantis 1"}, rarity = 20},
}, {items = {"nssm:spear_manticore 1"}, rarity = 22},
{ {items = {"nssm:spear_little_ice_tooth 1"}, rarity = 20},
items = {'node "nssm:ant_sword" 1'}, {items = {"nssm:spear_duck_beak 1"}, rarity = 20},
rarity = 20 {items = {"default:sword_wood 1"}, rarity = 14},
}, {items = {"default:sword_steel 1"}, rarity = 20},
{ {items = {"default:sword_mese 1"}, rarity = 20},
items = {'node "nssm:sun_sword" 1'}, {items = {"default:axe_bronze 1"}, rarity = 20},
rarity = 100 {items = {"nssm:raw_scrausics_wing 2"}, rarity = 20},
}, {items = {"nssm:mantis_claw 1"}, rarity = 20},
{ {items = {"default:axe_mese 1"}, rarity = 20},
items = {'node "nssm:night_sword" 1'}, {items = {"nssm:mantis_sword 1"}, rarity = 20},
rarity = 100 {items = {"default:axe_steel 1"}, rarity = 20},
}, {items = {"nssm:crab_light_mace 1"}, rarity = 20},
{ {items = {"nssm:masticone_fang_sword 1"}, rarity = 20}
items = {'node "nssm:spear_ant" 1'}, }
rarity = 20 },
},
{
items = {'node "nssm:spear_mantis" 1'},
rarity = 20
},
{
items = {'node "nssm:spear_manticore" 1'},
rarity = 22
},
{
items = {'node "nssm:spear_little_ice_tooth" 1'},
rarity = 20
},
{
items = {'node "nssm:spear_duck_beak" 1'},
rarity = 20
},
{
items = {'node "default:sword_wood" 1'},
rarity = 14
},
{
items = {'node "default:sword_steel" 1'},
rarity = 20
},{
items = {'node "default:sword_mese" 1'},
rarity = 20
},{
items = {'node "default:axe_bronze" 1'},
rarity = 20
},
{
items = {'node "nssm:raw_scrausics_wing" 2'},
rarity = 20
},
{
items = {'node "nssm:nssm:mantis_claw" 1'},
rarity = 20
},
{
items = {'node "default:axe_mese" 1'},
rarity = 20
},
{
items = {'node "nssm:mantis_sword" 1'},
rarity = 20
},
{
items = {'node "default:axe_steel" 1'},
rarity = 20
},
{
items = {'node "nssm:crab_light_mace" 1'},
rarity = 20
},
{
items = {'node "nssm:masticone_fang_sword" 1'},
rarity = 20
}
}
},
is_ground_content = false, is_ground_content = false,
groups = {snappy=1, flammable=2}, groups = {snappy = 1, flammable = 2}
}) })
-- Eggs
--Eggs
function nssb_register_eggs ( function nssb_register_eggs (
name, -- name of the mobs and the eggs name, -- name of the mobs and the eggs
descr, -- Description of the mob and eggs descr, -- Description of the mob and eggs
int, -- time interval between each birth int, -- time interval between each birth
wide, -- the radius in wich mobs are generated wide, -- the radius in wich mobs are generated
troppi, -- maximun number of mobs spawned troppi, -- maximun number of mobs spawned
neigh, -- block that need to be near for spawning the mobs neigh, -- block that need to be near for spawning the mobs
night, --if only at night night, -- if only at night
lumin) --luminosity parameter of the egg_block lumin) -- luminosity parameter of the egg_block
minetest.register_node("nssb:".. name .."_eggs", { minetest.register_node("nssb:" .. name .. "_eggs", {
description = descr .." Eggs", description = descr .." Eggs",
tiles = {name .."_eggs.png"}, tiles = {name .. "_eggs.png"},
light_source = lumin, light_source = lumin,
is_ground_content = false, is_ground_content = false,
groups = {choppy=1}, groups = {choppy = 1}
}) })
minetest.register_abm({ minetest.register_abm({
nodenames = {"nssb:".. name .."_eggs"}, nodenames = {"nssb:" .. name .. "_eggs"},
neighbors = {neigh}, neighbors = {neigh},
interval = int, interval = int,
chance = 1, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
local pos1 = {x=pos.x+math.random(-wide,wide), y=pos.y+0.5, z=pos.z+math.random(-wide,wide)}
local n = minetest.env:get_node(pos1).name local pos1 = {
x = pos.x + math.random(-wide, wide),
y = pos.y + 0.5,
z = pos.z + math.random(-wide, wide)
}
local n = minetest.get_node(pos1).name
if n ~= "air" and n ~= "default:water_source" then if n ~= "air" and n ~= "default:water_source" then
return return
end end
local count = 0 local count = 0
local objects = minetest.env:get_objects_inside_radius(pos, 12) local objects = minetest.get_objects_inside_radius(pos, 12)
for _,obj in ipairs(objects) do for _,obj in ipairs(objects) do
count = count +1 count = count + 1
--minetest.chat_send_all("Count: "..count)
end end
local t = minetest.get_timeofday() local t = minetest.get_timeofday()
--minetest.chat_send_all("Time of day: "..t)
if (t>=0.75 and t<=1) or (t>=0 and t<=0.25) or night==false then if (t >= 0.75 and t <= 1) or (t >= 0 and t <= 0.25) or night == false then
if count < troppi then if count < troppi then
minetest.add_entity(pos1, "nssm:" .. name) minetest.add_entity(pos1, "nssm:" .. name)
end end
end end
end end
}) })
end end
nssb_register_eggs ('ant_worker', 'Ant Worker', 16, 2, 4, "air", false, 5) nssb_register_eggs ("ant_worker", "Ant Worker", 16, 2, 4, "air", false, 5)
nssb_register_eggs ('ant_soldier', 'Ant Soldier', 16, 2, 4, "air", false, 5) nssb_register_eggs ("ant_soldier", "Ant Soldier", 16, 2, 4, "air", false, 5)
nssb_register_eggs ('larva', 'Larva', 16, 2, 4, "air", false, 5) nssb_register_eggs ("larva", "Larva", 16, 2, 4, "air", false, 5)
nssb_register_eggs ('crab', 'Crab', 18, 2, 4, "default:sand", false, 5) nssb_register_eggs ("crab", "Crab", 18, 2, 4, "default:sand", false, 5)
nssb_register_eggs ('black_widow', 'Black Widow', 18, 2, 4, "air", false, 5) nssb_register_eggs ("black_widow", "Black Widow", 18, 2, 4, "air", false, 5)
nssb_register_eggs ('uloboros', 'Uloboros', 18, 2, 4, "air", false, 5) nssb_register_eggs ("uloboros", "Uloboros", 18, 2, 4, "air", false, 5)
nssb_register_eggs ('daddy_long_legs', 'Daddy Long Legs', 18, 2, 4, "air", false, 5) nssb_register_eggs ("daddy_long_legs", "Daddy Long Legs", 18, 2, 4, "air", false, 5)
nssb_register_eggs ('xgaloctopus', 'Xgaloctopus', 18, 2, 4, "default:water_source", false, 5) nssb_register_eggs ("xgaloctopus", "Xgaloctopus", 18, 2, 4, "default:water_source", false, 5)
nssb_register_eggs ('bloco', 'Bloco', 14, 2, 4, "default:gravel", false, 5) nssb_register_eggs ("bloco", "Bloco", 14, 2, 4, "default:gravel", false, 5)
nssb_register_eggs ('icesnake', 'Icesnake', 18, 2, 4, "default:ice", false, 5) nssb_register_eggs ("icesnake", "Icesnake", 18, 2, 4, "default:ice", false, 5)
nssb_register_eggs ('snow_biter', 'Snowbiter', 18, 2, 4, "default:ice", false, 5) nssb_register_eggs ("snow_biter", "Snowbiter", 18, 2, 4, "default:ice", false, 5)
nssb_register_eggs ('scrausics', 'Scrausics', 18, 2, 4, "air", false, 5) nssb_register_eggs ("scrausics", "Scrausics", 18, 2, 4, "air", false, 5)
nssb_register_eggs ('moonheron', 'Moonheron', 18, 2, 4, "air", true, 0) nssb_register_eggs ("moonheron", "Moonheron", 18, 2, 4, "air", true, 0)
function nssb_register_eggboss ( function nssb_register_eggboss (
name, -- name of the mobs and the eggs name, -- name of the mobs and the eggs
descr, -- Description of the mob and eggs descr, -- Description of the mob and eggs
int, -- time interval between each birth int, -- time interval between each birth
wide, -- the radius in wich mobs are generated wide, -- the radius in wich mobs are generated
troppi, -- maximun number of mobs spawned troppi, -- maximun number of mobs spawned
neigh, -- block that need to be near for spawning the mobs neigh, -- block that need to be near for spawning the mobs
night, --if only at night night, -- if only at night
lumin) --luminosity parameter of the egg_block lumin) -- luminosity parameter of the egg_block
minetest.register_node("nssb:".. name .."_eggboss", { if lumin > 14 then lumin = 14 end
description = descr .." Eggs",
tiles = {name .."_eggs.png"}, minetest.register_node("nssb:" .. name .. "_eggboss", {
description = descr .. " Eggs",
tiles = {name .. "_eggs.png"},
light_source = lumin, light_source = lumin,
is_ground_content = false, is_ground_content = false,
groups = {choppy=1}, groups = {choppy = 1}
}) })
minetest.register_abm({ minetest.register_abm({
nodenames = {"nssb:".. name .."_eggboss"}, nodenames = {"nssb:" .. name .. "_eggboss"},
neighbors = {neigh}, neighbors = {neigh},
interval = int, interval = int,
chance = 1, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
local pos1 = {x=pos.x+math.random(-wide,wide), y=pos.y+0.5, z=pos.z+math.random(-wide,wide)}
local n = minetest.env:get_node(pos1).name local pos1 = {
x = pos.x + math.random(-wide, wide),
y = pos.y + 0.5,
z = pos.z + math.random(-wide, wide)
}
local n = minetest.get_node(pos1).name
if n ~= "air" and n ~= "default:water_source" then if n ~= "air" and n ~= "default:water_source" then
return return
end end
local count = 0
local objects = minetest.env:get_objects_inside_radius(pos, 12) local count = 0
local objects = minetest.get_objects_inside_radius(pos, 12)
for _,obj in ipairs(objects) do for _,obj in ipairs(objects) do
count = count +1 count = count + 1
--minetest.chat_send_all("Count: "..count)
end end
local t = minetest.get_timeofday() local t = minetest.get_timeofday()
--minetest.chat_send_all("Time of day: "..t)
if (t>=0.75 and t<=1) or (t>=0 and t<=0.25) or night==false then if (t >= 0.75 and t <= 1) or (t >= 0 and t <= 0.25) or night == false then
if count < troppi then if count < troppi then
minetest.add_entity(pos1, "nssm:" .. name) minetest.add_entity(pos1, "nssm:" .. name)
end end
end end
end end
}) })
end end
--Bosses of the eggs: --Bosses of the eggs:
nssb_register_eggboss ('phoenix', 'Phoenix', 900, 10, 1, "air", false, 15)
nssb_register_eggboss ('tarantula', 'Tarantula', 900, 2, 1, "air", false, 5) nssb_register_eggboss ("phoenix", "Phoenix", 900, 10, 1, "air", false, 15)
nssb_register_eggboss ('night_master', 'Night Master', 900, 10, 1, "air", true, 0) nssb_register_eggboss ("tarantula", "Tarantula", 900, 2, 1, "air", false, 5)
nssb_register_eggboss ('ant_queen', 'Ant Queen', 900, 10, 1, "air", false, 5) nssb_register_eggboss ("night_master", "Night Master", 900, 10, 1, "air", true, 0)
nssb_register_eggboss ('icelamander', 'Icelamander', 900, 10, 1, "air", false, 5) nssb_register_eggboss ("ant_queen", "Ant Queen", 900, 10, 1, "air", false, 5)
nssb_register_eggboss ("icelamander", "Icelamander", 900, 10, 1, "air", false, 5)
minetest.register_node("nssb:giant_sandworm_eggs", { minetest.register_node("nssb:giant_sandworm_eggs", {
description = "Giant Sandworm Egg", description = "Giant Sandworm Egg",
tiles = {"giant_sandworm_eggs.png"}, tiles = {"giant_sandworm_eggs.png"},
is_ground_content = false, is_ground_content = false,
groups = {choppy=1}, groups = {choppy = 1}
}) })
minetest.register_abm({ minetest.register_abm({
nodenames = {"nssb:giant_sandworm_eggs"}, nodenames = {"nssb:giant_sandworm_eggs"},
neighbors = {"default:desert_stone"}, neighbors = {"default:desert_stone"},
interval = 1, interval = 1,
chance = 1, chance = 1,
action = function(pos, node) action = function(pos, node)
local pos1 = {x=pos.x, y=pos.y+1, z=pos.z}
local n = minetest.env:get_node(pos1).name local pos1 = {x = pos.x, y = pos.y + 1, z = pos.z}
local n = minetest.get_node(pos1).name
if n ~= "air" then if n ~= "air" then
return return
end end
minetest.add_entity(pos1, "nssm:giant_sandworm") minetest.add_entity(pos1, "nssm:giant_sandworm")
minetest.remove_node(pos) minetest.remove_node(pos)
end end
}) })
--Morlavala nodes -- Morlavala nodes
minetest.register_node("nssb:morentir", { minetest.register_node("nssb:morentir", {
description = "Dark Stone", description = "Dark Stone",
tiles = {"morentir.png"}, tiles = {"morentir.png"},
is_ground_content = true, is_ground_content = true,
groups = {cracky=1}, groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:boum_morentir", { minetest.register_node("nssb:boum_morentir", {
description = "Exploding Dark Stone", description = "Exploding Dark Stone",
tiles = {"morentir.png"}, tiles = {"morentir.png"},
is_ground_content = true, is_ground_content = true,
groups = {cracky=1}, groups = {cracky = 1},
drop = "nssb:morentir", drop = "nssb:morentir",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:fall_morentir", { minetest.register_node("nssb:fall_morentir", {
description = "Falling Dark Stone", description = "Falling Dark Stone",
tiles = {"morentir.png"}, tiles = {"morentir.png"},
is_ground_content = true, is_ground_content = true,
groups = {cracky=1,falling_node = 1}, groups = {cracky = 1, falling_node = 1},
drop = "nssb:morentir", drop = "nssb:morentir",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:indistructible_morentir", { minetest.register_node("nssb:indistructible_morentir", {
description = "Dark Indistructible Stone", description = "Dark Indistructible Stone",
tiles = {"morentir.png"}, tiles = {"morentir.png"},
groups = {unbreakable = 1},
is_ground_content = false, is_ground_content = false,
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:morelentir", { minetest.register_node("nssb:morelentir", {
@ -504,19 +469,22 @@ minetest.register_node("nssb:morelentir", {
tiles = { tiles = {
{ {
name = "morelentir_animated.png", name = "morelentir_animated.png",
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 6.0}, animation = {
},}, type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 6.0
}
}
},
is_ground_content = false, is_ground_content = false,
groups = {cracky=1}, groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:morkemen", { minetest.register_node("nssb:morkemen", {
description = "Dark Dirt", description = "Dark Dirt",
tiles = {"morkemen.png"}, tiles = {"morkemen.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=1}, groups = {crumbly = 1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults()
}) })
minetest.register_node("nssb:morvilya", { minetest.register_node("nssb:morvilya", {
@ -532,7 +500,7 @@ minetest.register_node("nssb:morvilya", {
drop = "", drop = "",
drowning = 1, drowning = 1,
damage_per_second = 2, damage_per_second = 2,
post_effect_color = {a=800, r=1, g=1, b=1}, post_effect_color = {a = 800, r = 1, g = 1, b = 1}
}) })
minetest.register_node("nssb:mornar", { minetest.register_node("nssb:mornar", {
@ -546,11 +514,11 @@ minetest.register_node("nssb:mornar", {
inventory_image = "mornar.png", inventory_image = "mornar.png",
light_source = 12, light_source = 12,
groups = {igniter = 2}, groups = {igniter = 2},
drop = '', drop = "",
walkable = false, walkable = false,
buildable_to = false, buildable_to = false,
damage_per_second = 4, damage_per_second = 4
}) })
minetest.register_node("nssb:mornen", { minetest.register_node("nssb:mornen", {
description = "Black Water", description = "Black Water",
@ -559,10 +527,13 @@ minetest.register_node("nssb:mornen", {
tiles = { tiles = {
{ {
name = "mornen_animated.png", name = "mornen_animated.png",
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0}, animation = {
}, type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0
}
}
}, },
alpha = 650, --alpha = 650,
use_texture_alpha = "blend",
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
pointable = false, pointable = false,
@ -579,8 +550,8 @@ minetest.register_node("nssb:mornen", {
liquid_alternative_flowing = "nssb:mornen_flowing", liquid_alternative_flowing = "nssb:mornen_flowing",
liquid_alternative_source = "nssb:mornen", liquid_alternative_source = "nssb:mornen",
liquid_viscosity = 6, liquid_viscosity = 6,
post_effect_color = {a=500, r=1, g=1, b=1}, post_effect_color = {a = 500, r = 1, g = 1, b = 1},
groups = {liquid=3, puts_out_fire=1}, groups = {liquid = 3, puts_out_fire = 1}
}) })
minetest.register_node("nssb:mornen_flowing", { minetest.register_node("nssb:mornen_flowing", {
@ -596,8 +567,8 @@ minetest.register_node("nssb:mornen_flowing", {
type = "vertical_frames", type = "vertical_frames",
aspect_w = 16, aspect_w = 16,
aspect_h = 16, aspect_h = 16,
length = 3.3, length = 3.3
}, }
}, },
{ {
name = "mornen_animated.png", name = "mornen_animated.png",
@ -606,14 +577,15 @@ minetest.register_node("nssb:mornen_flowing", {
type = "vertical_frames", type = "vertical_frames",
aspect_w = 16, aspect_w = 16,
aspect_h = 16, aspect_h = 16,
length = 3.3, length = 3.3
}, }
}, }
}, },
paramtype = "light", paramtype = "light",
paramtype2 = "flowingliquid", paramtype2 = "flowingliquid",
light_source = 10, light_source = 10,
alpha = 650, --alpha = 650,
use_texture_alpha = "blend",
walkable = false, walkable = false,
pointable = false, pointable = false,
diggable = false, diggable = false,
@ -627,8 +599,8 @@ minetest.register_node("nssb:mornen_flowing", {
liquid_viscosity = 6, liquid_viscosity = 6,
liquid_renewable = true, liquid_renewable = true,
damage_per_second = 2, damage_per_second = 2,
post_effect_color = {a=500, r=1, g=1, b=1}, post_effect_color = {a = 500, r = 1, g = 1, b = 1},
groups = {liquid=3, puts_out_fire=1, water=1, not_in_creative_inventory=1}, groups = {liquid = 3, puts_out_fire = 1, water = 1, not_in_creative_inventory = 1}
}) })
minetest.register_node("nssb:portal", { minetest.register_node("nssb:portal", {
@ -638,10 +610,13 @@ minetest.register_node("nssb:portal", {
tiles = { tiles = {
{ {
name = "mornen_animated.png", name = "mornen_animated.png",
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0}, animation = {
}, type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0
}
}
}, },
alpha = 800, --alpha = 800,
use_texture_alpha = "blend",
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
pointable = false, pointable = false,
@ -649,7 +624,7 @@ minetest.register_node("nssb:portal", {
buildable_to = true, buildable_to = true,
is_ground_content = false, is_ground_content = false,
drop = "", drop = "",
light_source = 15, light_source = 14,
liquid_range= 0, liquid_range= 0,
drowning = 1, drowning = 1,
liquid_renewable = false, liquid_renewable = false,
@ -657,9 +632,9 @@ minetest.register_node("nssb:portal", {
liquid_alternative_flowing = "nssb:portal", liquid_alternative_flowing = "nssb:portal",
liquid_alternative_source = "nssb:portal", liquid_alternative_source = "nssb:portal",
liquid_viscosity = 0, liquid_viscosity = 0,
post_effect_color = {a=10, r=1, g=1, b=1}, post_effect_color = {a = 10, r = 1, g = 1, b = 1},
groups = {liquid=3, puts_out_fire=1}, groups = {liquid = 3, puts_out_fire = 1},
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:portalhome", { minetest.register_node("nssb:portalhome", {
@ -669,10 +644,13 @@ minetest.register_node("nssb:portalhome", {
tiles = { tiles = {
{ {
name = "portalhome_animated.png", name = "portalhome_animated.png",
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0}, animation = {
}, type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0
}
}
}, },
alpha = 800, --alpha = 800,
use_texture_alpha = "blend",
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
pointable = false, pointable = false,
@ -680,7 +658,7 @@ minetest.register_node("nssb:portalhome", {
buildable_to = true, buildable_to = true,
is_ground_content = false, is_ground_content = false,
drop = "", drop = "",
light_source = 15, light_source = 14,
liquid_range= 0, liquid_range= 0,
drowning = 1, drowning = 1,
liquid_renewable = false, liquid_renewable = false,
@ -688,9 +666,9 @@ minetest.register_node("nssb:portalhome", {
liquid_alternative_flowing = "nssb:portalhome", liquid_alternative_flowing = "nssb:portalhome",
liquid_alternative_source = "nssb:portalhome", liquid_alternative_source = "nssb:portalhome",
liquid_viscosity = 0, liquid_viscosity = 0,
post_effect_color = {a=10, r=1, g=1, b=1}, post_effect_color = {a = 10, r = 1, g = 1, b = 1},
groups = {liquid=3, puts_out_fire=1}, groups = {liquid = 3, puts_out_fire = 1},
on_blast = function() end, on_blast = function() end
}) })
minetest.register_node("nssb:morlote", { minetest.register_node("nssb:morlote", {
@ -709,16 +687,16 @@ minetest.register_node("nssb:morlote", {
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
}, }
}) })
minetest.register_node("nssb:moranga", { minetest.register_node("nssb:moranga", {
description = "Moranga Ore", description = "Moranga Ore",
tiles = {"morentir.png^moranga.png"}, tiles = {"morentir.png^moranga.png"},
groups = {cracky = 1}, groups = {cracky = 1},
drop = 'nssb:moranga_lump', drop = "nssb:moranga_lump",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("nssb:life_energy_ore", { minetest.register_node("nssb:life_energy_ore", {
@ -726,41 +704,43 @@ minetest.register_node("nssb:life_energy_ore", {
tiles = {"morentir.png^life_energy_ore.png"}, tiles = {"morentir.png^life_energy_ore.png"},
groups = {cracky = 1}, groups = {cracky = 1},
light_source = 4, light_source = 4,
drop = 'nssm:energy_globe', drop = "nssm:energy_globe",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults()
}) })
minetest.register_craftitem("nssb:moranga_lump", { minetest.register_craftitem("nssb:moranga_lump", {
description = "Moranga Lump", description = "Moranga Lump",
image = "moranga_lump.png", image = "moranga_lump.png"
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "nssb:moranga_ingot", output = "nssb:moranga_ingot",
recipe = "nssb:moranga_lump", recipe = "nssb:moranga_lump",
cooktime = 160, cooktime = 160
}) })
minetest.register_craftitem("nssb:moranga_ingot", { minetest.register_craftitem("nssb:moranga_ingot", {
description = "Moranga Ingot", description = "Moranga Ingot",
image = "moranga_ingot.png", image = "moranga_ingot.png"
}) })
minetest.register_node("nssb:morvalar_block", { minetest.register_node("nssb:morvalar_block", {
description = "Morvalar Block", description = "Morvalar Block",
tiles = {"morvalar_block.png"}, tiles = {"morvalar_block.png"},
groups = {unbreakable = 1}, light_source = 13
light_source = 13,
on_blast = function() end,
}) })
minetest.register_node("nssb:dis_morvalar_block", { minetest.register_node("nssb:dis_morvalar_block", {
description = "Deactivated Morvalar Block", description = "Disactivated Morvalar Block",
tiles = {"dis_morvalar_block.png"}, tiles = {"dis_morvalar_block.png"},
groups = {unbreakable = 1},
on_blast = function() end, on_punch = function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == "nssm:superior_energy_globe" then
minetest.set_node(pos, {name="nssb:morvalar_block"})
end
end
}) })
minetest.register_abm({ minetest.register_abm({
@ -768,12 +748,9 @@ minetest.register_abm({
neighbors = {"nssb:indistructible_morentir"}, neighbors = {"nssb:indistructible_morentir"},
interval = 1, interval = 1,
chance = 1, chance = 1,
action = function(pos, node) action = function(pos, node)
minetest.remove_node(pos) minetest.remove_node(pos)
minetest.add_entity(pos, "nssm:morvalar") minetest.add_entity(pos, "nssm:morvalar")
minetest.after(5, function()
minetest.set_node(pos, {name="nssb:dis_morvalar_block"})
end)
end end
}) })

BIN
screenshot-large.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 KiB

BIN
screenshot.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 KiB

2
settingtypes.txt Normal file
View File

@ -0,0 +1,2 @@
# Morlendor Dimension Level
nssb.morlendor_level (Morlendor Dimension Level) int -30000

View File

@ -1,16 +1,25 @@
local mm = nssm.multimobs local mm = nssm.multimobs
-- Morvy spawns morbats too mobs:spawn_specific("nssm:morbat1", {"air"}, {"nssb:morelentir"},
mobs:spawn_specific("nssm:morvy", {"nssb:morentir"}, {"nssb:morentir"}, 0, 20, 120, 18000000/mm, 1, -31000, -93) 0, 20, 100, 20000000/mm, 1, -31000, 0)
mobs:spawn_specific("nssm:morbat1", {"air"}, {"nssb:morelentir"}, 0, 20, 100, 20000000/mm, 1, -31000, 0)
mobs:spawn_specific("nssm:morbat2", {"air"}, {"nssb:morelentir"}, 0, 20, 100, 20000000/mm, 1, -31000, 0)
mobs:spawn_specific("nssm:morbat3", {"air"}, {"nssb:morelentir"}, 0, 20, 100, 20000000/mm, 1, -31000, 0)
mobs:spawn_specific("nssm:morlu", {"nssb:morentir"}, {"nssb:mornen"}, 0, 20, 80, 1200000/mm, 1, -31000, -93) mobs:spawn_specific("nssm:morbat2", {"air"}, {"nssb:morelentir"},
mobs:spawn_specific("nssm:morde", {"nssb:morentir"}, {"nssb:mornar"}, 0, 20, 50, 350000/mm, 1, -31000, -93) 0, 20, 100, 20000000/mm, 1, -31000, 0)
mobs:spawn_specific("nssm:mordain", {"nssb:morentir"}, {"nssb:morentir"}, 0, 20, 90, 15000000/mm, 1, -31000, -93)
mobs:spawn_specific("nssm:morgut", {"nssb:morentir"}, {"nssb:morentir"}, 0, 20, 50, 15000000/mm, 1, -31000, -93)
-- morwa has a statue ABM, do not spawn here mobs:spawn_specific("nssm:morbat3", {"air"}, {"nssb:morelentir"},
-- morgre spawns from an ABM, do not spawn here 0, 20, 100, 20000000/mm, 1, -31000, 0)
-- morvalar spawns from an ABM, do not spawn here
mobs:spawn_specific("nssm:morvy", {"nssb:morentir"}, {"nssb:morentir"},
0, 20, 120, 18000000/mm, 1, -31000, -93)
mobs:spawn_specific("nssm:morlu", {"nssb:morentir"}, {"nssb:mornen"},
0, 20, 80, 1200000/mm, 1, -31000, -93)
mobs:spawn_specific("nssm:morde", {"nssb:morentir"}, {"nssb:mornar"},
0, 20, 50, 350000/mm, 1, -31000, -93)
mobs:spawn_specific("nssm:mordain", {"nssb:morentir"}, {"nssb:morentir"},
0, 20, 90, 15000000/mm, 1, -31000, .93)
mobs:spawn_specific("nssm:morgut", {"nssb:morentir"}, {"nssb:morentir"},
0, 20, 50, 15000000/mm, 1, -31000, -93)