Add support for opaque lasers
This commit is contained in:
parent
1d3cbcea81
commit
b0f520ba89
@ -14,3 +14,5 @@ lzr_globals.SEABED_LEVEL = -1000
|
||||
lzr_globals.SEASTONE_LEVEL = -1002
|
||||
lzr_globals.GRAVITY = tonumber(minetest.settings:get("movement_gravity")) or 9.81
|
||||
lzr_globals.LASER_GLOW = 3
|
||||
|
||||
lzr_globals.OPAQUE_LASERS = minetest.settings:get_bool("lzr_opaque_lasers", false)
|
||||
|
@ -1,5 +1,15 @@
|
||||
local S = minetest.get_translator("lzr_laser")
|
||||
|
||||
local TEX_LASER
|
||||
local ALPHA_LASER
|
||||
if lzr_globals.OPAQUE_LASERS then
|
||||
TEX_LASER = "lzr_laser_laser_opaque.png"
|
||||
ALPHA_LASER = "clip"
|
||||
else
|
||||
TEX_LASER = "lzr_laser_laser.png"
|
||||
ALPHA_LASER = "blend"
|
||||
end
|
||||
|
||||
local mirror_out = {
|
||||
[0] = {1,0,0},
|
||||
[1] = {0,0,-1},
|
||||
@ -319,7 +329,7 @@ register_element("mirror", {
|
||||
{name="lzr_laser_mirror_block.png^lzr_laser_fixed.png", backface_culling=true},
|
||||
},
|
||||
tiles_on = {
|
||||
{name="lzr_laser_laser.png", backface_culling=true},
|
||||
{name=TEX_LASER, backface_culling=true},
|
||||
{name="lzr_laser_mirror_block.png^lzr_laser_fixed.png", backface_culling=true},
|
||||
{name="lzr_laser_mirror_mirror.png", backface_culling=true},
|
||||
{name="lzr_laser_mirror_block.png^lzr_laser_fixed.png", backface_culling=true},
|
||||
@ -330,12 +340,12 @@ register_element("mirror", {
|
||||
{name="lzr_laser_mirror_block.png", backface_culling=true},
|
||||
},
|
||||
tiles_takable_on = {
|
||||
{name="lzr_laser_laser.png", backface_culling=true},
|
||||
{name=TEX_LASER, backface_culling=true},
|
||||
{name="lzr_laser_mirror_block.png", backface_culling=true},
|
||||
{name="lzr_laser_mirror_mirror.png", backface_culling=true},
|
||||
{name="lzr_laser_mirror_block.png", backface_culling=true},
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
use_texture_alpha = ALPHA_LASER,
|
||||
drawtype = "mesh",
|
||||
mesh_off = "lzr_laser_mirror.obj",
|
||||
mesh_on = "lzr_laser_mirror_on.obj",
|
||||
@ -352,7 +362,7 @@ local tm_def = {
|
||||
description = S("Transmissive Mirror"),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "blend",
|
||||
use_texture_alpha = ALPHA_LASER,
|
||||
drawtype = "mesh",
|
||||
groups = { rotatable = 1, laser_block = 1 },
|
||||
sounds = lzr_sounds.node_sound_glass_defaults({
|
||||
@ -386,13 +396,13 @@ tm_def_on_01.light_source = lzr_globals.LASER_GLOW
|
||||
tm_def_on_01._lzr_transmissive_mirror_state = "01"
|
||||
tm_def_on_01.description = S("Transmissive Mirror (active, 01)")
|
||||
tm_def_on_01.tiles_off = {
|
||||
{name="lzr_laser_laser.png", backface_culling=true},
|
||||
{name=TEX_LASER, backface_culling=true},
|
||||
{name="lzr_laser_transmissive_mirror_block.png^lzr_laser_fixed.png", backface_culling=true},
|
||||
{name="lzr_laser_transmissive_mirror_mirror.png", backface_culling=true},
|
||||
{name="lzr_laser_transmissive_mirror_mirror_out.png", backface_culling=true},
|
||||
}
|
||||
tm_def_on_01.tiles_takable_off = {
|
||||
{name="lzr_laser_laser.png", backface_culling=true},
|
||||
{name=TEX_LASER, backface_culling=true},
|
||||
{name="lzr_laser_transmissive_mirror_block.png", backface_culling=true},
|
||||
{name="lzr_laser_transmissive_mirror_mirror.png", backface_culling=true},
|
||||
{name="lzr_laser_transmissive_mirror_mirror_out.png", backface_culling=true},
|
||||
|
@ -1,5 +1,17 @@
|
||||
local S = minetest.get_translator("lzr_laser")
|
||||
|
||||
local TEX_LASER, TEX_LASER_NOCENTER
|
||||
local ALPHA_LASER
|
||||
if lzr_globals.OPAQUE_LASERS then
|
||||
TEX_LASER = "lzr_laser_laser_opaque.png"
|
||||
TEX_LASER_NOCENTER = "lzr_laser_laser_nocenter_opaque.png"
|
||||
ALPHA_LASER = "clip"
|
||||
else
|
||||
TEX_LASER = "lzr_laser_laser.png"
|
||||
TEX_LASER_NOCENTER = "lzr_laser_laser_nocenter.png"
|
||||
ALPHA_LASER = "blend"
|
||||
end
|
||||
|
||||
-- Distance from center to side of the laser beam square. Not really the radius, but it sounds cooler. :P
|
||||
local LASER_RADIUS = -1/16
|
||||
|
||||
@ -73,23 +85,23 @@ for i=1, 7 do
|
||||
local tex
|
||||
if axes == 1 then
|
||||
if axes_active.x then
|
||||
tex = { "lzr_laser_laser.png", "lzr_laser_laser.png", "blank.png", "blank.png", "lzr_laser_laser.png" }
|
||||
tex = { TEX_LASER, TEX_LASER, "blank.png", "blank.png", TEX_LASER }
|
||||
elseif axes_active.y then
|
||||
tex = { "blank.png", "blank.png", "lzr_laser_laser.png" }
|
||||
tex = { "blank.png", "blank.png", TEX_LASER }
|
||||
else
|
||||
tex = { "lzr_laser_laser.png", "lzr_laser_laser.png", "lzr_laser_laser.png", "lzr_laser_laser.png", "blank.png" }
|
||||
tex = { TEX_LASER, TEX_LASER, TEX_LASER, TEX_LASER, "blank.png" }
|
||||
end
|
||||
elseif axes == 2 then
|
||||
if axes_active.x == false then
|
||||
tex = { "lzr_laser_laser_nocenter.png", "lzr_laser_laser_nocenter.png", "lzr_laser_laser.png", "lzr_laser_laser.png", "lzr_laser_laser_nocenter.png" }
|
||||
tex = { TEX_LASER_NOCENTER, TEX_LASER_NOCENTER, TEX_LASER, TEX_LASER, TEX_LASER_NOCENTER }
|
||||
elseif axes_active.y == false then
|
||||
tex = { "lzr_laser_laser.png", "lzr_laser_laser.png", "lzr_laser_laser_nocenter.png" }
|
||||
tex = { TEX_LASER, TEX_LASER, TEX_LASER_NOCENTER }
|
||||
else
|
||||
tex = { "lzr_laser_laser_nocenter.png", "lzr_laser_laser_nocenter.png", "lzr_laser_laser_nocenter.png", "lzr_laser_laser_nocenter.png", "lzr_laser_laser.png" }
|
||||
tex = { TEX_LASER_NOCENTER, TEX_LASER_NOCENTER, TEX_LASER_NOCENTER, TEX_LASER_NOCENTER, TEX_LASER }
|
||||
end
|
||||
|
||||
elseif axes == 3 then
|
||||
tex = { "lzr_laser_laser_nocenter.png" }
|
||||
tex = { TEX_LASER_NOCENTER }
|
||||
end
|
||||
|
||||
-- Finally register the laser
|
||||
@ -100,7 +112,7 @@ for i=1, 7 do
|
||||
drawtype = "nodebox",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
use_texture_alpha = "blend",
|
||||
use_texture_alpha = ALPHA_LASER,
|
||||
tiles = tex,
|
||||
pointable = false,
|
||||
buildable_to = true,
|
||||
|
BIN
mods/lzr_laser/textures/lzr_laser_laser_opaque.png
Normal file
BIN
mods/lzr_laser/textures/lzr_laser_laser_opaque.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.8 KiB |
Loading…
x
Reference in New Issue
Block a user