aboutsummaryrefslogtreecommitdiff
path: root/src/inventory.cpp
Commit message (Expand)AuthorAge
...
* Move tool stuff to tool.{h,cpp}Perttu Ahola2011-11-29
* Move ContentFeatures to mapnode_contentfeatures.{h,cpp} and clean stuffPerttu Ahola2011-11-29
* Scripting WIP: dynamic object stuffPerttu Ahola2011-11-29
* Scripting WIPPerttu Ahola2011-11-29
* Scripting WIPPerttu Ahola2011-11-29
* Improve inventory debug outputPerttu Ahola2011-10-17
* mobv2Perttu Ahola2011-10-15
* Convert any inventory item into a mesh, bring back InventoryItem::getImageRay...Kahrl2011-09-19
* Now SAOs will reflect changes to their temporary inventory objectJacobF2011-09-06
* If there was no source item in a furnace it would cause a segmentation fault.JacobF2011-08-30
* Merged 2 branches because they relied on each other.JacobF2011-08-25
* constify inventory item serializationGiuseppe Bilotta2011-08-11
* Some inventory const-ificationGiuseppe Bilotta2011-08-11
* Added MaterialItem conversion from old content type namespace to newPerttu Ahola2011-07-31
* Rats are now eatable. Also made their selection box move smoothly.Perttu Ahola2011-07-30
* extended content-type rangePerttu Ahola2011-07-23
* reorganized a lot of stuff and modified mapgen and objects slightly while doi...Perttu Ahola2011-06-26
* fixed a segfault in case of wrong input from network on the server (reported ...Perttu Ahola2011-06-19
* separated inventory-related game content to content_inventory.{h,cpp}Perttu Ahola2011-06-18
* Moved some mapnode content stuff from mapnode.{h,cpp} and digging property st...Perttu Ahola2011-06-17
* Added glass, with rendering and furnace support.Ciaran Gultnieks2011-05-09
* Removed IrrlichtWrapperPerttu Ahola2011-04-22
* item drop multiplication fixPerttu Ahola2011-04-19
* Fixed some problems with crafting and inventoryPerttu Ahola2011-04-11
* implemented rats in new system to verify that it worksPerttu Ahola2011-04-10
* Furnace is now usable. Added more tools.Perttu Ahola2011-04-05
* A more robust format for node metadataPerttu Ahola2011-04-05
* initial workings of the furnacePerttu Ahola2011-04-05
* Chests work now!Perttu Ahola2011-04-04
* work-in-progress texture atlas optimizationPerttu Ahola2011-02-10
* added temporary backwards compatibility to player inventoryPerttu Ahola2011-02-03
* Fixed MBOItem inventory imagesPerttu Ahola2011-01-29
* Now texture handling is fast. Also now players are saved on disk.Perttu Ahola2011-01-28
* Added a more flexible path system (and fixed some minor stuff)Perttu Ahola2011-01-07
* disconnect method to connection to be used instead of just timing outPerttu Ahola2010-12-24
* base stuff for item->object conversionPerttu Ahola2010-12-24
* crafting system!Perttu Ahola2010-12-22
* just savin'Perttu Ahola2010-12-22
* organizing stuff.Perttu Ahola2010-12-21
* framework for modifying texturesPerttu Ahola2010-12-20
* license stuffPerttu Ahola2010-11-29
* Initial filesPerttu Ahola2010-11-27
n>name) if (arg_type == "userdata" or arg_type == "table") and name.get_player_name then -- If it quacks like a Player... name = name:get_player_name() elseif arg_type ~= "string" then error("Invalid core.check_player_privs argument type: " .. arg_type, 2) end local requested_privs = {...} local player_privs = core.get_player_privs(name) local missing_privileges = {} if type(requested_privs[1]) == "table" then -- We were provided with a table like { privA = true, privB = true }. for priv, value in pairs(requested_privs[1]) do if value and not player_privs[priv] then missing_privileges[#missing_privileges + 1] = priv end end else -- Only a list, we can process it directly. for key, priv in pairs(requested_privs) do if not player_privs[priv] then missing_privileges[#missing_privileges + 1] = priv end end end if #missing_privileges > 0 then return false, missing_privileges end return true, "" end local player_list = {} core.register_on_joinplayer(function(player) local player_name = player:get_player_name() player_list[player_name] = player core.chat_send_all("*** " .. player_name .. " joined the game.") end) core.register_on_leaveplayer(function(player, timed_out) local player_name = player:get_player_name() player_list[player_name] = nil local announcement = "*** " .. player_name .. " left the game." if timed_out then announcement = announcement .. " (timed out)" end core.chat_send_all(announcement) end) function core.get_connected_players() local temp_table = {} for index, value in pairs(player_list) do if value:is_player_connected() then temp_table[#temp_table + 1] = value end end return temp_table end -- Returns two position vectors representing a box of `radius` in each -- direction centered around the player corresponding to `player_name` function core.get_player_radius_area(player_name, radius) local player = core.get_player_by_name(player_name) if player == nil then return nil end local p1 = player:getpos() local p2 = p1 if radius then p1 = vector.subtract(p1, radius) p2 = vector.add(p2, radius) end return p1, p2 end function core.hash_node_position(pos) return (pos.z+32768)*65536*65536 + (pos.y+32768)*65536 + pos.x+32768 end function core.get_position_from_hash(hash) local pos = {} pos.x = (hash%65536) - 32768 hash = math.floor(hash/65536) pos.y = (hash%65536) - 32768 hash = math.floor(hash/65536) pos.z = (hash%65536) - 32768 return pos end function core.get_item_group(name, group) if not core.registered_items[name] or not core.registered_items[name].groups[group] then return 0 end return core.registered_items[name].groups[group] end function core.get_node_group(name, group) core.log("deprecated", "Deprecated usage of get_node_group, use get_item_group instead") return core.get_item_group(name, group) end function core.setting_get_pos(name) local value = core.setting_get(name) if not value then return nil end return core.string_to_pos(value) end -- To be overriden by protection mods function core.is_protected(pos, name) return false end function core.record_protection_violation(pos, name) for _, func in pairs(core.registered_on_protection_violation) do func(pos, name) end end local raillike_ids = {} local raillike_cur_id = 0 function core.raillike_group(name) local id = raillike_ids[name] if not id then raillike_cur_id = raillike_cur_id + 1 raillike_ids[name] = raillike_cur_id id = raillike_cur_id end return id end -- HTTP callback interface function core.http_add_fetch(httpenv) httpenv.fetch = function(req, callback) local handle = httpenv.fetch_async(req) local function update_http_status() local res = httpenv.fetch_async_get(handle) if res.completed then callback(res) else core.after(0, update_http_status) end end core.after(0, update_http_status) end return httpenv end if minetest.setting_getbool("disable_escape_sequences") then function core.get_color_escape_sequence(color) return "" end function core.get_background_escape_sequence(color) return "" end function core.colorize(color, message) return message end else local ESCAPE_CHAR = string.char(0x1b) function core.get_color_escape_sequence(color) return ESCAPE_CHAR .. "(c@" .. color .. ")" end function core.get_background_escape_sequence(color) return ESCAPE_CHAR .. "(b@" .. color .. ")" end function core.colorize(color, message) return core.get_color_escape_sequence(color) .. message .. core.get_color_escape_sequence("#ffffff") end end