Compare commits

...

17 Commits

Author SHA1 Message Date
7adb52233b Updated README 2023-03-22 18:16:10 +00:00
b86607280f Update 'README.TXT' 2023-03-16 17:36:29 +00:00
3bb4a8a54d Update README.TXT 2022-11-28 22:45:31 -05:00
75b0c0be39 Added a more "Xtreem"-looking hand 2022-11-28 22:44:22 -05:00
2be233466f Made the stone texture less shitty 2022-11-28 22:30:27 -05:00
971dc82648 Finalize for release 0.5 2022-11-27 14:08:38 -05:00
ac9ea6c4e0 Added jerrycans 2022-11-27 13:52:14 -05:00
5cd7abea5a Added 3rd revision of the city map 2022-11-27 13:51:32 -05:00
cf67a8046b Improvements 2022-11-26 13:52:38 -05:00
512918f24c Removed leaves_grey.png 2022-11-25 11:34:23 -05:00
e9db79234c It's all your fault 2022-11-24 22:28:26 -05:00
538fa8d42e Updated main_leaves_oak.png 2022-11-24 13:11:50 -05:00
e6f73814ca Updated ip_story to fix a game-breaking bug 2022-11-24 11:25:59 -05:00
8eb6100d84 Are you happy now, Rollerozxa? 2022-11-24 11:10:13 -05:00
e1d5a664fe Namespacing pt. 4 2022-11-24 01:06:37 -05:00
6bae4b3b6f Namespacing pt. 3 2022-11-24 00:51:57 -05:00
e5c3ae4ba0 Final version of release 0.2 2022-11-22 15:54:42 -05:00
199 changed files with 740 additions and 1817 deletions

View File

@@ -1,2 +1,11 @@
================
INSANE PROTESTOR
================
A game where you attend a mostly peaceful protest.
Submission to the 2022 Minetest Game Jam Submission to the 2022 Minetest Game Jam
Themes used: "Secrets", "Space" and "Story" Themes used: "Secrets", "Space" and "Story"
Dunno how to play?
Read the God damn inventory help tab!

View File

