Compare commits

..

No commits in common. "master" and "issue-template" have entirely different histories.

316 changed files with 638 additions and 578 deletions

View File

@ -1,102 +0,0 @@
std = "min"
read_globals = {
"ItemStack",
"dump", "dump2",
"vector",
"VoxelArea",
"minetest",
"PseudoRandom",
"PerlinNoise",
"PcgRandom",
string = {fields = {"split", "trim"}},
table = {fields = {"copy", "getn", "indexof", "insert_all"}},
math = {fields = {"hypot", "round"}},
}
-- A config option to allow r/w access to mods which contain
-- this one. It only avoids a couple warnings, and may not be
-- the behavior we want, so it's disabled by default.
local allow_parents=false
local lfs = require "lfs"
-- Seed the queue with the mods/ directory
local queue={ {"mods"} }
local function check(dir)
-- Get the string of the directory path
local sdir=table.concat(dir, "/")
-- Save the top-level directory name as a
-- fallback in case there's no mod.conf,
-- or no name= directive.
local name=dir[#dir]
-- Is there a mod.conf?
if lfs.attributes(sdir.."/mod.conf", "mode") == "file" then
local deps={}
for line in io.lines(sdir.."/mod.conf") do
-- Use name= if it's there
name=string.match(line, "name *= *([a-zA-Z0-9_]+)") or name
-- Get the dependency entries (if they're there)
local ents=string.match(line, "depends *=(.*)$")
if ents then
-- Split them in to the comma-separated names
for m in string.gmatch(ents, "([a-zA-Z0-9_]+),?") do
table.insert(deps, m)
end
end
end
local glb={ name }
if allow_parents then
for _, v in pairs(dir) do
-- Skip ALL-CAPS names since those tend
-- to be collections of mods instead of
-- mods themselves.
if not string.match(v, "^[A-Z]+$") then
table.insert(glb, v)
end
end
end
-- Tell Luacheck what the directory is allowed to do
files[sdir]={
globals = glb,
read_globals = deps,
}
elseif lfs.attributes(sdir.."/init.lua", "mode") == "file" then
-- No mod.conf, but there's an init.lua here.
local glb={ name }
if allow_parents then
for _, v in pairs(dir) do
-- Again, skip ALL-CAPS.
if not string.match(v, "^[A-Z]+$") then
table.insert(glb, v)
end
end
end
files[sdir]={ globals=glb }
end
-- Queue any child directories
for d in lfs.dir(sdir) do
-- Skip hidden directories and parent/current directories.
if lfs.attributes(sdir.."/"..d, "mode") == "directory" and not string.match(d, "^%.") then
-- Copy dir in to nd (New Dir)
local nd={}
for k, v in pairs(dir) do
nd[k]=v
end
nd[#nd+1]=d
table.insert(queue, nd)
end
end
end
while #queue > 0 do
-- Pop an entry and process it.
check(table.remove(queue, 1))
end

View File

@ -149,7 +149,7 @@ These groups are used mostly for informational purposes
* `trapdoor=2`: Open trapdoor
* `glass=1`: Glass (full cubes only)
* `rail=1`: Rail
* `music_record=1`: Music Disc
* `music_record`: Music Disc (rating is track ID)
* `tnt=1`: Block is TNT
* `boat=1`: Boat
* `minecart=1`: Minecart

View File

@ -207,10 +207,6 @@ end
function mcl_autogroup.can_harvest(nodename, toolname)
local ndef = minetest.registered_nodes[nodename]
if not ndef then
return false
end
if minetest.get_item_group(nodename, "dig_immediate") >= 2 then
return true
end

View File

@ -0,0 +1 @@
Adds additional ways for nodes to be attached.

View File

@ -1,2 +0,0 @@
name = mcl_attached
description = Adds additional ways for nodes to be attached.

View File

@ -0,0 +1 @@
Initialization mod of MineClone 2. Defines some common shared variables and sets up initial default settings which have to be set at the beginning.

View File

@ -1,2 +1 @@
name = mcl_init
description = Initialization mod of MineClone 2. Defines some common shared variables and sets up initial default settings which have to be set at the beginning.

View File

@ -0,0 +1 @@
API for filling a chest with random treasures.

View File

@ -1,2 +1 @@
name = mcl_loot
description = API for filling a chest with random treasures.

View File

@ -0,0 +1 @@
Contains particle images of MineClone 2. No code.

View File

@ -1,2 +1 @@
name = mcl_particles
description = Contains particle images of MineClone 2. No code.

View File

@ -0,0 +1 @@
This mod contains the core sounds of MineClone 2 as well as helper function for mods to access them.

View File

@ -1,2 +1 @@
name = mcl_sounds
description = This mod contains the core sounds of MineClone 2 as well as helper function for mods to access them.

View File

@ -0,0 +1 @@
mcl_init

View File

@ -0,0 +1 @@
Helper functions for MineClone 2.

View File

@ -1,3 +1 @@
name = mcl_util
description = Helper functions for MineClone 2.
depends = mcl_init

View File

@ -0,0 +1 @@
mcl_init

View File

@ -0,0 +1 @@
Utility functions for worlds and the “dimensions”.

View File

@ -1,3 +0,0 @@
name = mcl_worlds
description = Utility functions for worlds and the “dimensions”.
depends = mcl_init

View File

@ -0,0 +1 @@
mcl_core

View File

@ -1,2 +0,0 @@
name = drippingwater
depends = mcl_core

View File

@ -0,0 +1,3 @@
mcl_player
mcl_core?
doc_identifier?

View File

@ -0,0 +1 @@
Adds drivable boats.

View File

@ -243,7 +243,7 @@ function boat.on_step(self, dtime, moveresult)
else
local ctrl = self._passenger:get_player_control()
if ctrl and ctrl.sneak then
detach_object(self._passenger, true)
detach_player(self._passenger, true)
self._passenger = nil
end
end

View File

@ -1,4 +1 @@
name = mcl_boats
description = Adds drivable boats.
depends = mcl_player
optional_depends = mcl_core, doc_identifier

View File

@ -0,0 +1 @@
Falling node entities, Minecraft-style

View File

@ -1,2 +1 @@
name = mcl_falling_nodes
description = Falling node entities, Minecraft-style

View File

@ -0,0 +1,2 @@
flowlib
mcl_enchanting

View File

@ -0,0 +1 @@
Dropped items will be attracted to the player like a magnet.

View File

@ -1,3 +1 @@
name = mcl_item_entity
description = Dropped items will be attracted to the player like a magnet.
depends = flowlib, mcl_enchanting

View File

@ -0,0 +1,12 @@
mcl_explosions
mcl_core
mcl_sounds
mcl_player
mcl_achievements
mcl_chests
mcl_furnaces
mesecons_commandblock
mcl_hoppers
mcl_tnt
mesecons
doc_identifier?

View File

@ -0,0 +1 @@
Minecarts are vehicles to move players quickly on rails.

View File

@ -1,4 +1 @@
name = mcl_minecarts
description = Minecarts are vehicles to move players quickly on rails.
depends = mcl_explosions, mcl_core, mcl_sounds, mcl_player, mcl_achievements, mcl_chests, mcl_furnaces, mesecons_commandblock, mcl_hoppers, mcl_tnt, mesecons
optional_depends = doc_identifier

View File

@ -0,0 +1 @@
Adds a mob API for mods to add animals or monsters, etc.

View File

@ -1,4 +1,3 @@
name = mcl_mobs
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
description = Adds a mob API for mods to add animals or monsters, etc.

View File

@ -0,0 +1,12 @@
mcl_init
mcl_particles
default?
mcl_mobs
mcl_tnt?
mcl_bows?
mcl_throwing?
mcl_fishing?
bones?
mesecons_materials?
mobs_mc_gameconfig?
doc_items?

View File

@ -0,0 +1 @@
Adds Minecraft-like monsters and animals.

View File

@ -1,4 +1 @@
name = mobs_mc
description = Adds Minecraft-like monsters and animals.
depends = mcl_init, mcl_particles, mcl_mobs
optional_depends = default, mcl_tnt, mcl_bows, mcl_throwing, mcl_fishing, bones, mesecons_materials, mobs_mc_gameconfig, doc_items

View File

@ -0,0 +1,2 @@
mcl_init
mcl_core

View File

@ -1,2 +0,0 @@
name = mobs_mc_gameconfig
depends = mcl_init, mcl_core

View File

@ -0,0 +1,2 @@
mcl_fire
mcl_death_messages?

View File

@ -0,0 +1 @@
A mod that adds thunder and lightning effects.

View File

@ -1,4 +1 @@
name = lightning
description = A mod that adds thunder and lightning effects.
depends = mcl_fire
optional_depends = mcl_death_messages

View File

@ -0,0 +1,2 @@
mcl_worlds
mcl_death_messages

View File

@ -0,0 +1 @@
Deal damage to entities stuck in the deep void

View File

@ -1,3 +1 @@
name = mcl_void_damage
description = Deal damage to entities stuck in the deep void
depends = mcl_worlds, mcl_death_messages

View File

@ -0,0 +1,3 @@
mcl_init
mcl_worlds
lightning?

View File

@ -0,0 +1 @@
Weather and sky handling: Rain, snow, thunderstorm, End and Nether ambience

View File

@ -1,4 +1 @@
name = mcl_weather
description = Weather and sky handling: Rain, snow, thunderstorm, End and Nether ambience
depends = mcl_init, mcl_worlds
optional_depends = lightning

View File

@ -0,0 +1 @@
Provides an extensible in-game help with texts about gameplay basics (such a crafting), items and advanced usage.

View File

@ -1,2 +0,0 @@
name = doc
description = Provides an extensible in-game help with texts about gameplay basics (such a crafting), items and advanced usage.

View File

@ -0,0 +1,6 @@
mcl_core
mcl_compass
mcl_clock
doc
sfinv?
sfinv_buttons?

View File

@ -0,0 +1,2 @@
The most comprehensive Crafting Guide
on Minetest.

View File

@ -1,5 +1 @@
name = mcl_craftguide
description = The most comprehensive Crafting Guide
on Minetest.
depends = mcl_core, mcl_compass, mcl_clock, doc
optional_depends = sfinv, sfinv_buttons

View File

@ -0,0 +1,2 @@
doc
doc_items

View File

@ -0,0 +1 @@
This MineClone 2 mod sets up and configures the Help modpack mods to tailor the help towards MineClone 2.

View File

@ -1,3 +1 @@
name = mcl_doc
description = This MineClone 2 mod sets up and configures the Help modpack mods to tailor the help towards MineClone 2.
depends = doc, doc_items

View File

@ -0,0 +1,2 @@
tt
mcl_enchanting

View File

@ -1,2 +0,0 @@
name = mcl_tt
depends = tt, mcl_enchanting

View File

@ -0,0 +1,2 @@
sfinv?
unified_inventory?

View File

@ -0,0 +1 @@
Adds achievements to Minetest, and an API to register new ones.

View File

@ -5,4 +5,3 @@ description = Adds achievements to Minetest, and an API to register new ones.
license = LGPL 2.1 or later
forum = https://forum.minetest.net/viewtopic.php?t=4870
version = 2.3.0
optional_depends = sfinv, unified_inventory

View File

@ -0,0 +1 @@
awards

View File

@ -1,2 +1 @@
name = mcl_achievements
depends = awards

View File

@ -0,0 +1 @@
Provides core textures needed by Minetest.

View File

@ -1,2 +1 @@
name = mcl_base_textures
description = Provides core textures needed by Minetest.

View File

@ -0,0 +1 @@
Shows messages in chat when a player dies.

View File

@ -10,7 +10,6 @@
@1 drowned.=@1 ertrank.
@1 ran out of oxygen.=@1 ging die Luft aus.
@1 was killed by @2.=@1 wurde von @2 getötet.
@1 was slain by @2.=@1 wurde von @2 getötet.
@1 was killed.=@1 wurde getötet.
@1 was killed by a mob.=@1 wurde von einem Mob getötet.
@1 was burned to death by a blaze's fireball.=@1 wurde von einem Feuerball einer Lohe zu Tode verbrannt.

View File

@ -10,7 +10,6 @@
@1 drowned.=
@1 ran out of oxygen.=
@1 was killed by @2.=
@1 was slain by @2.=
@1 was killed.=
@1 was killed by a mob.=
@1 was burned to death by a blaze's fireball.=

View File

@ -1,2 +1 @@
name = mcl_death_messages
description = Shows messages in chat when a player dies.

View File

@ -0,0 +1 @@
mcl_init

View File

@ -1,2 +1 @@
name = mcl_formspec_prepend
depends = mcl_init

View File

@ -0,0 +1 @@
Adds a HUD bar displaying the current damage of the player's armor.

View File

@ -1,3 +1,2 @@
name = mcl_hbarmor
depends = hudbars, mcl_armor
description = Adds a HUD bar displaying the current damage of the player's armor.

View File

@ -28,9 +28,10 @@ local function replace_enchanted_books(tbl)
end
end
--[[ Populate all the item tables. We only do this once. Note this code must be
executed after loading all the other mods in order to work. ]]
minetest.register_on_mods_loaded(function()
--[[ Populate all the item tables. We only do this once. Note this mod must be
loaded after _mcl_autogroup for this to work, because it required certain
groups to be set. ]]
do
for name,def in pairs(minetest.registered_items) do
if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) and def.description and def.description ~= "" then
local is_redstone = function(def)
@ -108,7 +109,7 @@ minetest.register_on_mods_loaded(function()
table.sort(to_sort)
replace_enchanted_books(to_sort)
end
end)
end
local function filter_item(name, description, lang, filter)
local desc

View File

@ -0,0 +1,8 @@
mcl_init
mcl_formspec
mcl_player?
_mcl_autogroup?
mcl_armor?
mcl_brewing?
mcl_potions?
mcl_enchanting

View File

@ -0,0 +1 @@
Adds the player inventory and creative inventory.

View File

@ -1,4 +1 @@
name = mcl_inventory
description = Adds the player inventory and creative inventory.
depends = mcl_init, mcl_formspec, mcl_enchanting
optional_depends = mcl_player, mcl_armor, mcl_brewing, mcl_potions

View File

@ -0,0 +1 @@
hudbars?

View File

@ -0,0 +1 @@
Displays the name of the wielded item.

View File

@ -1,3 +1 @@
name = show_wielded_item
description = Displays the name of the wielded item.
optional_depends = hudbars

View File

@ -0,0 +1,4 @@
mesecons
mcl_sounds
doc?
screwdriver?

View File

@ -1,3 +1 @@
name = mcl_comparators
depends = mesecons, mcl_sounds
optional_depends = doc, screwdriver

View File

@ -0,0 +1,12 @@
mcl_init
mcl_formspec
mesecons
mcl_sounds
mcl_tnt
mcl_worlds
mcl_core
mcl_nether
mcl_armor_stand
mcl_armor
doc?
screwdriver?

View File

@ -129,19 +129,6 @@ local dispenserdef = {
local stack_id = stacks[r].stackpos
local stackdef = stack:get_definition()
local iname = stack:get_name()
if not minetest.registered_items[iname] then
minetest.log(
"warning",
"Trying to dispense unknown item " ..
"" .. iname .. "" ..
"near (" ..
pos.x .. ", " ..
pos.y .. ", " ..
pos.z ..
")"
)
return
end
local igroups = minetest.registered_items[iname].groups
--[===[ Dispense item ]===]

View File

@ -1,3 +0,0 @@
name = mcl_dispensers
depends = mcl_init, mcl_formspec, mesecons, mcl_sounds, mcl_tnt, mcl_worlds, mcl_core, mcl_nether, mcl_armor_stand, mcl_armor
optional_depends = doc, screwdriver

View File

@ -0,0 +1,6 @@
mcl_init
mcl_formspec
mesecons
mcl_util
doc?
screwdriver?

View File

@ -1,3 +0,0 @@
name = mcl_droppers
depends = mcl_init, mcl_formspec, mesecons, mcl_util
optional_depends = doc, screwdriver

View File

@ -0,0 +1,2 @@
mesecons
mcl_util

View File

@ -1,2 +0,0 @@
name = mcl_observers
depends = mesecons, mcl_util

View File

@ -0,0 +1,3 @@
mcl_sounds
mcl_core
doc?

View File

@ -483,13 +483,11 @@ function mesecon.turnoff(pos, link)
for _, r in ipairs(mesecon.rule2meta(f.link, mesecon.rules.mcl_alldirs_spread)) do
local np = vector.add(f.pos, r)
local n = mesecon.get_node_force(np)
if not (mesecon.get_node_force(np) == nil) then
if mesecon.is_receptor_on(n.name) then
local receptorrules = mesecon.receptor_get_rules(n)
for _, rr in pairs(receptorrules) do
if rr.spread and vector.equals(mesecon.invertRule(rr), r) then
return false
end
if mesecon.is_receptor_on(n.name) then
local receptorrules = mesecon.receptor_get_rules(n)
for _, rr in pairs(receptorrules) do
if rr.spread and vector.equals(mesecon.invertRule(rr), r) then
return false
end
end
end

View File

@ -1,3 +0,0 @@
name = mesecons
depends = mcl_sounds, mcl_core
optional_depends = doc

View File

@ -0,0 +1 @@
mesecons

View File

@ -1,2 +0,0 @@
name = mesecons_alias
depends = mesecons

View File

@ -0,0 +1,2 @@
mesecons
doc?

View File

@ -1,3 +0,0 @@
name = mesecons_button
depends = mesecons
optional_depends = doc

View File

@ -0,0 +1,3 @@
mesecons
doc?
doc_items?

View File

@ -1,3 +0,0 @@
name = mesecons_commandblock
depends = mesecons
optional_depends = doc, doc_items

View File

@ -0,0 +1,3 @@
mesecons
doc?
screwdriver?

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