illuna_aestival: properly introduce astroportal, closes #12

master
Milan 2021-02-01 12:06:49 +01:00
parent e972c15ce0
commit 695f64f86d
6 changed files with 71 additions and 22 deletions

View File

@ -1,4 +1,5 @@
local path = minetest.get_modpath("illuna_aestival") .. "/src"
illuna = {}
-- stuff
dofile(path .. "/nodes.lua")
@ -14,4 +15,4 @@ dofile(path .. "/signs.lua")
dofile(path .. "/replacer.lua")
dofile(path .. "/mobs.lua")
dofile(path .. "/portal.lua")
dofile(path .. "/moreblocks.lua")
dofile(path .. "/moreblocks.lua")

View File

@ -0,0 +1,24 @@
local ai = {name = "air", param1 = 000}
local ap = {name = "illuna:astroportal_block", param = 100}
illuna.astroportal = {
size = {x = 5, y = 2, z = 5},
data = {
ai, ai, ai, ai, ai,
ai, ap, ap, ap, ai,
ai, ap, ap, ap, ai,
ap, ai, ai, ai, ap,
ai, ap, ap, ap, ai,
ap, ai, ai, ai, ap,
ai, ap, ap, ap, ai,
ap, ai, ai, ai, ap,
ai, ai, ai, ai, ai,
ai, ap, ap, ap, ai,
},
}

View File

@ -3,27 +3,24 @@ local path = minetest.get_modpath("illuna_aestival")
local dpath = minetest.get_modpath("default") .. "/schematics/"
path = path .. "/schematics/"
local add_node = function(a, b, c, d, e, f, g, h, i, j)
if j ~= 1 then return end
minetest.register_decoration({
deco_type = "simple",
place_on = a,
sidelen = 80,
fill_ratio = b,
biomes = c,
y_min = d,
y_max = e,
decoration = f,
height_max = g,
spawn_by = h,
num_spawn_by = i,
rotation = "random",
})
end
if j ~= 1 then return end
minetest.register_decoration({
deco_type = "simple",
place_on = a,
sidelen = 80,
fill_ratio = b,
biomes = c,
y_min = d,
y_max = e,
decoration = f,
height_max = g,
spawn_by = h,
num_spawn_by = i,
rotation = "random",
})
end
@ -114,3 +111,22 @@ local add_schem = function(a, b, c, d, e, f, g, h)
})
end
add_schem({"ethereal:mesa_dirt"}, 0.04, {"mesa"}, 1, 100, path .. "douglasie.mts")
dofile(path .. "astroportal.lua")
minetest.register_decoration({
name = "Ancient broken astro portal",
deco_type = "schematic",
place_on = "default:sand",
sidelen = 80,
fill_ratio = 0.00018,
biomes = "desert",
y_max = 2300,
y_min = 1250,
schematic = illuna.astroportal,
place_offset_y = 0,
rotation = "random",
})

View File

@ -323,3 +323,11 @@ minetest.register_entity(":illuna:wikitop", {
minetest.register_craftitem(":illuna:wikitop", {
inventory_image = "illuna_wikitop.png",
})
minetest.register_node(":illuna:astroportal_block", {
description = "Ancient Astro Portal Block",
tiles = {"illuna_astroportal_block.png"},
is_ground_content = false,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})

View File

@ -5,7 +5,7 @@ nether.register_portal(
"asteroid_portal",
{
shape = nether.PortalShape_Platform,
frame_node_name = "default:goldblock",
frame_node_name = "illuna:astroportal_block",
wormhole_node_color = 5,
particle_texture = {
name = "nether_particle_anim1.png",
@ -18,7 +18,7 @@ nether.register_portal(
scale = 1.5
},
title = "Asteroid Portal",
book_of_portals_pagetext = [[Requiring 21 blocks of gold, and constructed in the shape of a 3 × 3 platform with walls, or like a bowl. A finished platform is 2 blocks high, and 5 blocks wide at the widest in both directions.
book_of_portals_pagetext = [[Requiring 21 blocks of ancient astro-portal blocks, and constructed in the shape of a 3 × 3 platform with walls, or like a bowl. A finished platform is 2 blocks high, and 5 blocks wide at the widest in both directions.
This portal is different to the others, rather than acting akin to a doorway it appears to the eye more like a small pool of water which can be stepped into. Upon setting foot in the portal we found ourselves at a tremendous altitude.]],
is_within_realm = function(pos) -- return true if pos is inside the Nether
return pos.y > OTHER_WORLDS_LEVEL - 200

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B