@@ -2,7 +2,7 @@ cops = {}
cops.copsSpawned = 0 cops.copsSpawned = 0
-- Pig spawner -- Pig spawner
minetest.register_node("cops:pig_spawner", { minetest.register_node(":cops:pig_spawner", {
walkable = false; walkable = false;
drawtype = "glasslike", drawtype = "glasslike",
paramtype = "light", paramtype = "light",
@@ -18,6 +18,43 @@ minetest.register_node("cops:pig_spawner", {
end,]] end,]]
}) })
-- Items
minetest.register_craftitem(":cops:handcuffs", {
description = "Handcuffs",
wield_image = "cops_handcuffs.png",
inventory_image = "cops_handcuffs.png",
})
minetest.register_craftitem(":cops:badge", {
description = "Police Badge",
wield_image = "cops_badge.png",
inventory_image = "cops_badge.png",
})
minetest.register_craftitem(":cops:baton", {
type = "none",
description = "Baton",
wield_image = "cops_baton.png",
inventory_image = "cops_baton.png",
tool_capabilities = {
max_drop_level = 0,
full_punch_interval = 0.4,
groupcaps =
{
cracky = {times={[4]=.1}, uses=0, maxlevel=4},
},
damage_groups = {fleshy = 5, snappy = 4},
}
})
minetest.register_craftitem(":cops:electric_weapon_broken", {
description = "Broken Electric Weapon",
wield_image = "cops_electric_weapon_broken.png",
inventory_image = "cops_electric_weapon_broken.png",
})
--[[ --[[
minetest.register_abm({ minetest.register_abm({
nodenames = {"cops:pig_spawner"}, nodenames = {"cops:pig_spawner"},
@@ -43,7 +80,7 @@ minetest.register_abm({
interval = 40, interval = 40,
chance = 140, chance = 140,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
if cops.copsSpawned < 20 then if cops.copsSpawned < 25 then
newPos = {x = pos.x, y = pos.y + 2, z = pos.z} newPos = {x = pos.x, y = pos.y + 2, z = pos.z}
local i = math.random(0, 7) local i = math.random(0, 7)
if i < 2 then if i < 2 then
@@ -61,7 +98,7 @@ minetest.register_abm({
end}) end})
-- Cops -- Cops
mobs:register_mob("cops:cop_regular_female", { mobs:register_mob(":cops:cop_regular_female", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
@@ -88,7 +125,9 @@ mobs:register_mob("cops:cop_regular_female", {
{ {
random = "female_noise", random = "female_noise",
}, },
on_die = onCopDie, on_die = function(self, pos)
onCopDie(self, pos)
end,
walk_velocity = 2, walk_velocity = 2,
run_velocity = 8, run_velocity = 8,
jump_height = 1, jump_height = 1,
@@ -98,6 +137,7 @@ mobs:register_mob("cops:cop_regular_female", {
fall_damage = true, fall_damage = true,
drops = drops =
{ {
{name = "cops:baton", chance = 2, min = 0, max = 1},
{name = "cops:badge", chance = 4, min = 0, max = 1}, {name = "cops:badge", chance = 4, min = 0, max = 1},
{name = "cops:handcuffs", chance = 3, min = 0, max = 1}, {name = "cops:handcuffs", chance = 3, min = 0, max = 1},
{name = "cops:electric_weapon_broken", chance = 3, min = 0, max = 1} {name = "cops:electric_weapon_broken", chance = 3, min = 0, max = 1}
@@ -118,7 +158,7 @@ mobs:register_mob("cops:cop_regular_female", {
}, },
}) })
mobs:register_mob("cops:cop_regular_male", { mobs:register_mob(":cops:cop_regular_male", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
@@ -145,7 +185,9 @@ mobs:register_mob("cops:cop_regular_male", {
{ {
random = "male_noise", random = "male_noise",
}, },
on_die = onCopDie, on_die = function(self, pos)
onCopDie(self, pos)
end,
walk_velocity = 2, walk_velocity = 2,
run_velocity = 8, run_velocity = 8,
jump_height = 1, jump_height = 1,
@@ -155,7 +197,8 @@ mobs:register_mob("cops:cop_regular_male", {
fall_damage = true, fall_damage = true,
drops = drops =
{ {
{name = "cops:badge", chance = 4, min = 0, max = 1}, {name = "cops:baton", chance = 2, min = 0, max = 1},
{name = "cops:badge", chance = 4, min = 1, max = 1},
{name = "cops:handcuffs", chance = 3, min = 0, max = 1}, {name = "cops:handcuffs", chance = 3, min = 0, max = 1},
{name = "cops:electric_weapon_broken", chance = 3, min = 0, max = 1} {name = "cops:electric_weapon_broken", chance = 3, min = 0, max = 1}
}, },
@@ -175,7 +218,7 @@ mobs:register_mob("cops:cop_regular_male", {
}, },
}) })
mobs:register_mob("cops:cop_armedthug", { mobs:register_mob(":cops:cop_armedthug", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
@@ -202,7 +245,9 @@ mobs:register_mob("cops:cop_armedthug", {
{ {
random = "male_noise", random = "male_noise",
}, },
on_die = onCopDie, on_die = function(self, pos)
onCopDie(self, pos)
end,
walk_velocity = 2, walk_velocity = 2,
run_velocity = 8, run_velocity = 8,
jump_height = 1, jump_height = 1,
@@ -231,6 +276,9 @@ mobs:register_mob("cops:cop_armedthug", {
}, },
}) })
onCopDie = function() onCopDie = function(self, pos)
minetest.set_node(pos, {name = "literal_trash:bloodstain", param2 = 1})
destruction_counter.pigsKilled = destruction_counter.pigsKilled + 1
cops.copsSpawned = cops.copsSpawned - 1 cops.copsSpawned = cops.copsSpawned - 1
end destruction_counter.updateCounter()
end

View File

@@ -1,2 +1,2 @@
name = cops name = ip_cops
depends = mobs depends = mobs, ip_destruction_counter

View File

@@ -1,7 +1,9 @@
local modpath = minetest.get_modpath("destruction_counter") local modpath = minetest.get_modpath("ip_destruction_counter")
destruction_counter = {} destruction_counter = {}
destruction_counter.nodesDestroyed = 0 destruction_counter.nodesDestroyed = 0
destruction_counter.pigsKilled = 0
destruction_counter.peopleKilled = 0
local nodesDestroyedByHand = 0 local nodesDestroyedByHand = 0
local idText local idText
@@ -34,10 +36,10 @@ minetest.register_on_joinplayer(function(player)
hud_elem_type = "text", hud_elem_type = "text",
position = {x = 0.3, y = 0.7}, position = {x = 0.3, y = 0.7},
scale = {x = 0.3, y = 0.5}, scale = {x = 0.3, y = 0.5},
text = "Test", text = "Destruct-o-meter",
number = 0xff3c0a, number = 0xff3c0a,
alignment = {x = 1}, alignment = {x = 1},
offset = {x = 0, y = 46}, offset = {x = 200, y = 46},
}) })
end) end)
@@ -48,14 +50,17 @@ end)
function destruction_counter.updateCounter(player) function destruction_counter.updateCounter(player)
if not player then if not player then
return player = minetest.get_player_by_name("singleplayer")
end end
local totalDestruction = destruction_counter.nodesDestroyed + math.floor(nodesDestroyedByHand / 10) local totalDestruction = destruction_counter.nodesDestroyed + destruction_counter.pigsKilled * 20 + destruction_counter.peopleKilled * 10 + math.floor(nodesDestroyedByHand / 10)
local percentage = (totalDestruction / 1000 * 4) local percentage = (totalDestruction / 2000 * 4)
if percentage > 100 then if percentage > 4 then
percentage = 100 percentage = 4
end end
player:hud_change(idText, "text", "Destruction meter: " .. totalDestruction) player:hud_change(idText, "text", "Destruction meter: " .. totalDestruction)
player:hud_change(idMeter, "scale", {x = percentage, y = 4}) player:hud_change(idMeter, "scale", {x = percentage, y = 4})
end end

View File

@@ -1,4 +1,4 @@
name = destruction_counter name = ip_destruction_counter
description = Adds a HUD counter that shows how much shit you've destroyed. description = Adds a HUD counter that shows how much shit you've destroyed.
author = MCL author = MCL
title = Destruction Counter title = Destruction Counter

View File

@@ -73,7 +73,7 @@ function elevator.show_nearest_elevator(pos, owner_name, param2)
end end
minetest.register_node("elevator:elevator", { minetest.register_node(":elevator:elevator", {
description = S("Elevator"), description = S("Elevator"),
drawtype = "mesh", drawtype = "mesh",
mesh = "elevator_elevator.obj", mesh = "elevator_elevator.obj",

View File

@@ -61,7 +61,7 @@ mod_dofile("add_target")
mod_dofile("on_receive_fields") mod_dofile("on_receive_fields")
-- invisible node to place inside top of elevator: box and elevator -- invisible node to place inside top of elevator: box and elevator
minetest.register_node("elevator:hidden_top", { minetest.register_node(":elevator:hidden_top", {
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,

View File

@@ -1,5 +1,5 @@
name = elevator name = elevator
optional_depends = mesecons, dye optional_depends = mesecons, dye
description = Network of teleporter-boxes that allows easy travelling to other boxes on the same network. description = Travelenet mod adapted for Insane Protestor
author = mt-mods author = mt-mods
title = Elevator title = Elevator

View File

@@ -153,7 +153,7 @@ local function entity_physics(pos, radius, drops)
local obj_pos = obj:get_pos() local obj_pos = obj:get_pos()
local dist = math.max(1, vector.distance(pos, obj_pos)) local dist = math.max(1, vector.distance(pos, obj_pos))
local damage = (4 / dist) * radius * 8 local damage = (4 / dist) * radius
if obj:is_player() then if obj:is_player() then
local dir = vector.normalize(vector.subtract(obj_pos, pos)) local dir = vector.normalize(vector.subtract(obj_pos, pos))
local moveoff = vector.multiply(dir, 2 / dist * radius) local moveoff = vector.multiply(dir, 2 / dist * radius)
@@ -403,8 +403,7 @@ function explosives.boom(pos, def)
local owner = def.owner local owner = def.owner
local sound = def.sound or "tnt_explode" local sound = def.sound or "tnt_explode"
minetest.sound_play(sound, {pos = pos, gain = 2.5, minetest.sound_play(sound, {pos = pos, gain = 2.5, max_hear_distance = def.radius * 30}, true)
max_hear_distance = math.min(def.radius * 30, 128)}, true)
local drops, radius = tnt_explode(pos, def.radius, true, def.ignore_on_blast, owner, true) local drops, radius = tnt_explode(pos, def.radius, true, def.ignore_on_blast, owner, true)
-- append entity drops -- append entity drops
local damage_radius = (radius / math.max(1, def.radius)) * def.damage_radius local damage_radius = (radius / math.max(1, def.radius)) * def.damage_radius
@@ -417,7 +416,7 @@ function explosives.boom(pos, def)
end end
minetest.register_node("explosives:gunpowder", { minetest.register_node(":explosives:gunpowder", {
description = "Gun Powder", description = "Gun Powder",
drawtype = "raillike", drawtype = "raillike",
paramtype = "light", paramtype = "light",
@@ -456,7 +455,7 @@ minetest.register_node("explosives:gunpowder", {
end, end,
}) })
minetest.register_node("explosives:gunpowder_burning", { minetest.register_node(":explosives:gunpowder_burning", {
drawtype = "raillike", drawtype = "raillike",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
@@ -537,7 +536,7 @@ minetest.register_node("explosives:gunpowder_burning", {
minetest.register_craftitem("explosives:dynamite_stick", { minetest.register_craftitem(":explosives:dynamite_stick", {
description = "Dynamite Stick", description = "Dynamite Stick",
inventory_image = "tnt_tnt_stick.png", inventory_image = "tnt_tnt_stick.png",
groups = {flammable = 5}, groups = {flammable = 5},
@@ -548,7 +547,7 @@ minetest.register_craftitem("explosives:dynamite_stick", {
function explosives.register_tnt(def) function explosives.register_tnt(def)
local name local name
if not def.name:find(':') then if not def.name:find(':') then
name = "explosives:" .. def.name name = ":explosives:" .. def.name
else else
name = def.name name = def.name
def.name = def.name:match(":([%w_]+)") def.name = def.name:match(":([%w_]+)")
@@ -556,8 +555,8 @@ function explosives.register_tnt(def)
if not def.tiles then def.tiles = {} end if not def.tiles then def.tiles = {} end
if not def.damage_radius then def.damage_radius = def.radius * 2 end if not def.damage_radius then def.damage_radius = def.radius * 2 end
if enable_tnt then
minetest.register_node(":" .. name, { minetest.register_node(name, {
description = def.description, description = def.description,
tiles = {"tnt_side.png"}, tiles = {"tnt_side.png"},
drawtype = "nodebox", drawtype = "nodebox",
@@ -613,48 +612,12 @@ function explosives.register_tnt(def)
minetest.registered_nodes[name .. "_burning"].on_construct(pos) minetest.registered_nodes[name .. "_burning"].on_construct(pos)
end, end,
}) })
end
minetest.register_node(":" .. name .. "_burning", {
tiles = {
"tnt_side"
},
drawtype = "nodebox",
paramtype = "light",
node_box =
{
type = "fixed",
fixed =
{
{-0.375, -0.5, -0.375, 0.375, 0.0625, 0.375},
{-0.3125, 0.0625, -0.3125, 0.3125, 0.25, 0.3125},
{-0.25, 0.25, -0.25, -0.125, 0.5, 0.3125},
{-0.125, 0.25, -0.25, 0.25, 0.5, -0.125},
{-0.125, 0.25, 0.1875, 0.25, 0.5, 0.3125},
{0.125, 0.25, -0.125, 0.25, 0.3125, 0.1875},
{-0.0625, 0.25, -0.0625, 0.0625, 0.4375, 0.125},
}
},
light_source = 5,
drop = "",
--sounds = default.node_sound_wood_defaults(),
groups = {falling_node = 1, not_in_creative_inventory = 1},
on_timer = function(pos, elapsed)
explosives.boom(pos, def)
end,
-- unaffected by explosions
on_blast = function() end,
on_construct = function(pos)
minetest.sound_play("tnt_ignite", {pos = pos}, true)
minetest.get_node_timer(pos):start(4)
minetest.check_for_falling(pos)
end,
})
end end
explosives.register_tnt({ explosives.register_tnt({
name = "explosives:propane_tank", name = "propane_tank",
description = "Propane Tank", description = "Propane Tank",
radius = explosion_radius, radius = explosion_radius,
}) })

View File

@@ -1,3 +1,3 @@
name = explosives name = ip_explosives
description = Explosives mod for Insane Protestor; derivative work of the TNT (tnt) mod from Minetest Game description = Explosives mod for Insane Protestor; derivative work of the TNT (tnt) mod from Minetest Game
depends = fire, destruction_counter depends = fire, ip_destruction_counter

View File

@@ -162,7 +162,7 @@ local function eexpl(pos)
end end
minetest.register_node("extinguisher:foam", { minetest.register_node(":extinguisher:foam", {
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
node_box = { node_box = {
@@ -201,7 +201,7 @@ minetest.register_abm({
end, end,
}) })
minetest.register_node("extinguisher:automatic", { minetest.register_node(":extinguisher:automatic", {
description = "Extinguisher", description = "Extinguisher",
tiles = {"extinguisher_top.png", "extinguisher_bottom.png", tiles = {"extinguisher_top.png", "extinguisher_bottom.png",
"extinguisher.png", "extinguisher.png^[transformFX", "extinguisher.png", "extinguisher.png^[transformFX",
@@ -247,7 +247,7 @@ minetest.register_node("extinguisher:automatic", {
end, end,
}) })
minetest.register_node("extinguisher:destroyed", { minetest.register_node(":extinguisher:destroyed", {
description = "Destroyed Extinguisher", description = "Destroyed Extinguisher",
tiles = {"extinguisher_top.png", "extinguisher_bottom.png", tiles = {"extinguisher_top.png", "extinguisher_bottom.png",
"extinguisher.png", "extinguisher.png^[transformFX", "extinguisher.png", "extinguisher.png^[transformFX",
@@ -295,52 +295,6 @@ minetest.register_globalstep(function(dtime)
end end
end) end)
minetest.register_craftitem("extinguisher:foam_ingredient_1", {
description = "Foam Ingredient",
inventory_image = "extinguisher_essence_1.png",
})
minetest.register_craftitem("extinguisher:foam_ingredient_2", {
description = "Foam Ingredient",
inventory_image = "extinguisher_essence_2.png",
})
minetest.register_craftitem("extinguisher:foam_bucket", {
description = "Foam",
inventory_image = "extinguisher_foam_bucket.png",
})
if minetest.registered_items["poisonivy:climbing"] then
minetest.register_craft({
output = "extinguisher:foam_ingredient_1 2",
recipe = {
{"default:stone"},
{"poisonivy:climbing"},
{"default:stone"},
},
replacements = {{"default:stone", "default:stone"}, {"default:stone", "default:stone"}},
})
minetest.register_craft({
output = "extinguisher:foam_ingredient_2",
recipe = {
{"default:stone"},
{"poisonivy:seedling"},
{"default:stone"},
},
replacements = {{"default:stone", "default:stone"}, {"default:stone", "default:stone"}},
})
minetest.register_craft({
output = "extinguisher:foam_ingredient_2 3",
recipe = {
{"default:stone"},
{"poisonivy:sproutling"},
{"default:stone"},
},
replacements = {{"default:stone", "default:stone"}, {"default:stone", "default:stone"}},
})
end

View File

@@ -1,3 +1,3 @@
name = extinguisher name = ip_extinguisher
description = Extinguisher mod adapted for Insane Protestor description = Extinguisher mod adapted for Insane Protestor

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 6.6 KiB

9
mods/ip_help/init.lua Normal file
View File

@@ -0,0 +1,9 @@
sfinv.register_page("ip_help:how_to_play", {
title = "How to Play",
get = function(self, player, context)
return sfinv.make_formspec(player, context, [[
bgcolor[#3A41EA]
hypertext[.1, .5; 5, 12;;<global halign=center color=yellow size=14 font=Regular>Here's how to play:The goal is to destroy as much stuff as you can. You can use pipebombs, firebombs (molotov cocktails), your fist, or even the batons that some cops drop upon death. You can craft molotov cocktails by surrounding a jerrycan with empty beer bottles. You get points by killing police officers, regular people, and destroying buildings.]
]], true)
end
})

3
mods/ip_help/mod.conf Normal file
View File

@@ -0,0 +1,3 @@
title = Insane Protestor Help
name = ip_help
depends = sfinv

View File

@@ -1,4 +1,4 @@
minetest.register_node("literal_trash:disc",{ minetest.register_node(":literal_trash:disc",{
description = "Optical Disc", description = "Optical Disc",
drawtype = "signlike", drawtype = "signlike",
tiles = {"literal_trash_disc.png"}, tiles = {"literal_trash_disc.png"},
@@ -18,7 +18,7 @@ minetest.register_node("literal_trash:disc",{
}, },
}) })
minetest.register_node("literal_trash:vhs",{ minetest.register_node(":literal_trash:vhs",{
description = "VHS Tape", description = "VHS Tape",
drawtype = "signlike", drawtype = "signlike",
tiles = {"literal_trash_vhs.png"}, tiles = {"literal_trash_vhs.png"},
@@ -38,7 +38,7 @@ minetest.register_node("literal_trash:vhs",{
}, },
}) })
minetest.register_node("literal_trash:bloodstain",{ minetest.register_node(":literal_trash:bloodstain",{
description = "Blood Stain", description = "Blood Stain",
drawtype = "signlike", drawtype = "signlike",
tiles = {"literal_trash_bloodstain.png"}, tiles = {"literal_trash_bloodstain.png"},
@@ -58,7 +58,7 @@ minetest.register_node("literal_trash:bloodstain",{
}, },
}) })
minetest.register_node("literal_trash:vodka", { minetest.register_node(":literal_trash:vodka", {
description = "Vodka Bottle", description = "Vodka Bottle",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"literal_trash_vodka.png"}, tiles = {"literal_trash_vodka.png"},
@@ -75,7 +75,7 @@ minetest.register_node("literal_trash:vodka", {
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
minetest.register_node("literal_trash:beer_bottle", { minetest.register_node(":literal_trash:beer_bottle", {
description = "Beer Bottle", description = "Beer Bottle",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"literal_trash_beer_bottle.png"}, tiles = {"literal_trash_beer_bottle.png"},
@@ -92,7 +92,7 @@ minetest.register_node("literal_trash:beer_bottle", {
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
minetest.register_node("literal_trash:beer_bottle_empty", { minetest.register_node(":literal_trash:beer_bottle_empty", {
description = "Empty Beer Bottle", description = "Empty Beer Bottle",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"literal_trash_beer_bottle_empty.png"}, tiles = {"literal_trash_beer_bottle_empty.png"},
@@ -112,7 +112,7 @@ minetest.register_node("literal_trash:beer_bottle_empty", {
minetest.register_node("literal_trash:empty_beer_bottles", { minetest.register_node(":literal_trash:empty_beer_bottles", {
description = "Empty Beer Bottles", description = "Empty Beer Bottles",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"literal_trash_empty_beer_bottles.png"}, tiles = {"literal_trash_empty_beer_bottles.png"},
@@ -129,4 +129,20 @@ minetest.register_node("literal_trash:empty_beer_bottles", {
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
}) })
minetest.register_node(":literal_trash:jerrycan_gasoline", {
description = "Jerrycan filled w/ Gasoline",
drawtype = "plantlike",
tiles = {"literal_trash_jerrycan.png"},
tiles = {"literal_trash_jerrycan.png"},
tiles = {"literal_trash_jerrycan.png"},
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {cracky = 4, explosive = 1, dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_glass_defaults(),
})

View File

@@ -1,4 +1,4 @@
name = literal_trash name = ip_literal_trash
title = Literal Trash title = Literal Trash
description = Adds literal trash description = Adds literal trash

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

View File

@@ -1,4 +1,4 @@
local modpath = minetest.get_modpath("main") local modpath = minetest.get_modpath("ip_main")
local formspec = local formspec =
{ {
"formspec_version[4]", "formspec_version[4]",
@@ -22,9 +22,7 @@ local formspec =
dofile(modpath.."/nodes.lua") dofile(modpath.."/nodes.lua")
dofile(modpath.."/craftitems.lua") --dofile(modpath.."/craftitems.lua")
dofile(modpath.."/recipes.lua")
dofile(modpath.."/mapgen.lua")
dofile(modpath.."/tools.lua") dofile(modpath.."/tools.lua")

1
mods/ip_main/mod.conf Normal file
View File

@@ -0,0 +1 @@
name = ip_main

View File

@@ -1,5 +1,8 @@
--Naturally generating nodes --Naturally generating nodes
minetest.register_node("main:stone", minetest.register_node(":main:stone",
{ {
description = "Stone", description = "Stone",
tiles = {"main_stone.png"}, tiles = {"main_stone.png"},
@@ -8,7 +11,7 @@ minetest.register_node("main:stone",
legacy_mineral = true, legacy_mineral = true,
}) })
minetest.register_node("main:cobble", minetest.register_node(":main:cobble",
{ {
description = "Cobble", description = "Cobble",
tiles = {"main_cobble.png"}, tiles = {"main_cobble.png"},
@@ -17,7 +20,7 @@ minetest.register_node("main:cobble",
legacy_mineral = true, legacy_mineral = true,
}) })
minetest.register_node("main:rock", minetest.register_node(":main:rock",
{ {
description = "Rock", description = "Rock",
tiles = {"main_cobble.png"}, tiles = {"main_cobble.png"},
@@ -34,26 +37,26 @@ minetest.register_node("main:rock",
} }
}) })
minetest.register_node("main:dirt", minetest.register_node(":main:dirt",
{ {
description = "Dirt", description = "Dirt",
tiles = {"main_dirt.png"}, tiles = {"main_dirt.png"},
groups = {crumbly = 3, soil = 1}, groups = {crumbly = 3, soil = 1},
}) })
minetest.register_node("main:dirt_frozen", { minetest.register_node(":main:dirt_frozen", {
description = "Frozen Dirt", description = "Frozen Dirt",
tiles = {"main_dirt_frozen.png"}, tiles = {"main_dirt_frozen.png"},
groups = {cracky = 1}, groups = {cracky = 1},
}) })
minetest.register_node("main:snow", { minetest.register_node(":main:snow", {
description = "Snow", description = "Snow",
tiles = {"main_snow.png"}, tiles = {"main_snow.png"},
groups = {crumbly = 3}, groups = {crumbly = 3},
}) })
minetest.register_node("main:ice_thin", { minetest.register_node(":main:ice_thin", {
drawtype = "allfaces", drawtype = "allfaces",
paramtype = "light", paramtype = "light",
light_propagates = true, light_propagates = true,
@@ -64,13 +67,13 @@ minetest.register_node("main:ice_thin", {
groups = {cracky = 3, slippery = 3}, groups = {cracky = 3, slippery = 3},
}) })
minetest.register_node("main:ice_thick", { minetest.register_node(":main:ice_thick", {
description = "Thick Ice", description = "Thick Ice",
tiles = {"main_ice_thick.png"}, tiles = {"main_ice_thick.png"},
groups = {cracky = 1}, groups = {cracky = 1},
}) })
minetest.register_node("main:dirt_with_grass", minetest.register_node(":main:dirt_with_grass",
{ {
description = "Dirt with Grass", description = "Dirt with Grass",
tiles = {"main_grass.png", "main_dirt.png", tiles = {"main_grass.png", "main_dirt.png",
@@ -80,7 +83,7 @@ minetest.register_node("main:dirt_with_grass",
drop = 'main:dirt', drop = 'main:dirt',
}) })
minetest.register_node("main:dirt_with_swamp_grass", minetest.register_node(":main:dirt_with_swamp_grass",
{ {
description = "Dirt with Swamp Grass", description = "Dirt with Swamp Grass",
tiles = {"main_swamp_grass.png", "main_dirt.png", tiles = {"main_swamp_grass.png", "main_dirt.png",
@@ -90,14 +93,14 @@ minetest.register_node("main:dirt_with_swamp_grass",
drop = 'main:dirt', drop = 'main:dirt',
}) })
minetest.register_node("main:sand", minetest.register_node(":main:sand",
{ {
description = "Sand", description = "Sand",
tiles = {"main_sand.png"}, tiles = {"main_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1}, groups = {crumbly = 3, falling_node = 1, sand = 1},
}) })
minetest.register_node("main:twig", minetest.register_node(":main:twig",
{ {
description = "Twig", description = "Twig",
tiles = {"main_log_maple.png"}, tiles = {"main_log_maple.png"},
@@ -118,7 +121,7 @@ minetest.register_node("main:twig",
}) })
--Player made nodes --Player made nodes
minetest.register_node("main:torch", minetest.register_node(":main:torch",
{ {
description = "Torch", description = "Torch",
tiles = {"main_lump_coal.png"}, tiles = {"main_lump_coal.png"},
@@ -126,28 +129,28 @@ minetest.register_node("main:torch",
groups = {choppy = 3, oddly_breakable_by_hand = 3}, groups = {choppy = 3, oddly_breakable_by_hand = 3},
}) })
minetest.register_node("main:bricks_red", minetest.register_node(":main:bricks_red",
{ {
description = "Red Bricks", description = "Red Bricks",
tiles = {"main_bricks_red.png"}, tiles = {"main_bricks_red.png"},
groups = {cracky = 2}, groups = {cracky = 2},
}) })
minetest.register_node("main:bricks_stone", minetest.register_node(":main:bricks_stone",
{ {
description = "Stone Bricks", description = "Stone Bricks",
tiles = {"main_bricks_stone.png"}, tiles = {"main_bricks_stone.png"},
groups = {cracky = 2}, groups = {cracky = 2},
}) })
minetest.register_node("main:bricks_cobble", minetest.register_node(":main:bricks_cobble",
{ {
description = "Cobble Bricks", description = "Cobble Bricks",
tiles = {"main_bricks_cobble.png"}, tiles = {"main_bricks_cobble.png"},
groups = {cracky = 2}, groups = {cracky = 2},
}) })
minetest.register_node("main:glass", minetest.register_node(":main:glass",
{ {
description = "Glass", description = "Glass",
drawtype = "glasslike_framed_optional", drawtype = "glasslike_framed_optional",
@@ -161,28 +164,28 @@ minetest.register_node("main:glass",
}) })
--Ores --Ores
minetest.register_node("main:coal_ore", minetest.register_node(":main:coal_ore",
{ {
description = "Coal Ore", description = "Coal Ore",
tiles = {"main_stone.png^main_coal_ore.png"}, tiles = {"main_stone.png^main_coal_ore.png"},
groups = {cracky = 1}, groups = {cracky = 1},
}) })
minetest.register_node("main:iron_ore", minetest.register_node(":main:iron_ore",
{ {
description = "Iron Ore", description = "Iron Ore",
tiles = {"main_stone.png^main_iron_ore.png"}, tiles = {"main_stone.png^main_iron_ore.png"},
groups = {cracky = 3}, groups = {cracky = 3},
}) })
minetest.register_node("main:sulfur_ore", minetest.register_node(":main:sulfur_ore",
{ {
description = "Sulfur Ore", description = "Sulfur Ore",
tiles = {"main_stone.png^main_sulfur_ore.png"}, tiles = {"main_stone.png^main_sulfur_ore.png"},
groups = {cracky = 2}, groups = {cracky = 2},
}) })
minetest.register_node("main:salt_ore", minetest.register_node(":main:salt_ore",
{ {
description = "Salt Ore", description = "Salt Ore",
tiles = {"main_stone.png^main_salt_ore.png"}, tiles = {"main_stone.png^main_salt_ore.png"},
@@ -190,7 +193,7 @@ minetest.register_node("main:salt_ore",
drop = 'main:salt_crystals', drop = 'main:salt_crystals',
}) })
minetest.register_node("main:cinnabar_ore", minetest.register_node(":main:cinnabar_ore",
{ {
description = "Cinnabar", description = "Cinnabar",
tiles = {"main_stone.png^main_cinnabar_ore.png"}, tiles = {"main_stone.png^main_cinnabar_ore.png"},
@@ -198,20 +201,20 @@ minetest.register_node("main:cinnabar_ore",
}) })
--Diamond Ores --Diamond Ores
minetest.register_node("main:diamond_ore_lowdens", { minetest.register_node(":main:diamond_ore_lowdens", {
description = "Low Density Diamond ore", description = "Low Density Diamond ore",
tiles = {"main_stone.png^main_diamond_ore_lowdensity.png"}, tiles = {"main_stone.png^main_diamond_ore_lowdensity.png"},
groups = {cracky = 3}, groups = {cracky = 3},
}) })
minetest.register_node("main:diamond_ore_hidens", { minetest.register_node(":main:diamond_ore_hidens", {
description = "High Density Diamond Ore", description = "High Density Diamond Ore",
tiles = {"main_stone.png^main_diamond_ore.png"}, tiles = {"main_stone.png^main_diamond_ore.png"},
groups = {cracky = 3}, groups = {cracky = 3},
}) })
--Iron Block --Iron Block
minetest.register_node("main:block_iron", { minetest.register_node(":main:block_iron", {
description = "Block Of Iron", description = "Block Of Iron",
tiles = {"main_block_iron.png"}, tiles = {"main_block_iron.png"},
groups = {cracky = 3}, groups = {cracky = 3},
@@ -219,28 +222,28 @@ minetest.register_node("main:block_iron", {
}) })
--Copper Block --Copper Block
minetest.register_node("main:block_copper", { minetest.register_node(":main:block_copper", {
description = "Block Of Copper", description = "Block Of Copper",
tiles = {"main_block_copper.png"}, tiles = {"main_block_copper.png"},
groups = {cracky = 3}, groups = {cracky = 3},
}) })
--Brass Block --Brass Block
minetest.register_node("main:block_brass", { minetest.register_node(":main:block_brass", {
description = "Block Of Brass", description = "Block Of Brass",
tiles = {"main_block_brass.png"}, tiles = {"main_block_brass.png"},
groups = {cracky = 3}, groups = {cracky = 3},
}) })
--Gold Block --Gold Block
minetest.register_node("main:block_gold", { minetest.register_node(":main:block_gold", {
description = "Block Of Gold", description = "Block Of Gold",
tiles = {"main_block_gold.png"}, tiles = {"main_block_gold.png"},
groups = {cracky = 3}, groups = {cracky = 3},
}) })
--Planks --Planks
minetest.register_node("main:planks_oak", { minetest.register_node(":main:planks_oak", {
description = "Planks", description = "Planks",
tiles = {"main_planks_oak.png"}, tiles = {"main_planks_oak.png"},
groups = {choppy = 3}, groups = {choppy = 3},
@@ -252,7 +255,7 @@ minetest.register_node("main:planks_oak", {
-- --
--Red Apple --Red Apple
minetest.register_node("main:apple_red", { minetest.register_node(":main:apple_red", {
description = "Red Apple", description = "Red Apple",
tiles = {"main_apple_red.png"}, tiles = {"main_apple_red.png"},
groups = {fleshy = 3, oddly_breakable_by_hand = 3}, groups = {fleshy = 3, oddly_breakable_by_hand = 3},
@@ -260,7 +263,7 @@ minetest.register_node("main:apple_red", {
}) })
--Orange --Orange
minetest.register_node("main:orange", { minetest.register_node(":main:orange", {
description = "Orange", description = "Orange",
tiles = {"main_orange.png"}, tiles = {"main_orange.png"},
groups = {fleshy = 3, oddly_breakable_by_hand = 3}, groups = {fleshy = 3, oddly_breakable_by_hand = 3},
@@ -270,14 +273,14 @@ minetest.register_node("main:orange", {
--Oak Log --Oak Log
minetest.register_node("main:log_oak", { minetest.register_node(":main:log_oak", {
description = "Oak Log", description = "Oak Log",
tiles = {"main_log_oak.png"}, tiles = {"main_log_oak.png"},
groups = {choppy = 2, logs = 1}, groups = {choppy = 2, logs = 1},
}) })
--Oak Leaves --Oak Leaves
minetest.register_node("main:leaves_oak", { minetest.register_node(":main:leaves_oak", {
paramtype = "light", paramtype = "light",
light_propagates = true, light_propagates = true,
sunlight_propagates = true, sunlight_propagates = true,
@@ -291,7 +294,7 @@ minetest.register_node("main:leaves_oak", {
}) })
--Apple Tree Log --Apple Tree Log
minetest.register_node("main:log_apple", { minetest.register_node(":main:log_apple", {
description = "Apple Tree Log", description = "Apple Tree Log",
tiles = {"main_log_apple.png"}, tiles = {"main_log_apple.png"},
groups = {choppy = 3, logs = 1}, groups = {choppy = 3, logs = 1},
@@ -299,7 +302,7 @@ minetest.register_node("main:log_apple", {
}) })
--Apple Tree Leaves --Apple Tree Leaves
minetest.register_node("main:leaves_apple", { minetest.register_node(":main:leaves_apple", {
paramtype = "light", paramtype = "light",
light_propagates = true, light_propagates = true,
sunlight_propagates = true, sunlight_propagates = true,
@@ -317,7 +320,7 @@ minetest.register_node("main:leaves_apple", {
-- --
--Fresh water --Fresh water
minetest.register_node("main:water_source", { minetest.register_node(":main:water_source", {
description = "Fresh Water Source", description = "Fresh Water Source",
drawtype = "liquid", drawtype = "liquid",
paramtype = "light", paramtype = "light",
@@ -354,7 +357,7 @@ minetest.register_node("main:water_source", {
groups = {liquid = 3, water = 1}, groups = {liquid = 3, water = 1},
}) })
minetest.register_node("main:water_flowing", { minetest.register_node(":main:water_flowing", {
description = "Flowing Water", description = "Flowing Water",
drawtype = "flowingliquid", drawtype = "flowingliquid",
paramtype = "light", paramtype = "light",
@@ -429,4 +432,8 @@ stairs.register_stair_and_slab(
"Oak Log Slab", "Oak Log Slab",
default.node_sound_wood_defaults(), default.node_sound_wood_defaults(),
true true
) )

View File

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 326 B

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 992 B

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 425 B

After

Width:  |  Height:  |  Size: 425 B

View File

Before

Width:  |  Height:  |  Size: 465 B

After

Width:  |  Height:  |  Size: 465 B

View File

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 272 B

View File

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 268 B

View File

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 401 B

View File

Before

Width:  |  Height:  |  Size: 289 B

After

Width:  |  Height:  |  Size: 289 B

View File

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 709 B

View File

Before

Width:  |  Height:  |  Size: 629 B

After

Width:  |  Height:  |  Size: 629 B

View File

Before

Width:  |  Height:  |  Size: 545 B

After

Width:  |  Height:  |  Size: 545 B

View File

Before

Width:  |  Height:  |  Size: 890 B

After

Width:  |  Height:  |  Size: 890 B

View File

Before

Width:  |  Height:  |  Size: 313 B

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

View File

Before

Width:  |  Height:  |  Size: 654 B

After

Width:  |  Height:  |  Size: 654 B

View File

Before

Width:  |  Height:  |  Size: 451 B

After

Width:  |  Height:  |  Size: 451 B

View File

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 509 B

View File

Before

Width:  |  Height:  |  Size: 884 B

After

Width:  |  Height:  |  Size: 884 B

View File

Before

Width:  |  Height:  |  Size: 752 B

After

Width:  |  Height:  |  Size: 752 B

View File

Before

Width:  |  Height:  |  Size: 186 B

After

Width:  |  Height:  |  Size: 186 B

View File

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 193 B

View File

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 426 B

View File

Before

Width:  |  Height:  |  Size: 857 B

After

Width:  |  Height:  |  Size: 857 B

View File

Before

Width:  |  Height:  |  Size: 541 B

After

Width:  |  Height:  |  Size: 541 B

View File

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 285 B

View File

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 438 B

View File

Before

Width:  |  Height:  |  Size: 825 B

After

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

View File

Before

Width:  |  Height:  |  Size: 832 B

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

View File

Before

Width:  |  Height:  |  Size: 744 B

After

Width:  |  Height:  |  Size: 744 B

View File

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 505 B

View File

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 534 B

View File

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 268 B

View File

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 591 B

View File

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 331 B

View File

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 397 B

View File

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 710 B

View File

Before

Width:  |  Height:  |  Size: 713 B

After

Width:  |  Height:  |  Size: 713 B

View File

Before

Width:  |  Height:  |  Size: 377 B

After

Width:  |  Height:  |  Size: 377 B

View File

Before

Width:  |  Height:  |  Size: 745 B

After

Width:  |  Height:  |  Size: 745 B

View File

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 345 B

View File

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 469 B

View File

Before

Width:  |  Height:  |  Size: 911 B

After

Width:  |  Height:  |  Size: 911 B

View File

Before

Width:  |  Height:  |  Size: 667 B

After

Width:  |  Height:  |  Size: 667 B

View File

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 412 B

View File

Before

Width:  |  Height:  |  Size: 553 B

After

Width:  |  Height:  |  Size: 553 B

View File

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

View File

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 359 B

View File

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 295 B

View File

Before

Width:  |  Height:  |  Size: 698 B

After

Width:  |  Height:  |  Size: 698 B

View File

Before

Width:  |  Height:  |  Size: 327 B

After

Width:  |  Height:  |  Size: 327 B

View File

Before

Width:  |  Height:  |  Size: 931 B

After

Width:  |  Height:  |  Size: 931 B

View File

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 687 B

View File

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 412 B

View File

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 356 B

View File

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 356 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -15,7 +15,7 @@ minetest.register_item(":", {
} }
}) })
minetest.register_item("main:pickaxe_steel", { minetest.register_item(":main:pickaxe_steel", {
type = "none", type = "none",
wield_image = "main_pickaxe_steel.png", wield_image = "main_pickaxe_steel.png",
inventory_image = "main_pickaxe_steel.png", inventory_image = "main_pickaxe_steel.png",
@@ -32,7 +32,7 @@ minetest.register_item("main:pickaxe_steel", {
} }
}) })
minetest.register_item("main:pickaxe_stone", { minetest.register_item(":main:pickaxe_stone", {
type = "none", type = "none",
wield_image = "main_pickaxe_stone.png", wield_image = "main_pickaxe_stone.png",
inventory_image = "main_pickaxe_stone.png", inventory_image = "main_pickaxe_stone.png",
@@ -49,7 +49,7 @@ minetest.register_item("main:pickaxe_stone", {
} }
}) })
minetest.register_item("main:knife_stone_simple", { minetest.register_item(":main:knife_stone_simple", {
type = "none", type = "none",
wield_image = "main_knife_stone_simple.png", wield_image = "main_knife_stone_simple.png",
inventory_image = "main_knife_stone_simple.png", inventory_image = "main_knife_stone_simple.png",

View File

@@ -768,7 +768,7 @@ end
function mob_class:item_drop() function mob_class:item_drop()
-- no drops if disabled by setting or mob is child -- no drops if disabled by setting or mob is child
if not mobs_drop_items or self.child then return end
local pos = self.object:get_pos() local pos = self.object:get_pos()
@@ -780,27 +780,7 @@ function mob_class:item_drop()
return return
end end
-- was mob killed by player?
local death_by_player = self.cause_of_death
and self.cause_of_death.puncher
and self.cause_of_death.puncher:is_player()
-- check for tool 'looting_level' under tool_capabilities as default, or use
-- meta string 'looting_level' if found (max looting level is 3).
local looting = 0
if death_by_player then
local wield_stack = self.cause_of_death.puncher:get_wielded_item()
local wield_name = wield_stack:get_name()
local wield_stack_meta = wield_stack:get_meta()
local item_def = minetest.registered_items[wield_name]
local item_looting = item_def and item_def.tool_capabilities and
item_def.tool_capabilities.looting_level or 0
looting = tonumber(wield_stack_meta:get_string("looting_level")) or item_looting
looting = min(looting, 3)
end
--print("--- looting level", looting) --print("--- looting level", looting)
@@ -813,21 +793,11 @@ function mob_class:item_drop()
num = random(self.drops[n].min or 0, self.drops[n].max or 1) num = random(self.drops[n].min or 0, self.drops[n].max or 1)
item = self.drops[n].name item = self.drops[n].name
-- cook items on a hot death
if self.cause_of_death.hot then
local output = minetest.get_craft_result({
method = "cooking", width = 1, items = {item}}) obj = minetest.add_item(pos, ItemStack(item .. " " .. (num)))
if output and output.item and not output.item:is_empty() then
item = output.item:get_name()
end
end
-- only drop rare items (drops.min = 0) if killed by player
if death_by_player or self.drops[n].min ~= 0 then
obj = minetest.add_item(pos, ItemStack(item .. " " .. (num + looting)))
end
if obj and obj:get_luaentity() then if obj and obj:get_luaentity() then
@@ -1198,7 +1168,7 @@ end
-- jump if facing a solid node (not fences or gates) -- jump if facing a solid node (not fences or gates)
function mob_class:do_jump() function mob_class:do_jump()
--[[
if not self.jump if not self.jump
or self.jump_height == 0 or self.jump_height == 0
or self.fly or self.fly
@@ -1235,14 +1205,18 @@ function mob_class:do_jump()
pos.y = pos.y + self.collisionbox[2] pos.y = pos.y + self.collisionbox[2]
-- what is in front of mob and above? -- what is in front of mob and above?
--This piece of code was causing random crashes
local nod = node_ok({x = pos.x + dir_x, y = pos.y + 0.5, z = pos.z + dir_z}) local nod = node_ok({x = pos.x + dir_x, y = pos.y + 0.5, z = pos.z + dir_z})
local nodt = node_ok({x = pos.x + dir_x, y = pos.y + 1.5, z = pos.z + dir_z}) [local nodt = node_ok({x = pos.x + dir_x, y = pos.y + 1.5, z = pos.z + dir_z})
local blocked = minetest.registered_nodes[nodt.name].walkable local blocked = minetest.registered_nodes[nodt.name].walkable
-- are we facing a fence or wall -- are we facing a fence or wall
if nod.name:find("fence") or nod.name:find("gate") or nod.name:find("wall") then if nod.name:find("fence") or nod.name:find("gate") or nod.name:find("wall") then
self.facing_fence = true self.facing_fence = true
end end
]]
--[[ --[[
print("on: " .. self.standing_on print("on: " .. self.standing_on
@@ -1252,7 +1226,7 @@ print("on: " .. self.standing_on
.. ", fence: " .. (self.facing_fence and "yes" or "no") .. ", fence: " .. (self.facing_fence and "yes" or "no")
) )
]] ]]
--[[
-- if mob can leap then remove blockages and let them try -- if mob can leap then remove blockages and let them try
if self.can_leap == true then if self.can_leap == true then
blocked = false blocked = false
@@ -1309,7 +1283,7 @@ print("on: " .. self.standing_on
end end
end end
return false return false]]
end end

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