Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
886034d
`debug_tooltips`: add raw item:name and groups list in tooltips if de…
alek13 Dec 29, 2025
702cfda
Update annotations `util/ide-helper`. LG-2048
alek13 Jan 6, 2026
15283cd
`helpers`: move `term.lua` up from `lua_ext/`.
alek13 Jan 6, 2026
71a7ac9
New textures of wool and add source file. LG-2013
albel4 Jan 7, 2026
419730f
Gen.Library: Extend `VoxelArea`: add `:set_data[_param2|light]()`, `:…
alek13 Jan 7, 2026
52e5e60
Gen.Library: Extend `VoxelArea`: improve `:place_pile()`: add peak an…
alek13 Jan 8, 2026
54a24c4
Gen.Library: extend `vector`: add `:at_{north|south|east|west}()` & `…
alek13 Jan 10, 2026
b2e9587
Gen.Library: Extend `VoxelArea`: add `:content_of()`, `:is[_not]()`, …
alek13 Jan 10, 2026
e0cba5e
Fix warnings about calling `:set_lighting()`/`:calc_lighting()` on no…
alek13 Jan 10, 2026
af69965
Gen.`buildings`: dwarven dungeons: fix linter errors, use some helper…
alek13 Jan 12, 2026
5b9f387
`ide-helper`: update submodule.
alek13 Jan 12, 2026
9e65189
`ide-helper`: update to last version.
alek13 Jan 22, 2026
10d6a8c
Underground spawn: get rocks from api. LG-1318 (#2350)
mmakart Jan 23, 2026
4bd1415
Gen.Library: Extend `VoxelArea`: ability to pass `param2` into `:fill…
alek13 Jan 23, 2026
7b76c69
Gen.Library: Extend `VoxelArea`: reduce cyclomatic complexity. LG-2049
alek13 Jan 23, 2026
e287cd5
Gen.Library: `Voxrame.map` module: `Room` class. LG-2051
alek13 Jan 23, 2026
76da5a8
Distribution: CDB: excleude `Holidays` mod. Relates to #2276 LG-1893
alek13 Jan 23, 2026
129b7a1
Gen.Library: Extend `VoxelArea`: fix `:fill_with[_chance]()`. LG-2049
alek13 Jan 23, 2026
ed3408c
Generation: add "bone" as node for testing dungeons. LG-2054
alek13 Jan 26, 2026
2d3ee0d
Fix `item_place()` overriden in `protector_lott`.
alek13 Jan 26, 2026
1c6f262
`ide-helper`: update to last version.
alek13 Jan 26, 2026
9a88480
`lord_beds`: Reduce cyclomatic comlexity.
alek13 Jan 26, 2026
7a69caa
Gen.Library: actualize types and use new `IntegerVector`/`PositionVec…
alek13 Jan 27, 2026
85056cf
Gen.Library: change namespace naming. LG-2051
alek13 Jan 27, 2026
eedc1b2
Gen.Library: `Voxrame.map.Cuboid` draft as class. LG-2059
alek13 Jan 28, 2026
f50bf9a
Gen.Library: `Voxrame.map.room.Exit` class. LG-2053
alek13 Jan 29, 2026
02b88f3
Rename modpack `Tools` -> `Items` (#2351)
varttist Feb 2, 2026
1227f0d
`ide-helper`: update version with lua_ext helpers.
alek13 Feb 2, 2026
2034ef2
Gen.Library: move common methods into `Cuboid` instead `Room`. LG-2059
alek13 Feb 2, 2026
5e24511
`helpers`: add `debug.mesure(name, callback, print_result)` & `debug.…
alek13 Feb 8, 2026
9c425d2
Gen.Library: `VoxelArea`: add `:get_node_{id|name}_at()`. Relates to …
alek13 Feb 8, 2026
da011ce
`ide-helper`: update to last nightly version with:
alek13 Feb 8, 2026
237e2be
`helpers`: `debug.measure()` also returns `print_string`; fix all dia…
alek13 Feb 11, 2026
4e63b4b
`builtin_ext`: add `minetest.Mod:measure()` which is measures only if…
alek13 Feb 11, 2026
48b0ded
`icicles`: speed up generation up to 10 times
alek13 Feb 11, 2026
d17110c
Annotations: `buildings`: fix emmylua warnings.
alek13 Feb 11, 2026
cf6b8bb
Refactoring: buildings: dwafven dungeons: rename files. Relates to LG…
alek13 Feb 11, 2026
6fcc3dd
Gen.Library: usage example on Orcish Dungeon. LG-2052
alek13 Feb 11, 2026
01e6c95
`builtin_ext`: `vector`: ability to pass `n` into "side"-methods; add…
alek13 Feb 14, 2026
5ac6a21
Gen.Library: add repositioning method for `Cuboid` & `Exit`. LG-2059 …
alek13 Feb 14, 2026
10e5eae
Gen.Library: Orcish Example: randomize exit, add random shift; add or…
alek13 Feb 14, 2026
a83e8de
Gen.Library: `Room`: ability to just specify `wall_blocks` in child c…
alek13 Feb 16, 2026
ec94b74
Gen.Library: `wall.Type`: extend with useful helpers. Relates to LG-2…
alek13 Feb 19, 2026
65493be
Gen.Library: `Room`: add useful repositioning helpers. Relates to LG-…
alek13 Feb 19, 2026
ae074bd
Gen.Library: `Room.exits`: now associative array. Relates to LG-2060
alek13 Feb 19, 2026
69ce4ae
Gen.Library: add `Connector`, `Connectabe` interfaces & implemetation…
alek13 Feb 19, 2026
dbe958f
Gen.Library: add `Corridor` class. LG-2058
alek13 Feb 19, 2026
6abe70b
Add `.guides/code-style.ru.md`; move `style_guide.md` -> `.guides/ass…
alek13 Feb 20, 2026
c9af4be
Gen.Library: fix emmylua diagnosting warning. LG-2059
alek13 Feb 20, 2026
abb0755
LG-2064 Move bee from mod mobs to mod bees.
lord-papirus Feb 23, 2026
28acaac
LG-2057 move mod mobs to legacy_mobs
lord-papirus Feb 9, 2026
6eccb27
LG-2064 Fix translation after move mod bee.
lord-papirus Mar 3, 2026
0b4fd73
LG-2057 fix move mod mobs
lord-papirus Mar 4, 2026
0a09008
LG-2078 Added mod 'mobs' (aka 'mobs_redo') as submodule
lord-papirus Mar 4, 2026
9eb449d
`builin_ext`: `vector`: add `direction_{axis|side}()` helpers; improv…
alek13 Feb 22, 2026
c8d6529
Gen.Library: use new helpers of `vector`. LG-2058 LG-2060
alek13 Feb 24, 2026
39ca80b
Gen.Library: fix repositioning on connect. LG-2060
alek13 Feb 24, 2026
dcba9a9
`helpers`: `range` type, bug fixes, annotation improvements, Voxrame …
alek13 Mar 10, 2026
5d6249d
Gen.Library: `Room`: declarative `Exit`s. LG-2079.
alek13 Mar 12, 2026
a83d8bb
Gen.Library: Orcish Example: complete example v1. LG-2052
alek13 Mar 12, 2026
4504487
`development.md`: minor clarifications in release process.
alek13 Mar 13, 2026
786554f
`development.md`: describe submodules troubleshooting.
alek13 Mar 13, 2026
229afe0
Add `Voxrame` (former `./mods/lord/Core/`) as submodule. VX-3.
alek13 Mar 15, 2026
ca14ab5
Rename cli utility into `voxrame`.
alek13 Mar 17, 2026
d72b931
Voxrame CLI Hunker: rename `commands/{mod_cmd => mod}`.
alek13 Mar 17, 2026
37cc9d0
Voxrame CLI Hunker: fix emmylua_chaeck after renaming.
alek13 Mar 17, 2026
1c4b678
`ide-helper`: just move submodule `util/ide-helper` -> `util/ide-help…
alek13 Mar 22, 2026
5e2ce8f
Add annotations meta-file for Lummander CLI Library.
alek13 Mar 22, 2026
8262481
Update Voxrame.
alek13 Mar 23, 2026
10d87b5
`util/voxrame`: fix EmmyLua errors for `mod` command.
alek13 Mar 23, 2026
86daf77
CI: emmylua_check: add 'Errors only' execution variant with filtration.
alek13 Mar 23, 2026
2381eb8
CI/CD: update used actions versions
alek13 Mar 23, 2026
eb262b5
Add annotations meta-file for LuaFileSystem (lfs) library.
alek13 Mar 23, 2026
9832e3d
Merge branch 'master' into dev
alek13 Mar 27, 2026
b7164ac
DevTools: search by group in /list command. LG-1818. Closes #2182
alek13 Apr 17, 2026
094a995
Merge branch 'master' into dev
alek13 Apr 22, 2026
d706369
Racial Armor: dwarven set. (#2366)
alek13 Apr 28, 2026
a1111ae
Fix dwarven armor crafts. Relates to #2368. LG-2105
SemiGark May 6, 2026
c271402
All OptiPNG textures armor
Petus228666 May 11, 2026
a87ab87
Add Guard Minas Tirith Cloak
Petus228666 Jun 2, 2026
5e08e48
fix [200~
Petus228666 Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .distribution-exclude
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
.github/*
/mods/_minetest_game/up
/mods/lord/_experimental/*
/mods/lord/Blocks/Holidays/*
/mods/lord/Blocks/clan_node/*
/mods/lord/Blocks/clans_tapestries/*
/mods/lord/Blocks/holding_points/*
Expand All @@ -14,8 +15,8 @@
/mods/lord/Game/lord_web_api/*
/mods/lord/Game/lord_web_integration/*
/mods/lord/Player/clans/*
/mods/lord/Tools/clans_clothes/*
/mods/lord/Tools/clans_tools/*
/mods/lord/Items/clans_clothes/*
/mods/lord/Items/clans_tools/*
/mods/lord/World/arena/*
/mods/lord/World/lord_events/*
/util/*
Expand Down
2 changes: 1 addition & 1 deletion .emmyrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
".github",
".vscode",
".idea",
"util/mt-maker"
"util/voxrame/commands/mod/templates"
],
"library": [
"./mods/_minetest_game",
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-poligon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Update repo & Restart Minetest
uses: fifsky/ssh-action@v0.0.4
uses: fifsky/ssh-action@v0.0.6
with:
host: ${{ secrets.LORD_TEST_HOST }}
port: ${{ secrets.LORD_TEST_PORT }}
Expand Down
16 changes: 13 additions & 3 deletions .github/workflows/emmylua_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
emmylua-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: recursive

Expand All @@ -20,5 +20,15 @@ jobs:
- name: Install emmylua_check
run: cargo install emmylua_check

- name: Run EmmyLua analysis
run: emmylua_check .
- name: Run EmmyLua Check (Errors only)
shell: bash
run: |
set -o pipefail
#
# Use `script` to emulate TTY and preserve colors
script -q -e -c "emmylua_check ." /dev/null | awk '
/^(\033\[[0-9;]*m)*[Ee][Rr][Rr][Oo][Rr]/ { p=1 }
/^(\033\[[0-9;]*m)*(warning|hint|info)/ { p=0 }
/^(\033\[[0-9;]*m)*Summary/ { p=1 }
p
'
11 changes: 5 additions & 6 deletions .github/workflows/luacheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

steps:
- name: Checkout repo recursively
uses: actions/checkout@v2
uses: actions/checkout@v6
with:
submodules: recursive
fetch-depth: 30
Expand Down Expand Up @@ -51,9 +51,8 @@ jobs:
mods/lord/Player/hud_modpack/hbhunger/ \
mods/lord/Player/hud_modpack/hbsprint/ \
mods/lord/Player/hud_modpack/hudbars/ \
mods/lord/Tools/lord_replacer/ \
mods/lord/Tools/lord_books/ \
mods/lord/Tools/lord_boats/ \
mods/lord/Items/lord_replacer/ \
mods/lord/Items/lord_books/ \
mods/lord/Items/lord_boats/ \
mods/lord/World/Generation/lottmapgen/ \
mods/lord/Player/Help/lord_tooltips/src/snippet/properties/node.lua \
mods/lord/Blocks/lord_beds/src/api.lua
mods/lord/Player/Help/lord_tooltips/src/snippet/properties/node.lua
8 changes: 7 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -96,5 +96,11 @@
url = https://codeberg.org/tenplus1/hopper.git

[submodule "util/ide-helper"]
path = util/ide-helper
path = util/ide-helper/luanti
url = https://github.com/Voxrame/luanti-ide-helper.git
[submodule "mods/_various/mobs"]
path = mods/_various/mobs
url = https://codeberg.org/tenplus1/mobs_redo.git
[submodule "mods/Voxrame"]
path = mods/Voxrame
url = https://github.com/Voxrame/Voxrame.git
41 changes: 41 additions & 0 deletions .guides/assets-style.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Artistic Requirements
[Русский](assets-style.ru.md) | **English**

For convenience of references, provisions of this agreement are numbered.

## I. Two-dimensional graphic elements
Include: block and model textures, item sprites, GUI graphic elements and
other images.

1. **General provisions for textures**:
1. The main texture resolution is 16px by 16px;
2. As an exception, it is allowed to use additional texture resolutions for blocks and items;
3. The additional texture resolution is 32px by 32px;
4. As an exception, it is allowed to use odd and non-standard texture resolutions for particles and GUI;
5. All textures must undergo color indexing via optipng utility before being added to the game;
6. Recommended: use limited texture palette with specific color positions. Recommended set for one shade: from 3 to 5;
7. Texture palette should use hue shifting;

2. **Provisions for item textures (in inventory)**:
1. Item textures must be easily distinguishable, not allowing ambiguous interpretation;
2. Item textures must have an outline;
3. The outline on item texture should follow the tone of the texture itself and have light-shadow transition;

3. **Provisions for block textures**:
1. Blocks that do not imply a clearly distinguishable pattern must be seamless;

4. **Provisions for model textures**:
1. The resolution of model textures (unwraps) may differ from the resolutions set in "1. General provisions for textures";
2. The resolution of model textures (unwraps) is recommended to be created equal to powers of two (8, 16, 32, 64, 128, etc.);

## II. Three-dimensional graphic elements
Include: three-dimensional models of blocks and entities.

1. **General provisions for models**:
1. In cases where the model is primitive, it is recommended to use nodebox for performance purposes;
2. The used model formats are: *.obj or .glb* (under question);
3. Source model files (Blender, Blockbench projects, etc.) must be saved in the repository;
4. *In models, it is forbidden to use rounded or spherical elements, faces, polyhedron shapes. The model must be built from planes and/or parallelepipeds;*
5. The faces and planes of the model must be strictly multiples of the pixels of their textures;
6. The scale of the model unwrap must be uniform across the entire surface;
7. The scale of the model unwrap is recommended to correlate with the main texture resolution as 1 to 1 or be visually close to this value.
2 changes: 2 additions & 0 deletions style_guide.md → .guides/assets-style.ru.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Художественные требования
**Русский** | [English](assets-style.en.md)

Для удобства ссылок положения данного соглашения будут пронумерованы.

## I. Двухмерные графические элементы
Expand Down
152 changes: 152 additions & 0 deletions .guides/code-style.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# Code Style Guidelines
[Русский](code-style.ru.md) | **English**

We follow generally accepted code-style standards.
And this document is not a complete description of all code-style rules,
but rather an addition to generally accepted standards in programming languages.

## Our exceptions and additions

### Line length
- Maximum line length: **120 characters**

### Tabs and indentation
- Use **tabs** for indentation
- Use **spaces** for alignment/indentation within lines

**Exception:**
**4 spaces** instead of tab in the first block with local assignments of external functions:
```lua
local math_floor, math_random, v
····= math.floor, math.random, vector.new
```

### Alignment
- **Tables and structures**: align values vertically for readability
- **Consecutive assignments**: align the `=` signs
- **Array/table elements**: align values

Recommended:
- **Comments to the right of code**: align by column
- **Other alignments** that improve readability and fit well into the code

### Spaces
- **Inside tables**: space after opening brace and before closing `{ a = 1 }`
- **After comma**: always put a space `{ a, b, c }`
- **Around operators**:
- spaces around `=`, `+`, `-`, `..`, `and`, `or`
- no spaces around `*`, `/`, `%`, `^`, `..` are allowed
- **In doc-blocks**: always put a space after `---`

Recommendations:
- **In comments**: space after comment markers (`--`): `-- comment`, not `--comment`

### Naming
- **Constants** are written in caps: `MAX_PLAYERS`, `DEFAULT_COLOR`
- **Variables containing "class" description** start with capital letter: `Player`, `World`
- **Other variables** start with lowercase letter in snake_case: `player_name`, `position`

### Quotes
- **Single quotes** are used (in new files and during changes/refactoring)

### Empty lines
- Before `return` from function/method — **1 empty line**
- **Exception**: if it's the only statement in a code block (in `if`, `for`, `function`, ...) — **0 empty lines**
- Between `local-aliases` block (local assignments of external functions) and `require` block — **1 empty line**
- After `require` block (or after `local-aliases` block if `require` block is absent) — **2 empty lines**
- Before `return` from module/class (from file) — **2 empty lines**
- Between functions/methods — **1 empty line**
- **Exception**: if these are functions inside a definition block — **0 empty lines** (as between other table elements)

## Examples

### Proper naming and alignment
```lua
local MAX_HEALTH = 100
local MAX_PLAYERS = 16
local Player = setmetatable({}, { __index = parent })
local player_name = 'alek'
local position = { x = 0, y = 0, z = 0 }
local spawn_position = { x = 100, y = 32, z = 200 }
```

### Proper formatting
```lua
local require, setmetatable, math_floor, math_random, v -- this is local-aliases block
= require, setmetatable, math.floor, math.random, vector.new -- after it 1 empty line - if there's require block or 2 empty lines - if not

local core = require('core') -- this is require block
local utils = require('utils') -- before it 1 empty line, because there's local-aliases block; after it 2 empty lines


-- Class/module
local Player = {}

--- Creates new player
--- @param name string
--- @return Player
function Player:new(name)
local class = self

self = {
name = name,
health = 100,
pos = { x = 0, y = 0, z = 0 }
}

return setmetatable(self, { __index = class })
end

--- Returns player name
--- @return string
function Player:get_name()
return self.name
end

--- Decreases player's health or kills them if health is less than or equal to 0
--- @param amount integer
function Player:take_damage(amount)
self.health = self.health - amount
if self.health <= 0 then
self:die()
end
end


return Player -- before `return` of module/class (from file) 2 empty lines
```

### Empty lines before function `return`
```lua
local function get_player_name(player)
return player:get_player_name() -- only statement in `function` block - no empty line before `return`
end

local function get_lower_player_name(player)
local name
name = player:get_player_name()
name = name:lower()

return name -- not only statement in `function` block - with empty line before `return`
end

local function is_admin(player)
if minetest.check_player_privs(player, {admin = true}) then
return true -- only statement in `if` block - no empty line before return
end

return false -- this is already second statement in function (first - `if`) - with empty line before return
end

local function process_command(player, cmd)
if not cmd or cmd == '' then
minetest.chat_send_player(player:get_player_name(), 'Empty command')

return false -- `return` is not only in `if` block - with empty line before `return`
end

-- command processing...

return true -- not only - empty line before `return`
end
```
Loading