Fork of Advanced NPC for Minetest, using mobs_redo API.
Go to file
Hector Franqui 4c102a70a4 Spawner: Large code refactor to remove dependency on plotmarkers.
Most spawner functions can now be called without giving a plotmarker.
Move scanning functions to places.lua.
Places: Cleanup and add more area-scanning functions.
Schedules: Bugfix where schedules weren't being executed due to wrong
"end" order in the do_custom() function.
Data: Moved random data to "data" folder.
Textures: Add 14 male textures and 10 female textures.
Occupations: Small tweaks to "default_basic" occupation.
2017-08-25 09:31:45 -04:00
actions Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
backup Adds pathfinding library Jumper by Ronald Yonaba. This includes an implementation of the A* pathfinding algorithm which makes NPC now always get to their goal node. 2017-01-06 07:57:42 -05:00
data Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
locale First commit. Using mobs_npc code as start. 2016-11-12 07:06:09 -05:00
occupations Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
textures Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
trade Dialogues: Finish implementation of registered dialogues. 2017-07-19 14:00:29 -04:00
README.md Fix README.txt and restore correct spawning frequency. 2017-06-17 13:21:24 -04:00
depends.txt Add proper description.txt, depends.txt 2017-06-17 11:15:40 -04:00
description.txt Add proper description.txt, depends.txt 2017-06-17 11:15:40 -04:00
dialogue.lua Dialogues: Finish implementation of registered dialogues. 2017-07-19 14:00:29 -04:00
init.lua Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
license.txt Adds pathfinding library Jumper by Ronald Yonaba. This includes an implementation of the A* pathfinding algorithm which makes NPC now always get to their goal node. 2017-01-06 07:57:42 -05:00
mod.conf Progress on gifts and relationships. Still requires further debugging to understand some timer issues. 2016-11-14 06:28:37 -05:00
npc.lua Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
random_data.lua Dialogues: Finish implementation of registered dialogues. 2017-07-19 14:00:29 -04:00
relationships.lua Dialogues: Finish implementation of registered dialogues. 2017-07-19 14:00:29 -04:00
spawner.lua Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
spawner_marker.lua Spawner: Large code refactor to remove dependency on plotmarkers. 2017-08-25 09:31:45 -04:00
utils.lua Occupations: Add schedule check function, allow enqueuing of schedule check 2017-08-11 12:03:45 -04:00

README.md

advanced_npc

Introduction

Advanced NPC is a mod for Minetest using mobs_redo API. The goal of this mod is to be able to have live villages in Minetest. These NPCs are highly inspired by the typical NPCs of Harvest Moon games. The general idea is that on almost all buildings of a village there are NPCs that are kind of intelligent: they have daily tasks they perform, can speak to players, can trade with the player, can use their own items (chests and furnaces for example), know where to go around their house and village, can be lumbers, miners or any other Minetest-suitable profession and can ultimately engage into relationships with the player. And while basically only players are mentioned here, the ultimate goal is that they can do all of this also among themselves, so that villages are alive and evolving by themselves, without player intervention.

Installation

NOTE: Advanced NPC is still under development. While the mod is largely stable, it lacks one of the most important pieces: spawning. Currently, NPCs can be spawned using eggs (found in creative inventory as 'NPC') and by themselves on villages of the mg_villages mod. NPCs will spawn automatically on mg_villages villages and over time will populate the entire village. If something goes wrong, you can reset the village by:

  • Clearing all objects (in chat, type /clearobjects quick)
  • Restore original plotmarkers (in chat, type /restore_plotmarkers radius)
    • The radius can be any number, but it is recommended you use a not so large number. 200 is suitable. So stand in the middle of the village and then run that command. This will actually restore the village and will slowly make NPCs spawn again. Currently there's no way to disable NPCs spawning on village, except by going to spawner.lua and commenting out all of minetest.register_abm() code.

Download the mod here (link always pointing to latest version)

For this mod to work correctly, you also need to install the mobs_redo mod. After installation, make sure you enable it in your world.

License

advanced_npc is Copyright (C) 2016-2017 Hector Franqui (zorman2000), licensed under the GPLv3 license. See license.txt for details.

The pathfinder.lua file contains code slighlty modified from the pathfinder mod by MarkBu, which is licensed as WTFPL. See actions/pathfinder.lua for details.

Current NPC textures are from mobs_redo mod. The following textures are by Zorman2000:

  • marriage_ring.png - CC BY-SA

Documentation and API

This mod requires a good user manual, and also is planned to have an extensive API, properly documented. Unfortunately, these still aren't ready. A very very very WIP manual can be found in the wiki

Roadmap

See it on the wiki.