Compare commits

1 Commits

Author SHA1 Message Date
61567b3985 remove spears 2015-10-25 15:27:46 +01:00
108 changed files with 308 additions and 534 deletions

0
README.txt Executable file → Normal file
View File

56
build_arrow.lua Executable file → Normal file
View File

@ -38,67 +38,57 @@ local THROWING_ARROW_ENTITY={
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
node = "", node = "",
player = "",
inventory = false,
stack = false,
bow_damage = 0,
} }
THROWING_ARROW_ENTITY.on_step = function(self, dtime) THROWING_ARROW_ENTITY.on_step = function(self, dtime)
self.timer=self.timer+dtime self.timer=self.timer+dtime
local newpos = self.object:getpos() local pos = self.object:getpos()
if self.lastpos.x ~= nil then
for _, pos in pairs(throwing_get_trajectoire(self, newpos)) do
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if not self.inventory or not self.stack then
self.object:remove()
end
if self.timer>0.2 then
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1) local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1)
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
if throwing_is_player(self.player, obj) or throwing_is_entity(obj) then if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "throwing:arrow_build_entity" and obj:get_luaentity().name ~= "__builtin:item" then
self.object:remove()
if self.inventory and self.stack and not minetest.setting_getbool("creative_mode") then if self.inventory and self.stack and not minetest.setting_getbool("creative_mode") then
self.inventory:remove_item("main", {name=self.stack:get_name()}) self.inventory:remove_item("main", {name=self.stack:get_name()})
end end
if self.stack then if self.stack then
minetest.add_item(pos, {name=self.stack:get_name()}) minetest.add_item(self.lastpos, {name=self.stack:get_name()})
end end
local toughness = 0.95 local toughness = 0.95
if math.random() < toughness then if math.random() < toughness then
minetest.add_item(pos, 'throwing:arrow_build') minetest.add_item(self.lastpos, 'throwing:arrow_build')
else else
minetest.add_item(pos, 'default:stick') minetest.add_item(self.lastpos, 'default:stick')
end
end
end end
self.object:remove()
return
end end
end end
if node.name ~= "air" if self.lastpos.x~=nil then
and not string.find(node.name, "water_") if node.name ~= "air" then
and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) self.object:remove()
and not (string.find(node.name, 'farming:') and not string.find(node.name, 'soil')) if self.inventory and self.stack and not minetest.setting_getbool("creative_mode") then
and not string.find(node.name, 'flowers:') self.inventory:remove_item("main", {name=self.stack:get_name()})
and not string.find(node.name, 'fire:') then end
if node.name ~= "ignore" and self.inventory and self.stack then if self.stack then
if not minetest.is_protected(self.lastpos, "") if not string.find(node.name, "water") and not string.find(node.name, "lava") and not string.find(node.name, "torch") and self.stack:get_definition().type == "node" and self.stack:get_name() ~= "default:torch" then
and not string.find(node.name, "lava")
and not string.find(node.name, "torch")
and self.stack:get_definition().type == "node"
and self.stack:get_name() ~= "default:torch" then
minetest.place_node(self.lastpos, {name=self.stack:get_name()}) minetest.place_node(self.lastpos, {name=self.stack:get_name()})
else else
minetest.add_item(self.lastpos, {name=self.stack:get_name()}) minetest.add_item(self.lastpos, {name=self.stack:get_name()})
end end
if not minetest.setting_getbool("creative_mode") then
self.inventory:remove_item("main", {name=self.stack:get_name()})
end
end end
minetest.add_item(self.lastpos, 'default:shovel_steel') minetest.add_item(self.lastpos, 'default:shovel_steel')
self.object:remove() end
return
end end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end end
end
self.lastpos={x=newpos.x, y=newpos.y, z=newpos.z}
end
minetest.register_entity("throwing:arrow_build_entity", THROWING_ARROW_ENTITY) minetest.register_entity("throwing:arrow_build_entity", THROWING_ARROW_ENTITY)

View File

@ -1,13 +0,0 @@
-- Craft recipe of the "Mithril String"
minetest.register_craft({
output = "throwing:string_mithril",
description = "Mithril String",
inventory_image = "string_mithril.png",
type = "shapeless",
recipe = {"default:mithril_ingot", "farming:string"},
})
minetest.register_craftitem("throwing:string_mithril", {
inventory_image = "throwing_string_mithril.png",
description = "Mithril String",
})

1
defaults.lua Executable file → Normal file
View File

@ -22,4 +22,3 @@ DISABLE_STONE_ARROW = false
DISABLE_STEEL_ARROW = false DISABLE_STEEL_ARROW = false
DISABLE_DIAMOND_ARROW = false DISABLE_DIAMOND_ARROW = false
DISABLE_OBSIDIAN_ARROW = false DISABLE_OBSIDIAN_ARROW = false

0
depends.txt Executable file → Normal file
View File

0
description.txt Executable file → Normal file
View File

61
dig_arrow.lua Executable file → Normal file
View File

