mirror of
https://git.minetest.land/Mineclonia/Mineclonia.git
synced 2024-11-27 21:43:00 +00:00
Update mobs_mc, properly implement totem
This commit is contained in:
parent
ed5c2c2019
commit
e3cea04f12
11 changed files with 102 additions and 26 deletions
|
@ -304,6 +304,7 @@ mobs_mc.spawn_height = {
|
||||||
|
|
||||||
mobs_mc.misc = {
|
mobs_mc.misc = {
|
||||||
shears_wear = 276, -- Wear to add per shears usage (238 uses)
|
shears_wear = 276, -- Wear to add per shears usage (238 uses)
|
||||||
|
totem_fail_nodes = {} -- List of nodes in which the totem of undying fails
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Item name overrides from mobs_mc_gameconfig (if present)
|
-- Item name overrides from mobs_mc_gameconfig (if present)
|
||||||
|
|
|
@ -519,22 +519,74 @@ end
|
||||||
|
|
||||||
-- Evoker
|
-- Evoker
|
||||||
if c("totem") then
|
if c("totem") then
|
||||||
-- TODO: Implement actual MC totem behaviour
|
local hud_totem = {}
|
||||||
|
|
||||||
|
-- Totem of Undying
|
||||||
minetest.register_craftitem("mobs_mc:totem", {
|
minetest.register_craftitem("mobs_mc:totem", {
|
||||||
description = S("Totem of Undying"),
|
description = S("Totem of Undying"),
|
||||||
_doc_items_longdesc = S("A totem of undying is a rare artifact which may safe you from certain death."),
|
_doc_items_longdesc = S("A totem of undying is a rare artifact which may safe you from certain death."),
|
||||||
_doc_items_usagehelp = S("Hold it in your hand and punch once to instantly get back to full health. The totem gets destroyed in the process."),
|
_doc_items_usagehelp = S("The totem only works while you hold it in your hand. If you receive fatal damage, you are saved from death and you get a second chance with 1 HP. The totem is destroyed in the process, however."),
|
||||||
wield_image = "mcl_mobitems_totem.png",
|
inventory_image = "mcl_totems_totem.png",
|
||||||
inventory_image = "mcl_mobitems_totem.png",
|
wield_image = "mcl_totems_totem.png",
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
|
||||||
user:set_hp(20)
|
|
||||||
if not minetest.settings:get_bool("creative_mode") then
|
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_on_leaveplayer(function(player)
|
||||||
|
hud_totem[player:get_player_name()] = nil
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Save the player from death when holding totem of undying in hand
|
||||||
|
minetest.register_on_player_hpchange(function(player, hp_change)
|
||||||
|
local hp = player:get_hp()
|
||||||
|
-- Fatal damage?
|
||||||
|
if hp + hp_change <= 0 then
|
||||||
|
local wield = player:get_wielded_item()
|
||||||
|
if wield:get_name() == "mobs_mc:totem" then
|
||||||
|
local ppos = player:get_pos()
|
||||||
|
local pnname = minetest.get_node(ppos).name
|
||||||
|
-- Some exceptions when _not_ to save the player
|
||||||
|
for n=1, #mobs_mc.misc.totem_fail_nodes do
|
||||||
|
if pnname == mobs_mc.misc.totem_fail_nodes[n] then
|
||||||
|
return hp_change
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Reset breath as well
|
||||||
|
if player:get_breath() < 11 then
|
||||||
|
player:set_breath(10)
|
||||||
|
end
|
||||||
|
if not minetest.settings:get_bool("creative_mode") then
|
||||||
|
wield:take_item()
|
||||||
|
player:set_wielded_item(wield)
|
||||||
|
end
|
||||||
|
-- Effects
|
||||||
|
minetest.sound_play({name = "mcl_totems_totem", gain=1}, {pos=ppos, max_hear_distance=16})
|
||||||
|
|
||||||
|
-- Big totem overlay
|
||||||
|
if not hud_totem[player:get_player_name()] then
|
||||||
|
hud_totem[player:get_player_name()] = player:hud_add({
|
||||||
|
hud_elem_type = "image",
|
||||||
|
text = "mcl_totems_totem.png",
|
||||||
|
position = { x=0.5, y=1 },
|
||||||
|
scale = { x=17, y=17 },
|
||||||
|
offset = { x=0, y=-178 },
|
||||||
|
})
|
||||||
|
minetest.after(3, function(player)
|
||||||
|
if player and player:is_player() then
|
||||||
|
local name = player:get_player_name()
|
||||||
|
if hud_totem[name] then
|
||||||
|
player:hud_remove(hud_totem[name])
|
||||||
|
hud_totem[name] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end, player)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set HP to exactly 1
|
||||||
|
return -hp + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return hp_change
|
||||||
|
end, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Rotten flesh
|
-- Rotten flesh
|
||||||
|
|
|
@ -120,3 +120,6 @@ Origin of those models:
|
||||||
* Source: <https://freesound.org/people/haratman/sounds/393749/>
|
* Source: <https://freesound.org/people/haratman/sounds/393749/>
|
||||||
* `mobs_mc_zombie_hurt.ogg`
|
* `mobs_mc_zombie_hurt.ogg`
|
||||||
* Source: <https://freesound.org/people/haratman/sounds/393749/>
|
* Source: <https://freesound.org/people/haratman/sounds/393749/>
|
||||||
|
* [Spennnyyy](https://freesound.org/people/Spennnyyy/) (CC0)
|
||||||
|
* `mcl_totems_totem.ogg`
|
||||||
|
* Source: <https://freesound.org/people/Spennnyyy/sounds/323502/>
|
||||||
|
|
|
@ -7,15 +7,15 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2017-07-05 16:40+0200\n"
|
"POT-Creation-Date: 2018-01-25 18:45+0100\n"
|
||||||
"PO-Revision-Date: 2017-07-20 15:05+0200\n"
|
"PO-Revision-Date: 2018-01-25 18:48+0100\n"
|
||||||
"Last-Translator: Wuzzy <almikes@aol.com>\n"
|
"Last-Translator: Wuzzy <almikes@aol.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: de_DE\n"
|
"Language: de_DE\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.0.2\n"
|
"X-Generator: Poedit 2.0.5\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: 1_items_default.lua
|
#: 1_items_default.lua
|
||||||
|
@ -345,11 +345,13 @@ msgstr ""
|
||||||
|
|
||||||
#: 1_items_default.lua
|
#: 1_items_default.lua
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hold it in your hand and punch once to instantly get back to full health. "
|
"The totem only works while you hold it in your hand. If you receive fatal "
|
||||||
"The totem gets destroyed in the process."
|
"damage, you are saved from death and you get a second chance with 1 HP. The "
|
||||||
|
"totem is destroyed in the process, however."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Halten Sie es in der Hand und schlagen Sie zu, um sofort auf die volle "
|
"Der Totem funktioniert nur, während Sie ihn in der Hand halten. Wenn sie "
|
||||||
"Gesundheit zu kommen. Das zerstört das Totem."
|
"tödlichen Schaden erhalten, werden Sie vom Tod bewahrt und erhalten eine "
|
||||||
|
"zweite Lebenschance mit 1 HP. Der Totem geht dabei jedoch zu Bruch."
|
||||||
|
|
||||||
#: 1_items_default.lua
|
#: 1_items_default.lua
|
||||||
msgid "Rotten Flesh"
|
msgid "Rotten Flesh"
|
||||||
|
@ -500,6 +502,10 @@ msgstr ""
|
||||||
"Ein Witherskelettschädel ist ein kleiner dekorativer Block, der wie der "
|
"Ein Witherskelettschädel ist ein kleiner dekorativer Block, der wie der "
|
||||||
"Schädel eines Witherskeletts aussieht."
|
"Schädel eines Witherskeletts aussieht."
|
||||||
|
|
||||||
|
#: agent.lua
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr "Agent"
|
||||||
|
|
||||||
#: bat.lua
|
#: bat.lua
|
||||||
msgid "Bat"
|
msgid "Bat"
|
||||||
msgstr "Fledermaus"
|
msgstr "Fledermaus"
|
||||||
|
@ -716,6 +722,13 @@ msgstr "Zombie"
|
||||||
msgid "Zombie Pigman"
|
msgid "Zombie Pigman"
|
||||||
msgstr "Schweinezombie"
|
msgstr "Schweinezombie"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Hold it in your hand and punch once to instantly get back to full health. "
|
||||||
|
#~ "The totem gets destroyed in the process."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Halten Sie es in der Hand und schlagen Sie zu, um sofort auf die volle "
|
||||||
|
#~ "Gesundheit zu kommen. Das zerstört das Totem."
|
||||||
|
|
||||||
#~ msgid "Enderman Head (WIP)"
|
#~ msgid "Enderman Head (WIP)"
|
||||||
#~ msgstr "Endermankopf (unfertig)"
|
#~ msgstr "Endermankopf (unfertig)"
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2017-07-20 14:43+0200\n"
|
"POT-Creation-Date: 2018-01-25 18:45+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -298,8 +298,9 @@ msgstr ""
|
||||||
|
|
||||||
#: 1_items_default.lua
|
#: 1_items_default.lua
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hold it in your hand and punch once to instantly get back to full health. "
|
"The totem only works while you hold it in your hand. If you receive fatal "
|
||||||
"The totem gets destroyed in the process."
|
"damage, you are saved from death and you get a second chance with 1 HP. The "
|
||||||
|
"totem is destroyed in the process, however."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: 1_items_default.lua
|
#: 1_items_default.lua
|
||||||
|
@ -425,6 +426,10 @@ msgid ""
|
||||||
"skull of a wither skeleton."
|
"skull of a wither skeleton."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: agent.lua
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: bat.lua
|
#: bat.lua
|
||||||
msgid "Bat"
|
msgid "Bat"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -87,9 +87,9 @@ mobs:register_mob("mobs_mc:parrot", {
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
--spawn
|
-- Spawn disabled because parrots are not very smart.
|
||||||
-- TODO: Increase spawn chance if polished
|
-- TODO: Re-enable when parrots are finished
|
||||||
mobs:spawn_specific("mobs_mc:parrot", mobs_mc.spawn.jungle, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 30000, 1, mobs_mc.spawn_height.water+1, mobs_mc.spawn_height.overworld_max)
|
--mobs:spawn_specific("mobs_mc:parrot", mobs_mc.spawn.jungle, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 30000, 1, mobs_mc.spawn_height.water+1, mobs_mc.spawn_height.overworld_max)
|
||||||
|
|
||||||
-- spawn eggs
|
-- spawn eggs
|
||||||
mobs:register_egg("mobs_mc:parrot", S("Parrot"), "mobs_mc_spawn_icon_parrot.png", 0)
|
mobs:register_egg("mobs_mc:parrot", S("Parrot"), "mobs_mc_spawn_icon_parrot.png", 0)
|
||||||
|
|
BIN
mods/ENTITIES/mobs_mc/sounds/mcl_totems_totem.ogg
Normal file
BIN
mods/ENTITIES/mobs_mc/sounds/mcl_totems_totem.ogg
Normal file
Binary file not shown.
Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 346 B |
|
@ -176,6 +176,9 @@ mobs_mc.override.enderman_takable = {
|
||||||
mobs_mc.override.enderman_replace_on_take = {
|
mobs_mc.override.enderman_replace_on_take = {
|
||||||
["mcl_core:dirt_with_dry_grass"] = "mcl_core:dirt_with_grass",
|
["mcl_core:dirt_with_dry_grass"] = "mcl_core:dirt_with_grass",
|
||||||
}
|
}
|
||||||
|
mobs_mc.override.misc = {
|
||||||
|
totem_fail_nodes = { "mcl_core:void", "mcl_core:realm_barrier" },
|
||||||
|
}
|
||||||
|
|
||||||
-- Texuture overrides for enderman block. Required for cactus because it's original is a nodebox
|
-- Texuture overrides for enderman block. Required for cactus because it's original is a nodebox
|
||||||
-- and the textures have tranparent pixels.
|
-- and the textures have tranparent pixels.
|
||||||
|
|
|
@ -7,7 +7,6 @@ local wip_items = {
|
||||||
"mcl_observers:observer_off",
|
"mcl_observers:observer_off",
|
||||||
"mcl_observers:observer_on",
|
"mcl_observers:observer_on",
|
||||||
"mcl_chests:trapped_chest",
|
"mcl_chests:trapped_chest",
|
||||||
"mobs_mc:totem",
|
|
||||||
"mcl_comparators:comparator_off_comp",
|
"mcl_comparators:comparator_off_comp",
|
||||||
"mcl_minecarts:hopper_minecart",
|
"mcl_minecarts:hopper_minecart",
|
||||||
"mcl_minecarts:command_block_minecart",
|
"mcl_minecarts:command_block_minecart",
|
||||||
|
|
|
@ -666,7 +666,7 @@ Source path,Source file,Target path,Target file,xs,ys,xl,yl,xt,yt,Blacklisted?
|
||||||
/assets/minecraft/textures/blocks,glass_pane_top_silver.png,/mods/ITEMS/xpanes/textures,xpanes_top_glass_silver.png,,,,,,,
|
/assets/minecraft/textures/blocks,glass_pane_top_silver.png,/mods/ITEMS/xpanes/textures,xpanes_top_glass_silver.png,,,,,,,
|
||||||
/assets/minecraft/textures/blocks,glass_pane_top_white.png,/mods/ITEMS/xpanes/textures,xpanes_top_glass_white.png,,,,,,,
|
/assets/minecraft/textures/blocks,glass_pane_top_white.png,/mods/ITEMS/xpanes/textures,xpanes_top_glass_white.png,,,,,,,
|
||||||
/assets/minecraft/textures/blocks,glass_pane_top_yellow.png,/mods/ITEMS/xpanes/textures,xpanes_top_glass_yellow.png,,,,,,,
|
/assets/minecraft/textures/blocks,glass_pane_top_yellow.png,/mods/ITEMS/xpanes/textures,xpanes_top_glass_yellow.png,,,,,,,
|
||||||
/assets/minecraft/textures/items,totem.png,/mods/ENTITIES/mobs_mc/textures,mcl_mobitems_totem.png,,,,,,,
|
/assets/minecraft/textures/items,totem.png,/mods/ENTITIES/mobs_mc/textures,mcl_totems_totem.png,,,,,,,
|
||||||
/assets/minecraft/textures/entity,bat.png,/mods/ENTITIES/mobs_mc/textures,mobs_mc_bat.png,,,,,,,
|
/assets/minecraft/textures/entity,bat.png,/mods/ENTITIES/mobs_mc/textures,mobs_mc_bat.png,,,,,,,
|
||||||
/assets/minecraft/textures/entity,blaze.png,/mods/ENTITIES/mobs_mc/textures,mobs_mc_blaze.png,,,,,,,
|
/assets/minecraft/textures/entity,blaze.png,/mods/ENTITIES/mobs_mc/textures,mobs_mc_blaze.png,,,,,,,
|
||||||
/assets/minecraft/textures/entity/cat,black.png,/mods/ENTITIES/mobs_mc/textures,mobs_mc_cat_black.png,,,,,,,
|
/assets/minecraft/textures/entity/cat,black.png,/mods/ENTITIES/mobs_mc/textures,mobs_mc_cat_black.png,,,,,,,
|
||||||
|
|
|
Loading…
Reference in a new issue