code cleanup and updates for recents changes in mobs_redo api and minetest (translation)
parent
e809a938a3
commit
b58cd80e8d
|
@ -1,4 +1,3 @@
|
||||||
default
|
default
|
||||||
mobs
|
mobs
|
||||||
mobs_creatures?
|
mobs_creatures?
|
||||||
treasurer?
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Bonjour.
|
||||||
|
Etc.
|
74
init.lua
74
init.lua
|
@ -1,13 +1,14 @@
|
||||||
--
|
-- This mod provides NPCs using the mobs_redo api
|
||||||
|
|
||||||
|
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
local modpath = minetest.get_modpath(modname)
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
|
||||||
|
|
||||||
-- Load support for intllib.
|
-- Load support for translations.
|
||||||
local S, NS = dofile(modpath.."/intllib.lua")
|
local S = minetest.get_translator('mobs')
|
||||||
mobs.intllib = S
|
mobs.translator = S
|
||||||
|
|
||||||
|
-- Load support for documentation
|
||||||
mobs.textstrings = {}
|
mobs.textstrings = {}
|
||||||
mobs.textstrings.longdesc = {}
|
mobs.textstrings.longdesc = {}
|
||||||
mobs.textstrings.usagehelp = {}
|
mobs.textstrings.usagehelp = {}
|
||||||
|
@ -24,24 +25,12 @@ dofile(modpath .. "/mobs_definitions.lua")
|
||||||
|
|
||||||
dofile(modpath .. "/npc_lambda.lua")
|
dofile(modpath .. "/npc_lambda.lua")
|
||||||
dofile(modpath .. "/npc_custom.lua")
|
dofile(modpath .. "/npc_custom.lua")
|
||||||
--dofile(modpath .. "/npc_trader.lua")
|
|
||||||
--dofile(modpath .. "/npc_soldier.lua")
|
|
||||||
--dofile(modpath .. "/npc_monk.lua")
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Map generation
|
|
||||||
--
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(modpath .. "/mobs_mapgen.lua")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Compatibility
|
-- Mods Compatibility
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
--dofile(modpath .. "/lucky_block.lua")
|
--dofile(modpath .. "/lucky_block.lua")
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -49,24 +38,37 @@ dofile(modpath .. "/npc_custom.lua")
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
minetest.register_abm({
|
--
|
||||||
label = "Bed npc spawning",
|
-- Map generation (for spawner)
|
||||||
nodenames = {"default:bed"},
|
--
|
||||||
-- neighbors = {"default:water_source", "default:water_flowing"},
|
|
||||||
interval = 150, -- Operation interval in seconds
|
--dofile(modpath .. "/mobs_mapgen.lua")
|
||||||
chance = 1, -- Chance of trigger per-node per-interval is 1.0 / this
|
|
||||||
-- catch_up = true, -- If true, catch-up behaviour is enabled --[[
|
--
|
||||||
--~ ^ The chance value is temporarily reduced when returning to
|
-- WIP: Make Ncps spawn around beds, or not-owned beds, or maybe use a mod register a mobs_bed instead of using the default...
|
||||||
--~ an area to simulate time lost by the area being unattended.
|
-- -- The point is that if you build a village with beds in houses, there will be some npcs there.
|
||||||
--~ ^ Note chance value can often be reduced to 1 ]]
|
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
--minetest.register_abm({
|
||||||
local meta = minetest.get_meta(pos)
|
-- label = "Bed npc spawning",
|
||||||
local spawn = meta:get_string("spawn")
|
-- nodenames = {"default:bed"},
|
||||||
if not spawn then return end
|
-- -- neighbors = {"default:water_source", "default:water_flowing"},
|
||||||
spawn_pos = math.random()
|
-- interval = 150, -- Operation interval in seconds
|
||||||
end,
|
-- chance = 1, -- Chance of trigger per-node per-interval is 1.0 / this
|
||||||
})
|
-- -- catch_up = true, -- If true, catch-up behaviour is enabled --[[
|
||||||
|
-- --~ ^ The chance value is temporarily reduced when returning to
|
||||||
|
-- --~ an area to simulate time lost by the area being unattended.
|
||||||
|
-- --~ ^ Note chance value can often be reduced to 1 ]]
|
||||||
|
-- action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
-- local meta = minetest.get_meta(pos)
|
||||||
|
-- local spawn = meta:get_string("spawn")
|
||||||
|
-- --if not spawn then return end
|
||||||
|
-- --spawn_pos = math.random()
|
||||||
|
-- end,
|
||||||
|
--})
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Notification
|
||||||
|
--
|
||||||
|
|
||||||
print ("[MOD] Mobs Redo 'mobs_bundle_npc' loaded")
|
print ("[MOD] Mobs Redo 'mobs_npc' loaded")
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
-- This file adds function to complete the mobs_redo api
|
-- This file adds function to complete the mobs_redo api
|
||||||
--
|
--
|
||||||
|
|
||||||
local S = mobs.intllib
|
-- Translator
|
||||||
|
local S = mobs.translator
|
||||||
|
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
local modpath = minetest.get_modpath(modname)
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
-- This file register nodes and items needed by this mod
|
-- This file register nodes and items needed by this mod
|
||||||
--
|
--
|
||||||
|
|
||||||
local S = mobs.intllib
|
-- Translator
|
||||||
|
local S = mobs.translator
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
local modpath = minetest.get_modpath(modname)
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
-- This file contains base définition used to most npcs
|
-- This file contains base définition used to most npcs
|
||||||
--
|
--
|
||||||
|
|
||||||
local S = mobs.intllib
|
-- Translator
|
||||||
|
local S = mobs.translator
|
||||||
|
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
local modpath = minetest.get_modpath(modname)
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
|
||||||
|
@ -10,24 +12,31 @@ if not mobs.npcs then mobs.npcs = {} end
|
||||||
|
|
||||||
mobs.npcs.base_def = {
|
mobs.npcs.base_def = {
|
||||||
|
|
||||||
|
-- Base NPC looks like players
|
||||||
|
-- -- Most values are from player api
|
||||||
type = "npc",
|
type = "npc",
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "character-old.b3d",
|
mesh = "character.b3d",
|
||||||
textures = {
|
textures = {"character.png", },
|
||||||
{"character.png"},
|
collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
||||||
},
|
|
||||||
collisionbox = {-0.25, -1, -0.3, 0.25, 0.75, 0.3},
|
|
||||||
animation = {
|
animation = {
|
||||||
speed_normal = 15, speed_run = 25,
|
|
||||||
|
speed_normal = 20, speed_run = 32, run_speed = 32,
|
||||||
stand_start = 0, stand_end = 79,
|
stand_start = 0, stand_end = 79,
|
||||||
sit_start = 81, sit_end = 160,
|
sit_start = 81, sit_end = 160,
|
||||||
|
-- stand2_start = 81, stand2_end = 160, -- sit
|
||||||
lay_start = 162, lay_end = 166,
|
lay_start = 162, lay_end = 166,
|
||||||
-- death = {start = 162, stop = 166, speed = 28, loop = false, duration = 2.12},
|
walk_start = 168, walk_end = 187,
|
||||||
-- death_start = 162, death_end = 166,
|
|
||||||
walk_start = 168, walk_end = 188,
|
|
||||||
mine_start = 189, mine_end = 198,
|
mine_start = 189, mine_end = 198,
|
||||||
attack_start = 200, attack_end = 119, -- walk_mine
|
walk_mine_start = 200, walk_mine__end = 119,
|
||||||
run_start = 221, run_end = 241
|
punch_start = 200, punch_end = 119, -- walk_mine
|
||||||
|
-- punch2_start = 200, punch2_end = 119, -- walk_mine
|
||||||
|
-- shoot_start = 200, shoot_end = 119, -- walk_mine
|
||||||
|
run_start = 221, run_end = 241, -- ??
|
||||||
|
|
||||||
|
die_start = 162, die_end = 166, -- lay
|
||||||
|
die_loop = true, die_speed = 28,
|
||||||
},
|
},
|
||||||
|
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
|
@ -38,6 +47,9 @@ mobs.npcs.base_def = {
|
||||||
--~ -- damage = "mobs_zombie_hit",
|
--~ -- damage = "mobs_zombie_hit",
|
||||||
--~ -- death = "mobs_zombie_death",
|
--~ -- death = "mobs_zombie_death",
|
||||||
--~ },
|
--~ },
|
||||||
|
|
||||||
|
-- NPC aren't made to be fighters
|
||||||
|
-- killing them should be either very discouraged or very boring
|
||||||
hp_min = 12,
|
hp_min = 12,
|
||||||
hp_max = 35,
|
hp_max = 35,
|
||||||
armor = 200,
|
armor = 200,
|
||||||
|
@ -48,20 +60,23 @@ mobs.npcs.base_def = {
|
||||||
attack_type = "dogfight",
|
attack_type = "dogfight",
|
||||||
group_attack = true,
|
group_attack = true,
|
||||||
view_range = 10,
|
view_range = 10,
|
||||||
walk_chance = 75,
|
-- stand_chance = 14,
|
||||||
|
walk_chance = 74,
|
||||||
walk_velocity = 1,
|
walk_velocity = 1,
|
||||||
run_velocity = 2,
|
run_velocity = 2.2,
|
||||||
step_height = 0.6,
|
|
||||||
fear_height = 3,
|
fear_height = 3,
|
||||||
jump = true,
|
jump = true,
|
||||||
|
stepheight = 1.3,
|
||||||
jump_height = 1.1,
|
jump_height = 1.1,
|
||||||
|
-- fly_in = {"default:water_source", "default:water_flowing", "default:river_water_source", "default:river_water_flowing"},
|
||||||
|
-- floats = 0,
|
||||||
--~ drops = {
|
--~ drops = {
|
||||||
--~ {name = "mobs:rotten_flesh", chance = 6, min = 1, max = 3,}
|
--~ {name = "mobs:rotten_flesh", chance = 6, min = 1, max = 3,}
|
||||||
--~ },
|
--~ },
|
||||||
lifetimer = 180, -- 3 minutes
|
lifetimer = 180, -- 3 minutes
|
||||||
shoot_interval = 135, -- (lifetimer - (lifetimer / 4)), borrowed for do_custom time
|
shoot_interval = 135, -- (lifetimer - (lifetimer / 4)), borrowed from do_custom time
|
||||||
|
|
||||||
|
-- Default right click is to look at player and says something
|
||||||
on_rightclick = function(self, clicker)
|
on_rightclick = function(self, clicker)
|
||||||
-- Look at the player
|
-- Look at the player
|
||||||
mobs.npcs.turn_to_player( self, clicker )
|
mobs.npcs.turn_to_player( self, clicker )
|
||||||
|
@ -73,6 +88,10 @@ mobs.npcs.base_def = {
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Spawning
|
||||||
|
-- -- This should be improved
|
||||||
|
-- -- Poeples are a bit like sheeps, you can find them were there is sun and grass or trees
|
||||||
|
|
||||||
local spawn_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter",
|
local spawn_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter",
|
||||||
"default:dirt_with_coniferous_litter", "ethereal:bamboo_dirt"}
|
"default:dirt_with_coniferous_litter", "ethereal:bamboo_dirt"}
|
||||||
-- local spawn_on = {"group:soil"}
|
-- local spawn_on = {"group:soil"}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
-- Configurable NPC
|
-- Configurable NPC
|
||||||
-- This is a configurable NPC
|
-- This is a configurable NPC
|
||||||
--
|
--
|
||||||
|
|
||||||
-- Intllib
|
-- Translator
|
||||||
local S = mobs.intllib
|
local S = mobs.translator
|
||||||
|
|
||||||
local vlog = "action" --"info"
|
local vlog = "action" --"info"
|
||||||
-- Mod related infos
|
-- Mod related infos
|
||||||
|
@ -461,7 +461,7 @@ minetest.register_node(spawner_id, {
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.5, -0.48, -0.5, 0.5, -0.5, 0.5},
|
fixed = {-0.5, -0.48, -0.5, 0.3, -0.5, 0.3},
|
||||||
},
|
},
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
-- minetest.get_node_timer(pos):start(20)
|
-- minetest.get_node_timer(pos):start(20)
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
-- Basic NPC
|
-- Basic NPC
|
||||||
-- Wander around and says things
|
-- Wander around and says random things
|
||||||
|
|
||||||
|
-- Translator
|
||||||
|
local S = mobs.translator
|
||||||
|
|
||||||
-- Intllib
|
|
||||||
local S = mobs.intllib
|
|
||||||
|
|
||||||
-- Mod related infos
|
-- Mod related infos
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
|
@ -23,20 +24,16 @@ local mob_def = mobs.npcs.base_def
|
||||||
local textures = mobs.npcs.get_textures_array("character_lambda_",modname)
|
local textures = mobs.npcs.get_textures_array("character_lambda_",modname)
|
||||||
if textures then mob_def.textures = textures end
|
if textures then mob_def.textures = textures end
|
||||||
|
|
||||||
|
|
||||||
-- Set specific interactions (say something)
|
-- Set specific interactions (say something)
|
||||||
|
|
||||||
|
|
||||||
-- Basic npc don't not fight
|
-- Basic npc don't not fight
|
||||||
mob_def.runaway = true
|
mob_def.runaway = true
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Register Npc
|
-- Register Npc
|
||||||
--
|
--
|
||||||
mobs:register_mob(mob_id, mob_def)
|
mobs:register_mob(mob_id, mob_def)
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Register Spawn condition and egg
|
-- Register Spawn condition and egg
|
||||||
--
|
--
|
||||||
|
@ -46,7 +43,6 @@ local mob_spawndef = mobs.npcs.base_spawndef
|
||||||
|
|
||||||
-- Add specific infos
|
-- Add specific infos
|
||||||
mob_spawndef.name = mob_id
|
mob_spawndef.name = mob_id
|
||||||
--~ mob_spawndef.node = {"group:soil"}
|
|
||||||
|
|
||||||
-- Regiser spawn
|
-- Regiser spawn
|
||||||
mobs:spawn(mob_spawndef)
|
mobs:spawn(mob_spawndef)
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
# This file contains settings of mobs_bundle that can be changed in
|
# This file contains settings of mobs_napcs that can be changed in
|
||||||
# minetest.conf
|
# minetest.conf
|
||||||
|
|
||||||
# General
|
# Not implemented yet
|
||||||
|
mobs.npcs.enable_childrens bool true
|
||||||
# Birds
|
mobs.npcs.enable_harmful_revenant bool true
|
||||||
mobs.animal_birds.enable_gulls bool true
|
mobs.npcs.revenants enum mobs:zombie,mobs:mummy,mobs:ghost
|
||||||
mobs.animal_birds.enable_large_birds bool false
|
mobs.npcs.enable_harmful_mummie bool true
|
||||||
mobs.animal_birds.enable_large_birds bool true
|
mobs.npcs.enable_childrens bool true
|
||||||
|
mobs.npcs.enable_childrens bool true
|
||||||
# Fish
|
|
||||||
mobs.animal_fish.sprite_version bool false
|
|
||||||
|
|
||||||
# Zombies
|
|
||||||
mobs.monster_zombie.enable_mini_zombies bool false
|
|
||||||
|
|
Loading…
Reference in New Issue