@ -37,60 +37,51 @@ local THROWING_ARROW_ENTITY={
textures = {"throwing:arrow_dig_box"}, textures = {"throwing:arrow_dig_box"},
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
player = "",
bow_damage = 0,
} }
THROWING_ARROW_ENTITY.on_step = function(self, dtime) THROWING_ARROW_ENTITY.on_step = function(self, dtime)
local newpos = self.object:getpos() self.timer=self.timer+dtime
if self.lastpos.x ~= nil then local pos = self.object:getpos()
for _, pos in pairs(throwing_get_trajectoire(self, newpos)) do
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if self.timer>0.2 then
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1) local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1)
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
if throwing_is_player(self.player, obj) or throwing_is_entity(obj) then if obj:get_luaentity() ~= nil then
if throwing_touch(pos, obj:getpos()) then if obj:get_luaentity().name ~= "throwing:arrow_dig_entity" and obj:get_luaentity().name ~= "__builtin:item" then
local puncher = self.object
if self.player and minetest.get_player_by_name(self.player) then
puncher = minetest.get_player_by_name(self.player)
end
local damage = 1.5 local damage = 1.5
if self.bow_damage and self.bow_damage > 0 then obj:punch(self.object, 1.0, {
damage = damage + (self.bow_damage/12)
end
obj:punch(puncher, 1.0, {
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=damage}, damage_groups={fleshy=damage},
}, nil) }, nil)
if math.random(0,100) % 2 == 0 then -- 50% of chance to drop //MFF (Mg|07/27/15)
minetest.add_item(pos, "throwing:arrow_dig")
end
self.object:remove() self.object:remove()
return local toughness = 0.9
if math.random() < toughness then
minetest.add_item(self.lastpos, 'throwing:arrow_dig')
else
minetest.add_item(self.lastpos, 'default:stick')
end end
end end
end end
if node.name ~= "air"
and not string.find(node.name, "water_")
and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt'))
and not (string.find(node.name, 'farming:') and not string.find(node.name, 'soil'))
and not string.find(node.name, 'flowers:')
and not string.find(node.name, 'fire:') then
if node.name ~= "ignore" and minetest.get_item_group(node.name, "unbreakable") == 0
and not minetest.is_protected(pos, self.player)
and node.diggable ~= false then
minetest.set_node(pos, {name = "air"})
minetest.add_item(pos, node.name)
end end
end
if self.lastpos.x~=nil then
if node.name ~= "air" then
self.object:remove() self.object:remove()
return if node.diggable ~= false then
minetest.dig_node(pos)
end
local toughness = 0.65
if math.random() < toughness then
minetest.add_item(self.lastpos, 'default:pick_steel')
else
minetest.add_item(self.lastpos, 'default:stick')
end
end
end end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end end
end
self.lastpos={x=newpos.x, y=newpos.y, z=newpos.z}
end
minetest.register_entity("throwing:arrow_dig_entity", THROWING_ARROW_ENTITY) minetest.register_entity("throwing:arrow_dig_entity", THROWING_ARROW_ENTITY)

58
fire_arrow.lua Executable file → Normal file
View File

@ -31,72 +31,52 @@ minetest.register_node("throwing:arrow_fire_box", {
local THROWING_ARROW_ENTITY={ local THROWING_ARROW_ENTITY={
physical = false, physical = false,
timer=0,
visual = "wielditem", visual = "wielditem",
visual_size = {x=0.1, y=0.1}, visual_size = {x=0.1, y=0.1},
textures = {"throwing:arrow_fire_box"}, textures = {"throwing:arrow_fire_box"},
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
player = "",
bow_damage = 0,
} }
THROWING_ARROW_ENTITY.on_step = function(self, dtime) THROWING_ARROW_ENTITY.on_step = function(self, dtime)
local newpos = self.object:getpos() self.timer=self.timer+dtime
if self.lastpos.x ~= nil then local pos = self.object:getpos()
for _, pos in pairs(throwing_get_trajectoire(self, newpos)) do
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if self.timer>0.2 then
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
local objpos = obj:getpos() if obj:get_luaentity() ~= nil then
if throwing_is_player(self.player, obj) or throwing_is_entity(obj) then if obj:get_luaentity().name ~= "throwing:arrow_fire_entity" and obj:get_luaentity().name ~= "__builtin:item" then
if throwing_touch(pos, objpos) then
local puncher = self.object
if self.player and minetest.get_player_by_name(self.player) then
puncher = minetest.get_player_by_name(self.player)
end
local damage = 4 local damage = 4
if self.bow_damage and self.bow_damage > 0 then obj:punch(self.object, 1.0, {
damage = damage + (self.bow_damage/12)
end
obj:punch(puncher, 1.0, {
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=damage}, damage_groups={fleshy=damage},
}, nil) }, nil)
if math.random(0,100) % 2 == 0 then -- 50% of chance to drop //MFF (Mg|07/27/15)
minetest.add_item(pos, 'default:stick')
end
self.object:remove() self.object:remove()
return minetest.add_item(self.lastpos, 'default:stick')
end
end end
end end
end end
if node.name ~= "air" if self.lastpos.x~=nil then
and node.name ~= "throwing:light" if node.name ~= "air" and node.name ~= "throwing:light" then
and node.name ~= "fire:basic_flame"
and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt'))
and not (string.find(node.name, 'farming:') and not string.find(node.name, 'soil'))
and not string.find(node.name, 'flowers:')
and not string.find(node.name, 'fire:') then
if node.name ~= "ignore" then
minetest.set_node(self.lastpos, {name="fire:basic_flame"}) minetest.set_node(self.lastpos, {name="fire:basic_flame"})
end
self.object:remove() self.object:remove()
return
end
if minetest.get_node(pos).name == "air" then
minetest.set_node(pos, {name="throwing:light"})
end end
if math.floor(self.lastpos.x+0.5) ~= math.floor(pos.x+0.5) or math.floor(self.lastpos.y+0.5) ~= math.floor(pos.y+0.5) or math.floor(self.lastpos.z+0.5) ~= math.floor(pos.z+0.5) then
if minetest.get_node(self.lastpos).name == "throwing:light" then if minetest.get_node(self.lastpos).name == "throwing:light" then
minetest.remove_node(self.lastpos) minetest.remove_node(self.lastpos)
end end
if minetest.get_node(pos).name == "air" then
minetest.set_node(pos, {name="throwing:light"})
end
end
end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end end
end
self.lastpos={x=newpos.x, y=newpos.y, z=newpos.z}
end
minetest.register_entity("throwing:arrow_fire_entity", THROWING_ARROW_ENTITY) minetest.register_entity("throwing:arrow_fire_entity", THROWING_ARROW_ENTITY)
@ -105,7 +85,7 @@ minetest.register_node("throwing:light", {
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
tiles = {"throwing_empty.png"}, tiles = {"throwing_empty.png"},
light_source = default.LIGHT_MAX-4, light_source = LIGHT_MAX-4,
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {

46
fireworks_arrows.lua Executable file → Normal file
View File

@ -38,8 +38,6 @@ local function throwing_register_fireworks(color, desc)
textures = {"throwing:arrow_fireworks_" .. color .. "_box"}, textures = {"throwing:arrow_fireworks_" .. color .. "_box"},
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
player = "",
bow_damage = 0,
} }
local radius = 0.5 local radius = 0.5
@ -76,15 +74,16 @@ local function throwing_register_fireworks(color, desc)
THROWING_ARROW_ENTITY.on_step = function(self, dtime) THROWING_ARROW_ENTITY.on_step = function(self, dtime)
self.timer=self.timer+dtime self.timer=self.timer+dtime
local newpos = self.object:getpos() local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.timer < 0.07 then if self.timer < 0.07 then
minetest.sound_play("throwing_firework_launch", {pos=newpos, gain=0.8, max_hear_distance=2*64}) minetest.sound_play("throwing_firework_launch", {pos=pos, gain=0.8, max_hear_distance=2*64})
end end
minetest.add_particlespawner({ minetest.add_particlespawner({
amount = 16, amount = 16,
time = 0.1, time = 0.1,
minpos = newpos, minpos = pos,
maxpos = newpos, maxpos = pos,
minvel = {x=-5, y=-5, z=-5}, minvel = {x=-5, y=-5, z=-5},
maxvel = {x=5, y=5, z=5}, maxvel = {x=5, y=5, z=5},
minacc = vector.new(), minacc = vector.new(),
@ -95,39 +94,38 @@ local function throwing_register_fireworks(color, desc)
maxsize = 1, maxsize = 1,
texture = "throwing_sparkle.png", texture = "throwing_sparkle.png",
}) })
if self.lastpos.x ~= nil then if self.timer>0.2 then
for _, pos in pairs(throwing_get_trajectoire(self, newpos)) do
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
if throwing_is_player(self.player, obj) or throwing_is_entity(obj) then if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "throwing:arrow_fireworks_" .. color .. "_entity" and obj:get_luaentity().name ~= "__builtin:item" then
local damage = 2 local damage = 2
if self.bow_damage and self.bow_damage > 0 then
damage = damage + (self.bow_damage/12)
end
obj:punch(self.object, 1.0, { obj:punch(self.object, 1.0, {
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=damage}, damage_groups={fleshy=damage},
}, nil) }, nil)
self.object:remove()
boom(pos) boom(pos)
end
end
end
end
if self.timer > 2 then
self.object:remove() self.object:remove()
return
end
end
end
local node = minetest.get_node(newpos)
if self.timer > 2 or node.name ~= "air" and node.name ~= "throwing:firework_trail" then
boom(self.lastpos) boom(self.lastpos)
end
if self.lastpos.x~=nil then
if node.name ~= "air" and node.name ~= "throwing:firework_trail" then
self.object:remove() self.object:remove()
return boom(self.lastpos)
end
end end
if node.name == 'air' then if node.name == 'air' then
minetest.add_node(newpos, {name="throwing:firework_trail"}) minetest.add_node(pos, {name="throwing:firework_trail"})
minetest.get_node_timer(newpos):start(0.1) minetest.get_node_timer(pos):start(0.1)
end end
self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end end
self.lastpos={x=newpos.x, y=newpos.y, z=newpos.z}
end
minetest.register_entity("throwing:arrow_fireworks_" .. color .. "_entity", THROWING_ARROW_ENTITY) minetest.register_entity("throwing:arrow_fireworks_" .. color .. "_entity", THROWING_ARROW_ENTITY)

74
functions.lua Executable file → Normal file
View File

@ -16,69 +16,24 @@ minetest.register_on_leaveplayer(function(player)
players[playerName] = nil players[playerName] = nil
end) end)
function throwing_is_player(name, obj)
return (obj:is_player() and obj:get_player_name() ~= name)
end
function throwing_is_entity(obj)
return (obj:get_luaentity() ~= nil
and not string.find(obj:get_luaentity().name, "throwing:")
and obj:get_luaentity().name ~= "__builtin:item"
and obj:get_luaentity().name ~= "gauges:hp_bar"
and obj:get_luaentity().name ~= "signs:text")
end
function throwing_get_trajectoire(self, newpos)
if self.lastpos.x == nil then
return {newpos}
end
local coord = {}
local nx = (newpos["x"] - self.lastpos["x"])/3
local ny = (newpos["y"] - self.lastpos["y"])/3
local nz = (newpos["z"] - self.lastpos["z"])/3
if nx and ny and nz then
table.insert(coord, {x=self.lastpos["x"]+nx, y=self.lastpos["y"]+ny ,z=self.lastpos["z"]+nz })
table.insert(coord, {x=newpos["x"]-nx, y=newpos["y"]-ny ,z=newpos["z"]-nz })
end
table.insert(coord, newpos)
return coord
end
function throwing_touch(pos, objpos)
local rx = pos.x - objpos.x
local ry = pos.y - (objpos.y+1)
local rz = pos.z - objpos.z
if (ry < 1 and ry > -1) and (rx < 1 and rx > -1) and (rz < 1 and rz > -1) then
return true
end
return false
end
function throwing_shoot_arrow (itemstack, player, stiffness, is_cross) function throwing_shoot_arrow (itemstack, player, stiffness, is_cross)
if not player then return end
local arrow = itemstack:get_metadata() local arrow = itemstack:get_metadata()
itemstack:set_metadata("") itemstack:set_metadata("")
player:set_wielded_item(itemstack) player:set_wielded_item(itemstack)
local playerpos = player:getpos() local playerpos = player:getpos()
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow) local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow)
if not obj then return end
local dir = player:get_look_dir() local dir = player:get_look_dir()
obj:setvelocity({x=dir.x*stiffness, y=dir.y*stiffness, z=dir.z*stiffness}) obj:setvelocity({x=dir.x*stiffness, y=dir.y*stiffness, z=dir.z*stiffness})
obj:setacceleration({x=dir.x*-3, y=-10, z=dir.z*-3}) obj:setacceleration({x=dir.x*-3, y=-8.5, z=dir.z*-3})
obj:setyaw(player:get_look_yaw()+math.pi) obj:setyaw(player:get_look_yaw()+math.pi)
if is_cross then if is_cross then
minetest.sound_play("throwing_crossbow_sound", {pos=playerpos}) minetest.sound_play("throwing_crossbow_sound", {pos=playerpos})
else else
minetest.sound_play("throwing_bow_sound", {pos=playerpos}) minetest.sound_play("throwing_bow_sound", {pos=playerpos})
end end
if obj:get_luaentity() then obj:get_luaentity().player = player
obj:get_luaentity().player = player:get_player_name()
obj:get_luaentity().inventory = player:get_inventory() obj:get_luaentity().inventory = player:get_inventory()
obj:get_luaentity().stack = player:get_inventory():get_stack("main", player:get_wield_index()-1) obj:get_luaentity().stack = player:get_inventory():get_stack("main", player:get_wield_index()-1)
obj:get_luaentity().lastpos = {x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}
obj:get_luaentity().bow_damage = stiffness
end
return true return true
end end
@ -89,7 +44,6 @@ function throwing_unload (itemstack, player, unloaded, wear)
if not minetest.setting_getbool("creative_mode") then if not minetest.setting_getbool("creative_mode") then
player:get_inventory():add_item("main", arrow[1]) player:get_inventory():add_item("main", arrow[1])
end end
break
end end
end end
end end
@ -113,7 +67,6 @@ function throwing_reload (itemstack, player, pos, is_cross, loaded)
end end
local meta = arrow[2] local meta = arrow[2]
player:set_wielded_item({name=loaded, wear=wear, metadata=meta}) player:set_wielded_item({name=loaded, wear=wear, metadata=meta})
break
end end
end end
end end
@ -167,25 +120,12 @@ function throwing_register_bow (name, desc, scale, stiffness, reload_time, tough
recipe = craft recipe = craft
}) })
local craft_width = 1
-- Since # isn't stable especially when there are nils in the table, count by hand
for _,v in ipairs(craft) do
for i,__ in ipairs(v) do
if i > craft_width then
craft_width = i
end
end
end
local rev_craft = {}
for i,y in ipairs(craft) do
rev_craft[i] = {}
for j,x in ipairs(y) do
rev_craft[i][craft_width-j+1] = x
end
end
minetest.register_craft({ minetest.register_craft({
output = 'throwing:' .. name, output = 'throwing:' .. name,
recipe = rev_craft recipe = {
{craft[1][3], craft[1][2], craft[1][1]},
{craft[2][3], craft[2][2], craft[2][1]},
{craft[3][3], craft[3][2], craft[3][1]},
}
}) })
end end

6
init.lua Executable file → Normal file
View File

@ -2,14 +2,13 @@ throwing_arrows = {
{"throwing:arrow_steel", "throwing:arrow_steel_entity"}, {"throwing:arrow_steel", "throwing:arrow_steel_entity"},
{"throwing:arrow_stone", "throwing:arrow_stone_entity"}, {"throwing:arrow_stone", "throwing:arrow_stone_entity"},
{"throwing:arrow_obsidian", "throwing:arrow_obsidian_entity"}, {"throwing:arrow_obsidian", "throwing:arrow_obsidian_entity"},
{"throwing:arrow_diamond", "throwing:arrow_diamond_entity"},
{"throwing:arrow_mithril", "throwing:arrow_mithril_entity"}, --MFF : Only for Hunters
{"throwing:arrow_fire", "throwing:arrow_fire_entity"}, {"throwing:arrow_fire", "throwing:arrow_fire_entity"},
{"throwing:arrow_teleport", "throwing:arrow_teleport_entity"}, {"throwing:arrow_teleport", "throwing:arrow_teleport_entity"},
{"throwing:arrow_dig", "throwing:arrow_dig_entity"}, {"throwing:arrow_dig", "throwing:arrow_dig_entity"},
{"throwing:arrow_build", "throwing:arrow_build_entity"}, {"throwing:arrow_build", "throwing:arrow_build_entity"},
{"throwing:arrow_tnt", "throwing:arrow_tnt_entity"}, {"throwing:arrow_tnt", "throwing:arrow_tnt_entity"},
{"throwing:arrow_torch", "throwing:arrow_torch_entity"}, {"throwing:arrow_torch", "throwing:arrow_torch_entity"},
{"throwing:arrow_diamond", "throwing:arrow_diamond_entity"},
{"throwing:arrow_shell", "throwing:arrow_shell_entity"}, {"throwing:arrow_shell", "throwing:arrow_shell_entity"},
{"throwing:arrow_fireworks_blue", "throwing:arrow_fireworks_blue_entity"}, {"throwing:arrow_fireworks_blue", "throwing:arrow_fireworks_blue_entity"},
{"throwing:arrow_fireworks_red", "throwing:arrow_fireworks_red_entity"}, {"throwing:arrow_fireworks_red", "throwing:arrow_fireworks_red_entity"},
@ -28,11 +27,8 @@ dofile(minetest.get_modpath("throwing").."/functions.lua")
dofile(minetest.get_modpath("throwing").."/tools.lua") dofile(minetest.get_modpath("throwing").."/tools.lua")
dofile(minetest.get_modpath("throwing").."/crafts.lua")
dofile(minetest.get_modpath("throwing").."/standard_arrows.lua") dofile(minetest.get_modpath("throwing").."/standard_arrows.lua")
if minetest.get_modpath('fire') and minetest.get_modpath('bucket') and not DISABLE_FIRE_ARROW then if minetest.get_modpath('fire') and minetest.get_modpath('bucket') and not DISABLE_FIRE_ARROW then
dofile(minetest.get_modpath("throwing").."/fire_arrow.lua") dofile(minetest.get_modpath("throwing").."/fire_arrow.lua")
end end

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 KiB

34
shell_arrow.lua Executable file → Normal file
View File

@ -37,8 +37,6 @@ local THROWING_ARROW_ENTITY={
textures = {"throwing:arrow_shell_box"}, textures = {"throwing:arrow_shell_box"},
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
player = "",
bow_damage = 0,
} }
local radius = 1 local radius = 1
@ -72,42 +70,36 @@ end
-- Back to the arrow -- Back to the arrow
THROWING_ARROW_ENTITY.on_step = function(self, dtime) THROWING_ARROW_ENTITY.on_step = function(self, dtime)
local newpos = self.object:getpos() self.timer=self.timer+dtime
if self.lastpos.x ~= nil then local pos = self.object:getpos()
for _, pos in pairs(throwing_get_trajectoire(self, newpos)) do
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if self.timer>0.2 then
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
if throwing_is_player(self.player, obj) or throwing_is_entity(obj) then if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "throwing:arrow_shell_entity" and obj:get_luaentity().name ~= "__builtin:item" then
local speed = vector.length(self.object:getvelocity()) local speed = vector.length(self.object:getvelocity())
local damage = ((speed + 5)^1.2)/10 + 12 local damage = ((speed + 5)^1.2)/10 + 12
if self.bow_damage and self.bow_damage > 0 then
damage = damage + (self.bow_damage/12)
end
obj:punch(self.object, 1.0, { obj:punch(self.object, 1.0, {
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=damage}, damage_groups={fleshy=damage},
}, nil) }, nil)
boom(pos)
self.object:remove() self.object:remove()
return boom(pos)
end
end
end end
end end
if node.name ~= "air" if self.lastpos.x~=nil then
and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) if node.name ~= "air" and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) and not string.find(node.name, 'flowers:') and not string.find(node.name, 'farming:') then
and not (string.find(node.name, 'farming:') and not string.find(node.name, 'soil'))
and not string.find(node.name, 'flowers:')
and not string.find(node.name, 'fire:') then
boom(self.lastpos)
self.object:remove() self.object:remove()
return boom(self.lastpos)
end
end end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end end
end
self.lastpos={x=newpos.x, y=newpos.y, z=newpos.z}
end
minetest.register_entity("throwing:arrow_shell_entity", THROWING_ARROW_ENTITY) minetest.register_entity("throwing:arrow_shell_entity", THROWING_ARROW_ENTITY)

BIN
sounds/throwing_bow_sound.ogg Executable file → Normal file

Binary file not shown.

BIN
sounds/throwing_crossbow_sound.ogg Executable file → Normal file

Binary file not shown.

BIN
sounds/throwing_firework_boom.ogg Executable file → Normal file

Binary file not shown.

BIN
sounds/throwing_firework_launch.ogg Executable file → Normal file

Binary file not shown.

BIN
sounds/throwing_shell_explode.ogg Executable file → Normal file

Binary file not shown.

74
standard_arrows.lua Executable file → Normal file
View File

@ -26,75 +26,59 @@ function throwing_register_arrow_standard (kind, desc, eq, toughness, craft)
{7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17},
} }
}, },
tiles = {"throwing_arrow_" .. kind .. ".png", "throwing_arrow_" .. kind .. ".png", "throwing_arrow_" .. kind .. "_back.png", "throwing_arrow_" .. kind .. "_front.png", tiles = {"throwing_arrow_" .. kind .. ".png", "throwing_arrow_" .. kind .. ".png", "throwing_arrow_" .. kind .. "_back.png", "throwing_arrow_" .. kind .. "_front.png", "throwing_arrow_" .. kind .. "_2.png", "throwing_arrow_" .. kind .. ".png"},
"throwing_arrow_" .. kind .. "_2.png", "throwing_arrow_" .. kind .. ".png"},
groups = {not_in_creative_inventory=1}, groups = {not_in_creative_inventory=1},
}) })
local THROWING_ARROW_ENTITY={ local THROWING_ARROW_ENTITY={
physical = false, physical = false,
timer=0,
visual = "wielditem", visual = "wielditem",
visual_size = {x=0.1, y=0.1}, visual_size = {x=0.1, y=0.1},
textures = {"throwing:arrow_" .. kind .. "_box"}, textures = {"throwing:arrow_" .. kind .. "_box"},
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
player = "",
bow_damage = 0,
} }
THROWING_ARROW_ENTITY.on_step = function(self, dtime) THROWING_ARROW_ENTITY.on_step = function(self, dtime)
local newpos = self.object:getpos() self.timer=self.timer+dtime
if self.lastpos.x ~= nil then local pos = self.object:getpos()
for _, pos in pairs(throwing_get_trajectoire(self, newpos)) do
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if self.timer>0.2 then
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
local objpos = obj:getpos() if obj:get_luaentity() ~= nil then
if throwing_is_player(self.player, obj) or throwing_is_entity(obj) then if obj:get_luaentity().name ~= "throwing:arrow_" .. kind .. "_entity" and obj:get_luaentity().name ~= "__builtin:item" then
if throwing_touch(pos, objpos) then local speed = vector.length(self.object:getvelocity())
local puncher = self.object local damage = ((speed + eq)^1.2)/10
if self.player and minetest.get_player_by_name(self.player) then obj:punch(self.object, 1.0, {
puncher = minetest.get_player_by_name(self.player)
end
local damage = eq
if self.bow_damage and self.bow_damage > 0 then
damage = damage + (self.bow_damage/12)
end
obj:punch(puncher, 1.0, {
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=damage}, damage_groups={fleshy=damage},
}, nil) }, nil)
if math.random() < toughness then
if math.random(0,100) % 2 == 0 then
minetest.add_item(self.lastpos, 'throwing:arrow_' .. kind)
end
else
minetest.add_item(self.lastpos, 'default:stick')
end
self.object:remove() self.object:remove()
return --if math.random() < toughness then
--minetest.add_item(self.lastpos, 'throwing:arrow_' .. kind)
--else
--minetest.add_item(self.lastpos, 'default:stick')
--end
end end
end end
end end
if node.name ~= "air" end
and not string.find(node.name, 'water_')
and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) if self.lastpos.x~=nil then
and not (string.find(node.name, 'farming:') and not string.find(node.name, 'soil')) if node.name ~= "air" and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) and not string.find(node.name, 'flowers:') and not string.find(node.name, 'farming:') then
and not string.find(node.name, 'flowers:') self.object:remove()
and not string.find(node.name, 'fire:') then
if math.random() < toughness then if math.random() < toughness then
minetest.add_item(self.lastpos, 'throwing:arrow_' .. kind) minetest.add_item(self.lastpos, 'throwing:arrow_' .. kind)
else else
minetest.add_item(self.lastpos, 'default:stick') minetest.add_item(self.lastpos, 'default:stick')
end end
self.object:remove() end
return
end end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end end
end
self.lastpos={x=newpos.x, y=newpos.y, z=newpos.z}
end
minetest.register_entity("throwing:arrow_" .. kind .. "_entity", THROWING_ARROW_ENTITY) minetest.register_entity("throwing:arrow_" .. kind .. "_entity", THROWING_ARROW_ENTITY)
@ -114,21 +98,17 @@ function throwing_register_arrow_standard (kind, desc, eq, toughness, craft)
end end
if not DISABLE_STONE_ARROW then if not DISABLE_STONE_ARROW then
throwing_register_arrow_standard ('stone', 'Stone', 4, 0.40, 'group:stone') throwing_register_arrow_standard ('stone', 'Stone', 0, 0.88, 'group:stone')
end end
if not DISABLE_STEEL_ARROW then if not DISABLE_STEEL_ARROW then
throwing_register_arrow_standard ('steel', 'Steel', 5, 0.50, 'default:steel_ingot') throwing_register_arrow_standard ('steel', 'Steel', 5, 0.94, 'default:steel_ingot')
end
if not DISABLE_OBSIDIAN_ARROW then
throwing_register_arrow_standard ('obsidian', 'Obsidian', 6, 0.60, 'default:obsidian')
end end
if not DISABLE_DIAMOND_ARROW then if not DISABLE_DIAMOND_ARROW then
throwing_register_arrow_standard ('diamond', 'Diamond', 7, 0.70, 'default:diamond') throwing_register_arrow_standard ('diamond', 'Diamond', 10, 0.97, 'default:diamond')
end end
if not DISABLE_MITHRIL_ARROW then if not DISABLE_OBSIDIAN_ARROW then
throwing_register_arrow_standard ('mithril', 'Mithril (Hunter)', 8, 0.80, 'default:mithril_ingot') throwing_register_arrow_standard ('obsidian', 'Obsidian', 15, 0.88, 'default:obsidian')
end end

