Create init.lua
commit
f10facf7cd
|
@ -0,0 +1,63 @@
|
|||
local function FE(text)
|
||||
return core.formspec_escape(text)
|
||||
end
|
||||
local function get_fs(name, witem,index)
|
||||
local start = index - 1 or 0
|
||||
local meta = witem:get_meta()
|
||||
if not meta then return end
|
||||
local toolcaps = witem:get_tool_capabilities()
|
||||
if not toolcaps then return end
|
||||
local descr = meta:get("description") or witem:get_description()
|
||||
local color = meta:get_string("color",'')
|
||||
local count_meta = meta:get_string("count_meta")
|
||||
local full_punch_interval = dump(toolcaps.full_punch_interval,'')
|
||||
local max_drop_level = dump(toolcaps.max_drop_level,'')
|
||||
local groupcaps = FE(core.serialize(toolcaps.groupcaps))
|
||||
local damage_groups = FE(core.serialize(toolcaps.damage_groups))
|
||||
|
||||
local fs = "size[10.2,12]" ..
|
||||
"list[current_player;main;9,0.1;1,1;"..start.."]" ..
|
||||
"field[0.4,0.6;3,1;description;Description;"..descr.."]" ..
|
||||
"field_close_on_enter[description;false]" ..
|
||||
"field[0.4,1.6;3,1;color;Color;"..color.."]" ..
|
||||
"field_close_on_enter[color;false]" ..
|
||||
"field[0.4,2.6;3,1;count_meta;Count_meta;"..count_meta.."]" ..
|
||||
"field_close_on_enter[count_meta;false]" ..
|
||||
"field[3.4,0.6;2.5,1;full_punch_interval;Full punch interval;"..full_punch_interval.."]" ..
|
||||
"field_close_on_enter[full_punch_interval;false]" ..
|
||||
"field[3.4,1.6;2.5,1;max_drop_level;Max drop level;"..max_drop_level.."]" ..
|
||||
"field_close_on_enter[max_drop_level;false]" ..
|
||||
"textarea[0.4,3.5;10,4.8;groupcaps;Groupcaps;"..groupcaps.."]" ..
|
||||
"textarea[0.4,7.9;10,4.8;damage_groups;Damage groups;"..damage_groups.."]" ..
|
||||
"button[3.1,2.3;2.2,1;apply;Apply]"
|
||||
core.show_formspec(name,"itemeditor",fs)
|
||||
end
|
||||
|
||||
core.register_privilege("itemedit","Allows to use item editor")
|
||||
core.register_chatcommand("itemedit",{
|
||||
description = "Modify a wielded item",
|
||||
privs = {itemedit=true},
|
||||
func = function(name,param)
|
||||
local player = core.get_player_by_name(name)
|
||||
if not player then return false, "No Player" end
|
||||
local witem = player:get_wielded_item()
|
||||
local index = player:get_wield_index()
|
||||
if not witem then return false, "Error getting wielded item" end
|
||||
if witem:get_name() == "" then return false, "Please take item in hand" end
|
||||
get_fs(name,witem,index)
|
||||
end})
|
||||
|
||||
core.register_on_player_receive_fields(function(player, formname, fields)
|
||||
if formname ~= "itemeditor" then return end
|
||||
local name = player:get_player_name()
|
||||
if not name then return end
|
||||
local witem = player:get_wielded_item()
|
||||
local meta = witem:get_meta()
|
||||
if fields.apply then
|
||||
meta:set_string("description",fields.description)
|
||||
meta:set_string("color",fields.color)
|
||||
meta:set_string("count_meta",fields.count_meta)
|
||||
meta:set_tool_capabilities({full_punch_interval=fields.full_punch_interval,max_drop_level=fields.max_drop_level,groupcaps=core.deserialize(fields.groupcaps),damage_groups=core.deserialize(fields.damage_groups)})
|
||||
player:set_wielded_item(witem)
|
||||
end
|
||||
end)
|
Loading…
Reference in New Issue