mirror of
https://github.com/mt-mods/hangglider.git
synced 2025-06-30 07:20:53 +02:00
Compare commits
2 Commits
fly_checks
...
master
Author | SHA1 | Date | |
---|---|---|---|
f970874855 | |||
071fe93cf5 |
@ -8,5 +8,6 @@ read_globals = {
|
|||||||
"vector", "ItemStack",
|
"vector", "ItemStack",
|
||||||
|
|
||||||
"player_monoids",
|
"player_monoids",
|
||||||
|
"pova",
|
||||||
"unifieddyes",
|
"unifieddyes",
|
||||||
}
|
}
|
||||||
|
25
init.lua
25
init.lua
@ -5,6 +5,7 @@ hangglider = {
|
|||||||
local S = hangglider.translator
|
local S = hangglider.translator
|
||||||
|
|
||||||
local has_player_monoids = minetest.get_modpath("player_monoids")
|
local has_player_monoids = minetest.get_modpath("player_monoids")
|
||||||
|
local has_pova = minetest.get_modpath("pova")
|
||||||
local has_areas = minetest.get_modpath("areas")
|
local has_areas = minetest.get_modpath("areas")
|
||||||
|
|
||||||
local enable_hud_overlay = minetest.settings:get_bool("hangglider.enable_hud_overlay", true)
|
local enable_hud_overlay = minetest.settings:get_bool("hangglider.enable_hud_overlay", true)
|
||||||
@ -41,22 +42,23 @@ if enable_flak then
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
local function set_hud_overlay(player, name, image)
|
local function set_hud_overlay(player, name, show)
|
||||||
if not enable_hud_overlay then
|
if not enable_hud_overlay then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if not hud_overlay_ids[name] then
|
if not hud_overlay_ids[name] and show == true then
|
||||||
hud_overlay_ids[name] = player:hud_add({
|
hud_overlay_ids[name] = player:hud_add({
|
||||||
hud_elem_type = "image",
|
hud_elem_type = "image",
|
||||||
text = image,
|
text = "hangglider_overlay.png",
|
||||||
position = {x = 0, y = 0},
|
position = {x = 0, y = 0},
|
||||||
scale = {x = -100, y = -100},
|
scale = {x = -100, y = -100},
|
||||||
alignment = {x = 1, y = 1},
|
alignment = {x = 1, y = 1},
|
||||||
offset = {x = 0, y = 0},
|
offset = {x = 0, y = 0},
|
||||||
z_index = -150
|
z_index = -150
|
||||||
})
|
})
|
||||||
else
|
elseif hud_overlay_ids[name] and show == false then
|
||||||
player:hud_change(hud_overlay_ids[name], "text", image)
|
player:hud_remove(hud_overlay_ids[name])
|
||||||
|
hud_overlay_ids[name] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -65,6 +67,10 @@ local function set_physics_overrides(player, overrides)
|
|||||||
for name, value in pairs(overrides) do
|
for name, value in pairs(overrides) do
|
||||||
player_monoids[name]:add_change(player, value, "hangglider:glider")
|
player_monoids[name]:add_change(player, value, "hangglider:glider")
|
||||||
end
|
end
|
||||||
|
elseif has_pova then
|
||||||
|
pova.add_override(player:get_player_name(), "hangglider:glider",
|
||||||
|
{jump = 0, speed = overrides.speed, gravity = overrides.gravity})
|
||||||
|
pova.do_override(player)
|
||||||
else
|
else
|
||||||
player:set_physics_override(overrides)
|
player:set_physics_override(overrides)
|
||||||
end
|
end
|
||||||
@ -75,6 +81,9 @@ local function remove_physics_overrides(player)
|
|||||||
for _, name in pairs({"jump", "speed", "gravity"}) do
|
for _, name in pairs({"jump", "speed", "gravity"}) do
|
||||||
player_monoids[name]:del_change(player, "hangglider:glider")
|
player_monoids[name]:del_change(player, "hangglider:glider")
|
||||||
end
|
end
|
||||||
|
elseif has_pova then
|
||||||
|
pova.del_override(player:get_player_name(), "hangglider:glider")
|
||||||
|
pova.do_override(player)
|
||||||
else
|
else
|
||||||
player:set_physics_override({jump = 1, speed = 1, gravity = 1})
|
player:set_physics_override({jump = 1, speed = 1, gravity = 1})
|
||||||
end
|
end
|
||||||
@ -167,7 +176,7 @@ local function hangglider_step(self, dtime)
|
|||||||
if not gliding then
|
if not gliding then
|
||||||
remove_physics_overrides(player)
|
remove_physics_overrides(player)
|
||||||
hanggliding_players[name] = nil
|
hanggliding_players[name] = nil
|
||||||
set_hud_overlay(player, name, "blank.png")
|
set_hud_overlay(player, name, false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -194,7 +203,7 @@ local function hangglider_use(stack, player)
|
|||||||
textures = {"wool_white.png^[multiply:#"..color, "default_wood.png"}
|
textures = {"wool_white.png^[multiply:#"..color, "default_wood.png"}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
set_hud_overlay(player, name, "hangglider_overlay.png")
|
set_hud_overlay(player, name, true)
|
||||||
set_physics_overrides(player, {jump = 0, gravity = 0.25})
|
set_physics_overrides(player, {jump = 0, gravity = 0.25})
|
||||||
hanggliding_players[name] = true
|
hanggliding_players[name] = true
|
||||||
if hangglider_uses > 0 then
|
if hangglider_uses > 0 then
|
||||||
@ -203,7 +212,7 @@ local function hangglider_use(stack, player)
|
|||||||
return stack
|
return stack
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
set_hud_overlay(player, name, "blank.png")
|
set_hud_overlay(player, name, false)
|
||||||
remove_physics_overrides(player)
|
remove_physics_overrides(player)
|
||||||
hanggliding_players[name] = nil
|
hanggliding_players[name] = nil
|
||||||
end
|
end
|
||||||
|
2
mod.conf
2
mod.conf
@ -1,5 +1,5 @@
|
|||||||
name = hangglider
|
name = hangglider
|
||||||
description = Adds a functional hang glider for exploring
|
description = Adds a functional hang glider for exploring
|
||||||
depends = default, wool, dye
|
depends = default, wool, dye
|
||||||
optional_depends = areas, player_monoids, unifieddyes
|
optional_depends = areas, player_monoids, pova, unifieddyes
|
||||||
min_minetest_version = 5.0
|
min_minetest_version = 5.0
|
||||||
|
Reference in New Issue
Block a user