summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2017-10-09 11:59:01 +0100
committerTenPlus1 <kinsellaja@yahoo.com>2017-10-09 11:59:01 +0100
commit2ffd942c2ae46dc551bb5553a304764715489f19 (patch)
tree68826bbefbf1b2b7639f8820a638ecabcc3dcb3c
parent27fe687f8a1fa8d12d321460dcc7f9dbe5de60b0 (diff)
updated to newer 0.4.16 functions
-rw-r--r--api.lua44
-rw-r--r--api.txt4
-rw-r--r--spawner.lua2
3 files changed, 29 insertions, 21 deletions
diff --git a/api.lua b/api.lua
index 977a8f4..0930e9c 100644
--- a/api.lua
+++ b/api.lua
@@ -1,9 +1,9 @@
--- Mobs Api (4th October 2017)
+-- Mobs Api
mobs = {}
mobs.mod = "redo"
-mobs.version = "20171004"
+mobs.version = "20171009"
-- Intllib
@@ -15,6 +15,7 @@ mobs.intllib = S
-- CMI support check
local use_cmi = minetest.global_exists("cmi")
+
-- Invisibility mod check
mobs.invis = {}
if minetest.global_exists("invisibility") then
@@ -22,6 +23,13 @@ if minetest.global_exists("invisibility") then
end
+-- creative check
+local creative_mode_cache = minetest.settings:get_bool("creative_mode")
+function mobs.is_creative(name)
+ return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
+end
+
+
-- localize math functions
local pi = math.pi
local square = math.sqrt
@@ -44,15 +52,15 @@ end
-- Load settings
-local damage_enabled = minetest.setting_getbool("enable_damage")
-local peaceful_only = minetest.setting_getbool("only_peaceful_mobs")
-local disable_blood = minetest.setting_getbool("mobs_disable_blood")
-local creative = minetest.setting_getbool("creative_mode")
-local spawn_protected = minetest.setting_getbool("mobs_spawn_protected") ~= false
-local remove_far = minetest.setting_getbool("remove_far_mobs")
-local difficulty = tonumber(minetest.setting_get("mob_difficulty")) or 1.0
-local show_health = minetest.setting_getbool("mob_show_health") ~= false
-local max_per_block = tonumber(minetest.setting_get("max_objects_per_block") or 99)
+local damage_enabled = minetest.settings:get_bool("enable_damage")
+local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs")
+local disable_blood = minetest.settings:get_bool("mobs_disable_blood")
+local creative = minetest.settings:get_bool("creative_mode")
+local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false
+local remove_far = minetest.settings:get_bool("remove_far_mobs")
+local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0
+local show_health = minetest.settings:get_bool("mob_show_health") ~= false
+local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99)
-- Peaceful mode message so players will know there are no monsters
if peaceful_only then
@@ -63,8 +71,8 @@ if peaceful_only then
end
-- calculate aoc range for mob count
-local aosrb = tonumber(minetest.setting_get("active_object_send_range_blocks"))
-local abr = tonumber(minetest.setting_get("active_block_range"))
+local aosrb = tonumber(minetest.settings:get("active_object_send_range_blocks"))
+local abr = tonumber(minetest.settings:get("active_block_range"))
local aoc_range = max(aosrb, abr) * 16
-- pathfinding settings
@@ -2802,7 +2810,7 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
interval, chance, aoc, min_height, max_height, day_toggle, on_spawn)
-- chance/spawn number override in minetest.conf for registered mob
- local numbers = minetest.setting_get(name)
+ local numbers = minetest.settings:get(name)
if numbers then
numbers = numbers:split(",")
@@ -3225,7 +3233,7 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative)
end
-- if not in creative then take item
- if not creative then
+ if not mobs.is_creative(placer:get_player_name()) then
itemstack:take_item()
end
end
@@ -3380,7 +3388,7 @@ function mobs:protect(self, clicker)
return true -- false
end
- if not creative then
+ if not mobs.is_creative(clicker:get_player_name()) then
tool:take_item() -- take 1 protection rune
clicker:set_wielded_item(tool)
end
@@ -3413,7 +3421,7 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
if follow_holding(self, clicker) then
-- if not in creative then take item
- if not creative then
+ if not mobs.is_creative(clicker:get_player_name()) then
local item = clicker:get_wielded_item()
@@ -3538,7 +3546,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
update_tag(mob_obj[name])
-- if not in creative then take item
- if not creative then
+ if not mobs.is_creative(name) then
mob_sta[name]:take_item()
diff --git a/api.txt b/api.txt
index ed7cb7c..cfbf50d 100644
--- a/api.txt
+++ b/api.txt
@@ -36,7 +36,7 @@ This functions registers a new mob as a Minetest entity.
'visual' same is in minetest.register_entity()
'visual_size' same is in minetest.register_entity()
'textures' same is in minetest.register_entity()
- although you can add multiple lines for random textures {{"texture1.png"},{"texture2.png"}},
+ although you can add multiple lines for random textures {{"texture1.png"},{"texture2.png"}},
'gotten_texture' alt. texture for when self.gotten value is set to true (used for shearing sheep)
'child_texture' texture of mod for when self.child is set to true
'mesh' same is in minetest.register_entity()
@@ -357,7 +357,7 @@ mobs:register_mob("mob_horse:horse", {
visual_size = {x = 1.20, y = 1.20},
mesh = "mobs_horse.x",
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4},
- animation = {
+ animation = {
speed_normal = 15,
speed_run = 30,
stand_start = 25,
diff --git a/spawner.lua b/spawner.lua
index 7e75aac..ca75dee 100644
--- a/spawner.lua
+++ b/spawner.lua
@@ -74,7 +74,7 @@ minetest.register_node("mobs:spawner", {
})
-local max_per_block = tonumber(minetest.setting_get("max_objects_per_block") or 99)
+local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99)
-- spawner abm
minetest.register_abm({