import code from epic module
parent
56d9a75e0a
commit
2b246e17f7
|
@ -1,4 +1,8 @@
|
|||
|
||||
globals = {
|
||||
"epic_skybox"
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
-- Stdlib
|
||||
string = {fields = {"split"}},
|
||||
|
@ -10,5 +14,5 @@ read_globals = {
|
|||
"dump", "VoxelArea",
|
||||
|
||||
-- deps
|
||||
"epic"
|
||||
"epic", "screwdriver"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
minetest.register_alias("epic:setskybox", "epic_skybox:set")
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
minetest.register_chatcommand("skybox_list", {
|
||||
description = "Lists all available skyboxes",
|
||||
func = function()
|
||||
local list = ""
|
||||
for _, skyboxdef in ipairs(epic_skybox.list) do
|
||||
list = list .. skyboxdef.name .. ","
|
||||
end
|
||||
|
||||
return true, list
|
||||
end
|
||||
})
|
|
@ -0,0 +1,81 @@
|
|||
|
||||
|
||||
local update_formspec = function(meta)
|
||||
local skyboxname = meta:get_string("skyboxname")
|
||||
|
||||
meta:set_string("infotext", "Set skybox block: name=" .. skyboxname)
|
||||
|
||||
local selected = 1
|
||||
local list = ""
|
||||
for i,skyboxdef in ipairs(epic_skybox.list) do
|
||||
if skyboxdef.name == skyboxname then
|
||||
selected = i
|
||||
end
|
||||
|
||||
list = list .. minetest.formspec_escape(skyboxdef.name)
|
||||
if i < #epic_skybox.list then
|
||||
-- not end of list
|
||||
list = list .. ","
|
||||
end
|
||||
end
|
||||
|
||||
meta:set_string("formspec", "size[8,6;]" ..
|
||||
"textlist[0,0.1;8,5;skyboxname;" .. list .. ";" .. selected .. "]" ..
|
||||
|
||||
"button_exit[0.1,5.5;8,1;save;Save]" ..
|
||||
"")
|
||||
end
|
||||
|
||||
minetest.register_node("epic_skybox:set", {
|
||||
description = "Epic set skybox block: sets the skybox for the player",
|
||||
tiles = {
|
||||
"epic_node_bg.png",
|
||||
"epic_node_bg.png",
|
||||
"epic_node_bg.png",
|
||||
"epic_node_bg.png",
|
||||
"epic_node_bg.png",
|
||||
"epic_node_bg.png^epic_sky.png",
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3,epic=1},
|
||||
on_rotate = screwdriver.rotate_simple,
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("skyboxname", "")
|
||||
update_formspec(meta, pos)
|
||||
end,
|
||||
|
||||
on_receive_fields = function(pos, _, fields, sender)
|
||||
if not sender or minetest.is_protected(pos, sender:get_player_name()) then
|
||||
-- not allowed
|
||||
return
|
||||
end
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
||||
if fields.skyboxname then
|
||||
local parts = fields.skyboxname:split(":")
|
||||
if parts[1] == "CHG" then
|
||||
local selected_box = tonumber(parts[2])
|
||||
local skyboxdef = epic_skybox.list[selected_box]
|
||||
if skyboxdef and skyboxdef.name then
|
||||
meta:set_string("skyboxname", skyboxdef.name)
|
||||
end
|
||||
update_formspec(meta, pos)
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
epic = {
|
||||
on_enter = function(_, meta, player, ctx)
|
||||
local skyboxname = meta:get_string("skyboxname")
|
||||
for _, skyboxdef in ipairs(epic_skybox.list) do
|
||||
if skyboxdef.name == skyboxname then
|
||||
epic.set_skybox(player, skyboxdef)
|
||||
end
|
||||
end
|
||||
ctx.next()
|
||||
end
|
||||
}
|
||||
})
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
|
||||
-- sets a players skybox
|
||||
function epic_skybox.set_skybox(player, skyboxdef)
|
||||
if skyboxdef.textures then
|
||||
player:set_sky({r=0, g=0, b=0}, "skybox", skyboxdef.textures)
|
||||
elseif skyboxdef.color then
|
||||
player:set_sky(skyboxdef.color, "plain", {})
|
||||
else
|
||||
player:set_sky({r=0, g=0, b=0}, "regular", {})
|
||||
end
|
||||
end
|
116
init.lua
116
init.lua
|
@ -1,110 +1,14 @@
|
|||
|
||||
epic.register_skybox({
|
||||
name = "Mars",
|
||||
textures = {
|
||||
"mars_up.jpg^[transformR270",
|
||||
"mars_dn.jpg^[transformR90",
|
||||
"mars_ft.jpg",
|
||||
"mars_bk.jpg",
|
||||
"mars_lf.jpg",
|
||||
"mars_rt.jpg"
|
||||
epic_skybox = {
|
||||
-- list<skyboxdef>
|
||||
list = {}
|
||||
}
|
||||
})
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Space with Earth",
|
||||
textures = {
|
||||
"space_sky.png",
|
||||
"space_sky2.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png"
|
||||
}
|
||||
})
|
||||
local MP = minetest.get_modpath("epic_skybox")
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Moon",
|
||||
textures = {
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png"
|
||||
}
|
||||
})
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Deepspace",
|
||||
textures = {
|
||||
"sky_pos_z.png",
|
||||
"sky_neg_z.png^[transformR180",
|
||||
"sky_neg_y.png^[transformR270",
|
||||
"sky_pos_y.png^[transformR270",
|
||||
"sky_pos_x.png^[transformR270",
|
||||
"sky_neg_x.png^[transformR90"
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Asteroids",
|
||||
textures = {
|
||||
"asteroids_up.jpg^[transformR270",
|
||||
"asteroids_dn.jpg^[transformR90",
|
||||
"asteroids_ft.jpg",
|
||||
"asteroids_bk.jpg",
|
||||
"asteroids_lf.jpg",
|
||||
"asteroids_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Nebulae",
|
||||
textures = {
|
||||
"nebulae_up.jpg^[transformR270",
|
||||
"nebulae_dn.jpg^[transformR90",
|
||||
"nebulae_ft.jpg",
|
||||
"nebulae_bk.jpg",
|
||||
"nebulae_lf.jpg",
|
||||
"nebulae_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Heaven",
|
||||
textures = {
|
||||
"heaven_up.jpg^[transformR270",
|
||||
"heaven_dn.jpg^[transformR90",
|
||||
"heaven_ft.jpg",
|
||||
"heaven_bk.jpg",
|
||||
"heaven_lf.jpg",
|
||||
"heaven_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Arid 2",
|
||||
textures = {
|
||||
"arid2_up.jpg^[transformR270",
|
||||
"arid2_dn.jpg^[transformR90",
|
||||
"arid2_ft.jpg",
|
||||
"arid2_bk.jpg",
|
||||
"arid2_lf.jpg",
|
||||
"arid2_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
epic.register_skybox({
|
||||
name = "Blizzard",
|
||||
textures = {
|
||||
"blizzard_up.jpg^[transformR270",
|
||||
"blizzard_dn.jpg^[transformR90",
|
||||
"blizzard_ft.jpg",
|
||||
"blizzard_bk.jpg",
|
||||
"blizzard_lf.jpg",
|
||||
"blizzard_rt.jpg"
|
||||
}
|
||||
})
|
||||
dofile(MP.."/alias.lua")
|
||||
dofile(MP.."/skyboxes.lua")
|
||||
dofile(MP.."/functions.lua")
|
||||
dofile(MP.."/register.lua")
|
||||
dofile(MP.."/chatcommands.lua")
|
||||
dofile(MP.."/epic_block.lua")
|
||||
|
|
4
mod.conf
4
mod.conf
|
@ -1,3 +1,3 @@
|
|||
name = epic_skybox
|
||||
description = skyboxes for the epic mod
|
||||
depends = epic
|
||||
description = skyboxe features for the epic mod
|
||||
depends = epic, screwdriver
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
--[[
|
||||
skyboxdef = {
|
||||
name = "",
|
||||
color = {r=0, g=0, b=0},
|
||||
textures = {}
|
||||
}
|
||||
--]]
|
||||
|
||||
-- register a new skybox
|
||||
epic_skybox.register = function(skyboxdef)
|
||||
table.insert(epic_skybox.list, skyboxdef)
|
||||
end
|
|
@ -0,0 +1,139 @@
|
|||
|
||||
|
||||
-- common (plain) skyboxes
|
||||
epic_skybox.register({ name = "default" })
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Plain Black",
|
||||
color = {r=0, g=0, b=0}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Plain Red",
|
||||
color = {r=255, g=0, b=0}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Plain Green",
|
||||
color = {r=0, g=255, b=0}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Plain Blue",
|
||||
color = {r=0, g=0, b=255}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Plain White",
|
||||
color = {r=255, g=255, b=255}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Mars",
|
||||
textures = {
|
||||
"mars_up.jpg^[transformR270",
|
||||
"mars_dn.jpg^[transformR90",
|
||||
"mars_ft.jpg",
|
||||
"mars_bk.jpg",
|
||||
"mars_lf.jpg",
|
||||
"mars_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Space with Earth",
|
||||
textures = {
|
||||
"space_sky.png",
|
||||
"space_sky2.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png"
|
||||
}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Moon",
|
||||
textures = {
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png",
|
||||
"space_sky.png"
|
||||
}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Deepspace",
|
||||
textures = {
|
||||
"sky_pos_z.png",
|
||||
"sky_neg_z.png^[transformR180",
|
||||
"sky_neg_y.png^[transformR270",
|
||||
"sky_pos_y.png^[transformR270",
|
||||
"sky_pos_x.png^[transformR270",
|
||||
"sky_neg_x.png^[transformR90"
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Asteroids",
|
||||
textures = {
|
||||
"asteroids_up.jpg^[transformR270",
|
||||
"asteroids_dn.jpg^[transformR90",
|
||||
"asteroids_ft.jpg",
|
||||
"asteroids_bk.jpg",
|
||||
"asteroids_lf.jpg",
|
||||
"asteroids_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Nebulae",
|
||||
textures = {
|
||||
"nebulae_up.jpg^[transformR270",
|
||||
"nebulae_dn.jpg^[transformR90",
|
||||
"nebulae_ft.jpg",
|
||||
"nebulae_bk.jpg",
|
||||
"nebulae_lf.jpg",
|
||||
"nebulae_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Heaven",
|
||||
textures = {
|
||||
"heaven_up.jpg^[transformR270",
|
||||
"heaven_dn.jpg^[transformR90",
|
||||
"heaven_ft.jpg",
|
||||
"heaven_bk.jpg",
|
||||
"heaven_lf.jpg",
|
||||
"heaven_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Arid 2",
|
||||
textures = {
|
||||
"arid2_up.jpg^[transformR270",
|
||||
"arid2_dn.jpg^[transformR90",
|
||||
"arid2_ft.jpg",
|
||||
"arid2_bk.jpg",
|
||||
"arid2_lf.jpg",
|
||||
"arid2_rt.jpg"
|
||||
}
|
||||
})
|
||||
|
||||
epic_skybox.register({
|
||||
name = "Blizzard",
|
||||
textures = {
|
||||
"blizzard_up.jpg^[transformR270",
|
||||
"blizzard_dn.jpg^[transformR90",
|
||||
"blizzard_ft.jpg",
|
||||
"blizzard_bk.jpg",
|
||||
"blizzard_lf.jpg",
|
||||
"blizzard_rt.jpg"
|
||||
}
|
||||
})
|
Loading…
Reference in New Issue