50
teleport_arrow.lua Executable file → Normal file
View File

@ -31,53 +31,49 @@ minetest.register_node("throwing:arrow_teleport_box", {
local THROWING_ARROW_ENTITY={ local THROWING_ARROW_ENTITY={
physical = false, physical = false,
timer=0,
visual = "wielditem", visual = "wielditem",
visual_size = {x=0.1, y=0.1}, visual_size = {x=0.1, y=0.1},
textures = {"throwing:arrow_teleport_box"}, textures = {"throwing:arrow_teleport_box"},
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
player = "", player = "",
bow_damage = 0,
} }
THROWING_ARROW_ENTITY.on_step = function(self, dtime) THROWING_ARROW_ENTITY.on_step = function(self, dtime)
local newpos = self.object:getpos() self.timer=self.timer+dtime
if self.lastpos.x ~= nil then local pos = self.object:getpos()
for _, pos in pairs(throwing_get_trajectoire(self, newpos)) do
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if not self.player then
self.object:remove()
end
if self.timer>0.2 then
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2) local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
if throwing_is_player(self.player, obj) or throwing_is_entity(obj) then if obj:get_luaentity() ~= nil then
if self.player ~= "" then if obj:get_luaentity().name ~= "throwing:arrow_teleport_entity" and obj:get_luaentity().name ~= "__builtin:item" then
local player = minetest.get_player_by_name(self.player)
if player then
player:setpos(self.lastpos)
end
end
self.object:remove() self.object:remove()
return if self.player ~= "" then
self.player:setpos(pos)
self.player:get_inventory():add_item("main", ItemStack("default:stick 2"))
end
end
end
end end
end end
if node.name ~= "air" if self.lastpos.x~=nil then
and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) if node.name ~= "air" then
and not (string.find(node.name, 'farming:') and not string.find(node.name, 'soil'))
and not string.find(node.name, 'flowers:')
and not string.find(node.name, 'fire:') then
if self.player ~= "" then
local player = minetest.get_player_by_name(self.player)
if player then
player:setpos(self.lastpos)
end
end
self.object:remove() self.object:remove()
return if self.player ~= "" then
self.player:setpos(self.lastpos)
self.player:get_inventory():add_item("main", ItemStack("default:stick 2"))
end
end
end end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end end
end
self.lastpos={x=newpos.x, y=newpos.y, z=newpos.z}
end
minetest.register_entity("throwing:arrow_teleport_entity", THROWING_ARROW_ENTITY) minetest.register_entity("throwing:arrow_teleport_entity", THROWING_ARROW_ENTITY)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 B

