Skip to content

Commit edc1468

Browse files
committed
Add medkit, completely remove apples
1 parent 6375bb2 commit edc1468

File tree

9 files changed

+115
-38
lines changed

9 files changed

+115
-38
lines changed

mods/ctf_map/schem_map.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ minetest.register_alias("flowers:geranium", "air")
1313
minetest.register_alias("flowers:viola", "air")
1414
minetest.register_alias("flowers:dandelion_white", "air")
1515
minetest.register_alias("flowers:chrysanthemum_green", "air")
16+
minetest.register_alias("default:apple", "air")
1617
minetest.register_alias("default:grass_1", "air")
1718
minetest.register_alias("default:grass_2", "air")
1819
minetest.register_alias("default:grass_3", "air")

mods/ctf_treasure/init.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
treasurer.register_treasure("default:ladder",0.3,5,{1,20})
22
treasurer.register_treasure("default:torch",0.3,5,{1,20})
33
treasurer.register_treasure("default:cobble",0.4,5,{45,99})
4-
treasurer.register_treasure("default:apple",0.3,5,{1,8})
54
treasurer.register_treasure("default:wood",0.3,5,{30,60})
65
treasurer.register_treasure("doors:door_steel",0.3,5,{1,3})
76

@@ -19,3 +18,5 @@ treasurer.register_treasure("shooter:grenade",0.08,2,1)
1918
treasurer.register_treasure("shooter:machine_gun",0.02,2,1)
2019
treasurer.register_treasure("shooter:ammo",0.3,2,{1,10})
2120
treasurer.register_treasure("shooter:arrow_white",0.5,2,{2,18})
21+
22+
treasurer.register_treasure("ctf_medkit:medkit",0.5,4,{2,5})

mods/default/aliases.lua

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ minetest.register_alias("cobble", "default:cobble")
4040
minetest.register_alias("mossycobble", "default:mossycobble")
4141
minetest.register_alias("steelblock", "default:steelblock")
4242
minetest.register_alias("sapling", "default:sapling")
43-
minetest.register_alias("apple", "default:apple")
4443

4544
minetest.register_alias("WPick", "default:pick_wood")
4645
minetest.register_alias("STPick", "default:pick_stone")

mods/default/crafting.lua

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -878,12 +878,6 @@ minetest.register_craft({
878878
burntime = 30,
879879
})
880880

