TenPlus1 wrote:...
Each mob in Mobs Redo can easily be disabled by commenting out the appropriate line in the init.lua file...
TenPlus1 wrote:Having a single mob api keeps the size of additional mobs mods to a minimum not having to include their own api each time, also it is a LOT easier to spot and fix bugs instead of going through each mod if one ever does conflict with the other, and new features and improvements are spread across each mob using the api...
mobs:register_mob(name, def) registers a new mob (the meaning of "name" and "def" ought to be explained here; especially the values the table def may contain and which meaning each has)
mobs.spawning_mobs = {} supposedly a list of mobs that will be spawned? global variables are part of the api as well
mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height)
effect(pos, amount, texture, max_size)
mobs:explosion(pos, radius, fire, smoke, sound)
check_for_death(self)
calc_velocity(pos1, pos2, old_vel, power)
entity_physics(pos, radius)
mobs:register_arrow(name, def)
process_weapon(player, time_from_last_punch, tool_capabilities)
mobs:register_egg(mob, desc, background, addegg)
twoelk wrote:Easy for the user would be some GUI with some funny mugshots of each mob as icon that I could just punch to activate or deactivate.
But then again that would not be quite so trivial for the coder to provide.
TeTpaAka wrote:It could be a little problematic that there are multiple different backends. There are, at least:
simple mobs by Pilzadam (+some forks that don't change the api much)
mobs redo by TenPlus1
creatures by BlockMen
creatures by MirceaKitsune
... (probably some more)
TePpaAka wrote:The difficulty isn't the amount of backends, but the different API. That way, these aren't interchangeable. Maybe this could be solved by adding a middleware that communicates with the backends and the individual mobs?
TenPlus1 wrote:I've re-worked the Mobs Redo mod to be more modular so players can easily enable/disable any of the mobs inside... Make sure the actual 'mobs' mod is enabled though in the pack otherwise nothing will work :)
twoelk wrote:So all that needs to be done is extend that api with any new features added by any mods based on "mobs".
twoelk wrote:The next step would be to get the mobapi somehow included in mt-game or maybe later even into the engine, maybe first as lua in builtin or whatever and later on ...
twoelk wrote:maybe step by step is more realistic than the one big solving all problems at once solution
TenPlus1 wrote:I'm constantly adding features to the Mobs Redo api in the hope that mod developers will use it for adding their own mobs and have a modular version available to enable/disable mobs inside and to make adding your own a lot easier:
viewtopic.php?f=11&t=9917&start=275#p178778
bdjnk wrote:The arguments in favor of a unified api are not particularly compelling.
rubenwardy wrote:bdjnk wrote:The arguments in favor of a unified api are not particularly compelling.
advantages:disadvantages:
- less code repetition.
- smaller mods.
- easier to update shared code, rather than having to update all the mobs mod.
- api may not have the behaviour you want (not a problem if the API is extendible)
- one more mod to install
TenPlus1 wrote:Blood can be disabled by setting the "mobs_enable_blood" flag in minetest.conf file.
Default meat and magic lasso items are registered by default which is not "useless cruft"
Attack settings for each mob/monster can be tweaked in the mod code if someone wishes to make them more powerful or immune to hand attack.
The api is suppose to be a fast mob system with many features available for use, not a fully fledged A.I. to have them make breakfast for you...
Wuzzy wrote:I would be glad to see that Mobs Redo would become truly generic and modular, not just like any other Simple Mobs forks.
Users browsing this forum: No registered users and 9 guests