aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
Diffstat (limited to 'src/script')
-rw-r--r--src/script/lua_api/l_vmanip.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/script/lua_api/l_vmanip.cpp b/src/script/lua_api/l_vmanip.cpp
index 9eb246f1e..c92983bd3 100644
--- a/src/script/lua_api/l_vmanip.cpp
+++ b/src/script/lua_api/l_vmanip.cpp
@@ -91,7 +91,7 @@ int LuaVoxelManip::l_set_data(lua_State *L)
MMVManip *vm = o->vm;
if (!lua_istable(L, 2))
- return 0;
+ throw LuaError("VoxelManip:set_data called with missing parameter");
u32 volume = vm->m_area.getVolume();
for (u32 i = 0; i != volume; i++) {
@@ -185,8 +185,11 @@ int LuaVoxelManip::l_calc_lighting(lua_State *L)
NO_MAP_LOCK_REQUIRED;
LuaVoxelManip *o = checkobject(L, 1);
- if (!o->is_mapgen_vm)
+ if (!o->is_mapgen_vm) {
+ warningstream << "VoxelManip:calc_lighting called for a non-mapgen "
+ "VoxelManip object" << std::endl;
return 0;
+ }
const NodeDefManager *ndef = getServer(L)->getNodeDefManager();
EmergeManager *emerge = getServer(L)->getEmergeManager();
@@ -218,11 +221,14 @@ int LuaVoxelManip::l_set_lighting(lua_State *L)
NO_MAP_LOCK_REQUIRED;
LuaVoxelManip *o = checkobject(L, 1);
- if (!o->is_mapgen_vm)
+ if (!o->is_mapgen_vm) {
+ warningstream << "VoxelManip:set_lighting called for a non-mapgen "
+ "VoxelManip object" << std::endl;
return 0;
+ }
if (!lua_istable(L, 2))
- return 0;
+ throw LuaError("VoxelManip:set_lighting called with missing parameter");
u8 light;
light = (getintfield_default(L, 2, "day", 0) & 0x0F);
@@ -273,7 +279,8 @@ int LuaVoxelManip::l_set_light_data(lua_State *L)
MMVManip *vm = o->vm;
if (!lua_istable(L, 2))
- return 0;
+ throw LuaError("VoxelManip:set_light_data called with missing "
+ "parameter");
u32 volume = vm->m_area.getVolume();
for (u32 i = 0; i != volume; i++) {
@@ -321,7 +328,8 @@ int LuaVoxelManip::l_set_param2_data(lua_State *L)
MMVManip *vm = o->vm;
if (!lua_istable(L, 2))
- return 0;
+ throw LuaError("VoxelManip:set_param2_data called with missing "
+ "parameter");
u32 volume = vm->m_area.getVolume();
for (u32 i = 0; i != volume; i++) {
om"> You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef CLIENTMAP_HEADER #define CLIENTMAP_HEADER #include "common_irrlicht.h" #include "map.h" struct MapDrawControl { MapDrawControl(): range_all(false), wanted_range(50), wanted_max_blocks(0), wanted_min_range(0), blocks_drawn(0), blocks_would_have_drawn(0) { } // Overrides limits by drawing everything bool range_all; // Wanted drawing range float wanted_range; // Maximum number of blocks to draw u32 wanted_max_blocks; // Blocks in this range are drawn regardless of number of blocks drawn float wanted_min_range; // Number of blocks rendered is written here by the renderer u32 blocks_drawn; // Number of blocks that would have been drawn in wanted_range u32 blocks_would_have_drawn; }; class Client; class ITextureSource; /* ClientMap This is the only map class that is able to render itself on screen. */ class ClientMap : public Map, public scene::ISceneNode { public: ClientMap( Client *client, IGameDef *gamedef, MapDrawControl &control, scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id ); ~ClientMap(); s32 mapType() const { return MAPTYPE_CLIENT; } void drop() { ISceneNode::drop(); } void updateCamera(v3f pos, v3f dir, f32 fov) { JMutexAutoLock lock(m_camera_mutex); m_camera_position = pos; m_camera_direction = dir; m_camera_fov = fov; } /* Forcefully get a sector from somewhere */ MapSector * emergeSector(v2s16 p); //void deSerializeSector(v2s16 p2d, std::istream &is); /* ISceneNode methods */ virtual void OnRegisterSceneNode(); virtual void render() { video::IVideoDriver* driver = SceneManager->getVideoDriver(); driver->setTransform(video::ETS_WORLD, AbsoluteTransformation); renderMap(driver, SceneManager->getSceneNodeRenderPass()); } virtual const core::aabbox3d<f32>& getBoundingBox() const { return m_box; } void renderMap(video::IVideoDriver* driver, s32 pass); int getBackgroundBrightness(float max_d, u32 daylight_factor, int oldvalue, bool *sunlight_seen_result); void renderPostFx(); // For debug printing virtual void PrintInfo(std::ostream &out); // Check if sector was drawn on last render() bool sectorWasDrawn(v2s16 p) { return (m_last_drawn_sectors.find(p) != NULL); } private: