forked from VoxeLibre/VoxeLibre
Merge branch 'master' into doc-refactoring
This commit is contained in:
commit
daa3b8a46c
|
@ -22,6 +22,7 @@
|
|||
* Nicu
|
||||
* aligator
|
||||
* Code-Sploit
|
||||
* NO11
|
||||
|
||||
## Contributors
|
||||
* Laurent Rocher
|
||||
|
@ -40,7 +41,6 @@
|
|||
* Jared Moody
|
||||
* Li0n
|
||||
* Midgard
|
||||
* NO11
|
||||
* Saku Laesvuori
|
||||
* Yukitty
|
||||
* ZedekThePD
|
||||
|
@ -102,6 +102,7 @@
|
|||
* leorockway
|
||||
* xMrVizzy
|
||||
* yutyo
|
||||
* NO11
|
||||
|
||||
## Translations
|
||||
* Wuzzy
|
||||
|
|
|
@ -66,50 +66,48 @@ local function compute_sphere_rays(radius)
|
|||
local rays = {}
|
||||
local sphere = {}
|
||||
|
||||
for i=1, 2 do
|
||||
local function add_ray(pos)
|
||||
sphere[hash_node_position(pos)] = pos
|
||||
end
|
||||
|
||||
for y = -radius, radius do
|
||||
for z = -radius, radius do
|
||||
for x = -radius, 0, 1 do
|
||||
for x = -radius, 0 do
|
||||
local d = x * x + y * y + z * z
|
||||
if d <= radius * radius then
|
||||
local pos = { x = x, y = y, z = z }
|
||||
sphere[hash_node_position(pos)] = pos
|
||||
add_ray(vector.new(x, y, z))
|
||||
add_ray(vector.new(-x, y, z))
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i=1,2 do
|
||||
for x = -radius, radius do
|
||||
for z = -radius, radius do
|
||||
for y = -radius, 0, 1 do
|
||||
for y = -radius, 0 do
|
||||
local d = x * x + y * y + z * z
|
||||
if d <= radius * radius then
|
||||
local pos = { x = x, y = y, z = z }
|
||||
sphere[hash_node_position(pos)] = pos
|
||||
add_ray(vector.new(x, y, z))
|
||||
add_ray(vector.new(x, -y, z))
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i=1,2 do
|
||||
for x = -radius, radius do
|
||||
for y = -radius, radius do
|
||||
for z = -radius, 0, 1 do
|
||||
for z = -radius, 0 do
|
||||
local d = x * x + y * y + z * z
|
||||
if d <= radius * radius then
|
||||
local pos = { x = x, y = y, z = z }
|
||||
sphere[hash_node_position(pos)] = pos
|
||||
add_ray(vector.new(x, y, z))
|
||||
add_ray(vector.new(x, y, -z))
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for _, pos in pairs(sphere) do
|
||||
rays[#rays + 1] = vector.normalize(pos)
|
||||
|
@ -260,12 +258,12 @@ local function trace_explode(pos, strength, raydirs, radius, info, direct, sourc
|
|||
|
||||
if collisionbox then
|
||||
-- Create rays from random points in the collision box
|
||||
local x1 = collisionbox[1] * 2
|
||||
local y1 = collisionbox[2] * 2
|
||||
local z1 = collisionbox[3] * 2
|
||||
local x2 = collisionbox[4] * 2
|
||||
local y2 = collisionbox[5] * 2
|
||||
local z2 = collisionbox[6] * 2
|
||||
local x1 = collisionbox[1]
|
||||
local y1 = collisionbox[2]
|
||||
local z1 = collisionbox[3]
|
||||
local x2 = collisionbox[4]
|
||||
local y2 = collisionbox[5]
|
||||
local z2 = collisionbox[6]
|
||||
local x_len = math.abs(x2 - x1)
|
||||
local y_len = math.abs(y2 - y1)
|
||||
local z_len = math.abs(z2 - z1)
|
||||
|
|
|
@ -61,20 +61,21 @@ In mc, you cant use clock in the nether and the end.
|
|||
|
||||
* pos: position
|
||||
|
||||
## mcl_worlds.register_on_dimension_change(function(player, dimension))
|
||||
## mcl_worlds.register_on_dimension_change(function(player, dimension, last_dimension))
|
||||
Register a callback function func(player, dimension).
|
||||
It will be called whenever a player changes between dimensions.
|
||||
The void counts as dimension.
|
||||
|
||||
* player: player, the player who changed the dimension
|
||||
* dimension: position, The new dimension of the player ("overworld", "nether", "end", "void").
|
||||
* player: player, the player who changed of dimension
|
||||
* dimension: string, The new dimension of the player ("overworld", "nether", "end", "void").
|
||||
* last_dimension: string, The dimension where the player was ("overworld", "nether", "end", "void").
|
||||
|
||||
|
||||
## mcl_worlds.registered_on_dimension_change
|
||||
Table containing all function registered with mcl_worlds.register_on_dimension_change()
|
||||
|
||||
## mcl_worlds.dimension_change(player, dimension)
|
||||
Notify this mod of a dimmension change of <player> to <dimension>
|
||||
Notify this mod of a dimension change of <player> to <dimension>
|
||||
|
||||
* player: player, player who changed the dimension
|
||||
* dimension: string, new dimension ("overworld", "nether", "end", "void")
|
|
@ -112,10 +112,11 @@ local last_dimension = {}
|
|||
-- * player: Player who changed the dimension
|
||||
-- * dimension: New dimension ("overworld", "nether", "end", "void")
|
||||
function mcl_worlds.dimension_change(player, dimension)
|
||||
local playername = player:get_player_name()
|
||||
for i=1, #mcl_worlds.registered_on_dimension_change do
|
||||
mcl_worlds.registered_on_dimension_change[i](player, dimension)
|
||||
last_dimension[player:get_player_name()] = dimension
|
||||
mcl_worlds.registered_on_dimension_change[i](player, dimension, last_dimension[playername])
|
||||
end
|
||||
last_dimension[playername] = dimension
|
||||
end
|
||||
|
||||
----------------------- INTERNAL STUFF ----------------------
|
||||
|
|
|
@ -938,12 +938,15 @@ mobs.mob_step = function(self, dtime)
|
|||
end
|
||||
end
|
||||
|
||||
if self.burn_timer == 0 and minetest_get_node_light(pos) > 12 and minetest_get_node_light(pos, 0.5) == 15 then
|
||||
if self.burn_timer == 0 then
|
||||
local light_current, light_day = minetest_get_node_light(pos), minetest_get_node_light(pos, 0.5)
|
||||
if light_current and light_day and light_current > 12 and light_day == 15 then
|
||||
mcl_burning.set_on_fire(self.object, 1)
|
||||
self.burn_timer = 1 --1.7 seconds
|
||||
self.pause_timer = 0.4
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,4 +2,4 @@ name = mcl_mobs
|
|||
author = PilzAdam
|
||||
description = Adds a mob API for mods to add animals or monsters, etc.
|
||||
depends = mcl_particles
|
||||
optional_depends = mcl_weather, mcl_explosions, mcl_hunger, mcl_worlds, invisibility, lucky_block, cmi, doc_identifier, mcl_armor, mcl_portals, mcl_experience
|
||||
optional_depends = mcl_weather, mcl_explosions, mcl_hunger, mcl_worlds, invisibility, cmi, doc_identifier, mcl_armor, mcl_portals, mcl_experience
|
||||
|
|
|
@ -15,7 +15,7 @@ with name "mobs_mc_gameconfig". ]]
|
|||
-- Set to false in your gameconfig mod if you create your own monster egg nodes.
|
||||
mobs_mc.create_monster_egg_nodes = true
|
||||
|
||||
mobs_mc.items = {}
|
||||
--mobs_mc.items = {}
|
||||
|
||||
mobs_mc.items = {
|
||||
-- Items defined in mobs_mc
|
||||
|
|
|
@ -28,6 +28,7 @@ mcl_credits.people = {
|
|||
"Nicu",
|
||||
"aligator",
|
||||
"Code-Sploit",
|
||||
"NO11",
|
||||
}},
|
||||
{"Contributors", 0x52FF00, {
|
||||
"Laurent Rocher",
|
||||
|
@ -46,7 +47,6 @@ mcl_credits.people = {
|
|||
"Jared Moody",
|
||||
"Li0n",
|
||||
"Midgard",
|
||||
"NO11",
|
||||
"Saku Laesvuori",
|
||||
"Yukitty",
|
||||
"ZedekThePD",
|
||||
|
@ -107,7 +107,8 @@ mcl_credits.people = {
|
|||
"kingoscargames",
|
||||
"leorockway",
|
||||
"xMrVizzy",
|
||||
"yutyo"
|
||||
"yutyo",
|
||||
"NO11",
|
||||
}},
|
||||
{"Translations", 0x00FF60, {
|
||||
"Wuzzy",
|
||||
|
|
|
@ -275,10 +275,6 @@ function mcl_experience.add_experience(player, experience)
|
|||
end
|
||||
stack:set_wear(math.floor(new_wear))
|
||||
inv:set_stack(list, index, stack)
|
||||
if can.list == "armor" then
|
||||
local armor_inv = minetest.get_inventory({type = "detached", name = player:get_player_name() .. "_armor"})
|
||||
armor_inv:set_stack(list, index, stack)
|
||||
end
|
||||
end
|
||||
|
||||
local old_bar, old_xp, old_level = temp_pool.bar, temp_pool.xp, temp_pool.level
|
||||
|
|
|
@ -118,16 +118,6 @@ ARROW_ENTITY.on_step = function(self, dtime)
|
|||
dpos = vector.round(dpos)
|
||||
local node = minetest.get_node(dpos)
|
||||
|
||||
if self.object:get_attach() ~= nil and self.object:get_attach(parent):get_hp() < 1 then
|
||||
self.object:remove()
|
||||
end
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
if self.object:get_attach(parent) == player then
|
||||
self.object:remove()
|
||||
end
|
||||
end)
|
||||
|
||||
if self._stuck then
|
||||
self._stucktimer = self._stucktimer + dtime
|
||||
self._stuckrechecktimer = self._stuckrechecktimer + dtime
|
||||
|
|
|
@ -4,47 +4,30 @@
|
|||
-- Crafting definition
|
||||
--
|
||||
|
||||
local craft_planks = function(output, input)
|
||||
minetest.register_craft({
|
||||
output = 'mcl_core:wood 4',
|
||||
output = "mcl_core:"..output.."wood 4",
|
||||
recipe = {
|
||||
{'mcl_core:tree'},
|
||||
{"mcl_core:"..input},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mcl_core:darkwood 4',
|
||||
recipe = {
|
||||
{'mcl_core:darktree'},
|
||||
local planks = {
|
||||
{"", "oak"},
|
||||
{"dark", "dark_oak"},
|
||||
{"jungle", "jungle"},
|
||||
{"acacia", "acacia"},
|
||||
{"spruce", "spruce"},
|
||||
{"birch", "birch"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mcl_core:junglewood 4',
|
||||
recipe = {
|
||||
{'mcl_core:jungletree'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mcl_core:acaciawood 4',
|
||||
recipe = {
|
||||
{'mcl_core:acaciatree'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mcl_core:sprucewood 4',
|
||||
recipe = {
|
||||
{'mcl_core:sprucetree'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mcl_core:birchwood 4',
|
||||
recipe = {
|
||||
{'mcl_core:birchtree'},
|
||||
}
|
||||
})
|
||||
for _, p in pairs(planks) do
|
||||
craft_planks(p[1], p[1].."tree")
|
||||
craft_planks(p[1], p[1].."tree_bark")
|
||||
craft_planks(p[1], "stripped_"..p[2])
|
||||
craft_planks(p[1], "stripped_"..p[2].."_bark")
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
type = 'shapeless',
|
||||
|
|
|
@ -107,7 +107,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.invisible[player].timer = EF.invisible[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#B0B0B0") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#7F8392") end
|
||||
|
||||
if EF.invisible[player].timer >= EF.invisible[player].dur then
|
||||
mcl_potions.make_invisible(player, false)
|
||||
|
@ -129,7 +129,7 @@ minetest.register_globalstep(function(dtime)
|
|||
EF.poisoned[player].timer = EF.poisoned[player].timer + dtime
|
||||
EF.poisoned[player].hit_timer = (EF.poisoned[player].hit_timer or 0) + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#225533") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#4E9331") end
|
||||
|
||||
if EF.poisoned[player].hit_timer >= EF.poisoned[player].step then
|
||||
if mcl_util.get_hp(player) - 1 > 0 then
|
||||
|
@ -158,7 +158,7 @@ minetest.register_globalstep(function(dtime)
|
|||
EF.regenerating[player].timer = EF.regenerating[player].timer + dtime
|
||||
EF.regenerating[player].heal_timer = (EF.regenerating[player].heal_timer or 0) + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#A52BB2") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#CD5CAB") end
|
||||
|
||||
if EF.regenerating[player].heal_timer >= EF.regenerating[player].step then
|
||||
|
||||
|
@ -192,7 +192,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.water_breathing[player].timer = EF.water_breathing[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#0000AA") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#2E5299") end
|
||||
|
||||
if player:get_breath() then
|
||||
if player:get_breath() < 10 then player:set_breath(10) end
|
||||
|
@ -217,7 +217,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.leaping[player].timer = EF.leaping[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#00CC33") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#22FF4C") end
|
||||
|
||||
if EF.leaping[player].timer >= EF.leaping[player].dur then
|
||||
playerphysics.remove_physics_factor(player, "jump", "mcl_potions:leaping")
|
||||
|
@ -239,7 +239,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.swift[player].timer = EF.swift[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#009999") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#7CAFC6") end
|
||||
|
||||
if EF.swift[player].timer >= EF.swift[player].dur then
|
||||
playerphysics.remove_physics_factor(player, "speed", "mcl_potions:swiftness")
|
||||
|
@ -261,7 +261,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.night_vision[player].timer = EF.night_vision[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#1010AA") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#1F1FA1") end
|
||||
|
||||
if EF.night_vision[player].timer >= EF.night_vision[player].dur then
|
||||
EF.night_vision[player] = nil
|
||||
|
@ -286,7 +286,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.fire_proof[player].timer = EF.fire_proof[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#E0B050") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#E49A3A") end
|
||||
|
||||
if EF.fire_proof[player].timer >= EF.fire_proof[player].dur then
|
||||
EF.fire_proof[player] = nil
|
||||
|
@ -307,7 +307,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.weak[player].timer = EF.weak[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#7700BB") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#484D48") end
|
||||
|
||||
if EF.weak[player].timer >= EF.weak[player].dur then
|
||||
EF.weak[player] = nil
|
||||
|
@ -328,7 +328,7 @@ minetest.register_globalstep(function(dtime)
|
|||
|
||||
EF.strong[player].timer = EF.strong[player].timer + dtime
|
||||
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#7700BB") end
|
||||
if player:get_pos() then mcl_potions._add_spawner(player, "#932423") end
|
||||
|
||||
if EF.strong[player].timer >= EF.strong[player].dur then
|
||||
EF.strong[player] = nil
|
||||
|
|
|
@ -459,7 +459,7 @@ local healing_def = {
|
|||
_tt = S("+4 HP"),
|
||||
_tt_2 = S("+8 HP"),
|
||||
_longdesc = S("Instantly heals."),
|
||||
color = "#CC0000",
|
||||
color = "#F82423",
|
||||
effect = 4,
|
||||
instant = true,
|
||||
on_use = mcl_potions.healing_func,
|
||||
|
@ -473,7 +473,7 @@ local harming_def = {
|
|||
_tt = S("-6 HP"),
|
||||
_tt_II = S("-12 HP"),
|
||||
_longdesc = S("Instantly deals damage."),
|
||||
color = "#660099",
|
||||
color = "#430A09",
|
||||
effect = -6,
|
||||
instant = true,
|
||||
on_use = mcl_potions.healing_func,
|
||||
|
@ -486,7 +486,7 @@ local night_vision_def = {
|
|||
description = S("Night Vision"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Increases the perceived brightness of light under a dark sky."),
|
||||
color = "#1010AA",
|
||||
color = "#1F1FA1",
|
||||
effect = nil,
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.night_vision_func,
|
||||
|
@ -498,7 +498,7 @@ local swiftness_def = {
|
|||
description = S("Swiftness"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Increases walking speed."),
|
||||
color = "#009999",
|
||||
color = "#7CAFC6",
|
||||
effect = 1.2,
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.swiftness_func,
|
||||
|
@ -511,7 +511,7 @@ local slowness_def = {
|
|||
description = S("Slowness"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Decreases walking speed."),
|
||||
color = "#000080",
|
||||
color = "#5A6C81",
|
||||
effect = 0.85,
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.swiftness_func,
|
||||
|
@ -525,7 +525,7 @@ local leaping_def = {
|
|||
description = S("Leaping"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Increases jump strength."),
|
||||
color = "#00CC33",
|
||||
color = "#22FF4C",
|
||||
effect = 1.15,
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.leaping_func,
|
||||
|
@ -538,7 +538,7 @@ local poison_def = {
|
|||
description = S("Poison"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Applies the poison effect which deals damage at a regular interval."),
|
||||
color = "#447755",
|
||||
color = "#4E9331",
|
||||
effect = 2.5,
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.poison_func,
|
||||
|
@ -552,7 +552,7 @@ local regeneration_def = {
|
|||
description = S("Regeneration"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Regenerates health over time."),
|
||||
color = "#B52CC2",
|
||||
color = "#CD5CAB",
|
||||
effect = 2.5,
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.regeneration_func,
|
||||
|
@ -565,7 +565,7 @@ local invisibility_def = {
|
|||
description = S("Invisibility"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Grants invisibility."),
|
||||
color = "#B0B0B0",
|
||||
color = "#7F8392",
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.invisiblility_func,
|
||||
is_plus = true,
|
||||
|
@ -576,7 +576,7 @@ local water_breathing_def = {
|
|||
description = S("Water Breathing"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Grants limitless breath underwater."),
|
||||
color = "#0000AA",
|
||||
color = "#2E5299",
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.water_breathing_func,
|
||||
is_plus = true,
|
||||
|
@ -587,7 +587,7 @@ local fire_resistance_def = {
|
|||
description = S("Fire Resistance"),
|
||||
_tt = nil,
|
||||
_longdesc = S("Grants immunity to damage from heat sources like fire."),
|
||||
color = "#D0A040",
|
||||
color = "#E49A3A",
|
||||
is_dur = true,
|
||||
on_use = mcl_potions.fire_resistance_func,
|
||||
is_plus = true,
|
||||
|
@ -611,22 +611,22 @@ end
|
|||
-- description = S("Weakness"),
|
||||
-- _tt_help = TODO,
|
||||
-- _doc_items_longdesc = brewhelp,
|
||||
-- wield_image = potion_image("#6600AA"),
|
||||
-- inventory_image = potion_image("#6600AA"),
|
||||
-- wield_image = potion_image("#484D48"),
|
||||
-- inventory_image = potion_image("#484D48"),
|
||||
-- groups = { brewitem=1, food=3, can_eat_when_full=1 },
|
||||
-- stack_max = 1,
|
||||
--
|
||||
-- on_place = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, -4, mcl_potions.DURATION*mcl_potions.INV_FACTOR)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#6600AA")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#484D48")
|
||||
-- return itemstack
|
||||
-- end,
|
||||
--
|
||||
-- on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, -4, mcl_potions.DURATION*mcl_potions.INV_FACTOR)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#6600AA")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#484D48")
|
||||
-- return itemstack
|
||||
-- end
|
||||
-- })
|
||||
|
@ -635,22 +635,22 @@ end
|
|||
-- description = S("Weakness +"),
|
||||
-- _tt_help = TODO,
|
||||
-- _doc_items_longdesc = brewhelp,
|
||||
-- wield_image = potion_image("#7700BB"),
|
||||
-- inventory_image = potion_image("#7700BB"),
|
||||
-- wield_image = potion_image("#484D48"),
|
||||
-- inventory_image = potion_image("#484D48"),
|
||||
-- groups = { brewitem=1, food=3, can_eat_when_full=1 },
|
||||
-- stack_max = 1,
|
||||
--
|
||||
-- on_place = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, -4, mcl_potions.DURATION_2*mcl_potions.INV_FACTOR)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#7700BB")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#484D48")
|
||||
-- return itemstack
|
||||
-- end,
|
||||
--
|
||||
-- on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, -4, mcl_potions.DURATION_2*mcl_potions.INV_FACTOR)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#7700BB")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#484D48")
|
||||
-- return itemstack
|
||||
-- end
|
||||
-- })
|
||||
|
@ -659,22 +659,22 @@ end
|
|||
-- description = S("Strength"),
|
||||
-- _tt_help = TODO,
|
||||
-- _doc_items_longdesc = brewhelp,
|
||||
-- wield_image = potion_image("#D444D4"),
|
||||
-- inventory_image = potion_image("#D444D4"),
|
||||
-- wield_image = potion_image("#932423"),
|
||||
-- inventory_image = potion_image("#932423"),
|
||||
-- groups = { brewitem=1, food=3, can_eat_when_full=1 },
|
||||
-- stack_max = 1,
|
||||
--
|
||||
-- on_place = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, 3, mcl_potions.DURATION)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#D444D4")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#932423")
|
||||
-- return itemstack
|
||||
-- end,
|
||||
--
|
||||
-- on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, 3, mcl_potions.DURATION)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#D444D4")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#932423")
|
||||
-- return itemstack
|
||||
-- end
|
||||
-- })
|
||||
|
@ -683,22 +683,22 @@ end
|
|||
-- description = S("Strength II"),
|
||||
-- _tt_help = TODO,
|
||||
-- _doc_items_longdesc = brewhelp,
|
||||
-- wield_image = potion_image("#D444E4"),
|
||||
-- inventory_image = potion_image("#D444E4"),
|
||||
-- wield_image = potion_image("#932423"),
|
||||
-- inventory_image = potion_image("#932423"),
|
||||
-- groups = { brewitem=1, food=3, can_eat_when_full=1 },
|
||||
-- stack_max = 1,
|
||||
--
|
||||
-- on_place = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, 6, mcl_potions.DURATION_2)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#D444E4")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#932423")
|
||||
-- return itemstack
|
||||
-- end,
|
||||
--
|
||||
-- on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, 6, mcl_potions.DURATION_2)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#D444E4")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#932423")
|
||||
-- return itemstack
|
||||
-- end
|
||||
-- })
|
||||
|
@ -707,22 +707,22 @@ end
|
|||
-- description = S("Strength +"),
|
||||
-- _tt_help = TODO,
|
||||
-- _doc_items_longdesc = brewhelp,
|
||||
-- wield_image = potion_image("#D444F4"),
|
||||
-- inventory_image = potion_image("#D444F4"),
|
||||
-- wield_image = potion_image("#932423"),
|
||||
-- inventory_image = potion_image("#932423"),
|
||||
-- groups = { brewitem=1, food=3, can_eat_when_full=1 },
|
||||
-- stack_max = 1,
|
||||
--
|
||||
-- on_place = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, 3, mcl_potions.DURATION_PLUS)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#D444F4")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#932423")
|
||||
-- return itemstack
|
||||
-- end,
|
||||
--
|
||||
-- on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
-- mcl_potions.weakness_func(user, 3, mcl_potions.DURATION_PLUS)
|
||||
-- minetest.do_item_eat(0, "mcl_potions:glass_bottle", itemstack, user, pointed_thing)
|
||||
-- mcl_potions._use_potion(itemstack, user, "#D444F4")
|
||||
-- mcl_potions._use_potion(itemstack, user, "#932423")
|
||||
-- return itemstack
|
||||
-- end
|
||||
-- })
|
||||
|
|
|
@ -3974,7 +3974,7 @@ if mg_name ~= "singlenode" then
|
|||
mcl_mapgen_core.register_generator("chorus_grow", nil, function(minp, maxp, blockseed)
|
||||
local gennotify = minetest.get_mapgen_object("gennotify")
|
||||
--local poslist = {}
|
||||
local pr = PseudoRandom(blockseed + 14)
|
||||
pr = PseudoRandom(blockseed + 14)
|
||||
for _, pos in ipairs(gennotify["decoration#"..deco_id_chorus_plant] or {}) do
|
||||
local x, y, z = pos.x, pos.y, pos.z
|
||||
if x < -2 or x > 2 or z < -2 or z > 2 then
|
||||
|
|
|
@ -7,7 +7,7 @@ end
|
|||
|
||||
--[[ Manually set in 'buildings.lua'
|
||||
-- material to replace cobblestone with
|
||||
wallmaterial = {
|
||||
local wallmaterial = {
|
||||
"mcl_core:junglewood",
|
||||
"mcl_core:sprucewood",
|
||||
"mcl_core:wood",
|
||||
|
|
|
@ -137,14 +137,14 @@ local timerMult = 1 -- Cycles from 0 to 7, each time when timer hits half a seco
|
|||
minetest.register_globalstep(function(dtime)
|
||||
main_timer = main_timer + dtime
|
||||
timer = timer + dtime
|
||||
if main_timer > mcl_hunger.HUD_TICK or timer > 0.5 then
|
||||
if main_timer > mcl_hunger.HUD_TICK or timer > 0.25 then
|
||||
if main_timer > mcl_hunger.HUD_TICK then main_timer = 0 end
|
||||
for _,player in pairs(minetest.get_connected_players()) do
|
||||
local name = player:get_player_name()
|
||||
|
||||
local h = tonumber(mcl_hunger.get_hunger(player))
|
||||
local hp = player:get_hp()
|
||||
if timer > 0.5 then
|
||||
if timer > 0.25 then
|
||||
-- Slow health regeneration, and hunger damage (every 4s).
|
||||
-- Regeneration rate based on tutorial video <https://www.youtube.com/watch?v=zs2t-xCVHBo>.
|
||||
-- Minecraft Wiki seems to be wrong in claiming that full hunger gives 0.5s regen rate.
|
||||
|
@ -166,9 +166,9 @@ minetest.register_globalstep(function(dtime)
|
|||
end
|
||||
end
|
||||
end
|
||||
if timer > 0.5 then
|
||||
if timer > 0.25 then
|
||||
timer = 0
|
||||
timerMult = timerMult + 1
|
||||
timerMult = timerMult + 2
|
||||
if timerMult > 7 then
|
||||
timerMult = 0
|
||||
end
|
||||
|
|
|
@ -549,6 +549,9 @@ mcl_damage.register_modifier(function(obj, damage, reason)
|
|||
end
|
||||
return 0
|
||||
end
|
||||
if node.name == "mcl_core:cobweb" then
|
||||
return 0
|
||||
end
|
||||
end
|
||||
pos = vector.add(pos, step)
|
||||
node = minetest.get_node(pos)
|
||||
|
|
|
@ -27,3 +27,17 @@ Usage:
|
|||
- Convert the textures
|
||||
- Put the new texture directory in the Minetest texture pack directory, just like
|
||||
any other Minetest texture pack
|
||||
|
||||
## Luacheck Globals Generators
|
||||
This is a Python script which list every single global tables in mineclone2 source code.
|
||||
It outputs a list to be used in luacheck conf files.
|
||||
|
||||
Modes of operation:
|
||||
- List global tables
|
||||
|
||||
Requirements:
|
||||
- Know how to use the console
|
||||
- Python 3
|
||||
|
||||
Usage:
|
||||
- In the console, run `python3 ./tools/create_luacheck.py` in the MineClone2 directory
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
import os
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
# Just run this script from mineclone2 directory to get a list of every global vars to use in luacheck configuration files
|
||||
|
||||
path = "./mods/"
|
||||
|
||||
pattern = re.compile(r'^(?P<global_var>[A-Za-z_0-9]+)[ ]*=[ ]*\{')
|
||||
pattern_local = re.compile(r'local (?P<local_var>[A-Za-z_0-9]+)')
|
||||
|
||||
global_vars = []
|
||||
|
||||
|
||||
print("---Copy/Paste output in your luacheck conf file---\n")
|
||||
|
||||
|
||||
pathlist = Path(path).rglob('*.lua')
|
||||
for path in pathlist:
|
||||
path_in_str = str(path)
|
||||
# print(path_in_str)
|
||||
trouve = False
|
||||
with open(path_in_str) as f:
|
||||
local_vars = []
|
||||
for i, line in enumerate(f.readlines()):
|
||||
m = pattern.match(line)
|
||||
if m:
|
||||
global_name = m.group('global_var')
|
||||
if global_name not in local_vars:
|
||||
#print(path_in_str, ":", i+1, ":", m.group('global_var').strip())
|
||||
global_vars.append(m.group('global_var').strip())
|
||||
found = True
|
||||
break
|
||||
|
||||
else:
|
||||
n = pattern_local.match(line)
|
||||
if n:
|
||||
local_vars.append(n.group('local_var'))
|
||||
|
||||
if not found:
|
||||
nb_varloc = len(variables_locales)
|
||||
#print(path_in_str, ": -", "({} variables locales)".format(nb_varloc) if nb_varloc > 0 else '')
|
||||
|
||||
print(', '.join(['"{}"'.format(v) for v in global_vars]))
|
Loading…
Reference in New Issue