881-
minetest.register_craft({
882-
type = "fuel",
883-
recipe = "default:apple",
884-
burntime = 3,
885-
})
886-
887881
minetest.register_craft({
888882
type = "fuel",
889883
recipe = "default:coal_lump",

mods/default/mapgen.lua

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ minetest.register_alias("mapgen_sandstone", "default:sandstone")
2222

2323
minetest.register_alias("mapgen_tree", "default:tree")
2424
minetest.register_alias("mapgen_leaves", "default:leaves")
25-
minetest.register_alias("mapgen_apple", "default:apple")
2625
minetest.register_alias("mapgen_jungletree", "default:jungletree")
2726
minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves")
2827
minetest.register_alias("mapgen_junglegrass", "air")

mods/default/nodes.lua

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ default:tree
7373
default:wood
7474
default:leaves
7575
default:sapling
76-
default:apple
7776
7877
default:jungletree
7978
default:junglewood
@@ -565,32 +564,6 @@ minetest.register_node("default:leaves", {
565564
after_place_node = default.after_place_leaves,
566565
})
567566

568-
minetest.register_node("default:apple", {
569-
description = "Apple",
570-
drawtype = "plantlike",
571-
tiles = {"default_apple.png"},
572-
inventory_image = "default_apple.png",
573-
stack_max = 30,
574-
paramtype = "light",
575-
sunlight_propagates = true,
576-
walkable = false,
577-
is_ground_content = false,
578-
selection_box = {
579-
type = "fixed",
580-
fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16}
581-
},
582-
groups = {fleshy = 3, dig_immediate = 3, flammable = 2,
583-
leafdecay = 3, leafdecay_drop = 1},
584-
on_use = minetest.item_eat(2),
585-
sounds = default.node_sound_leaves_defaults(),
586-
587-
after_place_node = function(pos, placer, itemstack)
588-
if placer:is_player() then
589-
minetest.set_node(pos, {name = "default:apple", param2 = 1})
590-
end
591-
end,
592-
})
593-
594567

595568
minetest.register_node("default:jungletree", {
596569
description = "Jungle Tree",
@@ -1256,7 +1229,7 @@ minetest.register_node("default:meselamp", {
12561229
if minetest.get_mapgen_setting("mg_name") == "v6" then
12571230
default.register_leafdecay({
12581231
trunks = {"default:tree"},
1259-
leaves = {"default:apple", "default:leaves"},
1232+
leaves = {"default:leaves"},
12601233
radius = 2,
12611234
})
12621235

@@ -1274,7 +1247,7 @@ if minetest.get_mapgen_setting("mg_name") == "v6" then
12741247
else
12751248
default.register_leafdecay({
12761249
trunks = {"default:tree"},
1277-
leaves = {"default:apple", "default:leaves"},
1250+
leaves = {"default:leaves"},
12781251
radius = 3,
12791252
})
12801253

-251 Bytes
Binary file not shown.

mods/medkit/init.lua

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
-- Table of tables indexed by player names, each having three fields:
2+
-- Time of left-click + 3s,
3+
-- HP at time of left-click + 6,
4+
-- ID of "healing effect" HUD element
5+
local players = {}
6+
7+
minetest.register_item("medkit:medkit", {
8+
description = "Medkit",
9+
inventory_image = "medkit_medkit.png",
10+
wield_image = "medkit_medkit.png",--^[transform:",
11+
stack_max = 5,
12+
range = 0,
13+
14+
on_use = on_use
15+
})
16+
17+
-- Called when player uses a health-pack
18+
-- Aborts if player is already healing
19+
local function on_use(stack, user)
20+
if not user then
21+
return
22+
end
23+
local name = user:get_player_name()
24+
25+
if players[name] then
26+
return nil
27+
end
28+
29+
players[name] = {
30+
time = os.time() + 3,
31+
hp = user:get_hp() + 6,
32+
hud = user:hud_add({
33+
hud_elem_type = "image",
34+
position = {x = 0, y = 0},
35+
scale = {x = -100, y = -100},
36+
text = "[colorize:#B3CCFF20:255"
37+
})
38+
}
39+
40+
-- Slow down player while healing
41+
user:set_physics_override({
42+
speed = 0.5
43+
})
44+
45+
minetest.after(0.5, update_hp(user))
46+
47+
return stack
48+
end
49+
50+
-- Called on left-click and is recursively called
51+
-- every 0.5s for 3 seconds after left-click
52+
local function update_hp(player)
53+
local name = player:get_player_name()
54+
player:set_hp(player:get_hp() + 1)
55+
56+
if players[name] and os.time() < players[name].time and
57+
players:get_hp() < players[name].hp then
58+
minetest.after(0.5, update_hp(player))
59+
else
60+
after_use(player)
61+
end
62+
end
63+
64+
-- Called after regen is complete
65+
-- Removes additional effects; restores normalcy
66+
local function after_use(player)
67+
local name = player:get_player_name()
68+
if not player or not players[name] then
69+
return
70+
end
71+
72+
-- Remove one health pack from player's inv
73+
player:get_inventory():remove_item("main", Itemstack("medkit:medkit 1"))
74+
75+
reset_effects(player)
76+
end
77+
78+
-- Reset effects
79+
local function reset_effects(player)
80+
user:hud_remove(players[name].hud)
81+
user:set_physics_override()
82+
players[player:get_player_name()] = nil
83+
end
84+
85+
-- Stop regen and revert back to original state if healing interrupted
86+
-- i.e. if healer punches or is punched
87+
minetest.register_on_punchplayer(function(player, hitter)
88+
local pname = player:get_player_name()
89+
local hname = hitter:get_player_name()
90+
91+
if not player or not hitter then
92+
return
93+
end
94+
95+
if players[pname] then
96+
minetest.chat_send_player(pname, minetest.colorize("#FF4444",
97+
"Your healing was interrupted!"))
98+
99+
player:set_hp(players[pname].hp - 6)
100+
reset_effects(player)
101+
end
102+
103+
if players[hname] then
104+
minetest.chat_send_player(pname, minetest.colorize("#FF4444",
105+
"Your healing was interrupted!"))
106+
107+
player:set_hp(players[pname].hp - 6)
108+
reset_effects(hitter)
109+
end
110+
end)
16.3 KB
Loading

0 commit comments

Comments
 (0)