1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Crafting definition in scripts

This commit is contained in:
Perttu Ahola 2011-11-17 02:28:46 +02:00
parent 8dd3622c6d
commit 9d5b458479
12 changed files with 634 additions and 57 deletions

View file

@ -43,6 +43,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "scriptapi.h"
#include "nodedef.h"
#include "tooldef.h"
#include "craftdef.h"
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
@ -988,6 +989,7 @@ Server::Server(
m_lua(NULL),
m_toolmgr(createToolDefManager()),
m_nodedef(createNodeDefManager()),
m_craftdef(createCraftDefManager()),
m_thread(this),
m_emergethread(this),
m_time_counter(0),
@ -4332,14 +4334,19 @@ void Server::UpdateCrafting(u16 peer_id)
}
if(clist && rlist && player->craftresult_is_preview)
{
InventoryItem *items[9];
for(u16 i=0; i<9; i++)
{
items[i] = clist->getItem(i);
}
// Get result of crafting grid
InventoryItem *result = craft_get_result(items, this);
std::vector<InventoryItem*> items;
for(u16 i=0; i<9; i++){
if(clist->getItem(i) == NULL)
items.push_back(NULL);
else
items.push_back(clist->getItem(i)->clone());
}
CraftPointerInput cpi(3, items);
InventoryItem *result = m_craftdef->getCraftResult(cpi, this);
//InventoryItem *result = craft_get_result(items, this);
if(result)
rlist->addItem(result);
}
@ -4424,6 +4431,10 @@ INodeDefManager* Server::getNodeDefManager()
{
return m_nodedef;
}
ICraftDefManager* Server::getCraftDefManager()
{
return m_craftdef;
}
ITextureSource* Server::getTextureSource()
{
return NULL;
@ -4441,6 +4452,10 @@ IWritableNodeDefManager* Server::getWritableNodeDefManager()
{
return m_nodedef;
}
IWritableCraftDefManager* Server::getWritableCraftDefManager()
{
return m_craftdef;
}
v3f findSpawnPos(ServerMap &map)
{