Initial commit.

This commit is contained in:
Signal 2026-02-14 12:36:36 -05:00
commit b5c753ff4d
129 changed files with 4472 additions and 0 deletions

View file

@ -0,0 +1,9 @@
local ns = firefly
ns.register_node("saber", {
drawtype = "mesh",
mesh = "firefly_saber.obj",
tiles = {"firefly_saber.png"},
use_texture_alpha = "blend",
on_place = function() end,
})

View file

@ -0,0 +1,2 @@
name = firefly_saber
depends = firefly_weapons

View file

@ -0,0 +1,137 @@
# Made in Blockbench 4.12.5
mtllib firefly_saber.mtl
o cube
v 0.03125 0 0.10937500000000007
v 0.03125 0.5625 0.10937499999999994
v 0.03125 0 0.01562500000000007
v 0.03125 0.5625 0.015624999999999944
v 0.03125 0 -0.04687499999999993
v 0.03125 0.5625 -0.046875000000000056
v 0.03125 0.625 0.01562499999999993
v -0.03125 0.5625 0.10937499999999994
v -0.03125 0 0.10937500000000007
v -0.03125 0 -0.04687499999999993
v 0.03125 0.625 0.10937499999999993
v -0.03125 0.625 0.10937499999999993
v -0.03125 0.625 0.01562499999999993
v -0.03125 0.5625 -0.046875000000000056
v -0.03125 0.5625 0.015624999999999944
vt 0 0.90625
vt 0.28125 0.90625
vt 0.28125 1
vt 0 1
vt 0.40625 0.9375
vt 0.4375 0.9375
vt 0.4375 1
vt 0.40625 1
vt 0.125 0.625
vt 0.09375 0.625
vt 0.09375 0.34375
vt 0.125 0.34375
vt 0.1875 0.65625
vt 0.15625 0.65625
vt 0.15625 0.375
vt 0.1875 0.375
vt 0.125 0.625
vt 0.125 0.65625
vt 0.09375 0.65625
vt 0.09375 0.625
vt 0.40625 0.84375
vt 0.4375 0.84375
vt 0.4375 0.90625
vt 0.40625 0.90625
vt 0.34375 0.8125
vt 0.3125 0.8125
vt 0.3125 0.78125
vt 0.34375 0.78125
vt 0.40625 0.5625
vt 0.4375 0.5625
vt 0.4375 0.59375
vt 0.40625 0.59375
vt 0.28125 0.78125
vt 0.28125 0.875
vt 0 0.875
vt 0 0.78125
vt 0.4375 0.625
vt 0.4375 0.6875
vt 0.40625 0.6875
vt 0.40625 0.625
vt 0.375 0.8125
vt 0.375 0.734375
vt 0.40625 0.734375
vt 0.40625 0.765625
vt 0.40625 0.765625
vt 0.40625 0.8125
vt 0.375 0.8125
vn 1 0 0
vn 1 0 0
vn 0 2.220446049250313e-16 1
vn 0 -2.220446049250313e-16 -1
vn 0 2.220446049250313e-16 1
vn 0 1 -2.220446049250313e-16
vn 0 -2.220446049250313e-16 -1
vn 0 1 -2.220446049250313e-16
vn -1 0 0
vn -1 0 0
vn 0 -1 2.220446049250313e-16
vn 0 -1 2.220446049250313e-16
usemtl m_1a866da6-a095-0dfa-2917-4c8c09aff454
f 5/1/1 6/2/1 2/3/1 1/4/1
f 4/5/2 7/6/2 11/7/2 2/8/2
f 2/9/3 8/10/3 9/11/3 1/12/3
f 5/13/4 10/14/4 14/15/4 6/16/4
f 2/17/5 11/18/5 12/19/5 8/20/5
f 7/21/6 13/22/6 12/23/6 11/24/6
f 4/25/7 15/26/7 13/27/7 7/28/7
f 6/29/8 14/30/8 15/31/8 4/32/8
f 10/33/9 9/34/9 8/35/9 14/36/9
f 15/37/10 8/38/10 12/39/10 13/40/10
f 9/41/11 10/42/11 5/43/11 3/44/11
f 3/45/12 1/46/12 9/47/12
o cube
v 0.046875 -0.3125 0.10937500000000006
v 0.046875 2.7755575615628914e-17 0.10937499999999999
v 0.046875 -0.3125 0.015625000000000056
v 0.046875 0 0.015624999999999986
v -0.046875 2.7755575615628914e-17 0.10937499999999999
v -0.046875 -0.3125 0.10937500000000006
v -0.046875 0 0.015624999999999986
v -0.046875 -0.3125 0.015625000000000056
vt 0.21875 0.65625
vt 0.28125 0.65625
vt 0.28125 0.59375
vt 0.21875 0.59375
vt 0 0.75
vt 0.15625 0.75
vt 0.15625 0.6875
vt 0 0.6875
vt 0.3125 0.65625
vt 0.375 0.65625
vt 0.375 0.59375
vt 0.3125 0.59375
vt 0.1875 0.75
vt 0.34375 0.75
vt 0.34375 0.6875
vt 0.1875 0.6875
vt 0.375 0.84375
vt 0.3125 0.84375
vt 0.3125 1
vt 0.375 1
vt 0.0625 0.65625
vt 0 0.65625
vt 0 0.5
vt 0.0625 0.5
vn 0 1 -2.220446049250313e-16
vn 1 0 0
vn 0 -1 2.220446049250313e-16
vn -1 0 0
vn 0 2.220446049250313e-16 1
vn 0 -2.220446049250313e-16 -1
usemtl m_1a866da6-a095-0dfa-2917-4c8c09aff454
f 19/51/13 22/50/13 20/49/13 17/48/13
f 18/55/14 19/54/14 17/53/14 16/52/14
f 23/59/15 18/58/15 16/57/15 21/56/15
f 22/63/16 23/62/16 21/61/16 20/60/16
f 21/67/17 16/66/17 17/65/17 20/64/17
f 22/71/18 19/70/18 18/69/18 23/68/18

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

