Compare commits
17 Commits
71d289d98e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 7adb52233b | |||
| b86607280f | |||
| 3bb4a8a54d | |||
| 75b0c0be39 | |||
| 2be233466f | |||
| 971dc82648 | |||
| ac9ea6c4e0 | |||
| 5cd7abea5a | |||
| cf67a8046b | |||
| 512918f24c | |||
| e9db79234c | |||
| 538fa8d42e | |||
| e6f73814ca | |||
| 8eb6100d84 | |||
| e1d5a664fe | |||
| 6bae4b3b6f | |||
| e5c3ae4ba0 |
@@ -1,2 +1,11 @@
|
||||
================
|
||||
INSANE PROTESTOR
|
||||
================
|
||||
A game where you attend a mostly peaceful protest.
|
||||
|
||||
|
||||
Submission to the 2022 Minetest Game Jam
|
||||
Themes used: "Secrets", "Space" and "Story"
|
||||
|
||||
Dunno how to play?
|
||||
Read the God damn inventory help tab!
|
||||
|
||||
@@ -2,7 +2,7 @@ cops = {}
|
||||
cops.copsSpawned = 0
|
||||
|
||||
-- Pig spawner
|
||||
minetest.register_node("cops:pig_spawner", {
|
||||
minetest.register_node(":cops:pig_spawner", {
|
||||
walkable = false;
|
||||
drawtype = "glasslike",
|
||||
paramtype = "light",
|
||||
@@ -18,6 +18,43 @@ minetest.register_node("cops:pig_spawner", {
|
||||
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({
|
||||
nodenames = {"cops:pig_spawner"},
|
||||
@@ -43,7 +80,7 @@ minetest.register_abm({
|
||||
interval = 40,
|
||||
chance = 140,
|
||||
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}
|
||||
local i = math.random(0, 7)
|
||||
if i < 2 then
|
||||
@@ -61,7 +98,7 @@ minetest.register_abm({
|
||||
end})
|
||||
|
||||
-- Cops
|
||||
mobs:register_mob("cops:cop_regular_female", {
|
||||
mobs:register_mob(":cops:cop_regular_female", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
@@ -88,7 +125,9 @@ mobs:register_mob("cops:cop_regular_female", {
|
||||
{
|
||||
random = "female_noise",
|
||||
},
|
||||
on_die = onCopDie,
|
||||
on_die = function(self, pos)
|
||||
onCopDie(self, pos)
|
||||
end,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 8,
|
||||
jump_height = 1,
|
||||
@@ -98,6 +137,7 @@ mobs:register_mob("cops:cop_regular_female", {
|
||||
fall_damage = true,
|
||||
drops =
|
||||
{
|
||||
{name = "cops:baton", chance = 2, min = 0, max = 1},
|
||||
{name = "cops:badge", chance = 4, min = 0, max = 1},
|
||||
{name = "cops:handcuffs", 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",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
@@ -145,7 +185,9 @@ mobs:register_mob("cops:cop_regular_male", {
|
||||
{
|
||||
random = "male_noise",
|
||||
},
|
||||
on_die = onCopDie,
|
||||
on_die = function(self, pos)
|
||||
onCopDie(self, pos)
|
||||
end,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 8,
|
||||
jump_height = 1,
|
||||
@@ -155,7 +197,8 @@ mobs:register_mob("cops:cop_regular_male", {
|
||||
fall_damage = true,
|
||||
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: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",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
@@ -202,7 +245,9 @@ mobs:register_mob("cops:cop_armedthug", {
|
||||
{
|
||||
random = "male_noise",
|
||||
},
|
||||
on_die = onCopDie,
|
||||
on_die = function(self, pos)
|
||||
onCopDie(self, pos)
|
||||
end,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 8,
|
||||
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
|
||||
destruction_counter.updateCounter()
|
||||
end
|
||||
@@ -1,2 +1,2 @@
|
||||
name = cops
|
||||
depends = mobs
|
||||
name = ip_cops
|
||||
depends = mobs, ip_destruction_counter
|
||||
@@ -1,7 +1,9 @@
|
||||
local modpath = minetest.get_modpath("destruction_counter")
|
||||
local modpath = minetest.get_modpath("ip_destruction_counter")
|
||||
|
||||
destruction_counter = {}
|
||||
destruction_counter.nodesDestroyed = 0
|
||||
destruction_counter.pigsKilled = 0
|
||||
destruction_counter.peopleKilled = 0
|
||||
local nodesDestroyedByHand = 0
|
||||
|
||||
local idText
|
||||
@@ -34,10 +36,10 @@ minetest.register_on_joinplayer(function(player)
|
||||
hud_elem_type = "text",
|
||||
position = {x = 0.3, y = 0.7},
|
||||
scale = {x = 0.3, y = 0.5},
|
||||
text = "Test",
|
||||
text = "Destruct-o-meter",
|
||||
number = 0xff3c0a,
|
||||
alignment = {x = 1},
|
||||
offset = {x = 0, y = 46},
|
||||
offset = {x = 200, y = 46},
|
||||
})
|
||||
end)
|
||||
|
||||
@@ -48,14 +50,17 @@ end)
|
||||
|
||||
function destruction_counter.updateCounter(player)
|
||||
if not player then
|
||||
return
|
||||
player = minetest.get_player_by_name("singleplayer")
|
||||
end
|
||||
|
||||
local totalDestruction = destruction_counter.nodesDestroyed + math.floor(nodesDestroyedByHand / 10)
|
||||
local percentage = (totalDestruction / 1000 * 4)
|
||||
if percentage > 100 then
|
||||
percentage = 100
|
||||
local totalDestruction = destruction_counter.nodesDestroyed + destruction_counter.pigsKilled * 20 + destruction_counter.peopleKilled * 10 + math.floor(nodesDestroyedByHand / 10)
|
||||
local percentage = (totalDestruction / 2000 * 4)
|
||||
if percentage > 4 then
|
||||
percentage = 4
|
||||
end
|
||||
|
||||
|
||||
|
||||
player:hud_change(idText, "text", "Destruction meter: " .. totalDestruction)
|
||||
player:hud_change(idMeter, "scale", {x = percentage, y = 4})
|
||||
end
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name = destruction_counter
|
||||
name = ip_destruction_counter
|
||||
description = Adds a HUD counter that shows how much shit you've destroyed.
|
||||
author = MCL
|
||||
title = Destruction Counter
|
||||
|
||||
@@ -73,7 +73,7 @@ function elevator.show_nearest_elevator(pos, owner_name, param2)
|
||||
end
|
||||
|
||||
|
||||
minetest.register_node("elevator:elevator", {
|
||||
minetest.register_node(":elevator:elevator", {
|
||||
description = S("Elevator"),
|
||||
drawtype = "mesh",
|
||||
mesh = "elevator_elevator.obj",
|
||||
|
||||
@@ -61,7 +61,7 @@ mod_dofile("add_target")
|
||||
mod_dofile("on_receive_fields")
|
||||
|
||||
-- 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",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name = elevator
|
||||
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
|
||||
title = Elevator
|
||||
|
||||
@@ -153,7 +153,7 @@ local function entity_physics(pos, radius, drops)
|
||||
local obj_pos = obj:get_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
|
||||
local dir = vector.normalize(vector.subtract(obj_pos, pos))
|
||||
local moveoff = vector.multiply(dir, 2 / dist * radius)
|
||||
@@ -403,8 +403,7 @@ function explosives.boom(pos, def)
|
||||
local owner = def.owner
|
||||
|
||||
local sound = def.sound or "tnt_explode"
|
||||
minetest.sound_play(sound, {pos = pos, gain = 2.5,
|
||||
max_hear_distance = math.min(def.radius * 30, 128)}, true)
|
||||
minetest.sound_play(sound, {pos = pos, gain = 2.5, max_hear_distance = def.radius * 30}, true)
|
||||
local drops, radius = tnt_explode(pos, def.radius, true, def.ignore_on_blast, owner, true)
|
||||
-- append entity drops
|
||||
local damage_radius = (radius / math.max(1, def.radius)) * def.damage_radius
|
||||
@@ -417,7 +416,7 @@ function explosives.boom(pos, def)
|
||||
end
|
||||
|
||||
|
||||
minetest.register_node("explosives:gunpowder", {
|
||||
minetest.register_node(":explosives:gunpowder", {
|
||||
description = "Gun Powder",
|
||||
drawtype = "raillike",
|
||||
paramtype = "light",
|
||||
@@ -456,7 +455,7 @@ minetest.register_node("explosives:gunpowder", {
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("explosives:gunpowder_burning", {
|
||||
minetest.register_node(":explosives:gunpowder_burning", {
|
||||
drawtype = "raillike",
|
||||
paramtype = "light",
|
||||
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",
|
||||
inventory_image = "tnt_tnt_stick.png",
|
||||
groups = {flammable = 5},
|
||||
@@ -548,7 +547,7 @@ minetest.register_craftitem("explosives:dynamite_stick", {
|
||||
function explosives.register_tnt(def)
|
||||
local name
|
||||
if not def.name:find(':') then
|
||||
name = "explosives:" .. def.name
|
||||
name = ":explosives:" .. def.name
|
||||
else
|
||||
name = def.name
|
||||
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.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,
|
||||
tiles = {"tnt_side.png"},
|
||||
drawtype = "nodebox",
|
||||
@@ -613,48 +612,12 @@ function explosives.register_tnt(def)
|
||||
minetest.registered_nodes[name .. "_burning"].on_construct(pos)
|
||||
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
|
||||
|
||||
explosives.register_tnt({
|
||||
name = "explosives:propane_tank",
|
||||
name = "propane_tank",
|
||||
description = "Propane Tank",
|
||||
radius = explosion_radius,
|
||||
})
|
||||
|
||||
@@ -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
|
||||
depends = fire, destruction_counter
|
||||
depends = fire, ip_destruction_counter
|
||||
|
||||
@@ -162,7 +162,7 @@ local function eexpl(pos)
|
||||
end
|
||||
|
||||
|
||||
minetest.register_node("extinguisher:foam", {
|
||||
minetest.register_node(":extinguisher:foam", {
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
@@ -201,7 +201,7 @@ minetest.register_abm({
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("extinguisher:automatic", {
|
||||
minetest.register_node(":extinguisher:automatic", {
|
||||
description = "Extinguisher",
|
||||
tiles = {"extinguisher_top.png", "extinguisher_bottom.png",
|
||||
"extinguisher.png", "extinguisher.png^[transformFX",
|
||||
@@ -247,7 +247,7 @@ minetest.register_node("extinguisher:automatic", {
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("extinguisher:destroyed", {
|
||||
minetest.register_node(":extinguisher:destroyed", {
|
||||
description = "Destroyed Extinguisher",
|
||||
tiles = {"extinguisher_top.png", "extinguisher_bottom.png",
|
||||
"extinguisher.png", "extinguisher.png^[transformFX",
|
||||
@@ -295,52 +295,6 @@ minetest.register_globalstep(function(dtime)
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
name = extinguisher
|
||||
name = ip_extinguisher
|
||||
description = Extinguisher mod adapted for Insane Protestor
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 6.6 KiB |
9
mods/ip_help/init.lua
Normal 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
@@ -0,0 +1,3 @@
|
||||
title = Insane Protestor Help
|
||||
name = ip_help
|
||||
depends = sfinv
|
||||
@@ -1,4 +1,4 @@
|
||||
minetest.register_node("literal_trash:disc",{
|
||||
minetest.register_node(":literal_trash:disc",{
|
||||
description = "Optical Disc",
|
||||
drawtype = "signlike",
|
||||
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",
|
||||
drawtype = "signlike",
|
||||
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",
|
||||
drawtype = "signlike",
|
||||
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",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"literal_trash_vodka.png"},
|
||||
@@ -75,7 +75,7 @@ minetest.register_node("literal_trash:vodka", {
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("literal_trash:beer_bottle", {
|
||||
minetest.register_node(":literal_trash:beer_bottle", {
|
||||
description = "Beer Bottle",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"literal_trash_beer_bottle.png"},
|
||||
@@ -92,7 +92,7 @@ minetest.register_node("literal_trash:beer_bottle", {
|
||||
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",
|
||||
drawtype = "plantlike",
|
||||
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",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"literal_trash_empty_beer_bottles.png"},
|
||||
@@ -129,4 +129,20 @@ minetest.register_node("literal_trash:empty_beer_bottles", {
|
||||
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(),
|
||||
})
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name = literal_trash
|
||||
name = ip_literal_trash
|
||||
title = Literal Trash
|
||||
description = Adds literal trash
|
||||
|
||||
|
||||
BIN
mods/ip_literal_trash/textures/literal_trash_jerrycan.png
Normal file
|
After Width: | Height: | Size: 274 B |
@@ -1,4 +1,4 @@
|
||||
local modpath = minetest.get_modpath("main")
|
||||
local modpath = minetest.get_modpath("ip_main")
|
||||
local formspec =
|
||||
{
|
||||
"formspec_version[4]",
|
||||
@@ -22,9 +22,7 @@ local formspec =
|
||||
|
||||
|
||||
dofile(modpath.."/nodes.lua")
|
||||
dofile(modpath.."/craftitems.lua")
|
||||
dofile(modpath.."/recipes.lua")
|
||||
dofile(modpath.."/mapgen.lua")
|
||||
--dofile(modpath.."/craftitems.lua")
|
||||
dofile(modpath.."/tools.lua")
|
||||
|
||||
|
||||
1
mods/ip_main/mod.conf
Normal file
@@ -0,0 +1 @@
|
||||
name = ip_main
|
||||
@@ -1,5 +1,8 @@
|
||||
|
||||
|
||||
|
||||
--Naturally generating nodes
|
||||
minetest.register_node("main:stone",
|
||||
minetest.register_node(":main:stone",
|
||||
{
|
||||
description = "Stone",
|
||||
tiles = {"main_stone.png"},
|
||||
@@ -8,7 +11,7 @@ minetest.register_node("main:stone",
|
||||
legacy_mineral = true,
|
||||
})
|
||||
|
||||
minetest.register_node("main:cobble",
|
||||
minetest.register_node(":main:cobble",
|
||||
{
|
||||
description = "Cobble",
|
||||
tiles = {"main_cobble.png"},
|
||||
@@ -17,7 +20,7 @@ minetest.register_node("main:cobble",
|
||||
legacy_mineral = true,
|
||||
})
|
||||
|
||||
minetest.register_node("main:rock",
|
||||
minetest.register_node(":main:rock",
|
||||
{
|
||||
description = "Rock",
|
||||
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",
|
||||
tiles = {"main_dirt.png"},
|
||||
groups = {crumbly = 3, soil = 1},
|
||||
})
|
||||
|
||||
minetest.register_node("main:dirt_frozen", {
|
||||
minetest.register_node(":main:dirt_frozen", {
|
||||
description = "Frozen Dirt",
|
||||
tiles = {"main_dirt_frozen.png"},
|
||||
groups = {cracky = 1},
|
||||
})
|
||||
|
||||
minetest.register_node("main:snow", {
|
||||
minetest.register_node(":main:snow", {
|
||||
description = "Snow",
|
||||
tiles = {"main_snow.png"},
|
||||
groups = {crumbly = 3},
|
||||
})
|
||||
|
||||
minetest.register_node("main:ice_thin", {
|
||||
minetest.register_node(":main:ice_thin", {
|
||||
drawtype = "allfaces",
|
||||
paramtype = "light",
|
||||
light_propagates = true,
|
||||
@@ -64,13 +67,13 @@ minetest.register_node("main:ice_thin", {
|
||||
groups = {cracky = 3, slippery = 3},
|
||||
})
|
||||
|
||||
minetest.register_node("main:ice_thick", {
|
||||
minetest.register_node(":main:ice_thick", {
|
||||
description = "Thick Ice",
|
||||
tiles = {"main_ice_thick.png"},
|
||||
groups = {cracky = 1},
|
||||
})
|
||||
|
||||
minetest.register_node("main:dirt_with_grass",
|
||||
minetest.register_node(":main:dirt_with_grass",
|
||||
{
|
||||
description = "Dirt with Grass",
|
||||
tiles = {"main_grass.png", "main_dirt.png",
|
||||
@@ -80,7 +83,7 @@ minetest.register_node("main:dirt_with_grass",
|
||||
drop = 'main:dirt',
|
||||
})
|
||||
|
||||
minetest.register_node("main:dirt_with_swamp_grass",
|
||||
minetest.register_node(":main:dirt_with_swamp_grass",
|
||||
{
|
||||
description = "Dirt with Swamp Grass",
|
||||
tiles = {"main_swamp_grass.png", "main_dirt.png",
|
||||
@@ -90,14 +93,14 @@ minetest.register_node("main:dirt_with_swamp_grass",
|
||||
drop = 'main:dirt',
|
||||
})
|
||||
|
||||
minetest.register_node("main:sand",
|
||||
minetest.register_node(":main:sand",
|
||||
{
|
||||
description = "Sand",
|
||||
tiles = {"main_sand.png"},
|
||||
groups = {crumbly = 3, falling_node = 1, sand = 1},
|
||||
})
|
||||
|
||||
minetest.register_node("main:twig",
|
||||
minetest.register_node(":main:twig",
|
||||
{
|
||||
description = "Twig",
|
||||
tiles = {"main_log_maple.png"},
|
||||
@@ -118,7 +121,7 @@ minetest.register_node("main:twig",
|
||||
})
|
||||
|
||||
--Player made nodes
|
||||
minetest.register_node("main:torch",
|
||||
minetest.register_node(":main:torch",
|
||||
{
|
||||
description = "Torch",
|
||||
tiles = {"main_lump_coal.png"},
|
||||
@@ -126,28 +129,28 @@ minetest.register_node("main:torch",
|
||||
groups = {choppy = 3, oddly_breakable_by_hand = 3},
|
||||
})
|
||||
|
||||
minetest.register_node("main:bricks_red",
|
||||
minetest.register_node(":main:bricks_red",
|
||||
{
|
||||
description = "Red Bricks",
|
||||
tiles = {"main_bricks_red.png"},
|
||||
groups = {cracky = 2},
|
||||
})
|
||||
|
||||
minetest.register_node("main:bricks_stone",
|
||||
minetest.register_node(":main:bricks_stone",
|
||||
{
|
||||
description = "Stone Bricks",
|
||||
tiles = {"main_bricks_stone.png"},
|
||||
groups = {cracky = 2},
|
||||
})
|
||||
|
||||
minetest.register_node("main:bricks_cobble",
|
||||
minetest.register_node(":main:bricks_cobble",
|
||||
{
|
||||
description = "Cobble Bricks",
|
||||
tiles = {"main_bricks_cobble.png"},
|
||||
groups = {cracky = 2},
|
||||
})
|
||||
|
||||
minetest.register_node("main:glass",
|
||||
minetest.register_node(":main:glass",
|
||||
{
|
||||
description = "Glass",
|
||||
drawtype = "glasslike_framed_optional",
|
||||
@@ -161,28 +164,28 @@ minetest.register_node("main:glass",
|
||||
})
|
||||
|
||||
--Ores
|
||||
minetest.register_node("main:coal_ore",
|
||||
minetest.register_node(":main:coal_ore",
|
||||
{
|
||||
description = "Coal Ore",
|
||||
tiles = {"main_stone.png^main_coal_ore.png"},
|
||||
groups = {cracky = 1},
|
||||
})
|
||||
|
||||
minetest.register_node("main:iron_ore",
|
||||
minetest.register_node(":main:iron_ore",
|
||||
{
|
||||
description = "Iron Ore",
|
||||
tiles = {"main_stone.png^main_iron_ore.png"},
|
||||
groups = {cracky = 3},
|
||||
})
|
||||
|
||||
minetest.register_node("main:sulfur_ore",
|
||||
minetest.register_node(":main:sulfur_ore",
|
||||
{
|
||||
description = "Sulfur Ore",
|
||||
tiles = {"main_stone.png^main_sulfur_ore.png"},
|
||||
groups = {cracky = 2},
|
||||
})
|
||||
|
||||
minetest.register_node("main:salt_ore",
|
||||
minetest.register_node(":main:salt_ore",
|
||||
{
|
||||
description = "Salt Ore",
|
||||
tiles = {"main_stone.png^main_salt_ore.png"},
|
||||
@@ -190,7 +193,7 @@ minetest.register_node("main:salt_ore",
|
||||
drop = 'main:salt_crystals',
|
||||
})
|
||||
|
||||
minetest.register_node("main:cinnabar_ore",
|
||||
minetest.register_node(":main:cinnabar_ore",
|
||||
{
|
||||
description = "Cinnabar",
|
||||
tiles = {"main_stone.png^main_cinnabar_ore.png"},
|
||||
@@ -198,20 +201,20 @@ minetest.register_node("main:cinnabar_ore",
|
||||
})
|
||||
|
||||
--Diamond Ores
|
||||
minetest.register_node("main:diamond_ore_lowdens", {
|
||||
minetest.register_node(":main:diamond_ore_lowdens", {
|
||||
description = "Low Density Diamond ore",
|
||||
tiles = {"main_stone.png^main_diamond_ore_lowdensity.png"},
|
||||
groups = {cracky = 3},
|
||||
})
|
||||
|
||||
minetest.register_node("main:diamond_ore_hidens", {
|
||||
minetest.register_node(":main:diamond_ore_hidens", {
|
||||
description = "High Density Diamond Ore",
|
||||
tiles = {"main_stone.png^main_diamond_ore.png"},
|
||||
groups = {cracky = 3},
|
||||
})
|
||||
|
||||
--Iron Block
|
||||
minetest.register_node("main:block_iron", {
|
||||
minetest.register_node(":main:block_iron", {
|
||||
description = "Block Of Iron",
|
||||
tiles = {"main_block_iron.png"},
|
||||
groups = {cracky = 3},
|
||||
@@ -219,28 +222,28 @@ minetest.register_node("main:block_iron", {
|
||||
})
|
||||
|
||||
--Copper Block
|
||||
minetest.register_node("main:block_copper", {
|
||||
minetest.register_node(":main:block_copper", {
|
||||
description = "Block Of Copper",
|
||||
tiles = {"main_block_copper.png"},
|
||||
groups = {cracky = 3},
|
||||
})
|
||||
|
||||
--Brass Block
|
||||
minetest.register_node("main:block_brass", {
|
||||
minetest.register_node(":main:block_brass", {
|
||||
description = "Block Of Brass",
|
||||
tiles = {"main_block_brass.png"},
|
||||
groups = {cracky = 3},
|
||||
})
|
||||
|
||||
--Gold Block
|
||||
minetest.register_node("main:block_gold", {
|
||||
minetest.register_node(":main:block_gold", {
|
||||
description = "Block Of Gold",
|
||||
tiles = {"main_block_gold.png"},
|
||||
groups = {cracky = 3},
|
||||
})
|
||||
|
||||
--Planks
|
||||
minetest.register_node("main:planks_oak", {
|
||||
minetest.register_node(":main:planks_oak", {
|
||||
description = "Planks",
|
||||
tiles = {"main_planks_oak.png"},
|
||||
groups = {choppy = 3},
|
||||
@@ -252,7 +255,7 @@ minetest.register_node("main:planks_oak", {
|
||||
--
|
||||
|
||||
--Red Apple
|
||||
minetest.register_node("main:apple_red", {
|
||||
minetest.register_node(":main:apple_red", {
|
||||
description = "Red Apple",
|
||||
tiles = {"main_apple_red.png"},
|
||||
groups = {fleshy = 3, oddly_breakable_by_hand = 3},
|
||||
@@ -260,7 +263,7 @@ minetest.register_node("main:apple_red", {
|
||||
})
|
||||
|
||||
--Orange
|
||||
minetest.register_node("main:orange", {
|
||||
minetest.register_node(":main:orange", {
|
||||
description = "Orange",
|
||||
tiles = {"main_orange.png"},
|
||||
groups = {fleshy = 3, oddly_breakable_by_hand = 3},
|
||||
@@ -270,14 +273,14 @@ minetest.register_node("main:orange", {
|
||||
|
||||
|
||||
--Oak Log
|
||||
minetest.register_node("main:log_oak", {
|
||||
minetest.register_node(":main:log_oak", {
|
||||
description = "Oak Log",
|
||||
tiles = {"main_log_oak.png"},
|
||||
groups = {choppy = 2, logs = 1},
|
||||
})
|
||||
|
||||
--Oak Leaves
|
||||
minetest.register_node("main:leaves_oak", {
|
||||
minetest.register_node(":main:leaves_oak", {
|
||||
paramtype = "light",
|
||||
light_propagates = true,
|
||||
sunlight_propagates = true,
|
||||
@@ -291,7 +294,7 @@ minetest.register_node("main:leaves_oak", {
|
||||
})
|
||||
|
||||
--Apple Tree Log
|
||||
minetest.register_node("main:log_apple", {
|
||||
minetest.register_node(":main:log_apple", {
|
||||
description = "Apple Tree Log",
|
||||
tiles = {"main_log_apple.png"},
|
||||
groups = {choppy = 3, logs = 1},
|
||||
@@ -299,7 +302,7 @@ minetest.register_node("main:log_apple", {
|
||||
})
|
||||
|
||||
--Apple Tree Leaves
|
||||
minetest.register_node("main:leaves_apple", {
|
||||
minetest.register_node(":main:leaves_apple", {
|
||||
paramtype = "light",
|
||||
light_propagates = true,
|
||||
sunlight_propagates = true,
|
||||
@@ -317,7 +320,7 @@ minetest.register_node("main:leaves_apple", {
|
||||
--
|
||||
|
||||
--Fresh water
|
||||
minetest.register_node("main:water_source", {
|
||||
minetest.register_node(":main:water_source", {
|
||||
description = "Fresh Water Source",
|
||||
drawtype = "liquid",
|
||||
paramtype = "light",
|
||||
@@ -354,7 +357,7 @@ minetest.register_node("main:water_source", {
|
||||
groups = {liquid = 3, water = 1},
|
||||
})
|
||||
|
||||
minetest.register_node("main:water_flowing", {
|
||||
minetest.register_node(":main:water_flowing", {
|
||||
description = "Flowing Water",
|
||||
drawtype = "flowingliquid",
|
||||
paramtype = "light",
|
||||
@@ -430,3 +433,7 @@ stairs.register_stair_and_slab(
|
||||
default.node_sound_wood_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 326 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 992 B After Width: | Height: | Size: 992 B |
BIN
mods/ip_main/textures/hand.png
Normal file
|
After Width: | Height: | Size: 236 B |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 425 B |
|
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 465 B |
|
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 272 B |
|
Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 268 B |
|
Before Width: | Height: | Size: 401 B After Width: | Height: | Size: 401 B |
|
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 709 B |
|
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 629 B |
|
Before Width: | Height: | Size: 545 B After Width: | Height: | Size: 545 B |
|
Before Width: | Height: | Size: 890 B After Width: | Height: | Size: 890 B |
|
Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 313 B |
BIN
mods/ip_main/textures/main_cobble.png
Normal file
|
After Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 654 B After Width: | Height: | Size: 654 B |
|
Before Width: | Height: | Size: 451 B After Width: | Height: | Size: 451 B |
|
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 509 B |
|
Before Width: | Height: | Size: 884 B After Width: | Height: | Size: 884 B |
|
Before Width: | Height: | Size: 752 B After Width: | Height: | Size: 752 B |
|
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 186 B |
|
Before Width: | Height: | Size: 193 B After Width: | Height: | Size: 193 B |
|
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 426 B |
|
Before Width: | Height: | Size: 857 B After Width: | Height: | Size: 857 B |
|
Before Width: | Height: | Size: 541 B After Width: | Height: | Size: 541 B |
|
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 285 B |
|
Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 438 B |
|
Before Width: | Height: | Size: 825 B After Width: | Height: | Size: 825 B |
BIN
mods/ip_main/textures/main_leaves_apple.png
Normal file
|
After Width: | Height: | Size: 291 B |
BIN
mods/ip_main/textures/main_leaves_oak.png
Normal file
|
After Width: | Height: | Size: 291 B |
BIN
mods/ip_main/textures/main_log_apple.png
Normal file
|
After Width: | Height: | Size: 307 B |
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 832 B |
BIN
mods/ip_main/textures/main_log_maple.png
Normal file
|
After Width: | Height: | Size: 307 B |
|
Before Width: | Height: | Size: 744 B After Width: | Height: | Size: 744 B |
|
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 534 B |
|
Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 268 B |
|
Before Width: | Height: | Size: 591 B After Width: | Height: | Size: 591 B |
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 331 B |
|
Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 397 B |
|
Before Width: | Height: | Size: 710 B After Width: | Height: | Size: 710 B |
|
Before Width: | Height: | Size: 713 B After Width: | Height: | Size: 713 B |
|
Before Width: | Height: | Size: 377 B After Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 745 B After Width: | Height: | Size: 745 B |
|
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 345 B |
|
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 469 B |
|
Before Width: | Height: | Size: 911 B After Width: | Height: | Size: 911 B |
|
Before Width: | Height: | Size: 667 B After Width: | Height: | Size: 667 B |
|
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 412 B |
|
Before Width: | Height: | Size: 553 B After Width: | Height: | Size: 553 B |
|
Before Width: | Height: | Size: 724 B After Width: | Height: | Size: 724 B |
BIN
mods/ip_main/textures/main_stone.png
Normal file
|
After Width: | Height: | Size: 677 B |
|
Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 359 B |
|
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 295 B |
|
Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 698 B |
|
Before Width: | Height: | Size: 327 B After Width: | Height: | Size: 327 B |
|
Before Width: | Height: | Size: 931 B After Width: | Height: | Size: 931 B |
|
Before Width: | Height: | Size: 687 B After Width: | Height: | Size: 687 B |
|
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 412 B |
|
Before Width: | Height: | Size: 356 B After Width: | Height: | Size: 356 B |
|
Before Width: | Height: | Size: 356 B After Width: | Height: | Size: 356 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -15,7 +15,7 @@ minetest.register_item(":", {
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_item("main:pickaxe_steel", {
|
||||
minetest.register_item(":main:pickaxe_steel", {
|
||||
type = "none",
|
||||
wield_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",
|
||||
wield_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",
|
||||
wield_image = "main_knife_stone_simple.png",
|
||||
inventory_image = "main_knife_stone_simple.png",
|
||||
@@ -768,7 +768,7 @@ end
|
||||
function mob_class:item_drop()
|
||||
|
||||
-- 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()
|
||||
|
||||
@@ -780,27 +780,7 @@ function mob_class:item_drop()
|
||||
return
|
||||
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)
|
||||
|
||||
@@ -813,21 +793,11 @@ function mob_class:item_drop()
|
||||
num = random(self.drops[n].min or 0, self.drops[n].max or 1)
|
||||
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}})
|
||||
|
||||
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
|
||||
obj = minetest.add_item(pos, ItemStack(item .. " " .. (num)))
|
||||
|
||||
|
||||
if obj and obj:get_luaentity() then
|
||||
|
||||
@@ -1198,7 +1168,7 @@ end
|
||||
|
||||
-- jump if facing a solid node (not fences or gates)
|
||||
function mob_class:do_jump()
|
||||
|
||||
--[[
|
||||
if not self.jump
|
||||
or self.jump_height == 0
|
||||
or self.fly
|
||||
@@ -1235,14 +1205,18 @@ function mob_class:do_jump()
|
||||
pos.y = pos.y + self.collisionbox[2]
|
||||
|
||||
-- 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 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
|
||||
|
||||
-- are we facing a fence or wall
|
||||
if nod.name:find("fence") or nod.name:find("gate") or nod.name:find("wall") then
|
||||
self.facing_fence = true
|
||||
end
|
||||
]]
|
||||
|
||||
--[[
|
||||
print("on: " .. self.standing_on
|
||||
@@ -1252,7 +1226,7 @@ print("on: " .. self.standing_on
|
||||
.. ", fence: " .. (self.facing_fence and "yes" or "no")
|
||||
)
|
||||
]]
|
||||
|
||||
--[[
|
||||
-- if mob can leap then remove blockages and let them try
|
||||
if self.can_leap == true then
|
||||
blocked = false
|
||||
@@ -1309,7 +1283,7 @@ print("on: " .. self.standing_on
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
return false]]
|
||||
end
|
||||
|
||||
|
||||
|
||||