[slingshot] Update to Git commit 903fc8d:
https://github.com/AntumDeluge/mtmod-slingshot/tree/903fc8dmaster
parent
ab9c885823
commit
2e94a2c33a
|
@ -38,7 +38,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m
|
|||
* [enchanting][] ([GPL / WTFPL / CC BY-SA-NA][lic.enchanting]) -- version: [13ea31c Git][ver.enchanting] *2016-12-16*
|
||||
* equipment/
|
||||
* [airtanks][] ([MIT][lic.airtanks]) -- version: [fc01ffb Git][ver.airtanks] *2017-04-01* ([patched][patch.airtanks])
|
||||
* [slingshot][] ([MIT][lic.slingshot] / [CC0][lic.cc0]) -- version: [f30e13d Git][ver.slingshot] *2017-06-01*
|
||||
* [slingshot][] ([MIT][lic.slingshot] / [CC0][lic.cc0]) -- version: [903fc8d Git][ver.slingshot] *2017-06-01*
|
||||
* [xtraarmor][] ([CC BY-SA][lic.ccbysa3.0]) -- version: 0.3
|
||||
* farming/
|
||||
* [crops][] ([LGPL / CC BY-SA / CC BY / CC0][lic.crops]) -- version: [2b1bb37 Git][ver.crops] *2017-03-31* ([patched][patch.crops])
|
||||
|
@ -467,7 +467,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m
|
|||
[ver.rainbow_ore]: https://github.com/FsxShader2012/rainbow_ore/tree/6e77693
|
||||
[ver.signs_lib]: https://github.com/minetest-mods/signs_lib/tree/2c36937
|
||||
[ver.simple_protection]: https://github.com/SmallJoker/simple_protection/tree/23c024f
|
||||
[ver.slingshot]: https://github.com/AntumDeluge/mtmod-slingshot/tree/f30e13d
|
||||
[ver.slingshot]: https://github.com/AntumDeluge/mtmod-slingshot/tree/903fc8d
|
||||
[ver.sneeker]: https://github.com/AntumDeluge/mtmod-sneeker/tree/258d366
|
||||
[ver.snowdrift]: https://github.com/paramat/snowdrift/tree/fcb0537
|
||||
[ver.spawneggs]: https://github.com/thefamilygrog66/spawneggs/tree/4650370
|
||||
|
|
|
@ -25,19 +25,32 @@ Depends:
|
|||
### Crafting:
|
||||
|
||||
* `SI` = default:steel_ingot
|
||||
* `SB` = default:steelblock
|
||||
* `ST` = default:stick
|
||||
|
||||
Craft recipe:
|
||||
##### Craft recipes:
|
||||
|
||||
slingshot:
|
||||
|
||||
╔════╦════╦════╗
|
||||
║ SI ║ ║ SI ║
|
||||
╠════╬════╬════╣
|
||||
║ ║ SB ║ ║
|
||||
║ ║ SI ║ ║
|
||||
╠════╬════╬════╣
|
||||
║ ║ SI ║ ║
|
||||
╚════╩════╩════╝
|
||||
|
||||
|
||||
wood slingshot:
|
||||
|
||||
╔════╦════╦════╗
|
||||
║ ST ║ ║ ST ║
|
||||
╠════╬════╬════╣
|
||||
║ ║ ST ║ ║
|
||||
╠════╬════╬════╣
|
||||
║ ║ ST ║ ║
|
||||
╚════╩════╩════╝
|
||||
|
||||
|
||||
|
||||
[AiTechEye]: https://forum.minetest.net/memberlist.php?mode=viewprofile&u=16172
|
||||
|
||||
|
|
|
@ -32,8 +32,7 @@ minetest.register_globalstep(function(dtime)
|
|||
end)
|
||||
|
||||
|
||||
function slingshot.on_use(itemstack, user)
|
||||
local veloc = 15
|
||||
function slingshot.on_use(itemstack, user, veloc)
|
||||
local pos = user:getpos()
|
||||
local upos = {x=pos.x, y=pos.y+2, z=pos.z}
|
||||
local dir = user:get_look_dir()
|
||||
|
@ -57,3 +56,67 @@ function slingshot.on_use(itemstack, user)
|
|||
minetest.sound_play('slingshot_throw', {pos=pos, gain = 1.0, max_hear_distance = 5,})
|
||||
return itemstack
|
||||
end
|
||||
|
||||
|
||||
-- Registers a new slingshot
|
||||
-- 'def' should include 'description', 'damage_groups', & 'velocity'
|
||||
function slingshot.register(name, def)
|
||||
local image = {}
|
||||
|
||||
-- The default slingshot
|
||||
if name == 'slingshot' then
|
||||
image = 'slingshot.png'
|
||||
else
|
||||
image = 'slingshot_' .. name .. '.png'
|
||||
end
|
||||
|
||||
minetest.register_tool('slingshot:' .. name, {
|
||||
description = def.description,
|
||||
range = 4,
|
||||
inventory_image = image,
|
||||
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
if pointed_thing.ref and pointed_thing.ref:is_player() == false and pointed_thing.ref:get_luaentity().name == '__builtin:item' then
|
||||
pointed_thing.ref:punch(user, {full_punch_interval=1.0, damage_groups=def.damage_groups}, 'default:bronze_pick', nil)
|
||||
return itemstack
|
||||
end
|
||||
slingshot.on_use(itemstack, user, def.velocity)
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
local item = itemstack:to_table()
|
||||
local meta = minetest.deserialize(item['metadata'])
|
||||
local mode = 0
|
||||
if meta == nil then meta = {} mode = 1 end
|
||||
if meta.mode == nil then meta.mode = 1 end
|
||||
mode = (meta.mode)
|
||||
if mode == 1 then
|
||||
mode = -1
|
||||
minetest.chat_send_player(user:get_player_name(), 'Use stack to left')
|
||||
else
|
||||
mode = 1
|
||||
minetest.chat_send_player(user:get_player_name(), 'Use stack to right')
|
||||
end
|
||||
meta.mode = mode
|
||||
item.metadata = minetest.serialize(meta)
|
||||
item.meta = minetest.serialize(meta)
|
||||
itemstack:replace(item)
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
if def.recipe ~= nil then
|
||||
minetest.register_craft({
|
||||
output = 'slingshot:' .. name,
|
||||
recipe = def.recipe,
|
||||
})
|
||||
end
|
||||
|
||||
-- Optionally register aliases
|
||||
if def.aliases ~= nil then
|
||||
for index, alias in ipairs(def.aliases) do
|
||||
minetest.register_alias(alias, 'slingshot:' .. name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,7 +7,6 @@ slingshot.modpath = minetest.get_modpath(slingshot.modname)
|
|||
local scripts = {
|
||||
'functions',
|
||||
'register',
|
||||
'crafting',
|
||||
}
|
||||
|
||||
for index, script in ipairs(scripts) do
|
||||
|
|
|
@ -1,41 +1,33 @@
|
|||
-- Registrations for slinghot mod
|
||||
|
||||
|
||||
minetest.register_tool('slingshot:slingshot', {
|
||||
-- A metal slingshot
|
||||
slingshot.register('slingshot', {
|
||||
description = 'Slingshot',
|
||||
range = 4,
|
||||
inventory_image = 'slingshot.png',
|
||||
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
if pointed_thing.ref and pointed_thing.ref:is_player() == false and pointed_thing.ref:get_luaentity().name == '__builtin:item' then
|
||||
pointed_thing.ref:punch(user, {full_punch_interval=1.0, damage_groups={fleshy=4}}, 'default:bronze_pick', nil)
|
||||
return itemstack
|
||||
end
|
||||
slingshot.on_use(itemstack, user)
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
local item = itemstack:to_table()
|
||||
local meta = minetest.deserialize(item['metadata'])
|
||||
local mode = 0
|
||||
if meta == nil then meta = {} mode = 1 end
|
||||
if meta.mode == nil then meta.mode = 1 end
|
||||
mode = (meta.mode)
|
||||
if mode == 1 then
|
||||
mode = -1
|
||||
minetest.chat_send_player(user:get_player_name(), 'Use stack to left')
|
||||
else
|
||||
mode = 1
|
||||
minetest.chat_send_player(user:get_player_name(), 'Use stack to right ')
|
||||
end
|
||||
meta.mode = mode
|
||||
item.metadata = minetest.serialize(meta)
|
||||
item.meta = minetest.serialize(meta)
|
||||
itemstack:replace(item)
|
||||
return itemstack
|
||||
end
|
||||
damage_groups = {fleshy=4},
|
||||
velocity = 15,
|
||||
recipe = {
|
||||
{'default:steel_ingot', '', 'default:steel_ingot'},
|
||||
{'', 'default:steel_ingot', ''},
|
||||
{'', 'default:steel_ingot', ''},
|
||||
},
|
||||
aliases = {
|
||||
'slingshot',
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
minetest.register_alias('slingshot', 'slingshot:slingshot')
|
||||
-- A weaker slingshot
|
||||
slingshot.register('wood', {
|
||||
description = 'Wooden slingshot',
|
||||
damage_groups = {fleshy=2},
|
||||
velocity = 10,
|
||||
recipe = {
|
||||
{'default:stick', '', 'default:stick'},
|
||||
{'', 'default:stick', ''},
|
||||
{'', 'default:stick', ''},
|
||||
},
|
||||
aliases = {
|
||||
'wood_slingshot',
|
||||
}
|
||||
})
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 583 B |
Loading…
Reference in New Issue