View file

@ -0,0 +1,9 @@
local ns = firefly
ns.register_weapon("streamer", {
inventory_image = "firefly_weapon_streamer.png",
fire_rate = 0.02,
fire = function(m, s)
ns.add_projectile(m.eye_pos +m.look_dir, {}, vector.new(0, 0, 1):rotate(vector.new(-m.pitch +(math.random() -0.5) /10, m.yaw +(math.random() -0.5) /10, 0)) *100, 0)
end
})

View file

@ -0,0 +1,2 @@
name = firefly_streamer
depends = firefly_weapons

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

View file

@ -0,0 +1,93 @@
local ns = firefly
local function weapon_wielded(s, def, m)
local time = minetest.get_us_time()
if m.ctl.dig and time -m.last_fire_time >= def.fire_rate *1000000 then
def.fire(m, s)
m.last_fire_time = time
end
end
local function weapon_wield(s, def, m)
m.last_fire_time = minetest.get_us_time()
end
minetest.register_entity(":firefly:projectile", {
initial_properties = {
visual = "sprite",
textures = {"[fill:1x1:0,0:#333"},
visual_size = vector.new(1,1,1) *0.1,
pointable = false,
physical = true,
collide_with_objects = false,
collisionbox = {
-0.1, -0.1, -0.1,
0.1, 0.1, 0.1
},
static_save = false
},
on_step = function(e, dtime, movement)
if movement and movement.collides then
minetest.add_particlespawner {
pos = {
min = e.object:get_pos():offset(-0.1,-0.1,-0.1),
max = e.object:get_pos():offset(0.1,0.1,0.1)
},
acc = vector.new(0, -9.81, 0),
time = 0.1,
amount = 5,
exptime = 0.3,
animation = {
type = "vertical_frames",
aspect_w = 1,
aspect_h = 1,
length = -1
},
texture = ns.solid_color_frames {"#f7d19b", "#f0a951", "#e1820c", "#cd5819", "#5d342c", "#444"},
attract = {
kind = "point",
origin = e.object:get_pos(),
strength = {
min = -40,
max = -10
}
},
size_tween = {
1,
0.02
},
collisiondetection = true,
die_on_collision = true,
}
e.object:remove()
end
end
})
-- Adds a basic gravity-velocity projectile. Custom behaviors can be created by creating a projectile entity and setting its callbacks to one's own implementations.
function ns.add_projectile(pos, props, vel, gravity)
local e = minetest.add_entity(pos, "firefly:projectile")
e:set_velocity(vel)
e:set_acceleration(vector.new(0, -gravity, 0))
return e
end
--[[
{
fire_rate = 1, -- Numer of times to fire per second when Punch is held. If negative, such automatic refiring
-- is disabled and this value instead indicates the minimum delay required between clicks to fire successfully.
fire = function(m, s) end, -- Called when the weapon should fire.
}
--]]
function ns.register_weapon(name, def)
def.on_wield = weapon_wield
def.while_wielded = weapon_wielded
def.range = 0
def.pointablilities = {
nodes = {
["group:everything"] = false
}
}
firefly.register_item(name, def)
end

View file

@ -0,0 +1,2 @@
name = firefly_weapons
depends = firefly_player

View file