diff --git a/init.lua b/init.lua index 7dbcd95..ff27b98 100644 --- a/init.lua +++ b/init.lua @@ -143,11 +143,11 @@ end local function get_mob_group(def,nodes) if def.group then return def.group - if nodes[1] == "air" then + elseif nodes[1] == "air" then return "air" elseif nodes[1] == "default:water" then return "water" - elseif mob.type == "monster" then + elseif def.type == "monster" then return "agressive" else return "passive" @@ -171,15 +171,12 @@ spawnlite.register_specific = function(name,nodes,ignored_neighbors,min_light mob.min_height = min_height mob.max_height = max_height --Setup variables from mob def - local mob_def = minetest.registered_enities[name] + local mob_def = minetest.registered_entities[name] mob.size = get_mob_size(mob_def) mob.group = group or get_mob_group(mob_def,nodes) --Setup group table - -- - --i - --jkkljkj table.insert(spawnlite.mobs[mob.group],spawnlite.mobs[name]) end -dofile(minetest.get_modpath("spawnlite").."mobs/init.lua") +dofile(minetest.get_modpath("spawnlite").."/mobs/init.lua") diff --git a/mobs/api.lua b/mobs/api.lua index 744c9cc..da2869f 100644 --- a/mobs/api.lua +++ b/mobs/api.lua @@ -1,30 +1,5 @@ mobs = {} -local function get_mob_size(def) - local size = {} - local box = def.collisionbox - size.x = math.abs(box[1] - box[4]) - size.y = math.abs(box[2] - box[5]) - size.z = math.abs(box[3] - box[6]) - - return size -end - -local function get_mob_group(type,nodes) - if def.group then - return def.group - if nodes[1] == "air" then - return "air" - elseif nodes[1] == "default:water" then - return "water" - elseif type == "monster" then - return "agressive" - else - return "passive" - end - return nil -end - local function spawnlite_tracker(action,name) if action == "add" then --Spawnlite diff --git a/mobs/api.lua~ b/mobs/api.lua~ index 5509aec..da2869f 100644 --- a/mobs/api.lua~ +++ b/mobs/api.lua~ @@ -1,30 +1,5 @@ mobs = {} -local function get_mob_size(def) - local size = {} - local box = def.collisionbox - size.x = math.abs(box[1] - box[4]) - size.y = math.abs(box[2] - box[5]) - size.z = math.abs(box[3] - box[6]) - - return size -end - -local function get_mob_group(type,nodes) - if def.group then - return def.group - if nodes[1] == "air" then - return "air" - elseif nodes[1] == "default:water" then - return "water" - elseif type == "monster" then - return "agressive" - else - return "passive" - end - return nil -end - local function spawnlite_tracker(action,name) if action == "add" then --Spawnlite @@ -533,7 +508,7 @@ function mobs:register_mob(name, def) end function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, spawn_func) - spawnlite.register_specific(name,nodes,nil,min_light,max_light,1/chance,nil,nil,max_height,nil) + spawnlite.register_specific(name,nodes,nil,min_light,max_light,1/chance,active_object_count,nil,max_height,nil) end function mobs:register_arrow(name, def) diff --git a/mobs/init.lua b/mobs/init.lua index 066d314..0cb95a0 100644 --- a/mobs/init.lua +++ b/mobs/init.lua @@ -1,6 +1,6 @@ -dofile(minetest.get_modpath("spawnlite").."mobs/api.lua") +dofile(minetest.get_modpath("spawnlite").."/mobs/api.lua") -spawnliteregister_mob("spawnlitedirt_monster", { +mobs:register_mob("spawnlite:dirt_monster", { type = "monster", hp_max = 5, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, @@ -39,9 +39,10 @@ spawnliteregister_mob("spawnlitedirt_monster", { punch_end = 63, } }) -spawnliteregister_spawn("spawnlitedirt_monster", {"default:dirt_with_grass"}, 3, -1, 7000, 3, 31000) -spawnliteregister_mob("spawnlitestone_monster", { +mobs:register_spawn("spawnlite:dirt_monster", {"default:dirt_with_grass"}, 3, -1, 7000, 3, 31000) + +mobs:register_mob("spawnlite:stone_monster", { type = "monster", hp_max = 10, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, @@ -80,9 +81,9 @@ spawnliteregister_mob("spawnlitestone_monster", { punch_end = 63, } }) -spawnliteregister_spawn("spawnlitestone_monster", {"default:stone"}, 3, -1, 7000, 3, 0) +mobs:register_spawn("spawnlite:stone_monster", {"default:stone"}, 3, -1, 7000, 3, 0) -spawnliteregister_mob("spawnlitesand_monster", { +mobs:register_mob("spawnlite:sand_monster", { type = "monster", hp_max = 3, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, @@ -121,9 +122,9 @@ spawnliteregister_mob("spawnlitesand_monster", { punch_end = 105, }, }) -spawnliteregister_spawn("spawnlitesand_monster", {"default:desert_sand"}, 20, -1, 7000, 3, 31000) +mobs:register_spawn("spawnlite:sand_monster", {"default:desert_sand"}, 20, -1, 7000, 3, 31000) -spawnliteregister_mob("spawnlitetree_monster", { +mobs:register_mob("spawnlite:tree_monster", { type = "monster", hp_max = 5, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, @@ -167,9 +168,9 @@ spawnliteregister_mob("spawnlitetree_monster", { punch_end = 62, }, }) -spawnliteregister_spawn("spawnlitetree_monster", {"default:leaves", "default:jungleleaves"}, 3, -1, 7000, 3, 31000) +mobs:register_spawn("spawnlite:tree_monster", {"default:leaves", "default:jungleleaves"}, 3, -1, 7000, 3, 31000) -spawnliteregister_mob("spawnlitesheep", { +mobs:register_mob("spawnlite:sheep", { type = "animal", hp_max = 5, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, @@ -180,7 +181,7 @@ spawnliteregister_mob("spawnlitesheep", { walk_velocity = 1, armor = 200, drops = { - {name = "spawnlitemeat_raw", + {name = "spawnlite:meat_raw", chance = 1, min = 2, max = 3,}, @@ -240,14 +241,14 @@ spawnliteregister_mob("spawnlitesheep", { end end, }) -spawnliteregister_spawn("spawnlitesheep", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) +mobs:register_spawn("spawnlite:sheep", {"default:dirt_with_grass"}, 20, 8, 9000, 1, 31000) -minetest.register_craftitem("spawnlitemeat_raw", { +minetest.register_craftitem("spawnlite:meat_raw", { description = "Raw Meat", inventory_image = "mobs_meat_raw.png", }) -minetest.register_craftitem("spawnlitemeat", { +minetest.register_craftitem("spawnlite:meat", { description = "Meat", inventory_image = "mobs_meat.png", on_use = minetest.item_eat(8), @@ -255,12 +256,12 @@ minetest.register_craftitem("spawnlitemeat", { minetest.register_craft({ type = "cooking", - output = "spawnlitemeat", - recipe = "spawnlitemeat_raw", + output = "spawnlite:meat", + recipe = "spawnlite:meat_raw", cooktime = 5, }) -spawnliteregister_mob("spawnliterat", { +mobs:register_mob("spawnlite:rat", { type = "animal", hp_max = 1, collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2}, @@ -278,27 +279,27 @@ spawnliteregister_mob("spawnliterat", { on_rightclick = function(self, clicker) if clicker:is_player() and clicker:get_inventory() then - clicker:get_inventory():add_item("main", "spawnliterat") + clicker:get_inventory():add_item("main", "spawnlite:rat") self.object:remove() end end, }) -spawnliteregister_spawn("spawnliterat", {"default:dirt_with_grass", "default:stone"}, 20, -1, 7000, 1, 31000) +mobs:register_spawn("spawnlite:rat", {"default:dirt_with_grass", "default:stone"}, 20, -1, 7000, 1, 31000) -minetest.register_craftitem("spawnliterat", { +minetest.register_craftitem("spawnlite:rat", { description = "Rat", inventory_image = "mobs_rat_inventory.png", on_place = function(itemstack, placer, pointed_thing) if pointed_thing.above then - minetest.env:add_entity(pointed_thing.above, "spawnliterat") + minetest.env:add_entity(pointed_thing.above, "spawnlite:rat") itemstack:take_item() end return itemstack end, }) -minetest.register_craftitem("spawnliterat_cooked", { +minetest.register_craftitem("spawnlite:rat_cooked", { description = "Cooked Rat", inventory_image = "mobs_cooked_rat.png", @@ -307,12 +308,12 @@ minetest.register_craftitem("spawnliterat_cooked", { minetest.register_craft({ type = "cooking", - output = "spawnliterat_cooked", - recipe = "spawnliterat", + output = "spawnlite:rat_cooked", + recipe = "spawnlite:rat", cooktime = 5, }) -spawnliteregister_mob("spawnliteoerkki", { +mobs:register_mob("spawnlite:oerkki", { type = "monster", hp_max = 8, collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, @@ -346,9 +347,9 @@ spawnliteregister_mob("spawnliteoerkki", { speed_run = 15, }, }) -spawnliteregister_spawn("spawnliteoerkki", {"default:stone"}, 2, -1, 7000, 3, -10) +mobs:register_spawn("spawnlite:oerkki", {"default:stone"}, 2, -1, 7000, 3, -10) -spawnliteregister_mob("spawnlitedungeon_master", { +mobs:register_mob("spawnlite:dungeon_master", { type = "monster", hp_max = 10, collisionbox = {-0.7, -0.01, -0.7, 0.7, 2.6, 0.7}, @@ -374,7 +375,7 @@ spawnliteregister_mob("spawnlitedungeon_master", { light_damage = 0, on_rightclick = nil, attack_type = "shoot", - arrow = "spawnlitefireball", + arrow = "spawnlite:fireball", shoot_interval = 2.5, sounds = { attack = "mobs_fireball", @@ -390,9 +391,9 @@ spawnliteregister_mob("spawnlitedungeon_master", { speed_run = 15, }, }) -spawnliteregister_spawn("spawnlitedungeon_master", {"default:stone"}, 2, -1, 7000, 1, -50) +mobs:register_spawn("spawnlite:dungeon_master", {"default:stone"}, 2, -1, 7000, 1, -50) -spawnliteregister_arrow("spawnlitefireball", { +mobs:register_arrow("spawnlite:fireball", { visual = "sprite", visual_size = {x=1, y=1}, --textures = {{name="mobs_fireball.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.5}}}, FIXME