Tools don't wear in creative mode v2
- Removed cans (will add again per request)
- Added creative check to global namespace (checking only once as
requested by VanessaE)
| | |
| | | -- (c) 2012-2013 by RealBadAngel <mk@realbadangel.pl> |
| | | |
| | | technic = rawget(_G, "technic") or {} |
| | | technic.creative_mode = minetest.setting_getbool("creative_mode") |
| | | |
| | | technic.tube_inject_item = pipeworks.tube_inject_item or function (pos, start_pos, velocity, item) |
| | | local tubed = pipeworks.tube_item(vector.new(pos), item) |
| | |
| | | -- Send current charge to digging function so that the |
| | | -- chainsaw will stop after digging a number of nodes |
| | | meta.charge = chainsaw_dig(pointed_thing.under, meta.charge) |
| | | |
| | | technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge) |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | if not technic.creative_mode then |
| | | technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge) |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | end |
| | | return itemstack |
| | | end, |
| | | }) |
| | |
| | | if hotbar[i]:get_name() == "technic:flashlight" then |
| | | local meta = minetest.deserialize(hotbar[i]:get_metadata()) |
| | | if meta and meta.charge and meta.charge >= 2 then |
| | | meta.charge = meta.charge - 2; |
| | | technic.set_RE_wear(hotbar[i], meta.charge, flashlight_max_charge) |
| | | hotbar[i]:set_metadata(minetest.serialize(meta)) |
| | | inv:set_stack("main", i, hotbar[i]) |
| | | if not technic.creative_mode then |
| | | meta.charge = meta.charge - 2; |
| | | technic.set_RE_wear(hotbar[i], meta.charge, flashlight_max_charge) |
| | | hotbar[i]:set_metadata(minetest.serialize(meta)) |
| | | inv:set_stack("main", i, hotbar[i]) |
| | | end |
| | | return true |
| | | end |
| | | end |
| | |
| | | if meta.charge >= charge_to_take then |
| | | local pos = minetest.get_pointed_thing_position(pointed_thing, above) |
| | | drill_dig_it(pos, user, meta.mode) |
| | | meta.charge = meta.charge - charge_to_take |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | technic.set_RE_wear(itemstack, meta.charge, max_charge[2]) |
| | | if not technic.creative_mode then |
| | | meta.charge = meta.charge - charge_to_take |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | technic.set_RE_wear(itemstack, meta.charge, max_charge[2]) |
| | | end |
| | | end |
| | | return itemstack |
| | | end |
| | |
| | | if meta.charge >= charge_to_take then |
| | | local pos = minetest.get_pointed_thing_position(pointed_thing, above) |
| | | drill_dig_it(pos, user, meta.mode) |
| | | meta.charge = meta.charge - charge_to_take |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | technic.set_RE_wear(itemstack, meta.charge, max_charge[3]) |
| | | if not technic.creative_mode then |
| | | meta.charge = meta.charge - charge_to_take |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | technic.set_RE_wear(itemstack, meta.charge, max_charge[3]) |
| | | end |
| | | end |
| | | return itemstack |
| | | end |
| | |
| | | if meta.charge >= charge_to_take then |
| | | local pos = minetest.get_pointed_thing_position(pointed_thing, above) |
| | | drill_dig_it(pos, user, 1) |
| | | meta.charge = meta.charge - charge_to_take |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | technic.set_RE_wear(itemstack, meta.charge, max_charge[1]) |
| | | if not technic.creative_mode then |
| | | meta.charge = meta.charge - charge_to_take |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | technic.set_RE_wear(itemstack, meta.charge, max_charge[1]) |
| | | end |
| | | end |
| | | return itemstack |
| | | end, |
| | |
| | | |
| | | -- If there's enough charge left, fire the laser |
| | | if meta.charge >= m[4] then |
| | | meta.charge = meta.charge - m[4] |
| | | laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1]) |
| | | technic.set_RE_wear(itemstack, meta.charge, m[3]) |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | if not technic.creative_mode then |
| | | meta.charge = meta.charge - m[4] |
| | | technic.set_RE_wear(itemstack, meta.charge, m[3]) |
| | | itemstack:set_metadata(minetest.serialize(meta)) |
| | | end |
| | | end |
| | | return itemstack |
| | | end, |
| | |
| | | minetest.chat_send_player(user:get_player_name(), "Right-click to set target block type") |
| | | return |
| | | end |
| | | toolmeta.charge = toolmeta.charge - charge_to_take |
| | | toolstack:set_metadata(minetest.serialize(toolmeta)) |
| | | technic.set_RE_wear(toolstack, toolmeta.charge, technic.power_tools[toolstack:get_name()]) |
| | | if not technic.creative_mode then |
| | | toolmeta.charge = toolmeta.charge - charge_to_take |
| | | toolstack:set_metadata(minetest.serialize(toolmeta)) |
| | | technic.set_RE_wear(toolstack, toolmeta.charge, technic.power_tools[toolstack:get_name()]) |
| | | end |
| | | local start_pos = pointed_thing.under |
| | | local forward = minetest.facedir_to_dir(minetest.dir_to_facedir(user:get_look_dir(), true)) |
| | | local right = forward.x ~= 0 and { x=0, y=1, z=0 } or (forward.y ~= 0 and { x=0, y=0, z=1 } or { x=1, y=0, z=0 }) |
| | |
| | | node.param2 = preservePart + rotationPart |
| | | minetest.swap_node(pos, node) |
| | | |
| | | if not minetest.setting_getbool("creative_mode") then |
| | | if not technic.creative_mode then |
| | | meta1.charge = meta1.charge - 100 |
| | | itemstack:set_metadata(minetest.serialize(meta1)) |
| | | technic.set_RE_wear(itemstack, meta1.charge, sonic_screwdriver_max_charge) |
| | |
| | | node.name = "moretrees:rubber_tree_trunk_empty" |
| | | minetest.swap_node(pos, node) |
| | | minetest.handle_node_drops(pointed_thing.above, {"technic:raw_latex"}, user) |
| | | local item_wear = tonumber(itemstack:get_wear()) |
| | | item_wear = item_wear + 819 |
| | | if item_wear > 65535 then |
| | | itemstack:clear() |
| | | return itemstack |
| | | if not technic.creative_mode then |
| | | local item_wear = tonumber(itemstack:get_wear()) |
| | | item_wear = item_wear + 819 |
| | | if item_wear > 65535 then |
| | | itemstack:clear() |
| | | return itemstack |
| | | end |
| | | itemstack:set_wear(item_wear) |
| | | end |
| | | itemstack:set_wear(item_wear) |
| | | return itemstack |
| | | end, |
| | | }) |