minimap:set_mode(4)
minimap:show()
minimap:set_pos({x=5, y=50, z=5})
- minimap:toggle_shape()
+ minimap:set_shape(math.random(0, 1))
print("[PREVIEW] Minimap: mode => " .. dump(minimap:get_mode()) ..
" position => " .. dump(minimap:get_pos()) ..
* `get_angle()`: returns the current minimap angle in degrees
* `set_mode(mode)`: sets the minimap mode (0 to 6)
* `get_mode()`: returns the current minimap mode
-* `toggle_shape()`: toggles minimap shape to round or square.
+* `set_shape(shape)`: Sets the minimap shape. (0 = square, 1 = round)
+* `get_shape()`: Gets the minimap shape. (0 = square, 1 = round)
### LocalPlayer
An interface to retrieve information about the player. The player is
m_minimap_update_thread->deferUpdate();
}
+void Minimap::setMinimapShape(MinimapShape shape)
+{
+ MutexAutoLock lock(m_mutex);
+
+ if (shape == MINIMAP_SHAPE_SQUARE)
+ data->minimap_shape_round = false;
+ else if (shape == MINIMAP_SHAPE_ROUND)
+ data->minimap_shape_round = true;
+
+ g_settings->setBool("minimap_shape_round", data->minimap_shape_round);
+ m_minimap_update_thread->deferUpdate();
+}
+
+MinimapShape Minimap::getMinimapShape()
+{
+ if (data->minimap_shape_round) {
+ return MINIMAP_SHAPE_ROUND;
+ } else {
+ return MINIMAP_SHAPE_SQUARE;
+ }
+}
+
void Minimap::setMinimapMode(MinimapMode mode)
{
static const MinimapModeDef modedefs[MINIMAP_MODE_COUNT] = {
MINIMAP_MODE_COUNT,
};
+enum MinimapShape {
+ MINIMAP_SHAPE_SQUARE,
+ MINIMAP_SHAPE_ROUND,
+};
+
struct MinimapModeDef {
bool is_radar;
u16 scan_height;
void setMinimapMode(MinimapMode mode);
MinimapMode getMinimapMode() const { return data->mode; }
void toggleMinimapShape();
+ void setMinimapShape(MinimapShape shape);
+ MinimapShape getMinimapShape();
video::ITexture *getMinimapTexture();
return 1;
}
-int LuaMinimap::l_toggle_shape(lua_State *L)
+int LuaMinimap::l_set_shape(lua_State *L)
+{
+ LuaMinimap *ref = checkobject(L, 1);
+ Minimap *m = getobject(ref);
+ if (!lua_isnumber(L, 2))
+ return 0;
+
+ m->setMinimapShape((MinimapShape)lua_tonumber(L, 2));
+ return 0;
+}
+
+int LuaMinimap::l_get_shape(lua_State *L)
{
LuaMinimap *ref = checkobject(L, 1);
Minimap *m = getobject(ref);
- m->toggleMinimapShape();
+ lua_pushnumber(L, (int)m->getMinimapShape());
return 1;
}
luamethod(LuaMinimap, set_angle),
luamethod(LuaMinimap, get_mode),
luamethod(LuaMinimap, set_mode),
- luamethod(LuaMinimap, toggle_shape),
+ luamethod(LuaMinimap, set_shape),
+ luamethod(LuaMinimap, get_shape),
{0,0}
};
static int l_show(lua_State *L);
static int l_hide(lua_State *L);
- static int l_toggle_shape(lua_State *L);
+ static int l_set_shape(lua_State *L);
+ static int l_get_shape(lua_State *L);
Minimap *m_minimap;