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 |
11
README.TXT
@@ -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!
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
name = cops
|
name = ip_cops
|
||||||
depends = mobs
|
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 = {}
|
||||||
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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
name = extinguisher
|
name = ip_extinguisher
|
||||||
description = Extinguisher mod adapted for Insane Protestor
|
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",
|
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(),
|
||||||
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
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 =
|
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
@@ -0,0 +1 @@
|
|||||||
|
name = ip_main
|
||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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",
|
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",
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||