From e2f54943805c98f1f53cafc1a1b3eedcdf5960c7 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 25 Mar 2016 23:23:12 +1100 Subject: [PATCH] Testing the creatures via scripts I need to find some way to ensure type safety of userdata. --- rsc/scripts/setup_server.lua | 9 +++++++++ server/creatures/creature_manager.cpp | 2 +- server/creatures/creature_manager_api.cpp | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/rsc/scripts/setup_server.lua b/rsc/scripts/setup_server.lua index a5e1a94..be50f71 100644 --- a/rsc/scripts/setup_server.lua +++ b/rsc/scripts/setup_server.lua @@ -35,14 +35,23 @@ mapSaver = require("map_saver") doorUtility = require("door_utility") +creatureAPI = require("creature") +creatureManagerAPI = require("creature_manager") + --test the room hooks roomManagerAPI.SetOnCreate(function(room, index) print("", "Creating room: ", roomAPI.GetName(room), index) + creatureManagerAPI.Create(roomAPI.GetCreatureMgr(room), "anibunny.png", function() --[[]] end) + roomAPI.SetOnTick(room, function(room) roomAPI.ForEachCharacter(room, function(character) -- end) + + roomAPI.ForEachCreature(room, function(creature) + -- + end) end) end) diff --git a/server/creatures/creature_manager.cpp b/server/creatures/creature_manager.cpp index a271cf3..4b207e8 100644 --- a/server/creatures/creature_manager.cpp +++ b/server/creatures/creature_manager.cpp @@ -37,7 +37,7 @@ void CreatureManager::Update() { int CreatureManager::Create(std::string avatar, int scriptRef) { //implicitly create the new object - elementMap.emplace(counter, CreatureData(avatar, scriptRef)); + elementMap.emplace( std::pair(counter, CreatureData(avatar, scriptRef)) ); //TODO: do various things like saving to the database return counter++; diff --git a/server/creatures/creature_manager_api.cpp b/server/creatures/creature_manager_api.cpp index 26c38ca..cad8dc0 100644 --- a/server/creatures/creature_manager_api.cpp +++ b/server/creatures/creature_manager_api.cpp @@ -23,6 +23,7 @@ #include "creature_manager.hpp" +//args: mgr, avatar, script static int create(lua_State* L) { CreatureManager* mgr = static_cast(lua_touserdata(L, 1)); int index = mgr->Create(lua_tostring(L, 2), lua_tointeger(L, 3));