Compare commits

..

No commits in common. "main" and "master-improved-readme" have entirely different histories.

11 changed files with 1000 additions and 1433 deletions

209
README.md
View File

@ -1,20 +1,18 @@
# minetest mod nssb
BIOME integration for nssm, the not so simple buildings
BIOME map for nssm, the not so simple buildings
## information
A MAPGEN mod for Not so simple mobs (NSSM mod) that add spanners and new BIOME underground
A MAPGEN mod for Not so simple mobs (NSSM mod) that add new spawners and new BIOME underground
It **add [buildings](#buildings) with monsters spanners around the world**, also
It **add [buildings](#buildings) with monsters spawners 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
@ -29,148 +27,87 @@ There are many minerals (around ten new ones) and many new enemies (around six n
#### 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.
a new BIOME for each mob boos like kind event just the simpel 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 is a continuation of NPX Team's mod and currently provides bugfixeds and user contributions.
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:
### dependences:
* nssm
* tnt
* mobs
#### configurations
### conflicts
This mod adds a dimension in the depths of the map, the [Morlendor](#mordenlor), **configurable**
using the `nssb.morlendor_level` parameter as negative integer:
This mod adds a dimension in the depths of the map, the [Morlendor](#mordenlor), **configurable**,
layer and in future autodetect the `nether` and `caverealms` layers to avoid conflicts.
* 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.
### Nodes definitions
The morlendor level must be at least 320 layers of blocks over the limit,
and 1000 layers of blocks below the nether deep floor.
| Name Game | Name internal | notes |
| -------------------- | ------------------------- | ------------------ |
| 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 |
### 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** |
| build name mapgen | build description biome | frecuency | biome |
| ------------------- | -------------------------- | ------------ | ----- |
| 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 |
| grandepiramide | | often | dirt |
| collina | | often | grass |
| megaformicaio | | often | grass |
| 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 |
### Spawn definitions
@ -188,27 +125,9 @@ This mod automatically will spawms some specific enemies over the map:
| 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",
```
### CRafting definitions
WIP
# LICENSE

View File

@ -1,14 +1,3 @@
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
- added the Morlendor dimension and all its materials;
- added the compatibility with the mapgen v7 and valleys (and also fractal and flat);

View File

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

View File

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

View File

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

1197
mapgen.lua

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1 @@
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

503
nodes.lua
View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

View File

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

View File

@ -1,25 +1,16 @@
local mm = nssm.multimobs
mobs:spawn_specific("nssm:morbat1", {"air"}, {"nssb:morelentir"},
0, 20, 100, 20000000/mm, 1, -31000, 0)
-- Morvy spawns morbats too
mobs:spawn_specific("nssm:morvy", {"nssb:morentir"}, {"nssb:morentir"}, 0, 20, 120, 18000000/mm, 1, -31000, -93)
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:morbat2", {"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: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)
mobs:spawn_specific("nssm:morbat3", {"air"}, {"nssb:morelentir"},
0, 20, 100, 20000000/mm, 1, -31000, 0)
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)
-- morwa has a statue ABM, do not spawn here
-- morgre spawns from an ABM, do not spawn here
-- morvalar spawns from an ABM, do not spawn here