forked from VoxeLibre/VoxeLibre
Initial Commit.
This commit is contained in:
parent
d44b00a20e
commit
11c5d36c55
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mcl_fovapi = {}
|
||||||
|
mcl_fovapi.default_fov = {}
|
||||||
|
mcl_fovapi.registered_modifiers = {}
|
||||||
|
mcl_fovapi.applied_modifiers = {}
|
||||||
|
function mcl_fovapi.register_modifier(name, fov_factor, time, exclusive, on_start, on_end)
|
||||||
|
function mcl_fovapi.apply_modifier(player, modifier_name)
|
|
@ -0,0 +1,60 @@
|
||||||
|
---
|
||||||
|
--- Copyright 2023, Michieal.
|
||||||
|
--- License: GPL3. (Default Mineclone2 License)
|
||||||
|
--- Created by michieal.
|
||||||
|
--- DateTime: 12/2/23 5:47 AM
|
||||||
|
---
|
||||||
|
|
||||||
|
mcl_fovapi = {}
|
||||||
|
|
||||||
|
-- Handles default fov for players
|
||||||
|
mcl_fovapi.default_fov = {}
|
||||||
|
mcl_fovapi.registered_modifiers = {}
|
||||||
|
mcl_fovapi.applied_modifiers = {}
|
||||||
|
|
||||||
|
-- set to blank on join (for 3rd party mods)
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
-- Assign default FOV
|
||||||
|
mcl_fovapi.default_fov[name] = player:get_fov()
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- clear when player leaves
|
||||||
|
minetest.register_on_leaveplayer(function(player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
-- Remove default FOV
|
||||||
|
mcl_fovapi.default_fov[name] = nil
|
||||||
|
end)
|
||||||
|
|
||||||
|
function mcl_fovapi.register_modifier(name, fov_factor, time, exclusive, on_start, on_end)
|
||||||
|
local def = {
|
||||||
|
modifer_name = name,
|
||||||
|
fov = fov_factor,
|
||||||
|
time = time,
|
||||||
|
exclusive = exclusive,
|
||||||
|
on_start = on_start,
|
||||||
|
on_end = on_end,
|
||||||
|
}
|
||||||
|
|
||||||
|
mcl_fovapi.registered_modifiers[name] = def
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function mcl_fovapi.apply_modifier(player, modifier_name)
|
||||||
|
|
||||||
|
if modifier_name == nil then return end
|
||||||
|
if mcl_fovapi.registered_modifiers[modifier_name] == nil then return end
|
||||||
|
|
||||||
|
local modifier = mcl_fovapi.registered_modifiers[modifier_name]
|
||||||
|
if modifier.on_start ~= nil then
|
||||||
|
modifier.on_start(player)
|
||||||
|
end
|
||||||
|
|
||||||
|
mcl_fovapi.applied_modifiers[player][modifier_name] = true -- set the applied to be true.
|
||||||
|
|
||||||
|
-- do modiifier apply code.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
name = mcl_fovapi
|
||||||
|
author = Michieal
|
||||||
|
description = An API for handling FOV changes.
|
||||||
|
depends = mcl_player
|
Loading…
Reference in New Issue