mirror of
https://github.com/minetest-mods/mesecons.git
synced 2025-06-28 13:56:02 +02:00
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
e2fc73da98 | |||
f24429b9f7 | |||
27072542cf | |||
b79962402b | |||
49879ab13c | |||
4c142ea871 | |||
1513a490dc | |||
4bd59137a2 | |||
a0580f9f20 | |||
93751a9014 | |||
786094ec06 | |||
55359c7a0b | |||
28467fc3cb | |||
4eeab8f6f5 | |||
1f9e86c3da | |||
dd073d2e83 | |||
320ec93544 | |||
8051129f82 | |||
5883a0ce65 | |||
d547f5fe43 | |||
5c82089146 | |||
31b56063a0 |
40
.github/workflows/check.yml
vendored
40
.github/workflows/check.yml
vendored
@ -9,9 +9,9 @@ jobs:
|
||||
- uses: actions/checkout@main
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: luacheck install
|
||||
- name: install luacheck
|
||||
run: luarocks install --local luacheck
|
||||
- name: luacheck run
|
||||
- name: run luacheck
|
||||
run: $HOME/.luarocks/bin/luacheck ./
|
||||
|
||||
mineunit:
|
||||
@ -19,23 +19,27 @@ jobs:
|
||||
name: "Mineunit tests"
|
||||
steps:
|
||||
- uses: actions/checkout@main
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: busted install
|
||||
run: luarocks install --local busted
|
||||
- name: luacov install
|
||||
run: luarocks install --local luacov
|
||||
- name: mineunit install
|
||||
run: luarocks install --server=https://luarocks.org/dev --local mineunit
|
||||
- name: run mesecons tests
|
||||
working-directory: ./mesecons/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons
|
||||
- name: run mesecons_mvps tests
|
||||
working-directory: ./mesecons_mvps/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons_mvps
|
||||
- name: run mesecons_fpga tests
|
||||
working-directory: ./mesecons_fpga/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons_fpga
|
||||
- name: run mesecons_luacontroller tests
|
||||
working-directory: ./mesecons_luacontroller/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons_luacontroller
|
||||
|
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@ -11,10 +11,12 @@ jobs:
|
||||
cfg:
|
||||
- { image: 'registry.gitlab.com/minetest/minetest/server:5.0.1', mtg: false }
|
||||
- { image: 'ghcr.io/minetest/minetest:5.9.0', mtg: true }
|
||||
- { image: 'ghcr.io/luanti-org/luanti:5.11.0', mtg: true }
|
||||
steps:
|
||||
- uses: actions/checkout@main
|
||||
|
||||
- uses: actions/checkout@main
|
||||
- name: Download Minetest Game
|
||||
uses: actions/checkout@main
|
||||
with:
|
||||
repository: 'minetest/minetest_game'
|
||||
path: ./.test/minetest_game
|
||||
|
@ -15,6 +15,7 @@ ignore = {
|
||||
max_line_length = 200
|
||||
|
||||
read_globals = {
|
||||
"core",
|
||||
"default",
|
||||
"digiline",
|
||||
"doors",
|
||||
@ -29,6 +30,7 @@ read_globals = {
|
||||
"VoxelArea",
|
||||
"mcl_dyes",
|
||||
"mcl_sounds",
|
||||
"hades_sounds",
|
||||
}
|
||||
|
||||
globals = {"mesecon"}
|
||||
|
@ -99,8 +99,9 @@ do
|
||||
offstate = "mesecons:test_conductor_rot_off",
|
||||
}}
|
||||
mesecon.register_node("mesecons:test_conductor_rot", {
|
||||
paramtype2 = "4dir",
|
||||
description = "Rotatable Test Conductor",
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
}, {mesecons = off_spec}, {mesecons = on_spec})
|
||||
end
|
||||
|
||||
|
11
README.md
11
README.md
@ -13,9 +13,10 @@ MESECONS by Jeija and contributors
|
||||
Mezzee-what?
|
||||
------------
|
||||
|
||||
[Mesecons](https://mesecons.net/)! They're yellow, they're conductive, and they'll add a whole new dimension to Minetest's gameplay.
|
||||
[Mesecons](https://mesecons.net/)! They're yellow, they're conductive, and they'll add a whole new dimension to Luanti's gameplay.
|
||||
|
||||
Mesecons is a mod for [Minetest](https://www.minetest.net/) that implements a ton of items related to digital circuitry, such as wires, buttons, lights, and even programmable controllers. Among other things, there are also pistons, solar panels, pressure plates, and note blocks.
|
||||
Mesecons is a mod for [Luanti](https://www.luanti.org/) that implements a ton of items related to digital circuitry, such as wires, buttons, lights, and even programmable controllers.
|
||||
Among other things, there are also pistons, solar panels, pressure plates, and note blocks.
|
||||
|
||||
Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, with different rules and mechanics.
|
||||
|
||||
@ -24,15 +25,15 @@ OK, I want in.
|
||||
|
||||
Go get it!
|
||||
|
||||
[](https://content.minetest.net/packages/Jeija/mesecons/)
|
||||
[](https://content.luanti.org/packages/Jeija/mesecons/)
|
||||
|
||||
Install it directly from your client by searching it in the Online Content tab.
|
||||
|
||||
**Or** if you've downloaded a ZIP file check out [this page](https://wiki.minetest.net/Mods) over at the official Minetest Wiki. For your convenience, here's a quick summary:
|
||||
**Or** if you've downloaded a ZIP file check out [this page](https://docs.luanti.org/for-players/mods/) over at the official Luanti Wiki. For your convenience, here's a quick summary:
|
||||
|
||||
1. If Mesecons is still in a ZIP file, extract the folder inside to somewhere on the computer.
|
||||
2. Make sure that when you open the folder, you can directly find `README.md` in the listing. If you just see another folder, move that folder up one level and delete the old one.
|
||||
3. Open up the Minetest mods folder - called `mods`.
|
||||
3. Open up the Luanti mods folder - called `mods`.
|
||||
4. Copy the Mesecons folder into the mods folder.
|
||||
|
||||
Don't like some parts of Mesecons? Open up the Mesecons folder and delete the subfolder containing the mod you don't want. If you didn't want movestones, for example, all you have to do is delete the `mesecons_movestones` folder and they will no longer be available.
|
||||
|
4
mesecons/locale/mesecons.ru.tr
Normal file
4
mesecons/locale/mesecons.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons
|
||||
|
||||
### oldwires.lua ###
|
||||
Mesecons=Мезеконы
|
5
mesecons/locale/mesecons.uk.tr
Normal file
5
mesecons/locale/mesecons.uk.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons
|
||||
|
||||
### oldwires.lua ###
|
||||
Mesecons=Месекони
|
||||
Mod that implements a ton of items related to digital circuitry.=Мод, який реалізує масу елементів, пов’язаних із цифровою схемою.
|
@ -17,6 +17,7 @@ function mesecon.on_rotate(pos, node, _, _, new_param2)
|
||||
end
|
||||
|
||||
-- An on_rotate callback for components which stay horizontal.
|
||||
-- Deprecated. Use paramtype2 = "4dir" instead.
|
||||
function mesecon.on_rotate_horiz(pos, node, user, mode, new_param2)
|
||||
if not minetest.global_exists("screwdriver") or mode ~= screwdriver.ROTATE_FACE then
|
||||
return false
|
||||
|
4
mesecons_blinkyplant/locale/mesecons_blinkyplant.ru.tr
Normal file
4
mesecons_blinkyplant/locale/mesecons_blinkyplant.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_blinkyplant
|
||||
|
||||
### init.lua ###
|
||||
Blinky Plant=Мигающий цветок
|
4
mesecons_blinkyplant/locale/mesecons_blinkyplant.uk.tr
Normal file
4
mesecons_blinkyplant/locale/mesecons_blinkyplant.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_blinkyplant
|
||||
|
||||
### init.lua ###
|
||||
Blinky Plant=Миготлива квітка
|
4
mesecons_button/locale/mesecons_button.ru.tr
Normal file
4
mesecons_button/locale/mesecons_button.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_button
|
||||
|
||||
### init.lua ###
|
||||
Button=Кнопка
|
4
mesecons_button/locale/mesecons_button.uk.tr
Normal file
4
mesecons_button/locale/mesecons_button.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_button
|
||||
|
||||
### init.lua ###
|
||||
Button=Кнопка
|
@ -1,4 +1,5 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
local param_maxlen = mesecon.setting("commandblock_param_maxlen", 10000)
|
||||
|
||||
minetest.register_chatcommand("say", {
|
||||
params = "<text>",
|
||||
@ -48,7 +49,7 @@ minetest.register_chatcommand("hp", {
|
||||
local function initialize_data(meta)
|
||||
local commands = minetest.formspec_escape(meta:get_string("commands"))
|
||||
meta:set_string("formspec",
|
||||
"invsize[9,5;]" ..
|
||||
"size[9,5]" ..
|
||||
"textarea[0.5,0.5;8.5,4;commands;Commands;"..commands.."]" ..
|
||||
"label[1,3.8;@nearest, @farthest, and @random are replaced by the respective player names]" ..
|
||||
"button_exit[3.3,4.5;2,1;submit;Submit]")
|
||||
@ -156,6 +157,11 @@ local function commandblock_action_on(pos, node)
|
||||
minetest.chat_send_player(owner, "The command "..cmd.." does not exist")
|
||||
return
|
||||
end
|
||||
if #param > param_maxlen then
|
||||
minetest.chat_send_player(owner, "Command parameters are limited to max. " ..
|
||||
param_maxlen .. " bytes.")
|
||||
return
|
||||
end
|
||||
local has_privs, missing_privs = minetest.check_player_privs(owner, cmddef.privs)
|
||||
if not has_privs then
|
||||
minetest.chat_send_player(owner, "You don't have permission "
|
||||
|
7
mesecons_commandblock/locale/mesecons_commandblock.ru.tr
Normal file
7
mesecons_commandblock/locale/mesecons_commandblock.ru.tr
Normal file
@ -0,0 +1,7 @@
|
||||
# textdomain: mesecons_commandblock
|
||||
|
||||
### init.lua ###
|
||||
Say <text> as the server=Сказать <текст> от имени сервера
|
||||
Say <text> to <name> privately=Сказать <текст> игроку <имя> в личном сообщении
|
||||
Set health of <name> to <value> hitpoints=Установить здоровье игрока <имя> на <значение> хитпоинтов
|
||||
Command Block=Комадный блок
|
7
mesecons_commandblock/locale/mesecons_commandblock.uk.tr
Normal file
7
mesecons_commandblock/locale/mesecons_commandblock.uk.tr
Normal file
@ -0,0 +1,7 @@
|
||||
# textdomain: mesecons_commandblock
|
||||
|
||||
### init.lua ###
|
||||
Say <text> as the server=Сказати <текст> від імені сервера
|
||||
Say <text> to <name> privately=Сказати <текст> гравцю <ім'я> в приватному повідомленні
|
||||
Set health of <name> to <value> hitpoints=Встановити здоров'я гравця <ім'я> на <значення> ХП
|
||||
Command Block=Командний блок
|
5
mesecons_delayer/locale/mesecons_delayer.ru.tr
Normal file
5
mesecons_delayer/locale/mesecons_delayer.ru.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_delayer
|
||||
|
||||
### init.lua ###
|
||||
Delayer=Элемент задержки
|
||||
You hacker you=Ти хакер, ти
|
5
mesecons_delayer/locale/mesecons_delayer.uk.tr
Normal file
5
mesecons_delayer/locale/mesecons_delayer.uk.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_delayer
|
||||
|
||||
### init.lua ###
|
||||
Delayer=Затримувач
|
||||
You hacker you=Ти хакер, ти
|
@ -66,7 +66,8 @@ local object_detector_digiline = {
|
||||
effector = {
|
||||
action = function(pos, _, channel, msg)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if channel == meta:get_string("digiline_channel") then
|
||||
if channel == meta:get_string("digiline_channel") and
|
||||
(type(msg) == "string" or type(msg) == "number") then
|
||||
meta:set_string("scanname", msg)
|
||||
object_detector_make_formspec(pos)
|
||||
end
|
||||
@ -110,14 +111,16 @@ minetest.register_node("mesecons_detector:object_detector_on", {
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:object_detector_off',
|
||||
recipe = {
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_luacontroller:luacontroller0000", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "group:mesecon_conductor_craftable", "mesecons_gamecompat:steel_ingot"},
|
||||
}
|
||||
})
|
||||
if minetest.get_modpath("mesecons_luacontroller") then
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:object_detector_off',
|
||||
recipe = {
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_luacontroller:luacontroller0000", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "group:mesecon_conductor_craftable", "mesecons_gamecompat:steel_ingot"},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:object_detector_off',
|
||||
@ -286,14 +289,16 @@ minetest.register_node("mesecons_detector:node_detector_on", {
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:node_detector_off',
|
||||
recipe = {
|
||||
{"mesecons_gamecompat:steel_ingot", "group:mesecon_conductor_craftable", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_luacontroller:luacontroller0000", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot"},
|
||||
}
|
||||
})
|
||||
if minetest.get_modpath("mesecons_luacontroller") then
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:node_detector_off',
|
||||
recipe = {
|
||||
{"mesecons_gamecompat:steel_ingot", "group:mesecon_conductor_craftable", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_luacontroller:luacontroller0000", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot"},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:node_detector_off',
|
||||
|
5
mesecons_detector/locale/mesecons_detector.ru.tr
Normal file
5
mesecons_detector/locale/mesecons_detector.ru.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_detector
|
||||
|
||||
### init.lua ###
|
||||
Player Detector=Детектор игрока
|
||||
Node Detector=Детектор блока
|
5
mesecons_detector/locale/mesecons_detector.uk.tr
Normal file
5
mesecons_detector/locale/mesecons_detector.uk.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_detector
|
||||
|
||||
### init.lua ###
|
||||
Player Detector=Детектор гравця
|
||||
Node Detector=Детектор блоку
|
@ -1,2 +1,3 @@
|
||||
name = mesecons_detector
|
||||
depends = mesecons, mesecons_gamecompat, mesecons_materials
|
||||
optional_depends = mesecons_luacontroller
|
||||
|
@ -1,3 +0,0 @@
|
||||
name = mesecons_doors
|
||||
depends = mesecons, doors
|
||||
optional_depends = xpanes
|
@ -18,7 +18,7 @@ minetest.register_node("mesecons_extrawires:corner_on", {
|
||||
{ name = "jeija_insulated_wire_ends_on.png", backface_culling = true },
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -33,7 +33,7 @@ minetest.register_node("mesecons_extrawires:corner_on", {
|
||||
offstate = "mesecons_extrawires:corner_off"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_node("mesecons_extrawires:corner_off", {
|
||||
@ -45,7 +45,7 @@ minetest.register_node("mesecons_extrawires:corner_off", {
|
||||
{ name = "jeija_insulated_wire_ends_off.png", backface_culling = true },
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -59,7 +59,7 @@ minetest.register_node("mesecons_extrawires:corner_off", {
|
||||
onstate = "mesecons_extrawires:corner_on"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -41,7 +41,7 @@ for k, state in ipairs(doublecorner_states) do
|
||||
{ name = "jeija_insulated_wire_ends_" .. w2 .. ".png", backface_culling = true },
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -56,7 +56,7 @@ for k, state in ipairs(doublecorner_states) do
|
||||
},
|
||||
},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
})
|
||||
end
|
||||
|
||||
|
@ -3,4 +3,6 @@ dofile(minetest.get_modpath("mesecons_extrawires").."/tjunction.lua");
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/corner.lua");
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/doublecorner.lua");
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/vertical.lua");
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/mesewire.lua");
|
||||
if core.registered_nodes["mesecons_gamecompat:mese"] then
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/mesewire.lua");
|
||||
end
|
||||
|
20
mesecons_extrawires/locale/mesecons_extrawires.ru.tr
Normal file
20
mesecons_extrawires/locale/mesecons_extrawires.ru.tr
Normal file
@ -0,0 +1,20 @@
|
||||
# textdomain: mesecons_extrawires
|
||||
|
||||
### corner.lua ###
|
||||
Insulated Mesecon Corner=Изолированный мезекон (угол)
|
||||
|
||||
### crossover.lua ###
|
||||
Insulated Mesecon Crossover=Изолированный мезекон (перекрестие)
|
||||
You hacker you!=Ти хакер ти!
|
||||
|
||||
### doublecorner.lua ###
|
||||
Insulated Mesecon Double Corner=Изолированный мезекон (двойной угол)
|
||||
|
||||
### mesewire.lua ###
|
||||
Mese Wire=Мезе-провод
|
||||
|
||||
### tjunction.lua ###
|
||||
Insulated Mesecon T-junction=Изолированный мезекон (Т-соединение)
|
||||
|
||||
### vertical.lua ###
|
||||
Vertical Mesecon=Вертикальный мезекон
|
20
mesecons_extrawires/locale/mesecons_extrawires.uk.tr
Normal file
20
mesecons_extrawires/locale/mesecons_extrawires.uk.tr
Normal file
@ -0,0 +1,20 @@
|
||||
# textdomain: mesecons_extrawires
|
||||
|
||||
### corner.lua ###
|
||||
Insulated Mesecon Corner=Ізольований месекон (кут)
|
||||
|
||||
### crossover.lua ###
|
||||
Insulated Mesecon Crossover=Ізольований месекон (перехрестя)
|
||||
You hacker you!=Ти хакер ти!
|
||||
|
||||
### doublecorner.lua ###
|
||||
Insulated Mesecon Double Corner=Ізольований месекон (подвійний кут)
|
||||
|
||||
### mesewire.lua ###
|
||||
Mese Wire=Месе-дріт
|
||||
|
||||
### tjunction.lua ###
|
||||
Insulated Mesecon T-junction=Ізольований месекон (T-з'єднання)
|
||||
|
||||
### vertical.lua ###
|
||||
Vertical Mesecon=Вертикальний месекон
|
@ -29,7 +29,7 @@ minetest.register_node("mesecons_extrawires:tjunction_on", {
|
||||
"jeija_insulated_wire_ends_on.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -45,7 +45,7 @@ minetest.register_node("mesecons_extrawires:tjunction_on", {
|
||||
offstate = "mesecons_extrawires:tjunction_off"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_node("mesecons_extrawires:tjunction_off", {
|
||||
@ -60,7 +60,7 @@ minetest.register_node("mesecons_extrawires:tjunction_off", {
|
||||
"jeija_insulated_wire_ends_off.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -75,7 +75,7 @@ minetest.register_node("mesecons_extrawires:tjunction_off", {
|
||||
onstate = "mesecons_extrawires:tjunction_on"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -40,6 +40,8 @@ local bottom_rules = {
|
||||
{x=0, y=2, z=0} -- receive power from pressure plate / detector / ... 2 nodes above
|
||||
}
|
||||
|
||||
local use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or nil
|
||||
|
||||
local function is_vertical_conductor(nodename)
|
||||
local def = minetest.registered_nodes[nodename]
|
||||
return def and def.is_vertical_conductor
|
||||
@ -96,6 +98,7 @@ mesecon.register_node("mesecons_extrawires:vertical", {
|
||||
after_place_node = vertical_update,
|
||||
after_dig_node = vertical_update,
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
},{
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
groups = {dig_immediate=3},
|
||||
@ -130,6 +133,7 @@ mesecon.register_node("mesecons_extrawires:vertical_top", {
|
||||
after_place_node = vertical_update,
|
||||
after_dig_node = vertical_update,
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
},{
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
@ -162,6 +166,7 @@ mesecon.register_node("mesecons_extrawires:vertical_bottom", {
|
||||
after_place_node = vertical_update,
|
||||
after_dig_node = vertical_update,
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
},{
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
|
7
mesecons_fpga/locale/mesecons_fpga.ru.tr
Normal file
7
mesecons_fpga/locale/mesecons_fpga.ru.tr
Normal file
@ -0,0 +1,7 @@
|
||||
# textdomain: mesecons_fpga
|
||||
|
||||
### init.lua ###
|
||||
FPGA=ПЛИС
|
||||
|
||||
### tool.lua ###
|
||||
FPGA Programmer=ПЛИС-программер
|
7
mesecons_fpga/locale/mesecons_fpga.uk.tr
Normal file
7
mesecons_fpga/locale/mesecons_fpga.uk.tr
Normal file
@ -0,0 +1,7 @@
|
||||
# textdomain: mesecons_fpga
|
||||
|
||||
### init.lua ###
|
||||
FPGA=ПКВМ
|
||||
|
||||
### tool.lua ###
|
||||
FPGA Programmer=ПКВМ-программер
|
72
mesecons_gamecompat/compat_hades.lua
Normal file
72
mesecons_gamecompat/compat_hades.lua
Normal file
@ -0,0 +1,72 @@
|
||||
--Aliases
|
||||
|
||||
core.register_alias("mesecons_gamecompat:chest", "hades_chests:chest")
|
||||
core.register_alias("mesecons_gamecompat:chest_locked", "hades_chests:chest_locked")
|
||||
core.register_alias("mesecons_gamecompat:coalblock", "hades_core:coalblock")
|
||||
core.register_alias("mesecons_gamecompat:cobble", "hades_core:cobble")
|
||||
core.register_alias("mesecons_gamecompat:glass", "hades_core:glass")
|
||||
core.register_alias("mesecons_gamecompat:lava_source", "hades_core:lava_source")
|
||||
core.register_alias("mesecons_gamecompat:mese", "hades_core:mese")
|
||||
core.register_alias("mesecons_gamecompat:mese_crystal", "hades_core:mese_crystal")
|
||||
core.register_alias("mesecons_gamecompat:mese_crystal_fragment", "hades_core:mese_crystal_fragment")
|
||||
core.register_alias("mesecons_gamecompat:obsidian_glass", "hades_core:obsidian_glass")
|
||||
core.register_alias("mesecons_gamecompat:stone", "hades_core:stone")
|
||||
core.register_alias("mesecons_gamecompat:steel_ingot", "hades_core:steel_ingot")
|
||||
core.register_alias("mesecons_gamecompat:steelblock", "hades_core:steelblock")
|
||||
core.register_alias("mesecons_gamecompat:torch", "hades_torches:torch")
|
||||
|
||||
if core.get_modpath("hades_dye") then
|
||||
for _, color in ipairs(mesecon.dye_colors) do
|
||||
core.register_alias("mesecons_gamecompat:dye_" .. color, "hades_dye:" .. color)
|
||||
end
|
||||
end
|
||||
|
||||
-- Sounds
|
||||
|
||||
mesecon.node_sound.default = hades_sounds.node_sound_defaults()
|
||||
mesecon.node_sound.glass = hades_sounds.node_sound_glass_defaults()
|
||||
mesecon.node_sound.leaves = hades_sounds.node_sound_leaves_defaults()
|
||||
mesecon.node_sound.stone = hades_sounds.node_sound_stone_defaults()
|
||||
mesecon.node_sound.wood = hades_sounds.node_sound_wood_defaults()
|
||||
|
||||
if core.get_modpath("hades_fire") then
|
||||
mesecon.sound_name.fire = "fire_fire"
|
||||
end
|
||||
|
||||
if core.get_modpath("hades_tnt") then
|
||||
mesecon.sound_name.explode = "tnt_explode"
|
||||
end
|
||||
|
||||
-- Textures
|
||||
|
||||
mesecon.texture.steel_block = "default_steel_block.png"
|
||||
|
||||
-- MVPS stoppers
|
||||
|
||||
if core.get_modpath("mesecons_mvps") then
|
||||
-- All of the locked and internal nodes in Hades Revisited
|
||||
for _, name in ipairs({
|
||||
"hades_chests:chest_locked",
|
||||
"hades_chests:chest_locked_open",
|
||||
"hades_doors:hidden",
|
||||
"hades_doors:hidden_center",
|
||||
}) do
|
||||
mesecon.register_mvps_stopper(name)
|
||||
end
|
||||
core.register_on_mods_loaded(function()
|
||||
if core.get_modpath("hades_doors") then
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and (v.groups.door or v.groups.trapdoor) then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
if core.get_modpath("hades_beds") then
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and v.groups.bed then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
@ -7,13 +7,13 @@ minetest.register_alias("mesecons_gamecompat:coalblock", "mcl_core:coalblock")
|
||||
minetest.register_alias("mesecons_gamecompat:cobble", "mcl_core:cobble")
|
||||
minetest.register_alias("mesecons_gamecompat:glass", "mcl_core:glass")
|
||||
minetest.register_alias("mesecons_gamecompat:lava_source", "mcl_core:lava_source")
|
||||
minetest.register_alias("mesecons_gamecompat:mese", "mesecons:redstoneblock")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal", "mesecoms:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal_fragment", "mesecons:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:mese", "mcl_redstone_torch:redstoneblock")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal", "mcl_redstone:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal_fragment", "mcl_redstone:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:obsidian_glass", "mcl_core:glass")
|
||||
minetest.register_alias("mesecons_gamecompat:stone", "mcl_core:stone")
|
||||
minetest.register_alias("mesecons_gamecompat:steel_ingot", "mcl_core:iron_ingot")
|
||||
minetest.register_alias("mesecons_gamecompat:steelblock", "mcl_core:steelblock")
|
||||
minetest.register_alias("mesecons_gamecompat:steelblock", "mcl_core:ironblock")
|
||||
minetest.register_alias("mesecons_gamecompat:torch", "mcl_torches:torch")
|
||||
|
||||
if minetest.get_modpath("mcl_dyes") then
|
||||
@ -41,3 +41,48 @@ end
|
||||
-- Textures
|
||||
|
||||
mesecon.texture.steel_block = "default_steel_block.png"
|
||||
|
||||
if minetest.get_modpath("mesecons_mvps") then
|
||||
for k,v in pairs(core.registered_nodes) do
|
||||
local is_stopper = mesecon.mvps_stoppers[k]
|
||||
if v.groups and v.groups.unmovable_by_piston then
|
||||
mesecon.register_mvps_stopper(k)
|
||||
end
|
||||
if is_stopper then
|
||||
local groups = table.copy(v.groups or {})
|
||||
groups.unmovable_by_piston = 1
|
||||
v.groups = groups
|
||||
core.register_node(":"..k, v)
|
||||
end
|
||||
end
|
||||
for k,v in pairs(core.registered_entities) do
|
||||
local is_unmov = mesecon.mvps_unmov[k]
|
||||
if v._mcl_pistons_unmovable then
|
||||
mesecon.register_mvps_unmov(k)
|
||||
end
|
||||
if is_unmov then
|
||||
v._mcl_pistons_unmovable = true
|
||||
core.register_entity(":"..k, v)
|
||||
end
|
||||
end
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and v.groups.bed then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
if v.groups and v.groups.door then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
core.register_craft({
|
||||
output = "mesecons:wire_00000000_off",
|
||||
recipe = {{"mcl_redstone:redstone"}}
|
||||
})
|
||||
core.register_craft({
|
||||
output = "mcl_redstone:redstone",
|
||||
recipe = {{"mesecons:wire_00000000_off"}}
|
||||
})
|
@ -48,28 +48,26 @@ if minetest.get_modpath("mesecons_mvps") then
|
||||
for _, name in ipairs({
|
||||
"default:chest_locked",
|
||||
"default:chest_locked_open",
|
||||
"doors:door_steel_b_1", -- old style doors
|
||||
"doors:door_steel_b_2", --
|
||||
"doors:door_steel_t_1", --
|
||||
"doors:door_steel_t_2", --
|
||||
"doors:door_steel_a", -- new style doors
|
||||
"doors:door_steel_b", --
|
||||
"doors:door_steel_c", --
|
||||
"doors:door_steel_d", --
|
||||
"doors:hidden",
|
||||
"doors:trapdoor_steel",
|
||||
"doors:trapdoor_steel_open",
|
||||
"beds:bed_bottom",
|
||||
"beds:bed_top",
|
||||
"beds:fancy_bed_bottom",
|
||||
"beds:fancy_bed_top",
|
||||
"xpanes:door_steel_bar_a",
|
||||
"xpanes:door_steel_bar_b",
|
||||
"xpanes:door_steel_bar_c",
|
||||
"xpanes:door_steel_bar_d",
|
||||
"xpanes:trapdoor_steel_bar",
|
||||
"xpanes:trapdoor_steel_bar_open",
|
||||
}) do
|
||||
mesecon.register_mvps_stopper(name)
|
||||
end
|
||||
core.register_on_mods_loaded(function()
|
||||
if minetest.get_modpath("doors") then
|
||||
for k,_ in pairs(doors.registered_doors) do
|
||||
mesecon.register_mvps_stopper(k)
|
||||
end
|
||||
end
|
||||
if minetest.get_modpath("beds") then
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and v.groups.bed then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
@ -132,16 +132,14 @@ local function meseconify_trapdoor(name)
|
||||
end
|
||||
|
||||
minetest.register_on_mods_loaded(function()
|
||||
if doors.registered_doors ~= nil then -- registered_doors is not always available
|
||||
for k,_ in pairs(doors.registered_doors) do
|
||||
if k:find("_a$") then
|
||||
meseconify_door(k:sub(1,-3))
|
||||
end
|
||||
for k,_ in pairs(doors.registered_doors) do
|
||||
if k:find("_a$") then
|
||||
meseconify_door(k:sub(1,-3))
|
||||
end
|
||||
for k,_ in pairs(doors.registered_trapdoors) do
|
||||
if not k:find("_open$") then
|
||||
meseconify_trapdoor(k)
|
||||
end
|
||||
end
|
||||
for k,_ in pairs(doors.registered_trapdoors) do
|
||||
if not k:find("_open$") then
|
||||
meseconify_trapdoor(k)
|
||||
end
|
||||
end
|
||||
end)
|
@ -14,7 +14,16 @@ if minetest.get_modpath("default") then
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_mtg.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("mcl_core") then
|
||||
if minetest.get_modpath("mcl_redstone") then
|
||||
minetest.log("info", "Mesecons: detected MineClonia Game for game compatibility")
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_mcl.lua")
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_mcla.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("hades_core") then
|
||||
minetest.log("info", "Mesecons: detected Hades Revisited Game for game compatibility")
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_hades.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("doors") then
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/doors.lua")
|
||||
end
|
||||
|
@ -1,3 +1,3 @@
|
||||
name = mesecons_gamecompat
|
||||
depends = mesecons
|
||||
optional_depends = fire, default, dye, mesecons_mvps, tnt, mcl_fire, mcl_core, mcl_dye, mcl_tnt
|
||||
optional_depends = fire, default, dye, mesecons_mvps, tnt, doors, beds, mcl_fire, mcl_core, mcl_dye, mcl_tnt, hades_sounds
|
||||
|
@ -1,3 +1,5 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }
|
||||
@ -87,7 +89,7 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
description = description,
|
||||
inventory_image = "jeija_gate_off.png^jeija_gate_"..name..".png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
drawtype = "nodebox",
|
||||
drop = basename.."_off",
|
||||
@ -100,7 +102,7 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
offstate = basename.."_off",
|
||||
inputnumber = inputnumber,
|
||||
after_dig_node = mesecon.do_cooldown,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
},{
|
||||
tiles = {
|
||||
"jeija_microcontroller_bottom.png^".."jeija_gate_off.png^"..
|
||||
@ -146,38 +148,38 @@ end
|
||||
|
||||
register_gate("diode", 1, function (input) return input end,
|
||||
{{"mesecons:mesecon", "mesecons_torch:mesecon_torch_on", "mesecons_torch:mesecon_torch_on"}},
|
||||
"Diode")
|
||||
S("Diode"))
|
||||
|
||||
register_gate("not", 1, function (input) return not input end,
|
||||
{{"mesecons:mesecon", "mesecons_torch:mesecon_torch_on", "mesecons:mesecon"}},
|
||||
"NOT Gate")
|
||||
S("NOT Gate"))
|
||||
|
||||
register_gate("and", 2, function (val1, val2) return val1 and val2 end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons_materials:silicon", "mesecons:mesecon"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
"AND Gate")
|
||||
S("AND Gate"))
|
||||
|
||||
register_gate("nand", 2, function (val1, val2) return not (val1 and val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons_materials:silicon", "mesecons_torch:mesecon_torch_on"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
"NAND Gate")
|
||||
S("NAND Gate"))
|
||||
|
||||
register_gate("xor", 2, function (val1, val2) return (val1 or val2) and not (val1 and val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons_materials:silicon", "mesecons_materials:silicon"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
"XOR Gate")
|
||||
S("XOR Gate"))
|
||||
|
||||
register_gate("nor", 2, function (val1, val2) return not (val1 or val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons:mesecon", "mesecons_torch:mesecon_torch_on"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
"NOR Gate")
|
||||
S("NOR Gate"))
|
||||
|
||||
register_gate("or", 2, function (val1, val2) return (val1 or val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons:mesecon", "mesecons:mesecon"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
"OR Gate")
|
||||
S("OR Gate"))
|
||||
|
8
mesecons_gates/locale/mesecons_gates.ru.tr
Normal file
8
mesecons_gates/locale/mesecons_gates.ru.tr
Normal file
@ -0,0 +1,8 @@
|
||||
# textdomain: mesecons_gates
|
||||
Diode=Диод
|
||||
NOT Gate=НЕ-шлюз
|
||||
AND Gate=И-шлюз
|
||||
NAND Gate=NAND-шлюз
|
||||
XOR Gate=XOR-шлюз
|
||||
NOR Gate=NOR-шлюз
|
||||
OR Gate=ИЛИ-шлюз
|
8
mesecons_gates/locale/mesecons_gates.uk.tr
Normal file
8
mesecons_gates/locale/mesecons_gates.uk.tr
Normal file
@ -0,0 +1,8 @@
|
||||
# textdomain: mesecons_gates
|
||||
Diode=Діод
|
||||
NOT Gate=NOT перехідник
|
||||
AND Gate=AND перехідник
|
||||
NAND Gate=NAND перехідник
|
||||
XOR Gate=XOR перехідник
|
||||
NOR Gate=NOR перехідник
|
||||
OR Gate=OR перехідник
|
8
mesecons_gates/locale/template.txt
Normal file
8
mesecons_gates/locale/template.txt
Normal file
@ -0,0 +1,8 @@
|
||||
# textdomain: mesecons_gates
|
||||
Diode=
|
||||
NOT Gate=
|
||||
AND Gate=
|
||||
NAND Gate=
|
||||
XOR Gate=
|
||||
NOR Gate=
|
||||
OR Gate=
|
4
mesecons_hydroturbine/locale/mesecons_hydroturbine.ru.tr
Normal file
4
mesecons_hydroturbine/locale/mesecons_hydroturbine.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_hydroturbine
|
||||
|
||||
### init.lua ###
|
||||
Water Turbine=Гидротурбина
|
4
mesecons_hydroturbine/locale/mesecons_hydroturbine.uk.tr
Normal file
4
mesecons_hydroturbine/locale/mesecons_hydroturbine.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_hydroturbine
|
||||
|
||||
### init.lua ###
|
||||
Water Turbine=Гідротурбіна
|
@ -17,7 +17,7 @@ minetest.register_node("mesecons_insulated:insulated_on", {
|
||||
"jeija_insulated_wire_sides_on.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -39,7 +39,7 @@ minetest.register_node("mesecons_insulated:insulated_on", {
|
||||
rules = insulated_wire_get_rules
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_node("mesecons_insulated:insulated_off", {
|
||||
@ -54,7 +54,7 @@ minetest.register_node("mesecons_insulated:insulated_off", {
|
||||
"jeija_insulated_wire_sides_off.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
paramtype2 = "4dir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -75,7 +75,7 @@ minetest.register_node("mesecons_insulated:insulated_off", {
|
||||
rules = insulated_wire_get_rules
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
4
mesecons_insulated/locale/mesecons_insulated.ru.tr
Normal file
4
mesecons_insulated/locale/mesecons_insulated.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_insulated
|
||||
|
||||
### init.lua ###
|
||||
Straight Insulated Mesecon=Прямой изолированный мезекон
|
4
mesecons_insulated/locale/mesecons_insulated.uk.tr
Normal file
4
mesecons_insulated/locale/mesecons_insulated.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_insulated
|
||||
|
||||
### init.lua ###
|
||||
Straight Insulated Mesecon=Прямий ізольований месекон
|
4
mesecons_lamp/locale/mesecons_lamp.ru.tr
Normal file
4
mesecons_lamp/locale/mesecons_lamp.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_lamp
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Lamp=Мезеконовая лампа
|
4
mesecons_lamp/locale/mesecons_lamp.uk.tr
Normal file
4
mesecons_lamp/locale/mesecons_lamp.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_lamp
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Lamp=Месеконова лампа
|
15
mesecons_lightstone/locale/mesecons_lightstone.ru.tr
Normal file
15
mesecons_lightstone/locale/mesecons_lightstone.ru.tr
Normal file
@ -0,0 +1,15 @@
|
||||
# textdomain: mesecons_lightstone
|
||||
|
||||
### init.lua ###
|
||||
Red Lightstone=Красный светящийся камень
|
||||
Green Lightstone=Зеленый светящийся камень
|
||||
Blue Lightstone=Синий светящийся камень
|
||||
Grey Lightstone=Серый светящийся камень
|
||||
Dark Grey Lightstone=Темно-серый светящийся камень
|
||||
Yellow Lightstone=Желтый светящийся камень
|
||||
Orange Lightstone=Оранжевый светящийся камень
|
||||
White Lightstone=Белый светящийся камень
|
||||
Pink Lightstone=Розовый светящийся камень
|
||||
Magenta Lightstone=Пурпурный светящийся камень
|
||||
Cyan Lightstone=Голубой светящийся камень
|
||||
Violet Lightstone=Фиолетовый светящийся камень
|
15
mesecons_lightstone/locale/mesecons_lightstone.uk.tr
Normal file
15
mesecons_lightstone/locale/mesecons_lightstone.uk.tr
Normal file
@ -0,0 +1,15 @@
|
||||
# textdomain: mesecons_lightstone
|
||||
|
||||
### init.lua ###
|
||||
Red Lightstone=Червоний світловий камінь
|
||||
Green Lightstone=Зелений світловий камінь
|
||||
Blue Lightstone=Синій світловий камінь
|
||||
Grey Lightstone=Сірий світловий камінь
|
||||
Dark Grey Lightstone=Темно-сірий світловий камінь
|
||||
Yellow Lightstone=Жовтий світловий камінь
|
||||
Orange Lightstone=Оранжевий світловий камінь
|
||||
White Lightstone=Білий світловий камінь
|
||||
Pink Lightstone=Рожевий світловий камінь
|
||||
Magenta Lightstone=Пурпуровий світловий камінь
|
||||
Cyan Lightstone=Блакитний світловий камінь
|
||||
Violet Lightstone=Фіолетовий світловий камінь
|
@ -509,6 +509,7 @@ local function create_environment(pos, mem, event, itbl, send_warning)
|
||||
print = safe_print,
|
||||
interrupt = get_interrupt(pos, itbl, send_warning),
|
||||
digiline_send = get_digiline_send(pos, itbl, send_warning),
|
||||
sha256sum = minetest.sha256,
|
||||
string = {
|
||||
byte = string.byte,
|
||||
char = string.char,
|
||||
|
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_luacontroller
|
||||
|
||||
### init.lua ###
|
||||
Luacontroller=Lua-контроллер
|
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_luacontroller
|
||||
|
||||
### init.lua ###
|
||||
Luacontroller=Lua-контролер
|
@ -2,13 +2,13 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- Glue and fiber
|
||||
minetest.register_craftitem("mesecons_materials:glue", {
|
||||
image = "mesecons_glue.png",
|
||||
inventory_image = "mesecons_glue.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
description = S("Glue"),
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mesecons_materials:fiber", {
|
||||
image = "mesecons_fiber.png",
|
||||
inventory_image = "mesecons_fiber.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
description = S("Fiber"),
|
||||
})
|
||||
@ -29,7 +29,7 @@ minetest.register_craft({
|
||||
|
||||
-- Silicon
|
||||
minetest.register_craftitem("mesecons_materials:silicon", {
|
||||
image = "mesecons_silicon.png",
|
||||
inventory_image = "mesecons_silicon.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
description = S("Silicon"),
|
||||
})
|
||||
|
6
mesecons_materials/locale/mesecons_materials.ru.tr
Normal file
6
mesecons_materials/locale/mesecons_materials.ru.tr
Normal file
@ -0,0 +1,6 @@
|
||||
# textdomain: mesecons_materials
|
||||
|
||||
### init.lua ###
|
||||
Glue=Клей
|
||||
Fiber=Волокно
|
||||
Silicon=Кремний
|
6
mesecons_materials/locale/mesecons_materials.uk.tr
Normal file
6
mesecons_materials/locale/mesecons_materials.uk.tr
Normal file
@ -0,0 +1,6 @@
|
||||
# textdomain: mesecons_materials
|
||||
|
||||
### init.lua ###
|
||||
Glue=Клей
|
||||
Fiber=Волокно
|
||||
Silicon=Кремній
|
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_microcontroller
|
||||
|
||||
### init.lua ###
|
||||
Microcontroller=Микроконтроллер
|
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_microcontroller
|
||||
|
||||
### init.lua ###
|
||||
Microcontroller=Мікроконтролер
|
7
mesecons_movestones/locale/mesecons_movestones.ru.tr
Normal file
7
mesecons_movestones/locale/mesecons_movestones.ru.tr
Normal file
@ -0,0 +1,7 @@
|
||||
# textdomain: mesecons_movestones
|
||||
|
||||
### init.lua ###
|
||||
Movestone=Ходовой камень
|
||||
Sticky Movestone=Липкий ходовой камень
|
||||
Vertical Movestone=Вертикальный ходовой камень
|
||||
Vertical Sticky Movestone=Вертикальный липкий ходовой камень
|
7
mesecons_movestones/locale/mesecons_movestones.uk.tr
Normal file
7
mesecons_movestones/locale/mesecons_movestones.uk.tr
Normal file
@ -0,0 +1,7 @@
|
||||
# textdomain: mesecons_movestones
|
||||
|
||||
### init.lua ###
|
||||
Movestone=Ходовий камінь
|
||||
Sticky Movestone=Липкий ходовий камінь
|
||||
Vertical Movestone=Вертикальний ходовий камінь
|
||||
Vertical Sticky Movestone=Вертикальний липкий ходовий камінь
|
4
mesecons_noteblock/locale/mesecons_noteblock.ru.tr
Normal file
4
mesecons_noteblock/locale/mesecons_noteblock.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Нотный блок
|
4
mesecons_noteblock/locale/mesecons_noteblock.uk.tr
Normal file
4
mesecons_noteblock/locale/mesecons_noteblock.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Нотний блок
|
@ -115,27 +115,13 @@ local function piston_off(pos, node)
|
||||
end
|
||||
end
|
||||
|
||||
local orientations = {
|
||||
[0] = { 4, 8},
|
||||
{13, 17},
|
||||
{10, 6},
|
||||
{20, 15},
|
||||
}
|
||||
|
||||
local function piston_orientate(pos, placer)
|
||||
mesecon.mvps_set_owner(pos, placer)
|
||||
if not placer then
|
||||
return
|
||||
end
|
||||
local pitch = math.deg(placer:get_look_vertical())
|
||||
local node = minetest.get_node(pos)
|
||||
if pitch > 55 then
|
||||
node.param2 = orientations[node.param2][1]
|
||||
elseif pitch < -55 then
|
||||
node.param2 = orientations[node.param2][2]
|
||||
else
|
||||
return
|
||||
end
|
||||
node.param2 = core.dir_to_facedir(placer:get_look_dir(), true)
|
||||
minetest.swap_node(pos, node)
|
||||
-- minetest.after, because on_placenode for unoriented piston must be processed first
|
||||
minetest.after(0, mesecon.on_placenode, pos, node)
|
||||
|
9
mesecons_pistons/locale/mesecons_pistons.ru.tr
Normal file
9
mesecons_pistons/locale/mesecons_pistons.ru.tr
Normal file
@ -0,0 +1,9 @@
|
||||
# textdomain: mesecons_pistons
|
||||
|
||||
### init.lua ###
|
||||
Piston=Поршень
|
||||
Activated Piston Base=Основание активированного поршня
|
||||
Piston Pusher=Толкающая часть поршня
|
||||
Sticky Piston=Липкий поршень
|
||||
Activated Sticky Piston Base=Основание активированного липкого поршня
|
||||
Sticky Piston Pusher=Толкающая часть липкого поршня
|
9
mesecons_pistons/locale/mesecons_pistons.uk.tr
Normal file
9
mesecons_pistons/locale/mesecons_pistons.uk.tr
Normal file
@ -0,0 +1,9 @@
|
||||
# textdomain: mesecons_pistons
|
||||
|
||||
### init.lua ###
|
||||
Piston=Поршень
|
||||
Activated Piston Base=Основа активованого поршня
|
||||
Piston Pusher=Штовхаюча частина поршня
|
||||
Sticky Piston=Липкий поршень
|
||||
Activated Sticky Piston Base=Основа активованого липкого поршня
|
||||
Sticky Piston Pusher=Штовхаюча частина липкого поршня
|
4
mesecons_powerplant/locale/mesecons_powerplant.ru.tr
Normal file
4
mesecons_powerplant/locale/mesecons_powerplant.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_powerplant
|
||||
|
||||
### init.lua ###
|
||||
Power Plant=Энергоцветок
|
4
mesecons_powerplant/locale/mesecons_powerplant.uk.tr
Normal file
4
mesecons_powerplant/locale/mesecons_powerplant.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_powerplant
|
||||
|
||||
### init.lua ###
|
||||
Power Plant=Енергоквітка
|
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_pressureplates
|
||||
|
||||
### init.lua ###
|
||||
Wooden Pressure Plate=Деревянная нажимная пластина
|
||||
Stone Pressure Plate=Каменная нажимная пластина
|
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_pressureplates
|
||||
|
||||
### init.lua ###
|
||||
Wooden Pressure Plate=Дерев'яна натискна плита
|
||||
Stone Pressure Plate=Кам'яна натискна плита
|
5
mesecons_random/locale/mesecons_random.ru.tr
Normal file
5
mesecons_random/locale/mesecons_random.ru.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_random
|
||||
|
||||
### init.lua ###
|
||||
Removestone=Исчезающий камень
|
||||
Ghoststone=Призрачный камень
|
5
mesecons_random/locale/mesecons_random.uk.tr
Normal file
5
mesecons_random/locale/mesecons_random.uk.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: mesecons_random
|
||||
|
||||
### init.lua ###
|
||||
Removestone=Зникаючий камінь
|
||||
Ghoststone=Примарний камінь
|
@ -30,6 +30,8 @@ local receiver_get_rules = mesecon.horiz_rules_getter({
|
||||
{x = 0, y = 0, z = -2},
|
||||
})
|
||||
|
||||
local use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or nil
|
||||
|
||||
mesecon.register_node("mesecons_receiver:receiver", {
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
@ -98,6 +100,7 @@ mesecon.register_node("mesecons_receiver:receiver_up", {
|
||||
groups = {dig_immediate = 3, not_in_creative_inventory = 1},
|
||||
drop = "mesecons:wire_00000000_off",
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
}, {
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
@ -143,6 +146,7 @@ mesecon.register_node("mesecons_receiver:receiver_down", {
|
||||
groups = {dig_immediate = 3, not_in_creative_inventory = 1},
|
||||
drop = "mesecons:wire_00000000_off",
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
}, {
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
|
4
mesecons_solarpanel/locale/mesecons_solarpanel.ru.tr
Normal file
4
mesecons_solarpanel/locale/mesecons_solarpanel.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_solarpanel
|
||||
|
||||
### init.lua ###
|
||||
Solar Panel=Солнечная панель
|
4
mesecons_solarpanel/locale/mesecons_solarpanel.uk.tr
Normal file
4
mesecons_solarpanel/locale/mesecons_solarpanel.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_solarpanel
|
||||
|
||||
### init.lua ###
|
||||
Solar Panel=Сонячна панель
|
4
mesecons_stickyblocks/locale/mesecons_stickyblocks.ru.tr
Normal file
4
mesecons_stickyblocks/locale/mesecons_stickyblocks.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_stickyblocks
|
||||
|
||||
### init.lua ###
|
||||
Sticky Block=Липкий блок
|
4
mesecons_stickyblocks/locale/mesecons_stickyblocks.uk.tr
Normal file
4
mesecons_stickyblocks/locale/mesecons_stickyblocks.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_stickyblocks
|
||||
|
||||
### init.lua ###
|
||||
Sticky Block=Липкий блок
|
4
mesecons_switch/locale/mesecons_switch.ru.tr
Normal file
4
mesecons_switch/locale/mesecons_switch.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_switch
|
||||
|
||||
### init.lua ###
|
||||
Switch=Выключатель
|
4
mesecons_switch/locale/mesecons_switch.uk.tr
Normal file
4
mesecons_switch/locale/mesecons_switch.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_switch
|
||||
|
||||
### init.lua ###
|
||||
Switch=Перемикач
|
4
mesecons_torch/locale/mesecons_torch.ru.tr
Normal file
4
mesecons_torch/locale/mesecons_torch.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_torch
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Torch=Мезе-факел
|
4
mesecons_torch/locale/mesecons_torch.uk.tr
Normal file
4
mesecons_torch/locale/mesecons_torch.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_torch
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Torch=Месескип
|
4
mesecons_walllever/locale/mesecons_walllever.ru.tr
Normal file
4
mesecons_walllever/locale/mesecons_walllever.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_walllever
|
||||
|
||||
### init.lua ###
|
||||
Lever=Рычаг
|
4
mesecons_walllever/locale/mesecons_walllever.uk.tr
Normal file
4
mesecons_walllever/locale/mesecons_walllever.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_walllever
|
||||
|
||||
### init.lua ###
|
||||
Lever=Важіль
|
4
mesecons_wires/locale/mesecons_wires.ru.tr
Normal file
4
mesecons_wires/locale/mesecons_wires.ru.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_wires
|
||||
|
||||
### init.lua ###
|
||||
Mesecon=Мезекон
|
4
mesecons_wires/locale/mesecons_wires.uk.tr
Normal file
4
mesecons_wires/locale/mesecons_wires.uk.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: mesecons_wires
|
||||
|
||||
### init.lua ###
|
||||
Mesecon=Месекон
|
@ -1,3 +1,5 @@
|
||||
name = mesecons
|
||||
description = Mod that implements a ton of items related to digital circuitry.
|
||||
min_minetest_version = 5.0
|
||||
min_minetest_version = 5.7.0
|
||||
author = Jeija
|
||||
title = Mesecons
|
||||
|
@ -11,6 +11,11 @@ mesecon.cooldown_granularity (Cooldown step length) float 0.5 0.0 1.0
|
||||
mesecon.blinky_plant_interval (Plant blinking interval) int 3 1 5
|
||||
|
||||
|
||||
[mesecons_commandblock]
|
||||
|
||||
mesecon.commandblock_param_maxlen (Maximum command parameter length) int 10000 100 1000000
|
||||
|
||||
|
||||
[mesecons_detector]
|
||||
|
||||
mesecon.detector_radius (Player detector scanning radius) int 6 3 16
|
||||
|
Reference in New Issue
Block a user