BIN
textures/throwing_arbalest.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

After

Width:  |  Height:  |  Size: 798 B

BIN
textures/throwing_arbalest_loaded.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 807 B

BIN
textures/throwing_arrow_build.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 217 B

BIN
textures/throwing_arrow_build_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 224 B

BIN
textures/throwing_arrow_build_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 213 B

BIN
textures/throwing_arrow_build_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 188 B

BIN
textures/throwing_arrow_diamond.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 213 B

BIN
textures/throwing_arrow_diamond_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 217 B

BIN
textures/throwing_arrow_diamond_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 210 B

BIN
textures/throwing_arrow_diamond_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 191 B

BIN
textures/throwing_arrow_dig.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 229 B

BIN
textures/throwing_arrow_dig_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 221 B

BIN
textures/throwing_arrow_dig_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 215 B

BIN
textures/throwing_arrow_dig_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 190 B

BIN
textures/throwing_arrow_fire.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 262 B

BIN
textures/throwing_arrow_fire_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 B

After

Width:  |  Height:  |  Size: 271 B

BIN
textures/throwing_arrow_fire_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 268 B

BIN
textures/throwing_arrow_fire_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 306 B

BIN
textures/throwing_arrow_fireworks_blue.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 222 B

BIN
textures/throwing_arrow_fireworks_blue_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 223 B

