Differences From
Artifact [e52f2bba90]:
348 348
349 349 local function pointChanged(a,b)
350 350 return a.type ~= b.type
351 351 or a.type == 'node' and vector.new(a.under) ~= vector.new(b.under)
352 352 or a.type == 'object' and a.ref ~= b.ref
353 353 end
354 354 local function triggerPower(_, luser, point)
355 - for k,v in pairs(starlit.activeUsers) do
356 - print (k,v) end
357 - print("trigger", luser, luser:get_player_name())
355 +-- print("trigger", luser, luser:get_player_name())
358 356 local user = starlit.activeUsers[luser:get_player_name()]
359 357 local oldTgt = user.action.tgt
360 358 user.action.tgt = point
361 359 if bit.band(user.action.bits, 0x100)==0 then
362 360 user.action.bits = bit.bor(user.action.bits, 0x100)
363 361 --return user:trigger('secondary', {state = 'prog', delta = 0})
364 362 elseif pointChanged(oldTgt, point) then
................................................................................
388 386 minetest.register_item("starlit:_hand_dig", {
389 387 type = "none",
390 388 wield_image = "wieldhand.png",
391 389 wield_scale = {x=1,y=1,z=2.5},
392 390 tool_capabilities = {
393 391 groupcaps = {
394 392 plant = {maxlevel=1, times = {.50}};
395 - dirt = {maxlevel=1, times = {2.5}};
396 393
397 - log = {maxlevel=1, times = {1}};
394 + -- sand, dirt, gravel
395 + looseClump = {maxlevel=1, times = {1.5, 2.5}};
398 396 };
399 397 }
400 398 })
401 399
402 400 minetest.register_on_player_inventory_action(function(luser, act, inv, p)
403 401 local name = luser:get_player_name()
404 402 local user = starlit.activeUsers[name]
................................................................................
429 427 return vector.new(
430 428 r(pos.x),
431 429 r(pos.y),
432 430 r(pos.z)
433 431 )
434 432 end
435 433 for i, it in ipairs(drops) do
436 - local it = minetest.add_item(jitter(pos), it)
437 - local dp = vector.new(0,0,0)
438 - if digger then dp = digger:get_pos() end
439 - local delta = dp - it:get_pos()
440 - it:add_velocity(vector.new(delta.x,0,delta.z));
434 + if type(it) == 'string' then it = ItemStack(it) end
435 + if not it:is_empty() then
436 + local ent = minetest.add_item(jitter(pos), it)
437 + if ent ~= nil then -- avoid crash when dropping unknown item
438 + local dp = vector.new(0,0,0)
439 + if digger then dp = digger:get_pos() end
440 + local delta = dp - ent:get_pos()
441 + ent:add_velocity(vector.new(delta.x,0,delta.z));
442 + end
443 + end
441 444 end
442 445 end
443 446
444 447
445 448 -- TODO timer iterates live UI
446 449