BIN
textures/throwing_arrow_fireworks_blue_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

After

Width:  |  Height:  |  Size: 232 B

BIN
textures/throwing_arrow_fireworks_blue_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

After

Width:  |  Height:  |  Size: 207 B

BIN
textures/throwing_arrow_fireworks_red.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 235 B

BIN
textures/throwing_arrow_fireworks_red_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 223 B

BIN
textures/throwing_arrow_fireworks_red_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

After

Width:  |  Height:  |  Size: 234 B

BIN
textures/throwing_arrow_fireworks_red_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

BIN
textures/throwing_arrow_obsidian.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 213 B

BIN
textures/throwing_arrow_obsidian_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 216 B

BIN
textures/throwing_arrow_obsidian_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 204 B

BIN
textures/throwing_arrow_obsidian_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 188 B

BIN
textures/throwing_arrow_shell.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 243 B

BIN
textures/throwing_arrow_shell_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 252 B

BIN
textures/throwing_arrow_shell_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 204 B

BIN
textures/throwing_arrow_shell_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

After

Width:  |  Height:  |  Size: 228 B

BIN
textures/throwing_arrow_steel.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 230 B

BIN
textures/throwing_arrow_steel_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 227 B

BIN
textures/throwing_arrow_steel_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 209 B

BIN
textures/throwing_arrow_steel_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 189 B

BIN
textures/throwing_arrow_stone.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 224 B

BIN
textures/throwing_arrow_stone_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 219 B

BIN
textures/throwing_arrow_stone_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 213 B

BIN
textures/throwing_arrow_stone_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 190 B

BIN
textures/throwing_arrow_teleport.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 220 B

BIN
textures/throwing_arrow_teleport_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 228 B

BIN
textures/throwing_arrow_teleport_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 212 B

BIN
textures/throwing_arrow_teleport_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 189 B

BIN
textures/throwing_arrow_tnt.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 241 B

BIN
textures/throwing_arrow_tnt_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 241 B

BIN
textures/throwing_arrow_tnt_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 211 B

BIN
textures/throwing_arrow_tnt_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

After

Width:  |  Height:  |  Size: 224 B

BIN
textures/throwing_arrow_torch.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 224 B

BIN
textures/throwing_arrow_torch_2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 228 B

BIN
textures/throwing_arrow_torch_back.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 228 B

BIN
textures/throwing_arrow_torch_front.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 178 B

BIN
textures/throwing_bow_composite.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 646 B

BIN
textures/throwing_bow_composite_loaded.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

BIN
textures/throwing_bow_royal.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 617 B

BIN
textures/throwing_bow_royal_loaded.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 488 B

After

Width:  |  Height:  |  Size: 660 B

BIN
textures/throwing_bow_steel.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 633 B

BIN
textures/throwing_bow_steel_loaded.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 683 B

BIN
textures/throwing_bow_wood.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 B

After

Width:  |  Height:  |  Size: 581 B

BIN
textures/throwing_bow_wood_loaded.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 622 B

BIN
textures/throwing_crossbow.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 B

After

Width:  |  Height:  |  Size: 673 B

BIN
textures/throwing_crossbow_loaded.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 B

After

Width:  |  Height:  |  Size: 677 B

BIN
textures/throwing_empty.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 B

After

Width:  |  Height:  |  Size: 178 B

BIN
textures/throwing_longbow.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 661 B

BIN
textures/throwing_longbow_loaded.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 674 B

BIN
textures/throwing_sparkle.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

After

Width:  |  Height:  |  Size: 190 B

Some files were not shown because too many files have changed in this diff Show More